ich habs jetzt doch nochmal angefasst, bräuchte aber mal ein bisschen Hilfe.
01 2b 00 00 00 bc 11 98 2c 2a 81 00 81
Welcher Teil des Telegramms ist das ?
folgende Funktionen hab ich jetzt
getgrpaddr=lambda x: (ord(x[3])>> 3 &0xf ,ord(x[3]) & 0x7,ord(x[4]))
getsrcaddr=lambda x: (ord(x[1])& 0x0f,ord(x[1]) >>4,ord(x[2]))
getctrl1=lambda x: (ord(x[0])>>7 & 1,ord(x[0])>>6 & 1,ord(x[0])>>5 & 1,ord(x[0])>>4 & 1,ord(x[0])>>2 & 3,ord(x[0])>>1 & 1,ord(x[0]) & 1)
getctrl2=lambda x: (ord(x[5])>>7 & 1,ord(x[5])>>4 & 7,ord(x[5]) & 7)
um programmieren auf dem Bus zu erkennen, muss ich da ControlField2 Bit 7==0 auswerten ?
Repeated ist klar.
Wie müsste ein ACK aussehen, kann ich das vom HS überhaupt senden ?
Sonst würde ich beim Eintreffen eines Telegramms, mit im HS vorhandener Gruppenadresse, ein ACK senden.
Ziel ist es das nachher Repeated als auch Programmieren per SystemLog zu melden.
01 2b 00 00 00 bc 11 98 2c 2a 81 00 81
Welcher Teil des Telegramms ist das ?
folgende Funktionen hab ich jetzt
getgrpaddr=lambda x: (ord(x[3])>> 3 &0xf ,ord(x[3]) & 0x7,ord(x[4]))
getsrcaddr=lambda x: (ord(x[1])& 0x0f,ord(x[1]) >>4,ord(x[2]))
getctrl1=lambda x: (ord(x[0])>>7 & 1,ord(x[0])>>6 & 1,ord(x[0])>>5 & 1,ord(x[0])>>4 & 1,ord(x[0])>>2 & 3,ord(x[0])>>1 & 1,ord(x[0]) & 1)
getctrl2=lambda x: (ord(x[5])>>7 & 1,ord(x[5])>>4 & 7,ord(x[5]) & 7)
control Field 1
Bit
7 Frame Type - 0x0 for extended frame
0x1 for standard frame
6 Reserved
5 Repeat Flag - 0x0 repeat frame on medium in case of an error
0x1 do not repeat
4 System Broadcast - 0x0 system broadcast
0x1 broadcast
3 Priority - 0x0 system
0x1 normal
0x2 urgent
2 0x3 low
1 Acknowledge Request - 0x0 no ACK requested
(L_Data.req) 0x1 ACK requested
0 Confirm - 0x0 no error
(L_Data.con) - 0x1 error
control Field 2
Bit
7 Destination Address Type - 0x0 individual address
- 0x1 group address
6-4 Hop Count (0-7)
3-0 Extended Frame Format - 0x0 standard frame
Bit
7 Frame Type - 0x0 for extended frame
0x1 for standard frame
6 Reserved
5 Repeat Flag - 0x0 repeat frame on medium in case of an error
0x1 do not repeat
4 System Broadcast - 0x0 system broadcast
0x1 broadcast
3 Priority - 0x0 system
0x1 normal
0x2 urgent
2 0x3 low
1 Acknowledge Request - 0x0 no ACK requested
(L_Data.req) 0x1 ACK requested
0 Confirm - 0x0 no error
(L_Data.con) - 0x1 error
control Field 2
Bit
7 Destination Address Type - 0x0 individual address
- 0x1 group address
6-4 Hop Count (0-7)
3-0 Extended Frame Format - 0x0 standard frame
Repeated ist klar.
Wie müsste ein ACK aussehen, kann ich das vom HS überhaupt senden ?
Sonst würde ich beim Eintreffen eines Telegramms, mit im HS vorhandener Gruppenadresse, ein ACK senden.
Ziel ist es das nachher Repeated als auch Programmieren per SystemLog zu melden.
Kommentar