none
Catching the camera button interrupt transfer RRS feed

  • Question

  • Hello! I hope someone can help me.
    We have bought an oral camera which has a button in body. The camera comes with a drivers CD. 
    The drivers are installed
    When the native application (from the driver CD) is working it makes pictures every time the users press the button. But we need to use the camera in 
    another app (named vixwin, it's the dental client database and management app). In vixwin the video stream from the camera is working but button pressing gives no reaction. 
    I've scanned the camera USB traffic and discovered that when we press the button in a native app the standard
    interrupt transfer occurs.
    The manufacturer doesn't answer to our questions and does not make any new driver releases. Looks like the company doesn't work any more. 
    The only thing we need is to make the button work in vixwin. We've tried to use some basic apps to catch the button pressure and generate keyboard pressing emulation, but got no success.
    Please tell me when can we do to catch button pressing ?

    p.s. The host is using Windows 7. The camera is NOT HID.

    p.p.s. I've no experience in making drivers, so I feel very confused.

    Please help me if you have any ideas

    • Edited by govermsk Thursday, February 2, 2017 2:14 PM
    Thursday, February 2, 2017 1:57 PM

Answers

  • the toaster sample has a generic filter driver. you will need to

    1) change the INF to match the hardware ID of your device

    2) keep the vendor driver installed

    3) learn about USB and URBs. this will let you capture the interrupt transfer once you understand how these work

    4) communicate the information to a helper application. the helper application can call SendKey, you can't call SendKey in a kernel driver


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, February 3, 2017 6:23 AM

All replies

  • You are pretty much out of luck.  Basically your choice is to pay to have someone reverse engineer the camera and the driver, and then write a new driver (or potentially a filter driver), or find a new camera.   Unless, you have a huge number of these cameras out there the cheapest solution is likely to find a new camera.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    Thursday, February 2, 2017 3:51 PM
  • you have two problems

    1) how to capture the button press. a filter driver can do this pretty simply, but if you haven't written drivers before you may want a consultant to do the work

    2) have vixwin be aware of the button press. unless you have the source to vixwin or vixwin has a plug in model/sdk for you to add logic, you have no way of telling vixwin of a button press


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Thursday, February 2, 2017 4:36 PM
  • Thank you for the answer!! Can you advice me where should I look to find a basic filter driver example, so may be I can change some code (insert VID/PID and do other basic changes)? All it needs to do is to catch interrupt event. I've tried to do this in C# by using libusbdotnet in a simple application, but it conflicts with vixwin so both apps stop to work.
    vixwin has a hotkey for making images. So i wanted to send that by calling SendKey function, I think this can work.
    Thursday, February 2, 2017 5:23 PM
  • the toaster sample has a generic filter driver. you will need to

    1) change the INF to match the hardware ID of your device

    2) keep the vendor driver installed

    3) learn about USB and URBs. this will let you capture the interrupt transfer once you understand how these work

    4) communicate the information to a helper application. the helper application can call SendKey, you can't call SendKey in a kernel driver


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, February 3, 2017 6:23 AM