修复modbus错误回传0长度报文 zsxfly20240820
This commit is contained in:
parent
33051e8fb3
commit
399d6f4f5f
File diff suppressed because it is too large
Load Diff
|
@ -93,8 +93,8 @@
|
|||
<flags>0</flags>
|
||||
<showCmd>1</showCmd>
|
||||
<MinPosition>
|
||||
<xPos>-1</xPos>
|
||||
<yPos>-1</yPos>
|
||||
<xPos>-32000</xPos>
|
||||
<yPos>-32000</yPos>
|
||||
</MinPosition>
|
||||
<MaxPosition>
|
||||
<xPos>-1</xPos>
|
||||
|
@ -3714,9 +3714,9 @@
|
|||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\src\app_PAD.c</Name>
|
||||
<ColumnNumber>0</ColumnNumber>
|
||||
<TopLine>196</TopLine>
|
||||
<CurrentLine>224</CurrentLine>
|
||||
<ColumnNumber>25</ColumnNumber>
|
||||
<TopLine>263</TopLine>
|
||||
<CurrentLine>282</CurrentLine>
|
||||
<Folding>1</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
|
@ -3768,7 +3768,7 @@
|
|||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\src\app_modbus.c</Name>
|
||||
<ColumnNumber>16</ColumnNumber>
|
||||
<ColumnNumber>28</ColumnNumber>
|
||||
<TopLine>238</TopLine>
|
||||
<CurrentLine>258</CurrentLine>
|
||||
<Folding>1</Folding>
|
||||
|
|
|
@ -215,8 +215,18 @@ void app_PAD_CheckData(uint8_t *dat , uint8_t len){
|
|||
case 0x06: //读 //12V输出状态
|
||||
sys_sta.O_12V = PAD_daraframe.data[0] & 0x01;
|
||||
break;
|
||||
case 0x10:
|
||||
ret_data[length++] =BAT_Message.Bat_STA; // 电池状态
|
||||
ret_data[length++] =BAT_Message.Bat_Voltage >> 8; //电池电压
|
||||
ret_data[length++] =BAT_Message.Bat_Voltage & 0xff;
|
||||
ret_data[length++] =get_in_acc_percent();// 当前油门百分比
|
||||
ret_data[length++] =radar_data.radar_id;// 雷达ID
|
||||
ret_data[length++] =radar_data.distance/100;// 雷达距离信息
|
||||
ret_data[length++] =(sys_sta.IOgps <<0) | (sys_sta.I_back <<1) | (sys_sta.I_brake <<2)
|
||||
| (sys_sta.IOmanager <<3) | (sys_sta.Manager <<4)
|
||||
| (sys_sta.Tourist <<5) | (sys_sta.A_Speed_Cut <<6) | (sys_sta.A_brake <<7);
|
||||
}
|
||||
app_PAD_Sendcmd(PAD_daraframe.cmd_id ,0x01 ,ret_data ,length);
|
||||
app_PAD_Sendcmd(PAD_daraframe.cmd_id ,PAD_daraframe.reg_addr ,ret_data ,length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,16 +56,19 @@ enum app_control{
|
|||
typedef struct sys_sta{
|
||||
// uint16_t Pmode:2;
|
||||
union{
|
||||
uint8_t Pmode:2;
|
||||
uint8_t Smode:2;
|
||||
uint8_t Pmode;
|
||||
struct{
|
||||
uint8_t Tourist:1;
|
||||
uint8_t Manager:1;
|
||||
uint8_t RES0 :2;
|
||||
|
||||
uint8_t RES_0:6;
|
||||
};
|
||||
};
|
||||
union{
|
||||
uint8_t Smode;
|
||||
struct{
|
||||
uint8_t IOgps:1;
|
||||
uint8_t IOmanager:1;
|
||||
uint8_t RES1 :2;
|
||||
uint8_t RES_1:6;
|
||||
};
|
||||
};
|
||||
union{// 输入状态
|
||||
|
|
|
@ -90,7 +90,8 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
|
||||
MODBUS_Sent_BUF[len_count++] =MODBUS_ADDR;
|
||||
MODBUS_Sent_BUF[len_count++] =CMDCode;
|
||||
if(CMDCode == 0x03){
|
||||
if(CMDCode == 0x03){//寄存器个数计数
|
||||
MODBUS_Sent_BUF[2] =0;
|
||||
len_count++;
|
||||
}else if(CMDCode == 0x06){
|
||||
MODBUS_Sent_BUF[len_count++] =(reg_addr >> 8) & 0xff;
|
||||
|
@ -359,6 +360,9 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
len_count =0;
|
||||
break;
|
||||
}
|
||||
if(len_count == 0){
|
||||
return;
|
||||
}
|
||||
app_modbus_SendData(MODBUS_Sent_BUF ,len_count);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "sys_config.h"
|
||||
|
||||
#define DBG_RADAR_EN 1
|
||||
#define DBG_RADAR_EN 0
|
||||
|
||||
#if (DBG_RADAR_EN)
|
||||
#include "dbg.h"
|
||||
|
@ -156,6 +156,8 @@ void app_radar_Sendcmd(uint8_t radar_id , uint8_t radar_mode){
|
|||
|
||||
// 雷达测离初始化
|
||||
void app_radar_init(void){
|
||||
radar_data.radar_id = RADAR_ID_Front;
|
||||
radar_data.distance = 0;
|
||||
// sftmr_init(); //main函数中已初始化
|
||||
sftmr_start(10, radar_timer_handler);
|
||||
}
|
||||
|
|
|
@ -50,8 +50,8 @@ void conf_init(void);
|
|||
|
||||
/**************************系统版本**************************/
|
||||
// 软件本号
|
||||
#define SOFTWARE_ID 0x0102
|
||||
#define D_Modbus_addr 0x01
|
||||
#define SOFTWARE_ID 0x0101
|
||||
#define D_Modbus_addr 0x37
|
||||
/************************油门(Unit:%)************************/
|
||||
// 管理员模式默认油门极限(0-100%)
|
||||
#define D_Manager_sLim 100
|
||||
|
|
Loading…
Reference in New Issue