关于远程控制设备设置布尔型数据点的问题?
本帖最后由 webmaster 于 2015-5-28 16:57 编辑虚拟设备目前有两个数据点:
power 布尔型
speed 数字型, 取值范围:10 - 100
下面是PHP代码:
$data = array("attrs" => array("power" => 1, "speed" => 100));
$r = Gokit::post($uri, $data, $headerArr);
有三个问题:
1. 如果设置power布尔型,返回:
array(3) {
["error_message"]=>string(13) "attr invalid!"
["error_code"]=>int(9025)
["detail_message"]=>string(5) "power"
}
说明power传递的值无效,为什么?布尔型传递啥数据呢?
2. 如果只设置speed数据点,如上设置speed的值为100,那么在官网“虚拟设备”窗口中看到speed的值调整到了90。
也就是说,speed实际显示的值是我设置的100减去初始值10,为什么会这样计算??
3. 根据官方的文档中“关于获取设备最近上传的数据点”相关代码,可以获取在官网“虚拟设备”窗口中直接设置的数据,
但是无法获取上面的代码设置的数据(即无法获取远程设置的数据点的值),是bug吗??
请专家解答下,谢谢!
布尔型的话,试试true,false?
speed数据点的问题,请看下你的数据点定义,实际的数据传输只能是无符号整型,所以用修正算法来表示负数和小数。在创建产品的开发文档里,应该有具体的描述。 谢谢楼上,true和false确实可以。我记得试过,没成功。这次倒成功了。
关于第二个问题,即数字区间的问题,不符合常理,比如某参数在10-100间变化,
程序代码中设置它时,一般小于10时自动设置成10,大于100时自动设置成100.
感觉这个初始值修正算法太不好理解了。估计理解错的人很多。 webmaster 发表于 2015-5-28 17:20
关于第二个问题,即数字区间的问题,不符合常理,比如某参数在10-100间变化,
程序代码中设置它时,一般小 ...
这个在生成的协议里面貌似有一条公式的 y=1.000000*x+(10.000000)
x最小值为0,最大值为90.
x为MCU传递的数据,y为APP获取到的数据
我也感觉是比较容易弄乱,可能有其他功能上的考虑吧。 关于获取设备最近上传的数据点
这个都提示说是获取设备最近上传的数据了,
你设置的数据是由APP->服务器->MCU的,这个接口只提供获取MCU->服务器的数据。
正常情况下,
APP发送控制指令到MCU,MCU是应该返回设备目前的状态的,所以你才能通过该接口了解目前设备的状态。 Kemp 发表于 2015-5-29 09:51
关于获取设备最近上传的数据点
这个都提示说是获取设备最近上传的数据了,
谢谢。懂了。获取的是设备上传的数据,而不是我们设置它的数据。
页:
[1]