|
|
' ' constants section: This will be in another file. '
DIM INITIALIZE_ID DIM SETVALUE_ID DIM GETVALUE_ID DIM RESETDEVICE_ID DIM SCAN_ID DIM SCAN_NEXT_ID DIM SCAN_FINISHED_ID DIM CANCELSCAN_ID
INITIALIZE_ID = 100 SETVALUE_ID = 101 GETVALUE_ID = 102 RESETDEVICE_ID = 103 SCAN_ID = 104 SCAN_NEXT_ID = 105 SCAN_FINISHED_ID = 106 CANCELSCAN_ID = 107
' ' Value ID defines '
DIM XRESOLUTION DIM YRESOLUTION DIM XPOSITION DIM YPOSITION DIM XEXTENT DIM YEXTENT DIM BRIGHTNESS DIM CONTRAST DIM DATATYPE DIM BITDEPTH DIM NEGATIVE DIM PIXELORDER DIM PIXELFORMAT DIM BEDWIDTH DIM BEDHEIGHT DIM OPTICALX DIM OPTICALY DIM ADFSUPPORT DIM TPASUPPORT DIM ADFWIDTH DIM ADFHEIGHT DIM ADFVJUSTIFY DIM ADFHJUSTIFY DIM ADFMAXPAGES DIM FIRMWAREVER
XRESOLUTION = 2 YRESOLUTION = 3 XPOSITION = 4 YPOSITION = 5 XEXTENT = 6 YEXTENT = 7 BRIGHTNESS = 8 CONTRAST = 9 DATATYPE = 10 BITDEPTH = 11 NEGATIVE = 12 PIXELORDER = 13 PIXELFORMAT = 14 BEDWIDTH = 15 BEDHEIGHT = 16 OPTICALX = 17 OPTICALY = 18 ADFSUPPORT = 19 TPASUPPORT = 20 ADFWIDTH = 21 ADFHEIGHT = 22 ADFVJUSTIFY = 23 ADFHJUSTIFY = 24 ADFMAXPAGES = 25 FIRMWAREVER = 26
' ************************************************************************************** ' * SCRIPTING EVENTS * ' * * ' * Events called from WIAFBDRV WIA driver to envoke scripting actions for the device. * ' * * ' * * ' **************************************************************************************
Sub DeviceAction_DeviceActionEvent
Select Case DeviceAction.Action
Case INITIALIZE_ID
' ' Initialize Device Properties '
Call IntializeDeviceProperies()
Case SETVALUE_ID Select Case DeviceAction.ValueID Case XRESOLUTION Call SetXResolution(DeviceAction.Value) Case YRESOLUTION Call SetYResolution(DeviceAction.Value) Case DATATYPE Call SetDataType(DeviceAction.Value) Case NEGATIVE Call SetNegative(DeviceAction.Value) Case XPOSITION Call SetXPosition(DeviceAction.Value) Case YPOSITION Call SetYPosition(DeviceAction.Value) Case XEXTENT Call SetXExtent(DeviceAction.Value) Case YEXTENT Call SetYExtent(DeviceAction.Value) Case CONTRAST Call SetContrast(DeviceAction.Value) Case BRIGHTNESS Call SetBrightness(DeviceAction.Value) Case Else End Select
Case GETVALUE_ID Select Case DeviceAction.ValueID Case XRESOLUTION Call GetXResolution(DeviceAction.Value) Case YRESOLUTION Call GetYResolution(DeviceAction.Value) Case DATATYPE Call GetDataType(DeviceAction.Value) Case NEGATIVE Call GetNegative(DeviceAction.Value) Case XPOSITION Call GetXPosition(DeviceAction.Value) Case YPOSITION Call GetYPosition(DeviceAction.Value) Case XEXTENT Call GetXExtent(DeviceAction.Value) Case YEXTENT Call GetYExtent(DeviceAction.Value) Case Else End Select
Case RESETDEVICE_ID Call ResetDevice(DeviceAction.Value) Case SCAN_ID Call StartScan(DeviceAction.Value) Case SCAN_NEXT_ID Call ScanNext(DeviceAction.Value) Case SCAN_FINISHED_ID Call ScanFinished(DeviceAction.Value) Case CANCELSCAN_ID Call CancelScan(DeviceAction.Value) Case Else
End Select End Sub
Sub IntializeDeviceProperies
' ************************************************************************************** ' To change the x resolution valid value types, just use one of ' the following methods of DeviceProperty: ' ' SetValidRange() represents resolution in RANGE form. ' SetValidList() represents resolution in LIST form.
'Call DeviceProperty.SetValidRange(XRESOLUTION,12,1200,150,1) ' set valid x resolutions (RANGE form) 'Call DeviceProperty.SetValidRange(YRESOLUTION,12,1200,150,1) ' set valid y resolutions (RANGE form)
DIM ValidResolutions ValidResolutions = Array(75,100,150,200,300,600,1200) Call DeviceProperty.SetValidList(XRESOLUTION,ValidResolutions)' set valid x resolutions (LIST form) Call DeviceProperty.SetValidList(YRESOLUTION,ValidResolutions)' set valid y resolutions (LIST form)
Call DeviceProperty.SetCurrentValue(XRESOLUTION, 150) ' set current x resolution Call DeviceProperty.SetCurrentValue(YRESOLUTION, 150) ' set current y resolution
' ****************************************************************************************
Call DeviceProperty.SetValidRange(XPOSITION,0,2549,2549,1) ' set valid x positions Call DeviceProperty.SetCurrentValue(XPOSITION,0) ' set current x position Call DeviceProperty.SetValidRange(YPOSITION,0,3506,3506,1) ' set valid y positions Call DeviceProperty.SetCurrentValue(YPOSITION,0) ' set current y position Call DeviceProperty.SetValidRange(XEXTENT,1,2550,1,1) ' set valid x extents Call DeviceProperty.SetCurrentValue(XEXTENT,2550) ' set current x extent Call DeviceProperty.SetValidRange(YEXTENT,1,3507,1,1) ' set valid y extents Call DeviceProperty.SetCurrentValue(YEXTENT,3507) ' set current y extent Call DeviceProperty.SetValidRange(BRIGHTNESS,-127,127,32,1) ' set valid brightness Call DeviceProperty.SetCurrentValue(BRIGHTNESS,32) ' set current brightness Call DeviceProperty.SetValidRange(CONTRAST,-127,127,12,1) ' set valid contrast Call DeviceProperty.SetCurrentValue(CONTRAST,12) ' set current contrast
DIM ValidDataTypes ValidDataTypes = Array(0,2,3)
Call DeviceProperty.SetValidList(DATATYPE,ValidDataTypes) ' set valid data types Call DeviceProperty.SetCurrentValue(DATATYPE,2) ' set current data type Call DeviceProperty.SetCurrentValue(BITDEPTH,8) ' set current bit depth Call DeviceProperty.SetCurrentValue(NEGATIVE,1) ' set negative option (TRUE) Call DeviceProperty.SetCurrentValue(PIXELORDER,0) ' set raw pixel packing order option (WIA_PACKED_PIXEL) Call DeviceProperty.SetCurrentValue(PIXELFORMAT,1) ' set raw pixel format option (WIA_ORDER_BGR) Call DeviceProperty.SetCurrentValue(BEDWIDTH,8500) ' set bed width Call DeviceProperty.SetCurrentValue(BEDHEIGHT,11693) ' set bed height Call DeviceProperty.SetCurrentValue(OPTICALX,300) ' set x optical resolution Call DeviceProperty.SetCurrentValue(OPTICALY,300) ' set y optical resolution Call DeviceProperty.SetCurrentValue(ADFSUPPORT,0) ' set ADF support option Call DeviceProperty.SetCurrentValue(TPASUPPORT,0) ' set TPA support option Call DeviceProperty.SetCurrentValue(ADFWIDTH,0) ' set ADF width Call DeviceProperty.SetCurrentValue(ADFHEIGHT,0) ' set ADF height Call DeviceProperty.SetCurrentValue(ADFVJUSTIFY,0) ' set ADF vertical justification (TOP_JUSTIFIED) Call DeviceProperty.SetCurrentValue(ADFHJUSTIFY,0) ' set ADF horizontal justification (LEFT_JUSTIFIED) Call DeviceProperty.SetCurrentValue(ADFMAXPAGES,30) ' set ADF page capacity Call DeviceProperty.SetCurrentValue(FIRMWAREVER,"1.02a") ' set firmware version
End Sub
Sub SetXResolution(Value)
Call DeviceControl.RawWrite(0,chr(27) + "*a" + CStr(Value) + "R",(4 + Len(CStr(Value))),100)
End Sub
Sub SetYResolution(Value)
Call DeviceControl.RawWrite(0,chr(27) + "*a" + CStr(Value) + "S",(4 + Len(CStr(Value))),100)
End Sub
Sub SetDataType(Value)
Select Case Value
Case 0 ' WIA_DATA_THRESHOLD Call DeviceControl.RawWrite(0,chr(27) + "*a0T",5,100) ' set data type Call DeviceControl.RawWrite(0,chr(27) + "*a1G",5,100) ' set bits per pixel Case 2 ' WIA_DATA_GRAYSCALE Call DeviceControl.RawWrite(0,chr(27) + "*a4T",5,100) ' set data type Call DeviceControl.RawWrite(0,chr(27) + "*a8G",5,100) ' set bits per pixel Case 3 ' WIA_DATA_COLOR Call DeviceControl.RawWrite(0,chr(27) + "*a5T",5,100) ' set data type Call DeviceControl.RawWrite(0,chr(27) + "*a24G",5,100) ' set bits per pixel Case Else
End Select
End Sub
Sub SetNegative(Value)
Call DeviceControl.RawWrite(0,chr(27) + "*a" + CStr(Value) + "I",(4 + Len(CStr(Value))),100)
End Sub
Sub SetXPosition(Value)
' ' get current x resolution, for calculation of 300 dpi optical offset '
DIM XResSetting Call DeviceProperty.GetCurrentValue(XRESOLUTION, XResSetting)
' ' calculate new position '
DIM OpticalValue OpticalValue = CLng(Value) OpticalValue = CLng((OpticalValue * 300) / XResSetting) Call DeviceControl.RawWrite(0,chr(27) + "*f" + CStr(OpticalValue) + "X",(4 + Len(CStr(OpticalValue))),100)
End Sub
Sub SetYPosition(Value)
' ' get current y resolution, for calculation of 300 dpi optical offset '
DIM YResSetting Call DeviceProperty.GetCurrentValue(YRESOLUTION, YResSetting)
' ' calculate new position '
DIM OpticalValue OpticalValue = CLng(Value) OpticalValue = CLng((OpticalValue * 300) / YResSetting) Call DeviceControl.RawWrite(0,chr(27) + "*f" + CStr(OpticalValue) + "Y",(4 + Len(CStr(OpticalValue))),100)
End Sub
Sub SetXExtent(Value)
' ' get current x resolution, for calculation of 300 dpi optical offset '
DIM XResSetting Call DeviceProperty.GetCurrentValue(XRESOLUTION, XResSetting)
' ' calculate new position '
DIM OpticalValue OpticalValue = CLng(Value) OpticalValue = CLng((OpticalValue * 300) / XResSetting) Call DeviceControl.RawWrite(0,chr(27) + "*f" + CStr(OpticalValue) + "P",(4 + Len(CStr(OpticalValue))),100)
End Sub
Sub SetYExtent(Value)
' ' get current y resolution, for calculation of 300 dpi optical offset '
DIM YResSetting Call DeviceProperty.GetCurrentValue(YRESOLUTION, YResSetting)
' ' calculate new position '
DIM OpticalValue OpticalValue = CLng(Value) OpticalValue = CLng((OpticalValue * 300) / YResSetting) Call DeviceControl.RawWrite(0,chr(27) + "*f" + CStr(OpticalValue) + "Q",(4 + Len(CStr(OpticalValue))),100)
End Sub
Sub SetContrast(Value)
Call DeviceControl.RawWrite(0,chr(27) + "*a" + CStr(Value) + "K",(4 + Len(CStr(Value))),100)
End Sub
Sub SetBrightness(Value)
Call DeviceControl.RawWrite(0,chr(27) + "*a" + CStr(Value) + "L",(4 + Len(CStr(Value))),100)
End Sub
Sub GetXResolution(Value)
End Sub
Sub GetYResolution(Value)
End Sub
Sub GetDataType(Value)
End Sub
Sub GetNegative(Value)
End Sub
Sub GetXPosition(Value)
End Sub
Sub GetYPosition(Value)
End Sub
Sub GetXExtent(Value)
End Sub
Sub GetYExtent(Value)
End Sub
Sub ResetDevice(Value)
End Sub
Sub StartScan(Value)
' start a scan Call DeviceControl.RawWrite(0,chr(27)+"*f0S",5,100)
' read some data ScanNext(Value)
End Sub
Sub ScanNext(Value)
Call DeviceControl.ScanRead(0,100)
End Sub
Sub ScanFinished(Value)
'Call ResetScanner()
End Sub
Sub ResetScanner()
Call DeviceControl.RawWrite(0,chr(27) + chr(69),2,100)
End Sub
Sub CancelScan(Value)
End Sub
|