当前位置: 首页 > 知识库问答 >
问题:

Contiki/Cooja如何从套接字(串行套接字(服务器/客户端))读取数据(在模拟mote中)

公孙弘深
2023-03-14

我正在尝试使用MQTT-Rime网关构建MQTT-SN。我成功地用串行套接字将传感器数据发送到网关,但我的网关也必须将一些数据发送到微尘。我的问题是,我不知道如何从远程的套接字读取数据。有人能帮我吗?

共有1个答案

韦棋
2023-03-14

如果输入数据是以换行符结尾的ASCII码,则可以使用串行线接口。

 #include "contiki.h"
 #include "dev/serial-line.h"
 #include <stdio.h>

 PROCESS(test_serial, "Serial line test process");
 AUTOSTART_PROCESSES(&test_serial);

 PROCESS_THREAD(test_serial, ev, data)
 {
   PROCESS_BEGIN();

   for(;;) {
     PROCESS_YIELD();
     if(ev == serial_line_event_message) {
       printf("received line: %s\n", (char *)data);
     }
   }
   PROCESS_END();
 }

如果数据是二进制的,则需要定义自己的回调函数:

int binary_input_byte(unsigned char c) {
   // ...
}

然后将其设置为串行接口回调(此处使用uart0,您需要使用的确切名称取决于平台):

uart0_set_input(binary_input_byte);
 类似资料:
  • 我有两个通过字符串与套接字通信的Java项目。一个是客户端,另一个是服务器。服务器通过“ServerSocket”接受连接,并使用新创建的“套接字”创建新的“会话”(线程)。 同时,客户端只有一个“套接字”,一旦连接了这个套接字,客户端就会创建一个“ClientSession”(线程,非常类似于“session”)。 我想要的是服务器通过“username”字符串询问客户机他的用户名,客户机用他的

  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • 我已经包含了头文件套接字。h在contiki rpl控制消息文件中,但它给出了一个找不到目录/文件的错误。问题是,在一个单独的C文件中编写的客户机/服务器代码工作正常,但只要我复制代码并将其放入cooja中,它就找不到文件。我需要将一些数据从cooja contiki发送到nodejs服务器。如何做到这一点?

  • 我有一个TCP套接字客户端(使用Socket类),它连接到一个简单的TCP套接字服务器(仅用于测试)我有以下代码段: 我还有一个检查连接状态并尝试重新连接的过程...在尝试重新连接到一个新的套接字并读取数据后,我在这一行收到一个消息错误:byteRead=asocket.receive(dataByte)‘number of bytes“一个现有的连接被远程主机强制关闭了” 我已经执行了一些搜索在

  • 问题内容: 我有一个向服务器发送消息的客户端套接字,每当服务器收到消息时,我都希望在客户端得到确认。是否有可能得到那个认可。我使用apache mina开发了客户端。提前致谢。 问题答案: TCP中没有消息,只有字节流。有一个内部ACK机制,用于跟踪已正确接收到多少流,但应用程序不可用。如果您需要服务器的确认,则服务器必须发送该确认。

  • 我有一个向服务器发送消息的客户端套接字,我想在服务器收到消息时在客户端得到一个确认。有没有可能得到那份承认。我使用apache Mina开发了客户端。提前道谢。