Files
HBshuiwuConcentrator/shuangjia/sjack.c
2025-12-15 16:07:49 +08:00

124 lines
1.8 KiB
C

///#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;
}