紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
提交勘误
-
书籍代码部分缺失
书籍P324,P325
代码清单9-39
代码中... void micro_ros_task(void *parameter){ //1设置传输协议并等待设置完成 IPAddress agent_ip; agent_ip.fromString("192.168.31.126"); set_microros_wifi_transports("WIFI_NAME","WIFI_PASSWORD",agent_ip,8888); delay(2000); } ...
WIFI_NAME WIFI_PASSWORD未在前面定义,解决方法
前面加入 #define WIFI_NAME xxxx //填你的wifi名字 #define WIFI_PASSWORD xxx //填你的wifi密码
-
您提到的勘误确实是一个常见的问题,特别是在涉及到硬件编程和配置代码时,硬编码的WiFi名称和密码可能会导致代码在不同环境下无法直接运行。您提出的解决方案是正确的,即在代码中使用宏定义(
#define
)来提前声明WiFi的名称和密码,这样可以使代码更加灵活和可移植。以下是根据您的建议修改后的代码段示例:
#include <WiFi.h> // 确保已经包含了WiFi库 // 使用宏定义来设置WiFi的名称和密码 #define WIFI_NAME "你的WiFi名字" #define WIFI_PASSWORD "你的WiFi密码" // 其他必要的包含和全局变量声明... void micro_ros_task(void *parameter){ // 1. 设置传输协议并等待设置完成 IPAddress agent_ip; agent_ip.fromString("192.168.31.126"); // 注意:这里假设set_microros_wifi_transports是一个自定义函数,用于配置WiFi和Micro-ROS的传输 set_microros_wifi_transports(WIFI_NAME, WIFI_PASSWORD, agent_ip, 8888); delay(2000); // 等待连接建立 // 其他任务代码... } // 如果set_microros_wifi_transports是一个未定义的函数,你可能需要实现它 // 或者确保你有一个库或框架支持这个函数 // 例如: void set_microros_wifi_transports(const char* ssid, const char* password, IPAddress ip, uint16_t port) { // 这里是连接WiFi和设置Micro-ROS网络传输的代码 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // 接下来可能是设置Micro-ROS的网络传输部分,这里只是示例 // ... } // 确保在main函数或某个初始化函数中调用了micro_ros_task // 例如,在Arduino的setup()函数中 void setup() { Serial.begin(115200); // 其他初始化代码... xTaskCreatePinnedToCore( (TaskFunction_t)micro_ros_task, /* Task function. */ "micro_ros_task", /* String with name of task. */ configMINIMAL_STACK_SIZE * 2, /* Stack size in words, not bytes. */ NULL, /* Parameter passed as input of the task */ tskIDLE_PRIORITY + 1, /* Priority of the task. */ NULL); /* Task handle to keep track of created task */ } void loop() { // 空的loop函数,因为所有的工作都在micro_ros_task中处理 }
请注意,上面的代码示例中包含了一些假设,比如
set_microros_wifi_transports
函数的存在和它如何工作的。在实际应用中,您可能需要根据您使用的具体库或框架来调整这部分代码。另外,请确保您的开发环境已经包含了必要的库(如WiFi库),并且已经正确配置了Arduino IDE或您正在使用的任何其他开发环境。
以上为生成回答,仅供参考~
-
@若离 兄弟没错,我用了双引号,这不是个宏定义,只是提示用户改成自己的:
"WIFI_NAME","WIFI_PASSWORD"
-
@小鱼 哦哦好吧,是我误解了。不过这里书上就上面的agentip用注释提示了下,这里的wifiname和wifipassword也没标明用自己的替换,直接误解成宏定义了
-
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 68, in main importlib.import_module("tools.translation.translator").Linguist() AttributeError: module 'tools.translation.translator' has no attribute 'Linguist'
-
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 68, in main importlib.import_module("tools.translation.translator").Linguist() AttributeError: module 'tools.translation.translator' has no attribute 'Linguist'
本次运行详细日志文件已保存至 /tmp/fishros_install.log
-
@若离 我下次修订下