arduino xively setfloat仅使用2个deicmal位置

时间:2014-02-07 02:42:04

标签: arduino xively

我正在使用带有xlively的arduino v1.0.3来上传传感器数据,但它只上传了2个小数位。有没有办法改变这个(想要3或4个小数位)谢谢

XivelyDatastream datastreams[] = {
  XivelyDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT),
};
.
.
.
datastreams[0].setFloat(pres);

1 个答案:

答案 0 :(得分:0)

首先,我想指出大多数Arduino板使用的是8位AVR微控制器,它没有浮点单元(FPU)。编译器将添加在软件中执行浮点运算的函数,这会增加代码大小并降低性能。据我所知,目前基于ARM的Arduino板也没有FPU。

更具体地说,您的问题是Arduino is using print() method的Xively库,如果您需要更多小数位,可以选择接受第二个参数。最简单的方法是修改XivelyDatastream.cpp中的第165到168行以执行以下操作:

case DATASTREAM_FLOAT:
  count += aPrint.print(_value._valueFloat, 4);
  break;
};