Re: Libusb-win32 code to control Ricoh Theta

Ekkehard <[email protected]>
Newsgroups gmane.comp.lib.libusb.devel.windows
Message-ID <[email protected]>
Hi Kevin,
could you point me exactly to the source where you found
the line
int result = usb_control_msg(devHandle, 0x21, 9, 0x2, 0x0, (char*)buffer,
64, 100);

maybe the control code is wrong...

Greets Ekkehard


Kevin Cain wrote
> Hello, Ekkehard,
> 
> I had the same thought about using a USB 'sniffer' to see how PTP requests
> should be formed, but unfortunately Ricoh's PC software does not control
> the camera.  It mostly updates firmware -- and here is the log I recorded
> while updating firmware using USBTrace (similar to USBSnoop):
> www.insightdigital.org/Ricoh_Theta_Device_Log_USBTrace.html
> 
> The connection statistics with the device are here:
> www.insightdigital.org/Theta_log.html
> 
> I also tried the various permutations of buffer string length you
> suggested, to no avail.
> 
> Thanks again,
> 
> -Kevin
> 
> 
> On Mon, Jul 21, 2014 at 12:24 AM, Ekkehard &lt;

> edomning@

> &gt;
> wrote:
> 
>> Hi,
>> the trailing 0x00 was just a guess since often text strings are "zero
>> terminated". I dont have any closer information about what you are doing,
>> sorry.
>> If you have a sample program that can trigger the capture, you may try to
>> use "UsbSnoop" to see the data transmitted.
>>
>> http://sourceforge.net/projects/usbsnoop/
>>
>> Best regards
>> Ekkehard
>>
>>
>> Kevin Cain wrote
>> > Thank you for your suggestions, Ekkehard,
>> >
>> > The 'memset(buffer, 0, 64)' command I send should fill the buffer with
>> '0'
>> > values, unless I'm making a fundamental error.  I will try your
>> variants.
>> >  Your suggestion that the camera may require a trailing '0' is
>> interesting
>> > -- I will try that as well, is there any reference to support that?
>> >
>> > I suspect my problem is in correctly deducing the parameters required
>> to
>> > send messages to the Theta via libusb, e.g.:
>> >
>> > *int usb_control_msg(usb_dev_handle *dev, int requesttype, int request,
>> > int
>> > value, int index, char *bytes, int size, int timeout);*
>> >
>> > I used USBTrace to detect the Ricoh-provided driver and uploaded the
>> > results here:
>> > www.insightdigital.org/Ricoh_Theta_Device_Log_USBTrace.html
>> >
>> > However, I don't yet see how to find the request details for the camera
>> in
>> > question.  I assume this comes up each time a programmer wishes to
>> control
>> > a new device with libusb -- are there any resources that might help me?
>> >
>> > Any help divining the correct syntax and message protocol parameters
>> would
>> > be wonderful.
>> >
>> > Thanks,
>> >
>> > -Kevin
>> >
>> >
>> > On Sun, Jul 20, 2014 at 3:25 AM, Ekkehard &lt;
>>
>> > edomning@
>>
>> > &gt;
>> > wrote:
>> >
>> >> Hi,
>> >> I have'nt done anything with the camara matter. From the programmers
>> >> view,
>> >> there is one thing I dont understand.
>> >> The used bytes the buffer are only  15 = "trigger-capture", but you
>> are
>> >> sending 64 bytes. If the command detection algo in the camera
>> validating
>> >> the
>> >> length of the buffer first, than the command will not be recognised.
>> >> So maybe you can try
>> >> int result = usb_control_msg(devHandle, 0x21, 9, 0x2, 0x0,
>> (char*)buffer,
>> >> 15, 100); if (result == 15) cout << "Successfully sent all bytes to
>> >> camera"
>> >> << endl;
>> >> or, if the camera may expect one zero at the end of the command
>> >> int result = usb_control_msg(devHandle, 0x21, 9, 0x2, 0x0,
>> (char*)buffer,
>> >> 16, 100); if (result == 16) cout << "Successfully sent all bytes to
>> >> camera"
>> >> << endl;
>> >>
>> >> A minor thing, as far as I know there is no need to claim the
>> interface
>> >> since the control mesaages are not related to any interface.
>> >>
>> >> Best regards
>> >> Ekkehard
>> >>
>> >>





--
View this message in context: http://libusb.6.n5.nabble.com/Libusb-win32-code-to-control-Ricoh-Theta-tp5713450p5713457.html
Sent from the LibUSB Dev - Win32 mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.