天空云的天空 发表于 2012-9-17 12:31:29

发送StartIDPS,收不到返回信息,求指教

我是通过蓝牙向iPhone发送StartIDPS
1、发送的数据是55 04 00 38 00 00 checksum,checksum位我试了几种算法(c4,44,BC),但都没有收到iPhone的返回信息(ACK),不知道是不是checksum算错
2、关于transactionID位,一直发00 00 和依次累加1 这两种情况我都试了,没有返回信息

也可能是其他原因,烦请哪位指导一下,多谢!

TimCheng 发表于 2012-9-17 13:48:13

                        case SYNCHRONOUS:
                                msTicks = 0;
                                while(msTicks < 10);                        //wait 800ms
                                SysRam = 0xFF;                                //send sync byte
                                CommPutChar(SysRam, 1);
                                msTicks = 0;
                                while(msTicks < 2);                               //wait 20ms
                                State = START_IDPS;
                                break;
//====================================================
//       StartIDPS
//
                        case START_IDPS:
                                SysRam = 0xFF;
                                SysRam = 0x55;
                                SysRam = 0x04;
                                SysRam = 0x00;
                                SysRam = 0x38;
                                SysRam = 0x03;
                                SysRam = 0xE9;
                                SysRam = 0xD8;
                                CommPutChar(SysRam, 8);

                                State = START_IDPS_ACK;
                                break;


                           case START_IDPS_ACK:
                                       
                                AppleOutput();

                                if (SysRam==0x02 && SysRam==0x00) Error = FALSE;                  //Apple device respond ACK
                                else                                                                        Error = TRUE;

                                if (Error==TRUE)        State = START_IDPS;
                                else                                 State = REQUEST_LINGO_PROTOCOL_VERSION;

#ifdef __DBG__
                                printf("\r\n");
                                printf("\r\nACKStartIDPS:\r");
                                for (i=0; i<PacketLengh+4; i++) {
                                        if (i%16 == 0) printf("\r\n");
                                          printf("0x%0.2X ", (int)SysRam);       
                                }
#endif

                                break;

天空云的天空 发表于 2012-9-17 14:20:18

TimCheng 发表于 2012-9-17 13:48 static/image/common/back.gif
case SYNCHRONOUS:
                                msTicks = 0;
                                while(msTicks < 10);                        //wait 800ms


重复发StartIDPS,transactionID位不需要每次都+1吗?
因为是蓝牙发送,所以只能不断发StartIDPS等待iPhone回应,谢谢~
页: [1]
查看完整版本: 发送StartIDPS,收不到返回信息,求指教