Jag blir gråhårig....
Jag sätter upp länken enligt tidigare.
Skickar följande:
0x02 = HCI ACL DATA
0x01,0x20 = LSB 1000 0000 0000 0100 MSB Vilket betyder kanal 1/ First paket och Only Point to Point
0x06,0x00 = total paket längd (6 byte)
Nu börjar det skumma, den verkar kräva att paketet har en L2CAP header!!
WHY?? L2CAP headern ska användas av L2CAP och inte av HCI lagret.
Låter som en kodningsmiss från ericsson, visst i alla certifierade BT enheter behöver L2CAP och headern kommer finnas.. men HCI lagret ska inte pilla på den eller läsa den...
0x02,0x00 = Längd på L2CAP datan 2 bytes
0x00,0x00 = Channel ID
0xFF,0xFF = Och två bytes data...
Funkar fin fint om man accepterar att skicka med ett giltigt L2CAP huvud.
SÅ om man vill skicka fler byte i samma paket måste man både öka HCI data längden OCH L2CAP data längden
Detta skickar 4 byte data
{0x02,0x01,0x20,0x08,0x00,0x04,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF}
och detta 2 byte
{0x02,0x01,0x20,0x06,0x00,0x02,0x00,0x00,0x00,0xFF,0xFF};
och för att visa på att det går att skicka mer data med ACL data än vad som ryms i de radiopaket vi använder skickar vi:
{0x02 0x01 0x20 0x18 0x00 0x14 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0x01 0x01 0x04 0x05 0x33 0x8B 0x9E 0x06 0x00 0x04 0x0F 0x04 0x00 0x01 0x01 0x04}
I detta paket är det altså 20 byte data. 0x18 i början är altså HCI längden, 0x14 är L2CAP längden som ALLTID är 4bytes kortare än HCI längden.
Så vem kommer motbevisa mig att ericsson faktiskt följt HCI specen?? Jag annser att de buggar ....
Som efterfrågat
