首页 > 其他 > 详细

日记smarthome

时间:2017-10-09 09:14:07      阅读:177      评论:0      收藏:0      [点我收藏+]

测试命令:测试命令 7e 7e 两个字节 一个字节  两个字节 一个字节     解释: 两个字节是userid的值

int Userid = data[i] * 256 + data[i + 1]; 

一个字节是 DeviceID的值,

int Deviceid = data[i + 2];

说明测试命令发的是整型的userid,而不是字符string型

结束测试命令:只能7c 7c 7c

手机发命令:

用手机客户端的话,发的控制命令肯定就是字符型了目前只能是,

字符串“407”转为整数407,int str1 = Convert.ToInt32(string object);

首先服务器收到的数据存放在byte型数组 data[]里

步骤1:解码与编码      重点:数据类型之间转换

string str2 = new ASCIIEncoding  ().GetString(buffer);    // 如果buffer[]={0x33,0x32,0x2c,0x31}  则str2="32,1"

string dataToString = new ASCIIEncoding().GetString(data);
byte command = 0;
if (dataToString.Contains("relayoff"))
command = 1;

string[]Stringprocessed=dataToString.Split(‘,‘); //"407,102,relayoff"

int usertemp = Convert.ToInt32(Stringprocessed[0]);   //usertemp=407 
int devicetemp = Convert.ToInt32(Stringprocessed[1]);

设备终端插座的数据:

数据:16进制数  7c xxxxxxxxx7c  中间有7d 01 和7d 02 需要转义

注册命令:0x7e 0x7e userid deviceid    解释:userid也是整型,两个字节

 

 

 rec_ThreePhase[20] = (double)(data[i + 6] * 256 * 256 * 256 + data[i + 7] * 256 * 256 + data[i + 8] * 256 + data[i + 9])/100;//energy   当data[6],7,8,9都是0xff时,写入数据库的rec_ThreePhase[20] 值为-0.01

日记smarthome

原文:http://www.cnblogs.com/fyp7077/p/7639493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!