|
@@ -948,13 +948,14 @@ extern uint8_t Cang08_IO[64];
|
|
|
uint32_t overflow_cnt_bak=0;
|
|
|
extern uint32_t overflow_cnt;
|
|
|
unsigned char overflow_flag_bak;
|
|
|
-void Send_A1_Cmd()
|
|
|
+void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scrLength)
|
|
|
{
|
|
|
int send_pos=0;
|
|
|
unsigned char emergy=0;
|
|
|
unsigned char Lrc_temp;
|
|
|
unsigned char overflow_flag=0;
|
|
|
int i,j;
|
|
|
+ unsigned char temp_i = 0x00;
|
|
|
USART1_TX_BUF[send_pos++]=':';
|
|
|
sprintf(USART1_TX_BUF+send_pos,"%02X",0xA1);
|
|
|
send_pos+=2;
|
|
@@ -1067,12 +1068,42 @@ void Send_A1_Cmd()
|
|
|
sprintf(USART1_TX_BUF+send_pos,"%02X",0);
|
|
|
send_pos+=2;
|
|
|
}
|
|
|
+ //**********************************************
|
|
|
+
|
|
|
+ if(0x3C < scrLength)
|
|
|
+ {
|
|
|
+ scrLength = 0x3C;
|
|
|
+ }
|
|
|
+ temp_i = scrLength<<1;
|
|
|
+ //sprintf(USART1_TX_BUF+5,"%02X",temp_i);
|
|
|
+ USART1_TX_BUF[5] = (temp_i>>4) + '0';
|
|
|
+ if('9' < USART1_TX_BUF[5])
|
|
|
+ {
|
|
|
+ USART1_TX_BUF[5] += 7;
|
|
|
+ }
|
|
|
+ USART1_TX_BUF[6] = (temp_i & 0xF) + '0';
|
|
|
+ if('9' < USART1_TX_BUF[6])
|
|
|
+ {
|
|
|
+ USART1_TX_BUF[6] += 7;
|
|
|
+ }
|
|
|
+
|
|
|
+ temp_i <<= 1;
|
|
|
+
|
|
|
+ Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1, temp_i + 6);
|
|
|
+ sprintf(USART1_TX_BUF + temp_i + 7, "%02X", Lrc_temp);
|
|
|
+ USART1_TX_BUF[temp_i + 9] = 0x0D;
|
|
|
+ USART1_TX_BUF[temp_i + 10] = 0x0A;
|
|
|
+ TerminalSlave485_Send_Data(USART1_TX_BUF, temp_i + 11);
|
|
|
+
|
|
|
+ //***********************************************
|
|
|
+ /*
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,send_pos-1);
|
|
|
sprintf(USART1_TX_BUF+send_pos,"%02X",Lrc_temp);
|
|
|
send_pos += 2;
|
|
|
USART1_TX_BUF[send_pos++] =0x0D;
|
|
|
USART1_TX_BUF[send_pos++] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,send_pos);
|
|
|
+ */
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1513,7 +1544,7 @@ void Data_analysis(void)
|
|
|
}
|
|
|
else if(data_frame.Frame_addr==0xA1)
|
|
|
{
|
|
|
- Send_A1_Cmd();
|
|
|
+ Send_A1_Cmd(data_frame.Frame_addr, data_frame.Frame_funcode, data_frame.Frame_length);
|
|
|
}
|
|
|
|
|
|
|