[分享] 【MXCHIP Open1081】拼凑上位机,send函数疑问

ljj3166   2014-12-13 15:02 楼主
前段时间的折腾,基本上可以进行简单的wifi通信 周末有点时间,用labview做个简单的上位机 完成一个简单的采集任务,麻雀小五脏全 没有什么美化的插件,做得很粗糙 gyu.jpg 从OPEN1081采集温度数据 在上位机设置最高、最低的报警阈值 ALARM灯根据阈值来进行点亮或者熄灭,达到报警功能 上框图,大神轻拍 gyu.jpg 每50ms,上位机向OPEN1081发送一次数据 OPEN1081收到数据后,回复固定长度的数据 以Temp开头,紧跟温度数据 温度数据转换成浮点数后,送插件输出 同时与温度阈值比较,点亮或者熄灭ALARM灯 上视频简单演示一下: 上点代码,很随意,以后再用systick去采集数据吧 if (clientfd【i】 != -1) { if (!FD_ISSET(clientfd【i】, &readfds)) { con = recv(clientfd【i】, buf, 3*1024, 0); if (con > 0) { tmp = get_tem(); itostr(SEND_buff,tmp/100); strcat(SEND_buff,"."); itostr(TMP_buff,tmp%100/10); strcat(SEND_buff,TMP_buff); SEND_str_len = strlen(SEND_buff); send(clientfd【i】, "Temp", sizeof("Temp")-1, 0); send(clientfd【i】, SEND_buff, SEND_str_len, 0); } else { close(clientfd【i】); clientfd【i】 = -1; } } 注意到红色字体么? 很奇怪的一个问题, 如果使用send(clientfd【i】, "Temp", sizeof("Temp"), 0);的话,上位机无法获取温度数据了 在labview中debug发现,用send函数发送Temp字符,上位机居然收到Temp外加一个空格 fasfsda.jpg 所以无法正常接收温度数据 把sizeof("Temp")减掉1后,一切正常,百思不得其解啊 dfasfsda.jpg 昨天庆科的工程师回复函数库可参考参考POSIX标准 下去再好好研究一下吧 本帖最后由 ljj3166 于 2014-12-13 15:05 编辑
So TM what......?

回复评论 (3)

楼主干得不错!

我刚开始关心recv,read, recvfrom及send,write, sendto这几个库函数。
点赞  2014-12-13 17:10
这用身体温度怪吓人的,才10度
点赞  2014-12-13 22:45
不错。顶一个。
点赞  2014-12-13 22:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复