///#include "stdafx.h" #include "sjframe.h" //#include "frame3762task.h" extern u8 * get_uart_send(); extern u8 * addr_get(); //static u8 send_serial = 0x70; static u8 recvserial = 0; void sj_set_recvser(u8 ser) { recvserial = ser; } u8 sj_get_recvser() { return recvserial; } //校验和 extern unsigned char GetCK(unsigned char * Val, unsigned char Len); void sj_frame_ack(u8 * val,u16 * len,u8 afn) { u8 * p = val; u8 * addr = addr_get(); p[0] = 0x68; p[1] = 49; p[2] = 0x00; p[3] = 49; p[4] = 0x00; p[5] = 0x68; p[6] = 0x80; //addr p[7] = addr[0]; p[8] = addr[1]; p[9] = addr[2]; p[10] = addr[3]; p[11] = 0; //afn p[12] = afn;// //ser p[13] = (6<<4)|(recvserial&0x0F); //单元标识 p[14] = 0x00; p[15] = 0x00; p[16] = 0x01; p[17] = 0x00; p[18] = GetCK(&p[6],0x0C); p[19] = 0x16; * len = 20; } void amt_frame_data(u8 * val,u16 * len,u8 * amtval,u8 amtlen) { //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 //68 20 00 20 00 68 88 03 13 01 00 00 96 60 00 00 01 00 03 00 00 87 21 66 27 38 35 00 62 99 00 F7 16 //68 20 00 20 00 68 88 03 13 01 00 00 96 60 00 00 01 00 //03 00 //00 87 21 66 27 38 35 //00 62 99 00 //F7 16 //2 + num * 11 + 12 u8 * p = val; u16 datalen = (13 + amtlen) * 4 + 1; u16 alllen = 1 + amtlen + 20; u8 * addr = addr_get(); p[0] = 0x68; p[1] = datalen&0xFF; p[2] = (datalen>>8)&0xFF; p[3] = datalen&0xFF; p[4] = (datalen>>8)&0xFF; p[5] = 0x68; p[6] = 0x88; //addr p[7] = addr[0]; p[8] = addr[1]; p[9] = addr[2]; p[10] = addr[3]; p[11] = 0; //afn p[12] = 0x9E; //ser p[13] = sj_get_recvser();//0x60;//get_sendserial(); //单元标识 p[14] = 0x00; p[15] = 0x00; p[16] = 0x01; p[17] = 0x00; // p[18] = amtlen; memmove(&p[19],amtval,amtlen); p[alllen-2] = GetCK(&p[6],13 + amtlen); p[alllen-1] = 0x16; * len = alllen; }