|
From: Michael Angelo Ravera on 27 Nov 2006 21:57 Can someone point me to a good source on various vendor-specific scanner commands using the Windows STI interface? I am able to use the interface to get a list of devices and, supposedly to access the devices (of which I have about 4 or 5 connected to my computer), but whenever I use a (properly bracketed with DeviceLock) RawReadData call, I either get no data or an error. Does anyone have a good idea of what I am likely doing wrong? I'll post some code, if it will help.
From: Danny on 28 Nov 2006 03:40 Hi Michael, I'm not the best resource for the information you're requesting, but thought I could help point you in the right direction. Take a look at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stillimg/sti_8l2r.asp As far as I know, a single instance of Windows can only capture from one imaging device at a time. The limitation is an Windows system limitation (usbscan.sys). There are ways to bypass this limitation however. For example, if one scanner is a USB scaner and has the sti-twain driver installed while another scanner is SCSI AND has the ASPI-Twain driver installed, you can tell windows to ignore the SCSI device by disabling it in Device Manager and still use both the USB scanner and the SCSI scanner. I never tried to capture simultaneous however... I never had a need to. but, let me know if you'd like me to try that out or if you had something else entirely in mind... Hope this helps~ Danny Ha Michael Angelo Ravera wrote: > Can someone point me to a good source on various vendor-specific > scanner commands using the Windows STI interface? > > I am able to use the interface to get a list of devices and, supposedly > to access the devices (of which I have about 4 or 5 connected to my > computer), but whenever I use a (properly bracketed with DeviceLock) > RawReadData call, I either get no data or an error. Does anyone have a > good idea of what I am likely doing wrong? I'll post some code, if it > will help.
From: Michael Angelo Ravera on 28 Nov 2006 11:46 Danny wrote: > Hi Michael, > > I'm not the best resource for the information you're requesting, but > thought I could help point you in the right direction. > > Take a look at: > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stillimg/sti_8l2r.asp > > As far as I know, a single instance of Windows can only capture from > one imaging device at a time. The limitation is an Windows system > limitation (usbscan.sys). There are ways to bypass this limitation > however. For example, if one scanner is a USB scaner and has the > sti-twain driver installed while another scanner is SCSI AND has the > ASPI-Twain driver installed, you can tell windows to ignore the SCSI > device by disabling it in Device Manager and still use both the USB > scanner and the SCSI scanner. > > I never tried to capture simultaneous however... I never had a need to. > but, let me know if you'd like me to try that out or if you had > something else entirely in mind... > > Hope this helps~ I'll see if it does. I'm not really interested in accessing more than one device at a time. I was just indicating that I was sufficiently into the the STI interface that I was able to get a list of devices and that I could create an instance of the device and supposedly lock it and get status, but could not get the RawReadData to work (on the scanner, I haven't seen the scanner start to make the scanning noise, etc). Thanks. I'll let you know.
From: Danny on 29 Nov 2006 13:50 Hi Michael, Sorry about the misunderstanding... What's the actual STIERR-prefixed error code defined in stierr.h? ~Danny Ha Michael Angelo Ravera wrote: > Danny wrote: > > Hi Michael, > > > > I'm not the best resource for the information you're requesting, but > > thought I could help point you in the right direction. > > > > Take a look at: > > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stillimg/sti_8l2r.asp > > > > As far as I know, a single instance of Windows can only capture from > > one imaging device at a time. The limitation is an Windows system > > limitation (usbscan.sys). There are ways to bypass this limitation > > however. For example, if one scanner is a USB scaner and has the > > sti-twain driver installed while another scanner is SCSI AND has the > > ASPI-Twain driver installed, you can tell windows to ignore the SCSI > > device by disabling it in Device Manager and still use both the USB > > scanner and the SCSI scanner. > > > > I never tried to capture simultaneous however... I never had a need to. > > but, let me know if you'd like me to try that out or if you had > > something else entirely in mind... > > > > Hope this helps~ > > I'll see if it does. I'm not really interested in accessing more than > one device at a time. I was just indicating that I was sufficiently > into the the STI interface that I was able to get a list of devices and > that I could create an instance of the device and supposedly lock it > and get status, but could not get the RawReadData to work (on the > scanner, I haven't seen the scanner start to make the scanning noise, > etc). > > Thanks. I'll let you know.
From: Michael Angelo Ravera on 29 Nov 2006 20:18 Danny wrote: > Hi Michael, > > Sorry about the misunderstanding... What's the actual STIERR-prefixed > error code defined in stierr.h? > I'm getting HRESULT 0 from the scanner, but no data. I'm getting HRESULT 0x80070015 from the webcam. Here is a code snippet. "camera" is the GUID of the selected device (from a dialogue). Before the last IStiDevice_UnLockDevice, either nrcvd is 0 or h has a value that signifies not ready. h = StiCreateInstance (GetModuleHandle(NULL), STI_VERSION, & ppSti, NULL); h = IStillImage_CreateDevice (ppSti, camera, STI_DEVICE_CREATE_BOTH, & scanner, NULL); h = IStiDevice_LockDevice (scanner, 5000); memset (& DevStatus, 0, sizeof DevStatus); DevStatus.dwSize = sizeof DevStatus; DevStatus.StatusMask = STI_DEVSTATUS_ONLINE_STATE | STI_DEVSTATUS_EVENTS_STATE; h = IStiDevice_GetStatus (scanner, & DevStatus); h = IStiDevice_UnLockDevice (scanner); if (!(huge_buf = (unsigned long *) malloc (nrcvd = 0x100000))) exit (11); memset (huge_buf, 'T', nrcvd); /* h = IStiDevice_DeviceReset (scanner); */ olap.Offset = 0; olap.OffsetHigh = 0; olap.hEvent = 0; h = IStiDevice_LockDevice (scanner, 5000); h = IStiDevice_RawReadData (scanner, (void *) & huge_buf, &nrcvd, & olap); h = IStiDevice_UnLockDevice (scanner);
|
Pages: 1 Prev: Problems with HP ScanJet 4100C Next: OCR for scanning students marks?? |