我正在执行这里的程序,https://cms.digi.com/2022世界杯G组resources/documentation/digidocs/90002219/#tasks/t_test_connection.htm%3FTocPath%3DUse%2520AWS%2520IoT%2520from%2520MicroPython|_____5

测试在我的PC上工作,表明有效的物联网事物和证书。

当我使用提供的micropython代码连接时,使用来自同一页面的示例,我在ussl包装的套接字上收到错误OSError: [Errno 7115] EINPROGRESS。联系电话。我已经尝试了Starfield和Verisign CA。我也尝试了在这篇文章中找到的MQTT测试代码。https://forums.digi.com/69824/help-connecting-xbee-cellular-to-aws-console?show=69824#q69824

我打算最终为我的EC2主机MQTT服务器使用自签名证书,所以如果有更好的方法通过自签名过程也是可以接受的。

我无法让调制解调器使用我的自签名证书连接到我的服务器,即使我的桌面可以,所以我想了解调制解调器证书限制是什么,这样我就可以学习如何创建有效的证书。

感谢任何能帮忙的人

在你的代码中添加一个测试来读取AI,直到它读取连接才继续前进。

嗨,均

如果将s.setblocking(False)行移到w.c connect调用之后,则示例应该可以正常工作。或者,您可以将其更改为:

当True: # TODO超时最终?try: w.c nect((aws_endpoint, 8443)) break except OSError as e: if e.s args[0] != uerrno。EINPROGRESS:提高

(很抱歉,我无法用正确的缩进来格式化这段代码。希望你能知道这意味着什么。)

我们将更新示例代码以反映这样一个事实,即如果在调用connect之前使用s.setblocking(False),则必须在循环中调用connect,并继续调用connect,直到它停止引发OSError EINPROGRESS。

您正在使用的示例代码在1016固件发布后没有更新,这是添加对非阻塞套接字连接的支持时。(在早期的固件中,connect调用会在那里阻塞。)

感谢输入,我尝试了非阻塞标志和while循环方法的重新定位。

当我移动非阻塞标志并保持其他所有内容不变时,我在几秒钟后得到一个EIO错误。

当我尝试while循环选项时,INPROGRESS在INPROGRESS错误清除后变成ENOTCONN。然而,该设备从未成功连接。

为了验证调制解调器/ uppython REPL连接,我尝试了一个非ssl mqtt pub通过uppython Totest.mosquitto.org。我的测试MQTT发布是成功的,所以我可以自信地说,我的问题是由于SSL包装过程中的某些问题。在将证书移动到调制解调器之前,我验证了它们在我的桌面上是否可以工作。我试过verisign和starfield的ca,都没有表现出任何不同的行为。

感谢您一直以来的支持。

你能报告一下以下AT命令在XBee上的输出吗?

虚拟现实
MV
MU(如果存在该命令)

您是否试图连接到ATS端点(“host”变量以-ats结尾)或没有(“host”变量不以-ats结尾)?

端点是ATS,但我在自己托管的ec2实例上遇到了类似的故障。请求的输出如下:

Atvr = 1016
ATMV = ERROR后面跟着15 000 000 000 02 01 000 0D
Atmu = 2

ATMV的回应很奇怪。我希望它是“23.00.006 (M0A.00060)”之类的东西。你能再检查一下那个命令吗?

您还提到您尝试了Starfield CA证书—如果您使用的是sf-class2-root。CRT文件链接在这里?//www.phdurl.com/2022世界杯G组resources/documentation/digidocs/90002219/tasks/t_install_certificates.htm

更新了XCTU,并在windows和linux上进行了测试。我仍然得到错误与ATMV。我仔细检查过了,我使用的是你附上的ca。不确定这是否重要,但我尝试了。ca和。crt扩展名似乎没有什么不同。我应该回滚到旧的固件吗?也许是支持flash文件系统的最新版本?

你好,

不,我不认为回滚到旧的固件会有帮助。ATMV命令不应该给出错误,除非您不正确地运行命令(例如使用命令发送任何参数)。

你能确认AI参数的读数是否为0吗?如果AI停留在0xFF或0x22等值,则XBee未连接到互联网,这可以解释您一直得到的错误。或者如果它读取0x24,则使用XCTU重新安装固件版本1016 - XCTU将尝试更新蜂窝调制解调器。

如果AI为0,那么请尝试用户指南中的连接示例,看看是否可以成功连接。//www.phdurl.com/2022世界杯G组resources/documentation/digidocs/90001525/containers/cont_examples.htm如果没有,则说明您的XBee设备有问题,您应该联系Digi技术支持tech.support@digi.com寻求更多帮助。

成功!
我把调制解调器刷新到最新版本(因为我选择了一个较低的版本,并试图降级)。

在刷新之后,它实际上挂在最后一步,说它无法读取205块。我担心我把它弄坏了,但还是重新启动并进行了测试。

这次ATMV成功了,
23.00.006 (M0A.00060)

我再次尝试了测试TLS HTTP代码,这次它工作了!

总之,我的调制解调器肯定出现了某种故障。固件刷新似乎是修复它的东西。

我正在使用你提到的星场。现在我可以看看它是否适用于我的自签名证书,然后我就可以开始工作了。谢谢你的支持。

太好了!是的,您遇到的问题(主要是ATMV给了您一个错误和一些其他数据)似乎指向Telit调制解调器出现故障或以某种方式在不可用的模式下重新配置。刷新它会将其恢复为默认设置,XBee就可以使用它了。