我正在尝试使用 micropython 1.20 在 ESP32 devkit V1 上为“望远镜”设备开发一个 Alpaca 服务器实例。
我使用这个项目作为我的目的的基础。我特别保留了服务器部分和错误处理方法,我只是从 microdot V1 迁移到 microdot V2。
我的所有程序都存储在这个仓库中:https://github.com/Sylvain-BROCAS/Starget
我为望远镜设备编写了所有默认方法,并开始测试我的程序(API 参考此处)
我现在面临以下问题: 我可以向像
http://IP:port/management/...
这样的 URL 发出请求,我得到响应并且响应内容是正确的(它检测到设备被声明为望远镜,其 devine 编号 = 0 且具有正确的唯一 ID)
但是当我尝试向像
http://IP:port/api/v1/telescope/0/connected
这样的 URL 发送请求时,我收到“错误 404:未找到”。 PUT 和 GET 方法都不起作用。
我使用了 ASCOM 诊断工具,我尝试连接,这是我得到的结果:
Create Creating device Connected Connecting to device Error
System.Exception: Error calling method: Connected, HTTP Completion Status: Completed, Error
Message: Not found
à System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
à CallSite.Target(Closure , CallSite , ComObject , Boolean )
à ASCOM.DriverConnect.ConnectForm.btnConnect_Click(Object sender, EventArgs e) dans C:\ASCOM Build\Export\ASCOM.DriverConnect\ConnectForm.cs:ligne 261
Dispose Disposing of device
Dispose Completed disposal
ReleaseComObject Releasing COM instance
ReleaseComObject Completed release. Count: 0
GC Collect Starting garbage collection
GC Collect Completed garbage collection
我尝试获取 Alpaca 设备的配置文件,这是跟踪:
<Default> Starget Alpaca device
Discovery Port 32227
Enable IPv4 Discovery True
Enable IPv6 Discovery True
Enable Rediscovery True
Establish Connection Timeout 2
Image Array Compression 0
Image Array Transfer Type 3
Include Debug Trace True
IP Address 192.168.163.206
Long Device Response Timeout 120
Manage Connect Locally False
Password <Empty>
Port Number 20000
Remote Device Number 0
Service Type http
Standard Device Response Timeout 10
Trace Level True
Trust Unsigned SSL Certificates False
UniqueID 2fba39e5-e84b-4d68-8aa5-fae287abc02d
User Name <Empty>
我不明白什么可能导致此错误,因为“连接”端点是通过函数定义的(在
有人告诉我这可能是 TCP 协议中未签名数据包的问题。我将“信任 unsined SSL 证书”更改为 True,没有任何变化。我下载了Wireshark来观察数据包交换,对话结果如所附截图所示:
有人有线索可以帮助我解决这个问题吗?
感谢您的帮助,祝您度过美好的一天^^
更新: 该问题是由 Microdot V2.0.4 中的错误引起的。升级到2.0.5版本解决了问题