Mein pico-c script ruft die Messwerte über 7 x getinput() ab und sendet sie mit POST über einen Stream an ein Remote-System zur weiteren Analyse.
Nach etwa zwei Tagen funktioniert Mein pico-c Programm nicht mehr.
Wenn ich in die Datei /log/def.log gehe, sehe ich die Meldung:
2018-12-25 06: 47: 56.576; recId = atoi (cValue);
^
VZ1: 145: 23 out of memory (Alloc)
Mit der atoi() Funktion hat das nichts zu tun auch ohne diese Funktion stoppt das Programm mit "out of memory".
Ich rufe keine Funktionen auf, um zur Laufzeit Speicher anzufordern (malloc), und weiß nicht, welche Funktionen Speicher in Hintergrund anfordern (malloc).
Wo ich STREAM* pTcpStream = stream_create (TCPDEVICE, 0, 0); anruf
wird vor dem Ende der Funktionsblök eine stream_close (pTcpStream) ausgeführt.
Hier ist eine Liste der verwendeten Funktionen:
current_time = getcurrenttime()
getyear(current_time, 1), getmonth(current_time, 1), getday(current_time, 1)
gethour(current_time, 1), getminute(current_time, 1), getsecond(current_time, 1))
getinput(iDpNr)
setoutputtext(iChannel, cStatusMessage)
atoi(), memset(), strlen(), strncpy(), strstr(), strcat(), strcmp()
printf(), sprint()
STREAM* pTcpStream = stream_create(TCPDEVICE, 0, 0)
stream_write(pTcpStream, pTcpCmd, strlen(pTcpCmd))
stream_flush(pTcpStream)
stream_read(pTcpStream, szTmpBuffer, 256, 4000)
stream_close(pTcpStream)
getcpuinfo(), getheapusage(), getmaxheap()
sleeps()
Gruss,
Willy
Kommentar