mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-20 01:21:12 +00:00
fixed 0xdb after 0xc00, nicer
This commit is contained in:
parent
b0e2d88819
commit
3c07ec4896
43
3rdparty/LogExtension.mm
vendored
43
3rdparty/LogExtension.mm
vendored
@ -82,28 +82,10 @@ void h5_slip_process( h5_slip_t * sm, uint8_t input, uint8_t in){
|
|||||||
switch (sm->state) {
|
switch (sm->state) {
|
||||||
case unknown:
|
case unknown:
|
||||||
if (input == 0xc0){
|
if (input == 0xc0){
|
||||||
|
sm->length = 0;
|
||||||
sm->state = x_c0;
|
sm->state = x_c0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case decoding:
|
|
||||||
switch (input ){
|
|
||||||
case 0xc0:
|
|
||||||
// packet done
|
|
||||||
type = sm->data[1] & 0x0f;
|
|
||||||
if (type >= 1 && type <= 4 && sm->length >= 6){
|
|
||||||
hci_dump_packet( type, in, &sm->data[4], sm->length-4-2); // -4 header, -2 crc for reliable
|
|
||||||
}
|
|
||||||
sm->state = unknown;
|
|
||||||
break;
|
|
||||||
case 0xdb:
|
|
||||||
sm->state = x_db;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
sm->data[sm->length] = input;
|
|
||||||
++sm->length;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case x_c0:
|
case x_c0:
|
||||||
switch (input ){
|
switch (input ){
|
||||||
case 0xc0:
|
case 0xc0:
|
||||||
@ -112,12 +94,31 @@ void h5_slip_process( h5_slip_t * sm, uint8_t input, uint8_t in){
|
|||||||
sm->state = x_db;
|
sm->state = x_db;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sm->data[0] =input;
|
sm->data[sm->length] = input;
|
||||||
sm->length = 1;
|
++sm->length;
|
||||||
sm->state = decoding;
|
sm->state = decoding;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case decoding:
|
||||||
|
switch (input ){
|
||||||
|
case 0xc0:
|
||||||
|
sm->state = unknown;
|
||||||
|
// packet done - check if valid HCI packet
|
||||||
|
if (sm->length < 6) break;
|
||||||
|
type = sm->data[1] & 0x0f;
|
||||||
|
if (type < 1 || type > 4) break;
|
||||||
|
hci_dump_packet( type, in, &sm->data[4], sm->length-4-2); // -4 header, -2 crc for reliable
|
||||||
|
break;
|
||||||
|
case 0xdb:
|
||||||
|
sm->state = x_db;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sm->data[sm->length] = input;
|
||||||
|
++sm->length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case x_db:
|
case x_db:
|
||||||
switch (input) {
|
switch (input) {
|
||||||
case 0xdc:
|
case 0xdc:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user