91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

linux tcpmodbus服務(wù)端 輸入寄存器(0x04)離散輸入寄存器(0x02)保持寄存器(0x03(讀) 0x06(單個寫) 0x10(多個寫))

資源截圖

代碼片段和文件信息

#include??
#include?
#include?
#include??????
#include??????
#include???
#include?
#include?
#include?
#include?
#include?
#include?
#include??
#include?
#include??
#include?
#include?
#include?
#include?
#include?
#include?
#include?“l(fā)inux_thread.inc“
#define?MAX_MODBUS_REVLEN?4096
#define?MAX_CLIENT_CNT?10
#define?STATUS_ON 1
#define?STATUS_OFF 0
char?modbus_sockt_state[MAX_CLIENT_CNT];
unsigned?int?modbus_sockt_timer[MAX_CLIENT_CNT];
int?modbus_client_sockptr[MAX_CLIENT_CNT];
struct?sockaddr_in?Server_Addr?Client_addr;
int?modbus_sockptr;
unsigned?short?int?test_keep[10]={12345678910};
?void?UINT16ToBigEndien(unsigned?short?int?u16_data?unsigned?char?*dat_out)
{
dat_out[0]?=?u16_data?>>?8;
dat_out[1]?=?u16_data;
}

unsigned?char?GetStatusInput(unsigned?short?addrunsigned?char*?err)//添加自己點(diǎn)表?離散輸入寄存器0x02
{
unsigned?char?ret;
ret?=?0;
????????*err=0;
if?((addr?>=0)&&(addr<10))
{

ret?=?1;

}
????????else
????????{
???????*err=2;
????????}

return?(ret);
}

unsigned?short?GetKeepInput(unsigned?short?addrunsigned?char?*err)//添加自己點(diǎn)表?讀保持寄存器0x03
{
unsigned?short?ret;
unsigned?char?*uc_point;
unsigned?char?*uc_point2;
*err=0;
ret?=?0;
if((addr>=0)&&(addr<10))
{
ret=test_keep[addr];
}
else
{
*err=2;
}
return?(ret);
}

unsigned?short?GetModbusInput(unsigned?short?addrunsigned?char?*err)//添加自己點(diǎn)表?輸入寄存器0x04
{
unsigned?short?ret;
*err=0;
if((addr>=0)&&(addr<10))
{
ret=addr+1;
}
else
{
*err=2;
}

return?(ret);
}

int?SetModbus(unsigned?short?addr?unsigned?int?datasetunsigned?char?*err)//添加自己點(diǎn)表?設(shè)置保持寄存器0x06?或0x10
{
unsigned?char?*uc_point;
unsigned?char?*uc_point2;
*err=0;
if((addr>=0)&&(addr<10))
{
if(dataset<255)
test_keep[addr]=dataset;
else
*err=3;
}
else
{
*err=2;
}
return?1;
}


int?AnalysModbus(unsigned?char?*datain?unsigned?short?len?unsigned?char?*dataout)
{
unsigned?short?event;
unsigned?short?protocol;
unsigned?short?length;
unsigned?char?*datap;
unsigned?char?*datapout;
unsigned?char?addr;
unsigned?char?cmd;
unsigned?short?startaddr;
unsigned?short?regcnt;
unsigned?short?regaddr;
unsigned?short?setvalue;
unsigned?char?setlen;
unsigned?short?uitemp;
unsigned?char?*ctp;
unsigned?char?result;
unsigned?short?bat_no;
time_t?timep_save;
unsigned?char?time_buf_save[6]err;
char?tempc_buf[50];
int?grp_no;
int?index;
int?i?j;
index?=?0;
while?(index? {
datap?=?(unsigned?char?*)(&datain[index]);
event?=?datap[0]?*?0x100?+?datap[1];
protocol?=?datap[2]?*?0x100?+?datap[3];
length?=?datap[4]?*?0x100?+?datap[5];
if?(protocol?==?0?&&?length?>=?2)
{
dataout[0]?=?event?>>?8;
dataout[1]?=?event;
dataout[2]?=?protocol?>>?8;
dataout[3]?=?protocol;
dataout[4]?=?0;//later
dataout[5]?=?0;//later


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????883??2018-07-25?09:13??Makefile.server

?????文件??????12762??2018-07-25?09:12??tcpmodbusserver

?????文件??????12402??2018-07-25?09:16??tcpmodbusserver.c

?????文件???????2487??2018-07-25?09:30??linux_thread.inc

-----------?---------??----------?-----??----

????????????????28534????????????????????4


評論

共有 條評論