[英]Android - Receiving Canon (Camera) events from USB
使用Android USB框架,我检索了相关端点,并使用这些端点与系留相机进行通信。 我可以连接和接收来自尼康相机的事件,它可以从中断端点发送事件。 但是,连接到佳能相机时,不会从该端点接收到任何数据/事件。
我在某处读到佳能不遵守PTP,并从BULK IN端点发送事件,但是,相机也未从该端点发送任何数据/事件。
当前正在使用的示例代码;
byte[] data = new byte[4096];
int bytesRead = usbDeviceConnection.bulkTransfer(interruptEndpoint, data, data.length, 1000);
if(bytesRead > 0)
{
// Read event
}
有什么想法如何从佳能读取数据吗? 目前看来相机没有发送任何东西,但我知道是。确切的型号是EOS 7D。
经过大量的反复试验和USB嗅探之后,设法使此工作正常进行。
尽管似乎没有在中断端点上发送任何内容,但端点却是相同的-而是我使用IN&OUT端点从摄像机请求事件,然后处理返回的事件列表。
另一个问题似乎是佳能使用了自定义PTP,可以将其他数据嵌入USB数据包中。
另一个区别是,对于尼康,我要查找的EventCode(ObjectAdded)为:0x4002,对于佳能,EventCode为0xC181
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.