Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - How to employ /dev/elousb0 (QNX4): (3 Items)
   
How to employ /dev/elousb0 (QNX4)  
I need to develop driver for ELO touchscreen (2216 AccuTouch) connected via usb for QNX Windows (not Photon). I know 
what to do on QNX Windows side, this is no problem. I have also new usb driver, io-usb and devu-elo which provides /dev/
elousb0. I would need to know how to employ the device to communicate with the touchscreen. I desperately tried to open 
the device, but nothing is coming automatically and if I try a command from smartset protocol (which the touchscreen 
should use), there is no response - no suprise as Input use generic interface (Input generic fd -d/dev/elousb0). If I 
can see the part of code of Input which uses device for elo touchscreen, I would be able to manage it, I believe. But it
 seems to me this source code is not public. Any advice?
Re: How to employ /dev/elousb0 (QNX4)  
> I need to develop driver for ELO touchscreen (2216 AccuTouch) connected via 
> usb for QNX Windows (not Photon). I know what to do on QNX Windows side, this 
> is no problem. I have also new usb driver, io-usb and devu-elo which provides 
> /dev/elousb0. I would need to know how to employ the device to communicate 
> with the touchscreen. I desperately tried to open the device, but nothing is 
> coming automatically and if I try a command from smartset protocol (which the 
> touchscreen should use), there is no response - no suprise as Input use 
> generic interface (Input generic fd -d/dev/elousb0). If I can see the part of 
> code of Input which uses device for elo touchscreen, I would be able to manage
>  it, I believe. But it seems to me this source code is not public. Any advice?


I sent you an email reply to this, however I'll post it here for others to see as well.

There isn't much to it, I used a generic protocol for all the devu-* touch based drivers so that Input could remain as 
static as possible and allow other people to implement their own drivers for screens if need be.

/*====================================================================

  Generic interface for non serial/ps2 touchscreens

  This is the generic protocol that is expected.  The external driver
  must use the following protocol in order for the generic driver to
  function correctly.  The number of bits is not critical.  This can
  be changed via the command line option -B to specify the number of
  bits for each coordinate.  The default is 14.  If you do not use
  all 14, make certain that the values not used are 0.

                  MSB             Bits               LSB
  Data Sequence    7    6    5    4    3    2    1    0
  ------------------------------------------------------
  S-Byte 1         1    S6   XXXXXXXXX Reserved XXXXXXXX
  X-Byte 2         0    X6   X5   X4   X3   X2   X1   X0
  x-Byte 3         0    X13  X12  X11  X10  X9   X8   X7
  Y-Byte 4         0    Y6   Y5   Y4   Y3   Y2   Y1   Y0
  y-Byte 5         0    Y13  Y12  Y11  Y10  Y9   Y8   Y7
  ------------------------------------------------------

  S0-S5     Reserved
  S6        Proximity        1 = Touchscreen is being touched (a
                             touchdown or a continued touch).

                             0 = Touchscreen is not being touched (a
                             touch liftoff or inactive).

  S7        Packet           Always 1. 
            synchronization

====================================================================*/

If you are not using the Input driver (since the generic protocol is already in it) you can base your driver on the 
above protocol which should be fairly simple to do.

Best regards,

Erick
Re: How to employ /dev/elousb0 (QNX4)  
I would prefer to start existing devu-elo and replace Input by my program. Now I know that such program would need to 
open /dev/elousb0 and receive 5bytes packets and interpret them according the generic protocol. Perfect by my problem is
 that when I open /dev/elousb0 nothing is coming from the device.

io-usb &
usb

# usb
USB 0 (EHCI) v1.10, v1.01 DDK, v1.01 HCD

USB 1 (UHCI) v1.10, v1.01 DDK, v1.01 HCD

USB 2 (UHCI) v1.10, v1.01 DDK, v1.01 HCD

USB 3 (UHCI) v1.10, v1.01 DDK, v1.01 HCD

Device Address             : 1
Vendor                     : 0x04e7 (EloTouchSystems,Inc)
Product                    : 0x0050 (Elo TouchSystems 2216 AccuTouch® USB Touch
monitor Interface)
Class                      : 0x00 (Independant per interface)

# devu-elo &

now /dev/elousb0 appears in /dev

But:

# /bin/Input -vvvvvvvvvv generic fd -d/dev/elousb0 &
Allocated static manipulator generic at 0001f324
Initializing: generic
Allocated static manipulator fd at 0001eb30
Initializing: fd
fd - Parameter d >/dev/elousb0<
Input = fd
Located manipulator Abs at 0001f5dc
Protocol = generic
Filter = Abs
Resetting: fd
fd: opening /dev/elousb0
Auto-allocated code [16] to fd
fd: registered pulse code 432
Resetting: generic
Calling read on fd [3]
Armed for 5 chars
Resetting: Abs
Cannot open calibration file: No such file or directory
Did not find calib info for [639x479]
Could not attach to target device: errno=6# 

I cannot try this with Photon, as Photon detects just vesabios and screen is just black if I start ph (I tried this just
 for test, I do not plan to use Photon but QNX Windows)