hi ho,
ich hätte da gern mal wieder ein problem.
Hab von Steca den Solarregler Tarom4545, den ich per UART(seriell) mitm Raspi verbunden hab.
Über ein script bekomm ich die Daten (1zeile) minütlich in folgender form in "eine" xxx.txt
quasi pro minute eine zeile mehr !
Jetz hab ich dieses entdeckt: das wär optimal um z.b. den ladestrom anzuzeigen !!
Nun meine frage: Kann mir irgendjemand helfen mit der Integrierung meiner Daten in ein infopsg z.b. in bez. auf battspg oder gesladestr
wie liest sas Daten aus einem .txt, vor allem müßt sas immer in die letzte Zeile springen um die aktuellsten Daten zu bekommen !!
-----Aktualisiert------
UART - Empfang
psg-Tarom-.php
momentane gebastelte Ansicht : sehr geil !!
ich hätte da gern mal wieder ein problem.
Hab von Steca den Solarregler Tarom4545, den ich per UART(seriell) mitm Raspi verbunden hab.
Über ein script bekomm ich die Daten (1zeile) minütlich in folgender form in "eine" xxx.txt
Code:
1;2016/10/22;15:23;14.4;15.6;#;63.0;#;2.4;6.4;#;3.2;2.4;0.9;0.9;22.3;0;B;1;0;0;12.2;12.3;2.8;2.8;0;F36B
1;2016/10/22;15:24;14.4;15.5;#;63.0;#;2.3;7.7;#;3.2;2.4;0.9;0.9;22.4;0;B;1;0;0;12.2;12.4;2.8;2.8;0;20BA
1;2016/10/22;15:25;14.5;15.6;#;63.0;#;2.4;10.7;#;3.3;2.4;0.9;0.9;22.5;0;B;1;0;0;12.2;12.4;2.9;2.9;0;8C5F
1;2016/10/22;15:26;14.5;15.6;#;63.0;#;2.4;10.8;#;3.3;2.4;0.9;0.9;22.6;0;B;1;0;0;12.3;12.4;2.9;2.9;0;9653
1;2016/10/22;15:27;14.5;15.6;#;63.0;#;2.3;10.7;#;3.3;2.3;0.9;0.9;22.7;0;B;1;0;0;12.3;12.5;2.9;2.9;0;FCBA
quasi pro minute eine zeile mehr !
Jetz hab ich dieses entdeckt: das wär optimal um z.b. den ladestrom anzuzeigen !!
Nun meine frage: Kann mir irgendjemand helfen mit der Integrierung meiner Daten in ein infopsg z.b. in bez. auf battspg oder gesladestr
wie liest sas Daten aus einem .txt, vor allem müßt sas immer in die letzte Zeile springen um die aktuellsten Daten zu bekommen !!
-----Aktualisiert------
UART - Empfang
Code:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define BAUDRATE B4800
char UART[]= "/dev/ttyAMA0";
char FILEDEVICE[]= "/verzeichnis/tarom.txt";
char Recieve[255]="";
int Laenge;
int File;
struct termios newtio={};
unsigned char WriteFile()
{
int Counter;
int Temp;
Temp = open(FILEDEVICE, O_WRONLY | O_CREAT | O_APPEND);
write(Temp, Recieve, Laenge);
close(Temp);
system("chmod 644 /verzeichnis/tarom.txt");
for(Counter = 0; Counter < Laenge; Counter++)
{
Recieve[Counter] = 0;
}
Laenge = 0;
}
unsigned char Empfangen()
{
int res;
unsigned char Buffer;
res = read(File, &Buffer, 1);
return Buffer;
}
int UART_Init()
{
File = open(UART, O_RDONLY | O_NOCTTY);
if (File < 0)
{
printf("Fehler beim oeffnen von %s\n", UART);
exit(-1);
}
memset(&newtio, 0, sizeof(newtio));
newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;
newtio.c_iflag = IGNPAR;
newtio.c_oflag = 0;
newtio.c_lflag = 0;
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 1;
tcflush(File, TCIFLUSH);
tcsetattr(File, TCSANOW, &newtio);
return File;
}
int main(int argc, char** argv)
{
char Zeichen;
UART_Init();
while (1)
{
Zeichen = Empfangen();
if((Zeichen == 13))
{
Recieve[Laenge] = 0x0A;
Laenge++;
WriteFile();
}
else if(Zeichen > 13)
{
Recieve[Laenge] = Zeichen;
Laenge++;
if (Laenge > 254)
{
WriteFile();
}
}
}
close (File);
return 0;
}
psg-Tarom-.php
PHP:
<?php
include_once __DIR__."/../include/psg.php";
$lastline = exec("tail -n1 /pfad zur/tarom.txt", $retarr, $retval);
$exparr = (explode(";",$lastline,27));
$ver="V#V 6.00#";
$info='';
$info.='P#';
$info.=$exparr[2].' Batt:'.exparr[3].' Modul:'.exparr[4];
$info.='*HTML#';
echo $info.$ver;
exit;
?>
momentane gebastelte Ansicht : sehr geil !!
Zuletzt bearbeitet: