- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 upd-sink.c
工作和udp-sender.c
contiki/examples/ipv6/rpl-collect
的示例Cooja 的路径。我希望发送者节点将其传感器数据发送到接收器。在 udp-sender.c
代码,有一个struct
叫msg
还有这个struct
有一个名为 msg
的数据字段其类型为struct collect_view_data_msg
类型。我想将我的读数传感器放入 msg 中并发送到接收器。我该怎么做?我有一个检测温度的程序。我要发送s
可变为按摩下沉。我想在 Cooja 中模拟这个网络。
传感器程序:
PROCESS(sensor_acq_process,"Sensor Acquisition");
AUTOSTART_PROCESSES(&sensor_acq_process);
PROCESS_THREAD(sensor_acq_process,ev,data)
{
static struct etimer et;
static int val;
static float s = 0;
static int dec;
static float frac;
PROCESS_BEGIN();
printf("Starting Sensor Example.\n");
while(1)
{
etimer_set(&et, CLOCK_SECOND * 2);
SENSORS_ACTIVATE(sht11_sensor);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
val = sht11_sensor.value(SHT11_SENSOR_TEMP);
if(val != -1)
{
s = ((0.01*val) - 39.60);
dec = s;
frac = s - dec;
printf("\nTemperature=%d.%02u C (%d)\n", dec, (unsigned int)(frac * 100),val);
}
etimer_reset(&et);
SENSORS_DEACTIVATE(light_sensor);
SENSORS_DEACTIVATE(sht11_sensor);
} //end of while
PROCESS_END();
}
函数collect-common-send
的udp-sender.c
程序:
void collect_common_send(void)
{
static uint8_t seqno;
struct {
uint8_t seqno;
uint8_t for_alignment;
struct collect_view_data_msg msg;
} msg;
/* struct collect_neighbor *n; */
uint16_t parent_etx;
uint16_t rtmetric;
uint16_t num_neighbors;
uint16_t beacon_interval;
rpl_parent_t *preferred_parent;
linkaddr_t parent;
rpl_dag_t *dag;
if(client_conn == NULL) {
/* Not setup yet */
return;
}
memset(&msg, 0, sizeof(msg));
seqno++;
if(seqno == 0) {
/* Wrap to 128 to identify restarts */
seqno = 128;
}
msg.seqno = seqno;
linkaddr_copy(&parent, &linkaddr_null);
parent_etx = 0;
/* Let's suppose we have only one instance */
dag = rpl_get_any_dag();
if(dag != NULL) {
preferred_parent = dag->preferred_parent;
if(preferred_parent != NULL) {
uip_ds6_nbr_t *nbr;
nbr = uip_ds6_nbr_lookup(rpl_get_parent_ipaddr(preferred_parent));
if(nbr != NULL) {
/* Use parts of the IPv6 address as the parent address, in reversed byte order. */
parent.u8[LINKADDR_SIZE - 1] = nbr->ipaddr.u8[sizeof(uip_ipaddr_t) - 2];
parent.u8[LINKADDR_SIZE - 2] = nbr->ipaddr.u8[sizeof(uip_ipaddr_t) - 1];
parent_etx = rpl_get_parent_rank((uip_lladdr_t *) uip_ds6_nbr_get_ll(nbr)) / 2;
}
}
rtmetric = dag->rank;
beacon_interval = (uint16_t) ((2L << dag->instance->dio_intcurrent) / 1000);
num_neighbors = uip_ds6_nbr_num();
}
else {
rtmetric = 0;
beacon_interval = 0;
num_neighbors = 0;
}
/* num_neighbors = collect_neighbor_list_num(&tc.neighbor_list); */
collect_view_construct_message(&msg.msg, &parent,
parent_etx, rtmetric,
num_neighbors, beacon_interval);
//i add this code but it led to an error:invalid type argument
//of'->'(have 'struct collect_view_data_msg')
SENSORS_ACTIVATE(sht11_sensor);
msg.msg->sensors[TEMP_SENSOR] = sht11_sensor.value(SHT11_SENSOR_TEMP);
//end added
uip_udp_packet_sendto(client_conn, &msg, sizeof(msg),
&server_ipaddr, UIP_HTONS(UDP_SERVER_PORT));
SENSORS_DEACTIVATE(sht11_sensor);
}
最佳答案
您在 Cooja 中使用哪个平台? (最有可能 sky
。)
sky
,则传感器读数已包含在收集 View 消息中。如果不是,收集apps/collect-view/
下的查看代码可以很容易地扩展使用 collect-view-template.c
来做到这一点作为基础。struct collect_view_data_msg
中创建新字段。那是 char
数组,和 snprintf
该字段中传感器的值。作为一个小注释,不需要此代码:
SENSORS_ACTIVATE(sht11_sensor);
msg.msg->sensors[TEMP_SENSOR] = sht11_sensor.value(SHT11_SENSOR_TEMP);
...
SENSORS_DEACTIVATE(sht11_sensor);
如上所述,sht11_sensor
已阅读并包含在收集 View 应用程序的消息中。
关于c - 将读数传感器作为消息发送到接收节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45400356/
我在将一些 C++ 代码转换为 Arduino 时遇到问题。任何帮助,将不胜感激。 编辑 我已经成功完成了上述操作。然而,现在唯一的问题是我的 Arduino 代码准确而正确地读取了电压,但没有其他寄
我需要能够从 HealthKit 读取所有 HRV 读数,并根据它们的创建日期对它们的值进行排序。 我可以使用 SampleQuery 从 HealthKit 读取特定时间间隔内的所有读数,如下所示:
我正在尝试使用 arduino uno R3 从 DHT-11 传感器读取温度和湿度 #include #include #define DHTPIN A3 #define DHTTYPE DHT
伙计们,我是 Meteor 的新手。对于我目前的应用程序,我正在使用 openlayer,因此对于 openlayer,我调用 Template.map.onRendered 事件,该事件将加载一个
我有一个设备可以读取电气设备的 kw 值,以测量它们在特定时间的(能量消耗率)。然后将这些值发送到轮询器(它定期向设备询问这些值),并插入到数据库中。 例子: 1st reading - 10 kw
我是一名优秀的程序员,十分优秀!