Hallo, wie im Thread (siehe Link:https://knx-user-forum.de/eibpc/1096...-eibpc-14.html) angekündigt hier meine Fragen zur Behandlung der RS232 und Details zur EnertexOneWire.lib
1a) In der enertexonewire.lib wird die Zeile "if event(readrs232(NameD_rawdata,NameD_Len)) and (ROMID==HA_Device)... " verwendet.
Könnt Ihr mir erklären, wie das readrs232 bzw der RS232 Puffer behandelt wird?
Werden die Daten in jedem Fall ausgelesen, sobald das event getriggert wird - Also neue Daten im Buffer der RS232 liegen? Oder muss die "and" Bedingung erfüllt sein? Meint: Bewirkt hier das "and", dass readrs232 nicht ausgeführt wird und der RS232 Buffer geleert wird?
1b)Was passiert, wenn vom HA7E noch gesendet wird und noch nicht alle Daten empfangen sind? Werden die Daten dann nur teilweise ausgelesen?
1c) Was passiert, nachdem der erste Befehl zum ha7e gesendet wurde, danach das Lesen des ersten Sensors erfolgt, und dann nichts im RS232 Buffer empfangen wurde. Liest dann bereits der 2te Sensor der die Funktion "Temperature(NameD, ROMID,Minute)" aufruft, die Daten des ersten Sensors und wenn ja, sind dann die Daten weg für den ersten Sensor?
(Aber dann müsste mann damit rechnen, dass es deutlich weniger oft funktioniert oder?)
Kurz, ich habe mich gefragt: Wieso kommt die Rückantwort vom seriellen Buffer immer an der richtigen Sensorabfrageschleife an , wenn bei jedem eibPC-Zyklus alle Sensoren sofort nacheinander mit (if event(readrs232(NameD_rawdata,NameD_Len)) and (ROMID==HA_Device)..." abgefragt werden?
2) Warum wurde eine Zeit von 2 min gewählt? Jeder Sensor benötigt ca 20 sec im parasitären Betrieb. Oder hängt das mit der ersten Frage zusammen:
Warum wurde die Funktion random eingebunden und wass passiert, wenn werte dicht beieinander liegen?
3)Um mehr als 20 Sensoren abzufragen, reicht es aus bei der "HA_Queue=$$" z.B. eine 5000 hinter zu schreiben oder ist hier mehr zu beachten? Klar ist, dass die Abfrage-Zeiten dann bei der enertexOneWire.lib lange werden.
4) Bleibt die Que auf einer Größe von 5000 Zeichen, wenn mann später im Code nur "HA_Queue = $$" setzt oder sollte hier wieder eine $$5000 gesetzt werden?
1a) In der enertexonewire.lib wird die Zeile "if event(readrs232(NameD_rawdata,NameD_Len)) and (ROMID==HA_Device)... " verwendet.
Könnt Ihr mir erklären, wie das readrs232 bzw der RS232 Puffer behandelt wird?
Werden die Daten in jedem Fall ausgelesen, sobald das event getriggert wird - Also neue Daten im Buffer der RS232 liegen? Oder muss die "and" Bedingung erfüllt sein? Meint: Bewirkt hier das "and", dass readrs232 nicht ausgeführt wird und der RS232 Buffer geleert wird?
1b)Was passiert, wenn vom HA7E noch gesendet wird und noch nicht alle Daten empfangen sind? Werden die Daten dann nur teilweise ausgelesen?
1c) Was passiert, nachdem der erste Befehl zum ha7e gesendet wurde, danach das Lesen des ersten Sensors erfolgt, und dann nichts im RS232 Buffer empfangen wurde. Liest dann bereits der 2te Sensor der die Funktion "Temperature(NameD, ROMID,Minute)" aufruft, die Daten des ersten Sensors und wenn ja, sind dann die Daten weg für den ersten Sensor?
(Aber dann müsste mann damit rechnen, dass es deutlich weniger oft funktioniert oder?)
Kurz, ich habe mich gefragt: Wieso kommt die Rückantwort vom seriellen Buffer immer an der richtigen Sensorabfrageschleife an , wenn bei jedem eibPC-Zyklus alle Sensoren sofort nacheinander mit (if event(readrs232(NameD_rawdata,NameD_Len)) and (ROMID==HA_Device)..." abgefragt werden?
2) Warum wurde eine Zeit von 2 min gewählt? Jeder Sensor benötigt ca 20 sec im parasitären Betrieb. Oder hängt das mit der ersten Frage zusammen:
Warum wurde die Funktion random eingebunden und wass passiert, wenn werte dicht beieinander liegen?
3)Um mehr als 20 Sensoren abzufragen, reicht es aus bei der "HA_Queue=$$" z.B. eine 5000 hinter zu schreiben oder ist hier mehr zu beachten? Klar ist, dass die Abfrage-Zeiten dann bei der enertexOneWire.lib lange werden.
4) Bleibt die Que auf einer Größe von 5000 Zeichen, wenn mann später im Code nur "HA_Queue = $$" setzt oder sollte hier wieder eine $$5000 gesetzt werden?
Kommentar