From bdd39790647dcf4ad1302a797c032fcf3442b6e9 Mon Sep 17 00:00:00 2001 From: wangxujie Date: Fri, 14 Feb 2025 16:32:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=A0=A1=E9=AA=8C=E4=BD=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=87=8D=E5=A4=8D=E5=9B=9E=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=B8=A7BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~$测试&半成品测试协议.docx | Bin 4258 -> 0 bytes User/application/src/tcpserverc.c | 77 +++++++++--------- 2 files changed, 40 insertions(+), 37 deletions(-) delete mode 100644 Documents/project documents/~$测试&半成品测试协议.docx diff --git a/Documents/project documents/~$测试&半成品测试协议.docx b/Documents/project documents/~$测试&半成品测试协议.docx deleted file mode 100644 index 097e4ed331cfe3e3ad0bd2eec3288e6a6447ba94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4258 zcmeH|`8U-2AICqIL1ye@y~U90%NSx@8FG<3ma$Cso$Qh|iOUp*u}rF&2os@Du2I4W z#UN{i8T*nfr4*8ghQ!?I{srGZ!0VjnYk9t2=e*B({PG3>PvAp#X3%%60ana^$I&39 z*Yno|VZ%e1NvG|bvxTthjy-`Z_)!0VAP8H=R zV8xl;Il=%gz^@BkKnu_SkQ_$?&;xWh8U3GQ25577EkOUjD{W3i0-7A}B!J>nU5=2P ztv7HOhXf7@91=Jra7f^gz#)PEhX87z?&W-VK^Z1aa?sYotM5&?x`TB^Dp=+^jO|#G z`Zlres|{re8I5n@o_F<4tgH%j zNW3&tH0lQL^baa1M8$+XTyqzP6{&zBFQcP;PMTgUkvB(kd9boAqZYv$$`D=kx=4drZR~{=qTbjVLVB;_Id|e z*WPc(Gzc%qGsp77P&keJeQktZR+psScMtbJ2bEh3yCpJQbsl<6ZMa5PG1C$fa!poD zkkyaYIyy40RwLrDba6R1@>^Z?+4UsU4!cN8zs4+jv$p5s+6xGL=(Mf$}`^ z9GEMc5l)*+b^9@O=1Vfg_Az{Mj9JoqVl-k)e*6ff`G^8L%}H_{1mRW zhvAGp_zpq7kiG6#mKFOL&BqjKwI%)DvszH6WBRI}OEK|txh4WYKXj|`wV7*r?liBk z(AxOiDz>4g;D?=-L|sE;CXww4_Z7ZNuhgi(iNd!9VyfZkv#d>pu`*BTrK8uDVutMab;x5j*8j z^GP9_tMwX~Z=zeqFsLt0rZJib2)x$3VqkL_i=L?(aM;Afqb11D)!o++LOESjDJ6ba zS&6hPKUv?i#+z=R{-DawGy`98uO7Kx%M+1qAiJ&hT6!=T&SCM&nL-u9gG z2MG%-egmqG(5nkQX=EsD`%|I zjAv#pv`bn&X@aG(j)PZH&|ETx;aI}#qY%eu^_k~qg&3F9_r^)vWqA{n`4fV8-YZ>Q zLPwvf_0i0rPWoMT15k)V%s%y-*{EET*)!#<{6mU{uEItMS8+(6tT?9g(ehh=ZdS17R*pFuJqiB zAZJ|{o75z1v~mXM;L*o_4r=OahFrdc;ON5&q1v%uEfUUjopzX^O@|8Cs^04{(s}B= z`F+P{K+NKm;_8h~;n(?J(m=2S5Y&*~R~GSVIC7Y7UQf5lJ9c-!s*ip2*PqA7(Wg$8 z{Gj0Ai&4R`K>;xd(XkvaGw8U}4rj^3=@E_$wJ}1>1z2Lm1>L~x8|Cwno_X@2tNjQc zSsf!mnt($@!%43O&5<%TYC-)u!1!1e=w4&~CPq9#LJ!H!_+bBZU4AzXd~ai=l) zc&gG887?84`r=fr!xyAb%xq?m(c1@t+mZV-jj1`OaK?=a3nnum; - user_read_gpio(user_communication_di, tcp_tx_data, tcp_rx_data); - tcp_write(tpcb, tcp_tx_data, tx_data_len, 1); - } - else if (tcp_rx_data[3] == 0x03) // 写数字量指令 - { - /*写操作,将数据写入寄存器,组包返回*/ - user_communication_do = &communication_data.do_data; - user_write_gpio(user_communication_do); - tcp_write(tpcb, tcp_rx_data, rx_data_len, 1); - } else { - // 返回命令号错误 - tx_data_len = COM_ERROR_CODE_SIZE; - communication_exception(tcp_tx_data, tcp_rx_data, COMMAND_ERROR); - tcp_write(tpcb, tcp_tx_data, tx_data_len, 1); + memcpy(communication_data.data, tcp_rx_data + 5, tcp_rx_data[4]); + if (tcp_rx_data[3] == 0x00) // 读模拟量指令 + { + /*读操作,从寄存器读取数据,组包返回*/ + tx_data_len = COM_AI_DATA_SIZE; + user_communication_ai = &communication_data.ai_data; + communication_get_ai(user_communication_ai, tcp_tx_data, tcp_rx_data); + tcp_write(tpcb, tcp_tx_data, tx_data_len, 1); + } + else if (tcp_rx_data[3] == 0x01) // 写模拟量指令 + { + /*写操作,将数据写入寄存器,组包返回*/ + tcp_echo_flags_control = 1; + user_communication_ao = &communication_data.ao_data; + communication_set_ao(user_communication_ao); + tcp_write(tpcb, tcp_rx_data, rx_data_len, 1); + } + else if (tcp_rx_data[3] == 0x02) // 读数字量指令 + { + /*读操作,从寄存器读取数据,组包返回*/ + + user_communication_di = &communication_data.di_data; + tx_data_len = 7 + user_communication_di->num; + user_read_gpio(user_communication_di, tcp_tx_data, tcp_rx_data); + tcp_write(tpcb, tcp_tx_data, tx_data_len, 1); + } + else if (tcp_rx_data[3] == 0x03) // 写数字量指令 + { + /*写操作,将数据写入寄存器,组包返回*/ + user_communication_do = &communication_data.do_data; + user_write_gpio(user_communication_do); + tcp_write(tpcb, tcp_rx_data, rx_data_len, 1); + } + else + { + // 返回命令号错误 + tx_data_len = COM_ERROR_CODE_SIZE; + communication_exception(tcp_tx_data, tcp_rx_data, COMMAND_ERROR); + tcp_write(tpcb, tcp_tx_data, tx_data_len, 1); + } } /*2. 判断所要执行的操作 读或写指令*/