- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我尝试将 cooja simluator 中的 mqtt mote 连接到桌面上的 mosquitto 服务器。但它一直无法连接,我能够 ping rpl 路由器,但不能 ping 我的 mqtt 客户端节点。我正在使用 https://github.com/esar/contiki-mqtt 中的示例.
有人可以告诉我我所犯的错误吗?谢谢
这是我使用的代码
#include "stdio.h"
#include "contiki.h"
#include "contiki-net.h"
#include "mqtt-service.h"
PROCESS(mqtt_publisher_process, "MQTT Publisher");
PROCESS_NAME(mqtt_process);
AUTOSTART_PROCESSES(&mqtt_process, &mqtt_publisher_process);
PROCESS_THREAD(mqtt_publisher_process, ev, data)
{
static uip_ip6addr_t server_address;
// printf("address %d\n",server_address);
// Allocate buffer space for the MQTT client
static uint8_t in_buffer[64];
static uint8_t out_buffer[64];
// Setup an mqtt_connect_info_t structure to describe
// how the connection should behave
static mqtt_connect_info_t connect_info =
{
.client_id = "contiki",
.username = "user",
.password = "user",
.will_topic = "dev/text",
.will_message = NULL,
.keepalive = 60,
.will_qos = 0,
.will_retain = 0,
.clean_session = 1
};
// The list of topics that we want to subscribe to
static const char* topics[] =
{
"0", "1", "2", "3", "4", "5", NULL
};
PROCESS_BEGIN();
// Set the server address
uip_ip6addr(&server_address,0,0,0,0,0,0,0,1);
// Initialise the MQTT client
mqtt_init(in_buffer, sizeof(in_buffer),
out_buffer, sizeof(out_buffer));
// Ask the client to connect to the server
// and wait for it to complete.
mqtt_connect(&server_address, UIP_HTONS(33065),1, &connect_info);
// mqtt_connect(&server_address, 1883,1, &connect_info);
PROCESS_WAIT_EVENT_UNTIL(ev == mqtt_event);
if(mqtt_connected())
{
static int i;
for(i = 0; topics[i] != NULL; ++i)
{
// Ask the client to subscribe to the topic
// and wait for it to complete
mqtt_subscribe(topics[i]);
PROCESS_WAIT_EVENT_UNTIL(ev == mqtt_event);
}
// Loop waiting for events from the MQTT client
while(1)
{
PROCESS_WAIT_EVENT_UNTIL(ev == mqtt_event);
// If we've received a publish event then print
// out the topic and message
if(mqtt_event_is_publish(data))
{
const char* topic = mqtt_event_get_topic(data);
const char* message = mqtt_event_get_data(data);
int level = 0;
printf("%s = %s\n", topic, message);
// Relay the received message to a new topic
mqtt_publish("new_topic", message, 0, 1);
}else{
}
}
} else
printf("mqtt service connect failed\n");
PROCESS_END();
}
最佳答案
我怀疑您所说的在桌面上运行的 MQTT 服务器是否具有 IPv6 地址::1,对吗?
而不是:
uip_ip6addr(&server_address,0,0,0,0,0,0,0,1);
您可能想输入运行 Mosquitto 的台式计算机的地址?
关于Contiki os MQTT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41628649/
Contiki 调度程序是抢占式的吗? Tinyos 不是;有 nanork,我不确定它的发展处于什么状态。 最佳答案 Contiki 支持抢占式线程。引用: https://github.com/c
我想使用 Contiki OS 中的广播函数来广播整数数组。然而,当给出整数数组作为输入时, packetbuf_copyfrom() 函数似乎对我不起作用。当通过 Cooja 的“ radio 消息
我正在使用 Contiki 操作系统编写程序。 我有 remote_firmware.c 文件和一个名为 parser 的文件夹,其中包含文件 parser.h 和 parser.c 我在其中编写了方
我正在尝试在 Contiki 中为 Zolertia REmote 编写一个程序,它将从传感器读取一个值,并且根据这个值以及 Remote 上的用户按钮是否被长时间按下,LED 将被打开打开、变暗或将
我试图理解 examples/cc26xx/cc26xx-ble-client-demo 中存在的 IPv6-over-BLE UDP-client 演示示例,该代码具有以下头文件: #include
嗨,我尝试将 cooja simluator 中的 mqtt mote 连接到桌面上的 mosquitto 服务器。但它一直无法连接,我能够 ping rpl 路由器,但不能 ping 我的 mqtt
我有以下问题,我的模拟结果卡在 while 循环中。在我看来,原因是我们无法在循环结束之前在mote 1.0上执行recv_uc。然而,是 mote 1.0 本身调用 unicast_send(&
我想将模拟的时间戳值作为 int 发送。更清楚地说,如果节点输出是: 00:39.841 ID:6 unicast message ready to be sent 我希望能够在消息中输入值
因为 Contiki 提供的内置列表不符合我的需求(使用太多内存),我实现了自己的列表版本,该版本已针对我打算如何使用它进行了优化。 在任何时候,这些列表中都会有一个由多个进程/原线程对其进行操作(即
在我的一个 Contiki 应用程序中,我从进程 (P) 调用某个函数 (f)。当驻留在 (f) 中的循环中至少有一个 'printf' 时,(P) 中的 'printf' 会正确显示结果。然而,当同
在我的代码中,我需要声明两个进程。在第一个过程中,我想这样调用第二个: PROCESS_THREAD(Initialization_process, ev, data) { PROCESS_
我正在开发一个需要 msp430 数学函数的应用程序。使用 powf、sqrt 等函数时,会发生内存溢出 (ROM)。一个这样的例子是,当我使用这个 float i 变量而不使用静态时,我的代码可以工
是否有可能在 contiki os 中列出所有正在运行的进程并在调试输出(即 UART)上输出结果? 最佳答案 在 contiki platform.c 和 main() 中插入: struct pr
我正在使用无线传感器网络负责人评估其在我的工作中的性能。我想测量延迟和总能耗以找到每个节点中的剩余能量。所以我的问题是我有一些 tx rx cpu cpu_idle 的值,我不知道如何使用它们来计算我
我正在 Contiki 作为我的学术工作,现在我有一个问题,我应该从 Contiki 中的示例文件夹中具体引用哪个文件来模拟场景,例如 - 具有 ipv6 节点的 30 个节点物联网,所有这些节点都将
我刚刚开始研究Contiki-OS。我对 Contiki - Antelope 感兴趣。我尝试使用 AQL(Antelope 查询语言)在串行 Cooja 模拟中创建关系、属性和插入元组。像这样: c
在不更改任何其他文件的情况下,我尝试运行 ccm-star-tests在 cooja 模拟器中的 z1 微粒上。 对于encryption节点输出为: Testing verification ...
我想将全局地址转换为链接级地址(或者即使可以进行相反的操作),我在 uip6.c 文件中有以下函数。我想将 rep (其中 rep 为我提供带有 fe80 之类的前缀的 lladdress)转换为 s
如何在recv_uc 函数中打印接收到的数据?在这种情况下是 var 的值。我使用 packetbuf_copyfrom(&var, 5) 将 var 放入发送的数据包中。 PROCESS(sendi
我想为 Contiki OS 添加一个第三方库。确切地说,我正在尝试添加 nettle 3.0 密码学库。 我是否应该使用 contiki 平台的特殊标志来构建相关库,不确定具体是什么?海合会 msp
我是一名优秀的程序员,十分优秀!