火花核心wifi凭证变化

时间:2014-12-25 11:37:13

标签: c string serial-port wifi sparkcore

我正在研究一个带有我的火花核心的小产品创意,并为客户设置一个串行接口,将他们的产品设置到他们的wifi上:

String newssid = wifissid(3);
String newpw = wifipw(3);
WiFi.setCredentials(newssid, newpw);

如您所见,我创建了2个函数,通过与pc的串行连接返回ssid和密码。当我在代码中设置凭据时,我已经设法让setCredentials工作:

WiFi.setCredentials("D-link7853", "thisismypassword");

但是当我用字符串运行它时,如上所述,它不想编译。给出的错误是:

  

serial_wifi_cred_change_3.cpp:49:39:错误:没有匹配功能   呼叫' WiFiClass :: setCredentials(String&,String&)' }
  serial_wifi_cred_change_3.cpp:49:39:注意:候选人是:在档案中   包含在../inc/spark_wiring.h:37:0,来自   ../inc/application.h:29,来自serial_wifi_cred_change_3.cpp:2:   ../inc/spark_wiring_wifi.h:61:21:注意:静态无效   WiFiClass :: setCredentials(const char *)static void   setCredentials(const char ssid); ^ ../inc/spark_wiring_wifi.h:61:21:   注意:候选人需要1个参数,2个提供   ../inc/spark_wiring_wifi.h:62:21:注意:静态无效   WiFiClass :: setCredentials(const char ,const char *)static void   setCredentials(const char * ssid,const char password); ^   ../inc/spark_wiring_wifi.h:62:21:注意:没有已知的转换   参数1来自' String' to' const char '   ../inc/spark_wiring_wifi.h:63:21:注意:静态无效   WiFiClass :: setCredentials(const char *,const char *,long unsigned int)   static void setCredentials(const char * ssid,const char * password,   无符号长安全性); ^

3 个答案:

答案 0 :(得分:1)

错误表明它不想要字符串,而是指向const char数组的指针。看起来该网站上的文档具有误导性。

答案 1 :(得分:0)

我不知道答案..但是我使用来自德州仪器的smartconfig系统解决了类似的问题? Smartconfig用于将wifi详细信息传递给spark应用程序中的核心,而TexasInstruments提供了一个可以修改的示例应用程序。

祝你好运

答案 2 :(得分:0)

Christian Loris是对的。

setCredentials期望SSID和密码为char *类型。您的代码应如下所示:

String newssid = "foo";
String newpw = "bar";

char newssidBuf[newssid.length()];
char newpwBuf[newpw.length()];
newssid.toCharArray(newssidBuf, newssid.length());
newpw.toCharArray(newpwBuf, newpw.length());

WiFi.setCredentials(newssidBuf, newpwBuf);