background image

PadCom

Point-of-Sale Terminal Control Library

U s e r ’ s G u i d e

Summary of Contents for PadCom TT1500

Page 1: ... PadCom Point of Sale Terminal Control Library U s e r s G u i d e ...

Page 2: ...rformance or use of this material This document contains proprietary information which is protected by copyright All rights are reserved No part of this document may be photocopied reproduced or translated into another language without the prior written consent of Hand Held Products 2000 2001 Welch Allyn Data Collection Inc All rights reserved Web Address www handheld com PenWare100 and PenWare150...

Page 3: ...2 1 Library Functions List by Category 2 5 Chapter 3 Library Functions padBinaryGetTable 3 1 padBinaryGetVar 3 1 padBox 3 2 padClear 3 2 padClearPixel 3 2 PadComDate 3 3 PadComVersion 3 3 padConnect 3 3 padConnectClearScreen 3 3 padDisplayObject 3 4 padDisplayTime 3 4 padEchoComm 3 5 padEraseTable 3 5 padFieldButton 3 6 padFieldSignature 3 7 padFlush 3 7 padFormDeleteFld 3 7 padFormSaveFld 3 8 pad...

Page 4: ...padHideTime 3 22 padHorzDPI 3 23 padInkExport 3 23 padInvert 3 24 padIsaReset 3 24 padIsKey 3 24 padIsLcd 3 25 padIsNewStroke 3 25 padIsOn 3 25 padIsPenDown 3 25 padIsRecord 3 26 padLcdHeight 3 26 padLcdHorzDPI 3 26 padLcdVertDPI 3 27 padLcdWidth 3 27 padLightOff 3 27 padLightOn 3 27 padLine 3 28 padMemClear 3 28 padMemDelete 3 29 padMemDeleteVar 3 29 padMemFind 3 29 padMemGetChecksum 3 30 padMemG...

Page 5: ...45 padResetBaudRate 3 45 padResetConnectTimeout 3 45 padResetDefaultBaudRate 3 46 padResetInTimeout 3 46 padResetMagCard 3 46 padResetOutTimeout 3 47 padScale 3 47 padScaleDPI 3 47 padScaleTo 3 48 padScaleX 3 48 padScaleY 3 49 padSendByte 3 49 padSetArea 3 49 padSetAutoInking 3 50 padSetBaudRate 3 50 padSetBkColor 3 51 padSetColor 3 51 padSetCompress 3 51 padSetConnectTimeout 3 52 padSetDebug 3 52...

Page 6: ... 3 65 padToLOMETRIC 3 65 padType 3 65 padUpdate 3 66 padVertDPI 3 66 padWidth 3 66 Chapter 4 Supported Bitmap Format Chapter 5 Sample Source Code PadCom Signature Capture Sample for DOS 5 1 PadCom Signature Capture Sample for Windows 3 x 5 3 PadCom Signature Capture Sample for Windows95 NT 5 8 PadCom Sample Source Code for the Magnetic Stripe Reader MSR 5 12 PadCom MSR Sample Code for DOS 5 12 Pad...

Page 7: ...automatic configuration In addition PadCom library has been designed to work seamlessly with Transaction Team SigKit1 the signature processing library for a complete signature capture solution Hand Held Products Transaction Team Terminals Supported by PadCom PadCom contains full support for the Transaction Team 1500 and the Transaction Team 3100 Series PadCom Interface The following diagram repres...

Page 8: ...0 is both 100 points to the right and 100 points down The actual coordinates of the bottom right corner can be represented as padWidth 1 padHeight 1 or obtained by using the padGetArea function page 3 10 Aspect Ratio Considerations Since the points returned by the library represent the actual points on the physical pad device it is necessary to understand the concept of aspect ratios Basically an ...

Page 9: ...page 5 1 for an example of how to use the PadCom library and the exposed API functions The same sample source code is also provided as a part of the sample application code installed with the SDK components These samples are intended for demo purposes only and do not necessarily perform useful tasks However they provide a basis on which you can build complex and meaningful Point Of Sale POS applic...

Page 10: ...cal Support at Hand Held Products Hand Held Products strongly recommends that you always run the sample test programs you installed while installing the library components Call Hand Held Products immediately if any of these sample programs do not work on the intended operating systems If the sample test programs work but your applications do not re check the compiler settings used libraries and th...

Page 11: ...ect X X padConnectClearScreen X X padDisplayObject X padDisplayTime X padEchoComm X padEraseTable X X padFieldButton X padFieldSignature X X padFlush X X padFormDeleteFld X padFormSaveFld X padFrame X X padGet X X padGetAllMagCardTracks X padGetBaudRate X X padGetArea X X padGetBkColor X padGetCmdSetID X padGetColor X padGetColors X padGetConnectTimeout X X padGetDefaultBaudRate X padGetDUKPTbinar...

Page 12: ...tVersion X X padHeight X X padHideTime X padHorzDPI X X padInkExport X X padInvert X padIsKey X padIsLcd X X padIsNewStroke X X padIsaReset X X padIsOn X X padIsPenDown X X padIsRecord X X padLcdHeight X X padLcdHorzDPI X X padLcdVertDPI X X padLcdWidth X X padLightOff X padLightOn X padLine X X padMemClear X padMemDelete X padMemDeleteVar X X padMemFind X padMemGetChecksum X padMemGetFree X padMe...

Page 13: ...dPassThroughSetOnCode X padPortReclaim X X padPortRelease X X padPromptHexNumber X padPromptNum X padPromptNumber X padPromptReset X padPromptSignature X padPromptString X padPromptTimeout X padPutBits X padPutBmpFile X padPutLogo X padPutText X X padReadByte X X padRecord X X padReset X padResetArea X X padResetBaudRate X padResetConnectTimeout X X padResetDefaultBaudRate X padResetInTimeout X X ...

Page 14: ...nt X padSetInTimeout X X padSetInkingArea X padSetLcdClearTimeout X padSetLogo X padSetLogoBmpFile X padSetNumVar X X padSetOutTimeout X X padSetPadOffset X X padSetPixel X padSetPort X X padSetPortAddr X X padSetPortHandle X X padSetPortIrq X X padSetPorts X X padSetScanRate X padSetTime X padSetType X X padStop X X padSoundBell X padSoundEnable X padSoundSetFreq X padSoundTone X padToHIENGLISH X...

Page 15: ...ording pad data padUpdate Update pad data padSetType Sets a specific type of pad to be used padReset Reset the pad Clipping Active Area padGetArea Get the currently active clipping area padResetArea Reset clipping to the full pad surface padSetArea Sets the currently active clipping area padSetInkingArea Sets the currently active inking area Data Collection Operations padBinaryGetTable Get data fr...

Page 16: ...Inverts an area on the LCD screen padLine Draws a line on the LCD screen padPutText Draws text on the LCD screen padPutBits Draws a bitmap on the LCD screen padPutBmpFile Draws a Windows BMP file on the LCD screen padPutLogoh Draws the logo image on the LCD screen padSetBkColor Sets the current background color padSetColor Sets the current foreground color padSetLcdClearTimeout Sets the automatic ...

Page 17: ...le into memory Miscellaneous padLightOn Turn on the light padLightOff Turn off the light Model and Version Operations padComDate Get the build date of the PadCom library padComVersion Get the version number of the PadCom library padGetCmdSetID Get the current command set ID padGetModel Get the model number of the attached pad padGetVersion Get the model revision number Pad Specifications padGetPag...

Page 18: ...ssionBinaryPIN Gets a PIN number from the user padGetMasterSessionTextPIN Gets a PIN number from the user padResetMagCard Resets the magnetic card reader and clears the track buffer Prompt Operations padPromptReset Reset all prompts padPromptHexNumber Display a hexadecimal number entry prompt padPromptNum Display an integer number entry prompt padPromptNumber Display a decimal number entry prompt ...

Page 19: ...n is down padIsRecord Check if currently recording pad data padOldX Returns the previous horizontal pen coordinate padOldY Returns the previous vertical pen coordinate padNewX Returns the current horizontal pen padNewY Returns the current vertical pen coordinate padName Get the name of the attached pad padType Get the type of the attached pad System and Communication Operations padSysIsAvailable C...

Page 20: ...timeout value padResetDefaultBaudRate Resets the default baud rate to PadCom s initial value 9600 padResetInTimeout Resets the timeout value for input padResetOutTimeout Resets the timeout value for output padSendByte Sends a single byte to the pad padSetBaudRate Sets the baud rate to a specified rate padSetConnectTimeout Sets the initial connection intput output timeout value padSetDefaultBaudRat...

Page 21: ...atabaseName Pointer to a buffer containing raw signature data lpuBuffer Pointer to the buffer wBufSize Size of the buffer wIndex The index of the row transferred Returns Receive a row data from the binary table padBinaryGetVar Retrieves binary data from the specified memory location Syntax BOOL padBinaryGetVar char FAR pcName WORD wNameLength char FAR pcBinData WORD FAR pwDataLength Parameter Desc...

Page 22: ... size of the box in pixels Height Vertical size of the box in pixels Returns Returns TRUE if successful FALSE otherwise See Also padClearPixel padFrame padInvert padLine padSetPixel padClear Clears the entire LCD screen if one is attached Syntax void padClear void See Also padIsLcd padPutText padPutBits padPutLogo padClearPixel Clears a pixel on the LCD screen by setting a pixel on the LCD screen ...

Page 23: ...this are the commands padSetPort padSetPortAddr padSetPortIrq and padSetType which modify the behavior of padConnect and must be called prior to calling padConnect This function is similar to padOn except that it will always attempt to connect to a pad even if a connection was already established Syntax BOOL padConnect void Returns Returns TRUE if successful FALSE otherwise See Also padConnectClea...

Page 24: ...n the unit the data transfer between the COM port and the unit is reduced resulting in much faster display times Note All memory objects may be displayed even empty ones To check if a specified memory object contains data use padMemFind Syntax BOOL padDisplayObject WORD ObjectId padPOINT pptAt Parameter Description ObjectId ID of the memory item to store pptAt Pointer to padPOINT specifying screen...

Page 25: ... be used to synchronize the software with the state of the unit by waiting for the echo to return before continuing Syntax int padEchoComm char SendDataBlock char RecvDataBlock WORD DataLength Parameter Description SendDataBlock Pointer to the block of data to send RecvDataBlock Pointer to the received data block DataLength Length of the sent data bytes Returns Returns TRUE if the function call su...

Page 26: ...er wStyle Field style attributes 0 for defaults wLeft X coordinate of upper point wTop Y coordinate of upper point wWidth Width of the signature field wHeight Height of the signature field uFont Font to be used pcText Button text to be displayed wTextLen Text length wCmdPress Command to be executed when the button is pressed pcPressArgData Command data for press command wPressArgDataLen Data lengt...

Page 27: ...ld wHeight Height of the signature field wMaxPoints Max points that are allowed to be entered to the signature field wEnterTime Penup time out in seconds which is used for AUTO ENTER wEnterCmd The command to be executed when ENTER button is pressed pcData Command data buffer nDataLen Length of the command data Returns Returns TRUE if the function call succeeds FALSE otherwise padFlush Removes any ...

Page 28: ...ecified by X and Y using the size specified by Width and Height The frame is drawn using the current foreground color This function draws an empty frame as opposed to padBox which draws a filled frame The illustration depicts the placement of an arbitrary frame at location X Y with width of W and height H Syntax BOOL padFrame int X int Y int Width int Height Parameter Description X Horizontal coor...

Page 29: ...herwise See Also padUpdate padRecord padStop padGetAllMagCardTracks Returns data captured from all tracks on a magnetic card if available A card must have been swiped prior to executing this command otherwise it returns zero The TrackXSize parameters should contain the maximum buffer sizes for each track before the call and after will contain actual track sizes after the call The card reader must ...

Page 30: ...oordinate xRight Pointer to an integer to hold the maximum horizontal coordinate yBottom Pointer to an integer to hold the maximum vertical coordinate Returns Returns TRUE if area retrieved represents the full pad surface FALSE otherwise See Also padSetArea padWidth padHeight padGetBaudRate Used to find the current communications baud rate Syntax DWORD padGetBaudRate void Returns Returns the curre...

Page 31: ... FALSE otherwise See Also padGetVersion padGetColor Gets the current foreground color Syntax int padGetColor void Returns Returns the current foreground color See Also padGetBkColor padGetColors padSetBkColor padSetColor padGetColors Gets the number of colors available Syntax int padGetColors void Returns Returns the number of colors available See Also padGetBkColor padGetColor padGetColors padSet...

Page 32: ...d Products for information on secure key injection Syntax int padGetDUKPTbinaryPIN char FAR pTitle char FAR pAcctNum char FAR pKeySerialNumber int pKeySerialNumberLength char FAR pBinaryPIN int iTimeout Parameter Description pTitle Specifies a string to display as the title of the PIN entry screen pAcctNum User s account number used to generate the encrypted PIN number pKeySerialNumber Generated k...

Page 33: ...Description pTitle Specifies a string to display as the title of the PIN entry screen pAcctNum The user s account number used to generate the encrypted PIN number pTextPIN The resulting standard ASCII VISA standard type 71 text PIN block which includes both the encrypted PIN and the key serial number used to create the encrypted PIN iTimeout Specifies the maximum number of seconds this function at...

Page 34: ...is command with the Id of 0 will return 8x8 in pptPixels Syntax int padGetFontSize BYTE Id padPOINT pptPixels Parameter Description Id ID of the specified font pptPixels Pointer to store the obtained font size The following table describes the relationship between font ID and the font sizes Returns Returns TRUE if function call succeeds and FALSE otherwise Font ID Horizontal Size Vertical Size Ava...

Page 35: ...g a track you must reset the magnetic card reader To reset the magnetic card reader you can call padResetMagCard or you can call this function using 0 for all of the parameters The return value is non zero if a reader is attached otherwise it is zero Please refer to padResetMagCard see page 3 46 for more information Refer to page 5 1 for sample code that describes how to read the MSR Syntax unsign...

Page 36: ...crypted PIN number pBinaryPIN Is the resulting binary PIN number returned as a byte array not an actual string iTimeout Specifies the maximum number of seconds this function attempts to obtain PIN data from the PIN entry prompt If the specified number of seconds elapse without user input then the PIN entry prompt is canceled and the display is cleared Returns 0 Success 1 Cancel 2 Bad Parameters 3 ...

Page 37: ...Parametersv 3 Pad Not On 4 Command Error 5 Response Error 6 No PIN 7 Not Supported See Also padGetDUKPTbinaryPIN padGetDUKPTtextPIN padGetMasterSessionBinaryPIN padGetMaxCardTracks Retrieves the number of tracks supported by the magnetic card reader in Tracks Refer to page 5 1 for sample code that describes how to read the MSR Syntax BOOL padGetMaxCardTracks BYTE Tracks Parameter Description Track...

Page 38: ...dGetNumVar Gets the contents of a variable in num format Syntax BOOL padGetNumVar char FAR lpszVarName WORD FAR pwValue Parameter Description lpszVarName Name of the variable to which the numeric value is assigned pwValue Value Returns Returns TRUE upon success FALSE otherwise padGetOutTimeout This function returns the current time out value used for the com port s output in milliseconds to the co...

Page 39: ...s display contains only 320x240 pixels even though they are about the same size in inches Syntax void padGetPage int Width int Height int HorzDPI int VertDPI Parameter Description Width Pointer to hold the total amount of horizontal touch sensitive points Height Pointer to hold the total amount of vertical touch sensitive points HorzDPI Pointer to hold the horizontal dots per inch of the touch sen...

Page 40: ...number associated with a port Note This function is available in the MS DOS version only Syntax MS DOS int padGetPortIrq int Port Parameter Description Port Should be 1 for COM1 2 for COM2 3 for COM3 or 4 for COM4 Returns Returns the interrupt number used by the specified communications port See Also padSetPortIrq padGetPortAddr padGetPorts Returns the current number of available ports Use padSetP...

Page 41: ...Size WORD wIndex Parameter Description lpszDatabaseName Name of the database variable that stores the transaction lpuBuffer Pointer to the buffer wBufSize Size of the buffer wIndex ID of the index into the table used as a binary Returns Total bytes read padGetTime This function gets the current time on the Transaction Team 3100 Series or compatible POS terminal Syntax BOOL padGetTime BYTE FAR pHou...

Page 42: ...if you are writing a program that makes use of commands not found on earlier versions of the firmware With this command your program can check the version number of the firmware in the pad and only run if it s equal to or greater than the version number required Syntax BOOL padGetVersion WORD Version Parameter Description Version Pointer to WORD data type to store the result Returns Returns TRUE u...

Page 43: ...given format 01 INK_POINTS 02 INK_TOKEN 05 INK_PACKET 07 INK_COTF 08 INK_NOLOSS Syntax BOOL padInkExport char FAR pcName WORD wNameLen WORD wFormat char FAR pcFmtData WORD FAR pwFmtLen Parameter Description pcName Variable name containing raw signature data wNameLen Name length wFormat Compression format pcFmtData Pointer to buffer to receive compressed data pcFmtLen Buffer length Returns Returns ...

Page 44: ...t Vertical size in pixels of the area to invert Returns Returns TRUE if successful FALSE otherwise See Also padBox padClearPixel padFrame padLine padSetPixel padIsaReset Checks to determine if an extension card device is attached Syntax BOOL padIsaReset WORD FAR status Parameter Description status The address to contain the ISA status Returns Returns TRUE if successful FALSE otherwise See Also pad...

Page 45: ...adUpdate returns TRUE to indicate new data received Syntax BOOL padIsNewStroke void Returns Returns TRUE if the last point represents a new stroke FALSE otherwise See Also padUpdate padRecord padGet padNewX padNewY padIsOn BOOL padIsOn void Returns Returns TRUE if the pad is on FALSE otherwise See Also padOn padOff padIsRecord padIsPenDown This function checks if the pen is down or in contact with...

Page 46: ...urrently sending data FALSE otherwise See Also padRecord padStop padIsOn padLcdHeight Syntax int padLcdHeight void Returns Returns the total number of vertical points on the LCD See Also padIsLcd padLcdWidth padLcdHorzDPI padLcdVertDPI padLcdHorzDPI Syntax int padLcdHorzDPI void Returns Returns the number of horizontal points per inch of the LCD See Also padIsLcd padLcdWidth padLcdVertDPI ...

Page 47: ...tax int padLcdWidth void Returns Returns the total number of horizontal points on the LCD See Also padIsLcd padLcdHeight padLcdHorzDPI padLightOff Sends commands to the pad to turn off the red light Syntax void padLightOff void See Also padLightOn padLightOn Sends commands to the pad to turn on the red light Syntax void padLightOn void Turns on the light See Also padLightOff ...

Page 48: ...rtical coordinate to draw the line to Returns Returns TRUE if successful FALSE otherwise See Also padBox padClearPixel padFrame padInvert padSetPixel padMemClear Clears the entire contents of the Transaction Team POS device s on board non volatile memory Non volatile memory is typically used to store large and often used bitmaps and text objects Since the data resides on the unit the data transfer...

Page 49: ...arameter Description lpszVarName Name of the memory variable Returns Returns TRUE if the function call succeeds FALSE otherwise padMemFind This command allows you to check if a memory item specified by Id is stored in the unit s memory Non volatile memory is typically used to store large and often used bitmaps and texts Since the data resides on the unit the data transfer between the COM port and ...

Page 50: ...Find padMemGetFree FreeBytes is a pointer to WORD type data that returns the number of free non volatile memory bytes available in the unit Non volatile memory is typically used to store large and often used bitmaps and texts Since the data resides on the unit the data transfer between the COM port and the unit is reduced resulting in much faster display times Syntax BOOL padMemGetFree WORD FreeBy...

Page 51: ...Description Id ID of the memory item pptSize Horizontal and vertical size of the bitmap in pixels The maximum horizontal and vertical values allowable for the bitmap are identical to the values returned by padLcdWidth equivalent to 320 for the Transaction Team 3100 Series and padLcdHeight equivalent to 240 for the Transaction Team 3100 Series Bits Pointer to the raw bitmap data to be loaded On the...

Page 52: ...t wrap around the texts It is the responsibility of the programmer to ensure the text fits the screen and to perform the necessary wraparound Syntax BOOL padMemLoadText WORD Id char Text WORD TextLength Parameter Description Id ID of the memory item to store Text Pointer to the text string to store TextLength Length of the text string Returns Returns TRUE if the function succeeds FALSE otherwise S...

Page 53: ...Length of the command data Returns Returns TRUE if the non volatile memory is reset FALSE otherwise See Also padMemGetFree padMemClear padMemDelete padMemLoadText padMemLoadBitmap padMemFind padMemGetChecksum padName Returns a pointer to a string constant containing the name of the pad attached For example PenWare3000 is returned if the attached pad is a Transaction Team 3100 Series PenWare1500 is...

Page 54: ... initial connection The user must close Transaction Team devices used by calling this API Failure to do so may result in failure to re connect to the attached unit Syntax void padOff void See Also padOn padStop padConnect padSetBaudRate padGetBaudRate padSetDefaultBaudRate padGetDefaultBaudRate padResetDefaultBaudRate padResetBaudRate padOldX Syntax int padOldX void Returns Returns the previous ho...

Page 55: ...BaudRate padSetDefaultBaudRate padGetDefaultBaudRate padResetDefaultBaudRate padResetBaudRate padPassThroughHandshaking Enables disables hardware handshaking when in pass through mode Syntax WORD padPassThroughHandshaking WORD aHandshaking Parameter Description aHandshaking Yes No Returns Previous handshaking mode See Also padPassThroughOn padPassThroughSetOffCode padPassThroughSetOnCode padPassTh...

Page 56: ...h it You can use padSetBaudRate see page 3 50 before entering pass through mode to set the pad to the same baud rate as the device connected to its pass through port When connecting a series of pads together using the pass through ports it becomes a complex task to manage if all of the pads initially have different baud rates PadCom does not readily support multiple devices with multiple baud rate...

Page 57: ...n have a chain of pads connected in series using the pass through ports of each pad Giving each pad a unique OFF code allows you to selectively disable pass through mode for a specific pad If any two or more pads have the same OFF code then padPassThroughOff disables the first pad with that OFF code in the chain Note You cannot use this command to set the OFF code of a pad that is currently in pas...

Page 58: ...meter Description code A buffer containing the binary code used to turn on pass through mode codeLength The length of the binary pass through code in bytes Returns Returns non zero if successful zero otherwise See Also padPassThroughOff padPassThroughResetCodes padPassThroughSetOffCode padPassThroughOn padPortReclaim Reclaims the port Syntax BOOL padPortReclaim See Also padPortRelease padPortRelea...

Page 59: ...ring containing the number entered Returns Returns TRUE upon success FALSE otherwise See Also padPromptNum padPromptNumber padPromptReset padPromptSignature padPromptString padPromptTimeout padPromptNum This command displays a numeric keypad and returns the entered number The user is prompted to enter a number whose value can range from 0 to 65 535 The prompt includes ENTER CLEAR C UNDO and CANCEL...

Page 60: ...to a null terminated character string MaxDigits Maximum digits to be displayed including decimal point Decimal The amount of digits allowed to the right of the decimal point Result Returns a variable length text string containing the number entered Returns Returns TRUE upon success FALSE otherwise See Also padPromptHexNumber padPromptNum padPromptReset padPromptSignature padPromptString padPromptT...

Page 61: ...lue representing the size of the captured signature data Returns Returns TRUE upon success FALSE otherwise See Also padPromptHexNumber padPromptNum padPromptNumber padPromptReset padPromptString padPromptTimeout padPromptString Displays an alphanumeric keypad and returns the entered alphanumeric data This command prompts the user to enter alphanumeric data The prompt includes ENTER CLEAR C UNDO an...

Page 62: ...bitmap on the LCD display by transferring the contents of a bitmap buffer to the LCD screen Note This command does not display a BMP type bitmap with header data It only accepts raw bitmap data without a header See Supported Bitmap Format beginning on page 4 1 for more information on using raw bitmaps Syntax BOOL padPutBits int X int Y int Width int Height const void Bits Parameter Description X H...

Page 63: ... image can be set to any bitmap image the user desires see padSetLogo on page 3 56 and padSetLogoBmpFile on page 3 56 Syntax BOOL padPutLogo void See Also padIsLcd padSetLogo padSetLogoBmpFile padPutText Draws the text pointed to by String onto the display The upper left corner of the text is positioned at the coordinate specified by the giving X and Y parameters Text is drawn using the current fo...

Page 64: ...pdate see page 3 66 repeatedly to collect incoming data When using Windows a notification message is sent to the Window specified by hWnd Upon receiving the message the window uses padUpdate to check for and receive new data When using 16 bit Windows 3 x the notification message is WM_COMMNOTIFY When using 32 bit Windows 95 NT you may specify any message with optional message parameters Syntax DOS...

Page 65: ...mand padOff see page 3 34 resets the baud rate back to the baud rate at which the device was initially connected Syntax BOOL padResetBaudRate void Returns Returns TRUE if successful FALSE otherwise See Also padSetBaudRate padGetBaudRate padSetDefaultBaudRate padGetDefaultBaudRate padResetDefaultBaudRate padResetConnectTimeout This function resets the time out value used for the com port both input...

Page 66: ...tTimout padGetInTimeout padGetOutTimeout padSetInTimeout padResetOutTimeout padSetConnectTimeout padGetConnectTimeout padResetConnectTimeout padResetMagCard This function resets the magnetic card reader available on the Transaction Team 3100 Series Commands such as padGetMagTrack and padGetAllMagCardTracks require that the magnetic card reader be reset before use Resetting the magnetic card reader...

Page 67: ...ling by a given fraction Syntax int padScale int Value int Numerator int Denominator Parameter Description Value The value to be scaled Numerator The numerator of the fraction for the scale Denominator The denominator of the fraction for the scale Returns Returns the result of the scaling See Also padScaleX padScaleY padScaleDPI padScaleTo padScaleDPI Scales horizontal and vertical pad coordinates...

Page 68: ...caling of the associated coordinate Syntax void padScaleTo int X int Y int Width int Height Parameter Description X Pointer to an integer to hold the horizontal coordinate to be scaled Y Pointer to an integer to hold the vertical coordinate to be scaled Width The horizontal size of the desired frame area Height The vertical size of the desired frame area See Also padScaleDPI padScaleX padScaleY pa...

Page 69: ... sent Syntax BOOL padSendByte BYTE b Parameter Description b The byte to send to the pad Returns If successful it returns TRUE otherwise it returns FALSE See Also padReadByte padPassThroughOn padSetOutTimeout padSetArea This sets the minimum and maximum coordinates of the active pad area This function causes clipping of points received from the Transaction Team POS device s touch sensitive surface...

Page 70: ...d even when in record mode If the value in AutoInking is set to 0 then auto inking is disabled If set to 1 auto inking is enabled Note This function interacts with padSetInkingArea see page 3 54 Syntax BOOL padSetAutoInking BYTE AutoInking Returns Returns TRUE if successful FALSE otherwise See Also padGetBkColor padGetColor padGetColors padSetColor padSetInkingArea padSetBaudRate Sets the communic...

Page 71: ...padGetColors padSetColor padSetColor Sets the current foreground color This value can be 1 or 0 Syntax BOOL padSetColor int Color Parameter Description Color The color for the foreground Returns Returns TRUE if successful FALSE otherwise See Also padGetBkColor padGetColor padGetColors padSetBkColor padSetCompress This command can be used to capture compressed data points directly from the pad This...

Page 72: ...ectTimeout padResetConnectTimeout padSetDebug Sets the system debug option on or off If the system debug option is on the LCD displays an error message when an error occurs Syntax BOOL padSetDebug WORD Options Parameter Description Options Specifies the debug options 0000h no debug 0001h display error messages Returns Returns TRUE upon success FALSE otherwise See Also padFlush padSetDefaultBaudRat...

Page 73: ...audRate DWORD BaudRate Parameter Description BaudRate Specifies the baud rate to use as the default baud rate Valid values are 9600 19200 38400 and 57600 Returns Returns the old default baud rate or zero if it fails See Also padConnect padGetDefaultBaudRate padGetBaudRate padSetBaudRate padResetBaudRate padResetDefaultBaudRate padSetFlowControl Enables disables FlowControl for a connected Transact...

Page 74: ...0 pixels even though they are about the same size in inches Use padLcdHeight padLcdWidth padLcdHorzDPI and padLcdVertDPI to find the size and resolution of the LCD screen Note This function interacts with padSetAutoInking If padSetAutoInking is set to true then the entire Transaction Team POS device s overlaying touch surface area will cause inking to occur on the entire LCD screen area As a resul...

Page 75: ...ing the initial connection phase see padSetConnectTimeout Syntax unsigned int padSetOutTimeout unsigned int newTimeout Returns Returns the old time out setting See Also padSetInTimout padResetInTimeout padGetOutTimeout padResetOutTimeout padSetConnectTimeout padGetConnectTimeout padResetConnectTimeout padSetLcdClearTimeout Sets the LCD automatic clearing time out value When it s disabled the LCD w...

Page 76: ...urns Returns TRUE if successful FALSE otherwise See Also padIsLcd padPutLogo padSetLogoBmpFile padSetLogoBmpFile Sets the LCD screen logo to the contents of the Windows Bitmap file named FileName The logo is not actually displayed until padPutLogo is called see page 3 43 The logo must have 240 pixels across and 128 pixels down Note This command only accepts a Windows Bitmap file BMP it does not ac...

Page 77: ...Mode Sets the Transaction Team 1500 s operational mode When in native mode the device does not emulate any other device When in PenWare 100 emulation mode the device s touch surface behaves as if it had the DPI resolution of a PenWare 100 Mode 0 native mode Mode 1 PenWare 100 emulation Syntax BOOL padSetPadMode BYTE Mode Parameter Description Mode Specifies the mode the Transaction Team device sho...

Page 78: ...his command has no effect To put the device into emulation mode use the padSetPadMode command see page 3 57 Syntax BOOL padSetPadOffset int OffsetX int OffsetY Parameter Description OffsetX Horizontal offset measure in the PenWare100 s resolution OffsetY Vertical offset measure in the PenWare100 s resolution Returns Returns TRUE if successful FALSE otherwise See Also padSetPadMode padSetClearButto...

Page 79: ... library is off otherwise FALSE See Also padGetPort padIsOn padSetPortAddr padSetPortIrq padSetType padSetPortAddr Sometimes it may be necessary to manually specify the address used when referring to a communications port padSetPortAddr provides this ability This function works only when the library is in an off state i e before padOn or after padOff This is not normally needed however it may be u...

Page 80: ... Port int Irq Parameter Description Port 1 COM1 2 COM2 3 COM3 4 COM4 Irq The value to be used as the port interrupt number Returns Returns TRUE if the port specified is legal and library is off otherwise FALSE See Also padSetPort padSetPortAddr padSetType padSetPorts Sets the maximum number of communications ports available The next time padOn or padConnect is executed only the com ports specified...

Page 81: ... BYTE cSec Parameter Description cHour Sets the hour cMin Sets the minute cSec Sets the second Returns Returns TRUE upon success FALSE otherwise See Also padDisplayTime padGetTime padHideTime padSetType Sets the type of pad to search the com ports for when using padOn Normally padOn searches the com ports for all supported Transaction Team pad types Setting padSetType to a valid Transaction Team p...

Page 82: ...s 0 0x00 cancels any sound being played 1 0x01 plays the standard bell sound 16 0x10 plays an alarm sound 20 0x14 plays a success sound 24 0x18 plays a fail sound Syntax BOOL padSoundBell WORD BellType Parameter Description BellType Type of sound the device makes Returns Returns TRUE upon success FALSE otherwise See Also padSoundTone padSoundSetFreq padSoundEnable padSoundEnable This command enabl...

Page 83: ...nd allows you to set the internal speaker to play a frequency specified by the value in Freq for the amount of tempo beats specified by Duration 156 temp beats are equivalent to approximately 1000 milliseconds 1 second The following table shows the frequency values used to play musical notes Syntax BOOL padSoundTone WORD Freq WORD Duration Octave 1 Octave 2 Octave 3 Octave 4 C 131 262 523 1047 C 1...

Page 84: ... by X and Y pointers and corresponds to the Windows mapping mode MM_HIENGLISH units NULL pointers may be passed for either X or Y parameters to suppress scaling of the associated coordinate Syntax void padToHIENGLISH int X int Y Parameter Description X Pointer to an integer to hold the horizontal coordinate to be scaled Y Pointer to an integer to hold the vertical coordinate to be scaled See Also ...

Page 85: ...H padToLOMETRIC This function scales horizontal and vertical pad coordinates to units representing 0 1 millimeters It is designed to provide proper aspect ratio scaling for accurate output and converts the values pointed to by X and Y pointers The function corresponds to the Windows mapping mode MM_LOMETRIC units NULL pointers may be passed for either X or Y parameters to suppress scaling of the a...

Page 86: ...ation received This function is generally used in response to a notification message as discussed in the padRecord see page 3 44 reference Syntax BOOL padUpdate void Returns Returns TRUE if new data was received otherwise FALSE See Also padRecord padGet padHardwareButton padLeftButton padRightButton padMiddleButton padVertDPI Syntax int padVertDPI void Returns Returns the number of vertical points...

Page 87: ... portion of the image The black and white format uses one bit per pixel Bit 1 is the rightmost pixel of each byte and bit 8 is the leftmost pixel of each byte A bit value of zero is black and a bit value of one is white The following illustrates a bit mapped image as it would appear on a black and white LCD screen The image has a horizontal size of 12 pixels and a vertical size of 10 pixels The fo...

Page 88: ...4 2 ...

Page 89: ...cessarily perform useful tasks However they provide a basis on which you can build complex and meaningful Point Of Sale applications PadCom Signature Capture Sample for DOS Test c A simple DOS Demo program using DOS Graphics Functions Compiler Microsoft Visual C 1 52 Target DOS Application Memory Model Medium Include padcom h Library libs padcomdm lib Environment DOS 3 3 or better Copyright c Hand...

Page 90: ...DE if GraphOn cputs Unable to use graphics padOff return START REAL TIME RECORDING padRecord COLLECT DATA while kbhit CHECK IF THERE IS MORE DATA FROM THE PAD if padUpdate padGet x y p SCALE THE POINTS TO ABOUT DOUBLE In SIZE padScaleDPI x y 160 160 DRAW THEM ON THE SCREEN if p _lineto x y else ...

Page 91: ...har Msg PLEASE SIGN ON THE PAD PRESS ANY KEY WHEN DONE if _setvideomode _MAXRESMODE return 0 _setviewport 0 0 639 479 _settextposition 25 15 _outtext Msg return 1 void GraphOff void _setvideomode _DEFAULTMODE PadCom Signature Capture Sample for Windows 3 x Test c A simple WIN16 Demo program ...

Page 92: ...l rights reserved include windows h include PadCom h intPASCALWinMain HINSTANCE HINSTANCE LPSTR int LONG __export CALLBACKWndProc HWND UINT WPARAM LPARAM HINSTANCEtheInstance HWNDtheWnd WinMain int PASCAL WinMain HINSTANCE hInst HINSTANCE hInstPrev LPSTR lpstrCmdLine int cmdShow MSG msg WNDCLASS wc theInstance hInst Register the window class if this is the first instance if hInstPrev ...

Page 93: ...egisterClass wc return 0 Create the main window if theWnd CreateWindowEx WS_EX_TOPMOST TESTAPP SIGN YOUR NAME THEN PRESS ANY BUTTON WS_OVERLAPPED WS_SYSMENU CW_USEDEFAULT CW_USEDEFAULT 375 225 NULL NULL hInst NULL return 0 Show main window ShowWindow theWnd cmdShow UpdateWindow theWnd Main message loop while GetMessage LPMSG msg NULL 0 0 TranslateMessage LPMSG msg DispatchMessage LPMSG msg return ...

Page 94: ...n on the writing pad if padOn Start recording padRecord hWnd else Error MessageBox hWnd Unable to find writing pad TESTAPP MB_OK PostQuitMessage 1 break case WM_COMMNOTIFY Check for any new data received while padUpdate int x y p If pen is down get pen position info and draw it if padGet x y p RECT Rect HDC hDC ...

Page 95: ... SetWindowExt hDC padWidth padHeight SetViewportExt hDC Rect right Rect bottom If not first point of new stroke draw stroke if p MoveTo hDC padOldX padOldY LineTo hDC x y ReleaseDC hWnd hDC return 1 case WM_DESTROY Always turn things off padStop padOff PostQuitMessage 0 break case WM_CHAR DestroyWindow hWnd break default ...

Page 96: ... 0 Target Windows Application Include padcom h Library libs padcomw lib Environment Windows 95 NT Copyright c Hand Held Products All rights reserved include windows h include PadCom h USER DEFINED PADCOM MESSAGE define WM_PADNOTIFYWM_USER 100 int CALLBACK WinMain HINSTANCE HINSTANCE LPSTR int LONG CALLBACK WndProc HWND UINT WPARAM LPARAM HINSTANCE theInstance HWNDtheWnd ...

Page 97: ...enuName NULL wc lpszClassName TEST wc hInstance hInst wc hIcon NULL wc hCursor NULL wc hbrBackground HBRUSH COLOR_WINDOW 1 wc style 0 wc lpfnWndProc WndProc wc cbClsExtra 0 wc cbWndExtra 0 if RegisterClass wc return 0 Create the main window if theWnd CreateWindowEx WS_EX_TOPMOST TEST Sign on the pad and hit any key when done WS_OVERLAPPED WS_SYSMENU CW_USEDEFAULT CW_USEDEFAULT 375 225 NULL NULL hI...

Page 98: ...slateMessage LPMSG msg DispatchMessage LPMSG msg return 0 WndProc LONG CALLBACK WndProc HWND hWnd UINT Msg WPARAM wParam LPARAM lParam switch Msg case WM_CREATE Turn on the writing pad if padOn Start recording padRecord hWnd WM_PADNOTIFY 0 0 else Error MessageBox hWnd Unable to find writing pad TESTAPP MB_OK PostQuitMessage 1 ...

Page 99: ...t HDC hDC Setup DC to perform scaling based on client rect hDC GetDC hWnd GetClientRect hWnd Rect SetMapMode hDC MM_ANISOTROPIC SetWindowExtEx hDC padWidth padHeight NULL SetViewportExtEx hDC Rect right Rect bottom NULL If not first point of new stroke draw stroke if p MoveToEx hDC padOldX padOldY NULL LineTo hDC x y ReleaseDC hWnd hDC return 1 case WM_DESTROY ...

Page 100: ...arious platforms below The source code is only supplied for demo purposes and is NOT a part of the SDK installation There are numerous ways to capture MSR from Transaction Team devices and the demo code simply shows one of these Hand Held Products does not necessarily claim that this is the best way to read MSR data PadCom MSR Sample Code for DOS MSR C This is a sample program showing how to use t...

Page 101: ...oducts Required header files include stdio h include conio h include PadCom H Constant values Transaction Team magnetic stripe reader follows the MEGTEK standard This standard has the following track sizes defined We add 1 to include the appended NULL character at the end of each track ...

Page 102: ...MAX track3 TRACK3_MAX int dataReadFromTrack1 0 dataReadFromTrack2 0 dataReadFromTrack3 0 printf nExecuting Transaction Team Sample program MSR EXE n n Step 1 Turn on the Transaction Team device using padConnect if padConnect printf ERROR No Transaction Team device found n n printf n nPress any key n while kbhit return printf Please swipe your Magnetic Card n n ...

Page 103: ...intf ERROR No Magnetic Stripe Reader found n n printf n nPress any key n while kbhit padOff return Initialize the contents of the buffers strcpy track1 NO DATA READ strcpy track2 NO DATA READ strcpy track3 NO DATA READ while 1 If the ESC key is pressed then return if kbhit if getch 27 padOff return ...

Page 104: ...last track read i e track 3 It is possible one or more of the other tracks were checked before any data was retrieved from the card As soon as one track contains data all of the other tracks will as well To make sure we get all of the data from all of the tracks we will read all of them again Step 4 Read all of the tracks Note step 4 is not needed if only one track is being read dataReadFromTrack1...

Page 105: ... size d n dataReadFromTrack3 printf Track 3 data s n n track3 printf n nPress any key n while kbhit Turn of the Transaction Team device and quit the test application padOff return PadCom MSR Sample Code for Win 3 x MSR C This is a sample program showing how to use the Magnetic Stripe Reader hardware available on some Transaction Team devices such as the Transaction Team 3100 Series Platform Window...

Page 106: ...lude windows h include string h include stdio h include PadCom H Constant values Transaction Team magnetic stripe reader follows the MEGTEK standard This standard has the following track sizes defined We add 1 to include the appended NULL character at the end of each track ...

Page 107: ...ypes int PASCAL WinMain HINSTANCE HINSTANCE LPSTR int LONG __export CALLBACKWndProc HWND UINT WPARAM LPARAM void CALLBACK TimerProc HWND UINT UINT DWORD int ReadMSR void int ResetMSR HWND Global variables HINSTANCE theInstance HWND theWnd TIMERPROC lpfnMyTimerProc char appName MSR char appTitle MSR EXE Please swipe your Magnetic Card ...

Page 108: ... dataReadFromTrack2 0 dataReadFromTrack3 0 WinMain the application entry point int PASCAL WinMain HINSTANCEhInst HINSTANCEhInstPrev LPSTR lpstrCmdLine int cmdShow MSG msg WNDCLASSwc theInstance hInst Register the window class if this is the first instance if hInstPrev wc lpszMenuName NULL ...

Page 109: ...c WndProc wc cbClsExtra 0 wc cbWndExtra 0 if RegisterClass wc return 0 Attemp to create the main window theWnd CreateWindowEx WS_EX_TOPMOST appName appTitle WS_OVERLAPPED WS_SYSMENU CW_USEDEFAULT CW_USEDEFAULT 375 225 NULL NULL hInst NULL If the window was not created then quit if theWnd return 0 Show the main window ShowWindow theWnd cmdShow ...

Page 110: ...le GetMessage LPMSG msg NULL 0 0 TranslateMessage LPMSG msg DispatchMessage LPMSG msg return 0 WndProc Message handler for the application LONG __export CALLBACK WndProc HWND hWnd UINT Msg WPARAM wParam LPARAM lParam char msrData 1024 switch Msg case WM_CREATE ...

Page 111: ...ct if ResetMSR hWnd PostQuitMessage 1 else Error MessageBox hWnd ERROR No Transaction Team device found appName MB_OK PostQuitMessage 1 break case WM_COMMAND switch wParam case MSR_DATA_READ Display the data read from the Magnetic Stripe Reader sprintf msrData Track 1 size d n ...

Page 112: ... Track 3 data s n n dataReadFromTrack1 track1 dataReadFromTrack2 track2 dataReadFromTrack3 track3 MessageBox hWnd msrData MSR EXE Data received from the Magnetic Card MB_OK Reset if ResetMSR hWnd PostQuitMessage 1 break case WM_DESTROY Turn of the Transaction Team device padOff ...

Page 113: ...DestroyWindow hWnd break default return DefWindowProc hWnd Msg wParam lParam return 0 TimerProc Message handler for timer used to read the MSR void CALLBACK TimerProc HWND hWnd UINT Msg UINT idTime DWORD dwTime KillTimer hWnd idTime switch Msg ...

Page 114: ...adMSR PostMessage hWnd WM_COMMAND MSR_DATA_READ 0 return SetTimer hWnd MSR_TIMER_ID 1000 lpfnMyTimerProc ResetMSR initializes the MSR and sets up a timer to pole for MSR data int ResetMSR HWND hWnd Step 2 prepare the MSR to read data if padGetMagTrack 0 0 0 ...

Page 115: ...se do or while loops Instead we will use a timer to pole the MSR for data lpfnMyTimerProc TIMERPROC MakeProcInstance FARPROC TimerProc theInstance SetTimer hWnd MSR_TIMER_ID 1000 lpfnMyTimerProc return 1 MessageBox hWnd ERROR Unable to initialize Magnetic Stripe Reader appName MB_OK return 0 ReadMSR reads the MSR data if any is available int ReadMSR void ...

Page 116: ...FromTrack3 At this point we know that at least 1 track was read successfully the last track read i e track 3 It is possible one or more of the other tracks were checked before any data was retrieved from the card As soon as one track contains data all of the other tracks will as well To make sure we get all of the data from all of the tracks we will read all of them again Step 4 Read all of the tr...

Page 117: ...ack 3 track3 TRACK3_MAX return 1 return 0 PadCom MSR Sample Code for Win 95 NT MSR C This is a sample program showing how to use the Magnetic Stripe Reader hardware available on some Transaction Team devices such as the Transaction Team 3100 Series Platform Windows 95 NT Compiler Microsoft Visual C 4 0 C Copyright 1999 2000 Hand Held Products ...

Page 118: ...tion Team magnetic stripe reader follows the MEGTEK standard This standard has the following track sizes defined We add 1 to include the appended NULL character at the end of each track define TRACK1_MAX 74 1 define TRACK2_MAX 39 1 define TRACK3_MAX 106 1 define MSR_TIMER_ID 1 define MSR_DATA_READ1 Function prototypes ...

Page 119: ...UINT UINT DWORD int ReadMSR void int ResetMSR HWND Global variables HINSTANCE theInstance HWND theWnd TIMERPROC lpfnMyTimerProc char appName MSR char appTitle MSR EXE Please swipe your Magnetic Card char track1 TRACK1_MAX track2 TRACK2_MAX track3 TRACK3_MAX int dataReadFromTrack1 0 dataReadFromTrack2 0 dataReadFromTrack3 0 ...

Page 120: ...WNDCLASSwc theInstance hInst Register the window class if this is the first instance if hInstPrev wc lpszMenuName NULL wc lpszClassName appName wc hInstance hInst wc hIcon NULL wc hCursor NULL wc hbrBackground HBRUSH COLOR_WINDOW 1 wc style 0 wc lpfnWndProc WNDPROC WndProc wc cbClsExtra 0 wc cbWndExtra 0 if RegisterClass wc return 0 ...

Page 121: ...NU CW_USEDEFAULT CW_USEDEFAULT 375 225 NULL NULL hInst NULL If the window was not created then quit if theWnd return 0 Show the main window ShowWindow theWnd cmdShow UpdateWindow theWnd Proccess the main message loop while GetMessage LPMSG msg NULL 0 0 TranslateMessage LPMSG msg DispatchMessage LPMSG msg return 0 ...

Page 122: ...he application LRESULT WndProc HWND hWnd UINT Msg WPARAM wParam LPARAM lParam char msrData 1024 switch Msg case WM_CREATE Step 1 Turn on the Transaction Team device using padConnect if padConnect if ResetMSR hWnd PostQuitMessage 1 else ...

Page 123: ... case WM_COMMAND switch wParam case MSR_DATA_READ Display the data read from the Magnetic Stripe Reader sprintf msrData Track 1 size d n Track 1 data s n n Track 2 size d n Track 2 data s n n Track 3 size d n Track 3 data s n n dataReadFromTrack1 track1 dataReadFromTrack2 track2 dataReadFromTrack3 track3 ...

Page 124: ...rData MSR EXE Data received from the Magnetic Card MB_OK Reset if ResetMSR hWnd PostQuitMessage 1 break case WM_DESTROY Turn of the Transaction Team device padOff PostQuitMessage 0 break case WM_CHAR DestroyWindow hWnd break ...

Page 125: ... TimerProc Message handler for timer used to read the MSR void CALLBACK TimerProc HWND hWnd UINT Msg UINT idTime DWORD dwTime KillTimer hWnd idTime switch Msg case WM_TIMER switch idTime case MSR_TIMER_ID if ReadMSR PostMessage hWnd WM_COMMAND MSR_DATA_READ 0 return ...

Page 126: ...d Step 2 prepare the MSR to read data if padGetMagTrack 0 0 0 Initialize the contents of the buffers strcpy track1 NO DATA READ strcpy track2 NO DATA READ strcpy track3 NO DATA READ In Windows it is not good to use do or while loops Instead we will use a timer to pole the MSR for data lpfnMyTimerProc TIMERPROC MakeProcInstance FARPROC TimerProc ...

Page 127: ...MSR void Step 3 Check if any of the tracks were read dataReadFromTrack1 padGetMagTrack 1 track1 TRACK1_MAX dataReadFromTrack2 padGetMagTrack 2 track2 TRACK2_MAX dataReadFromTrack3 padGetMagTrack 3 track3 TRACK3_MAX if dataReadFromTrack1 dataReadFromTrack2 dataReadFromTrack3 At this point we know that at least 1 track was read successfully the last track read i e track 3 ...

Page 128: ...will as well To make sure we get all of the data from all of the tracks we will read all of them again Step 4 Read all of the tracks Note step 4 is not needed if only one track is being read dataReadFromTrack1 padGetMagTrack 1 track1 TRACK1_MAX dataReadFromTrack2 padGetMagTrack 2 track2 TRACK2_MAX dataReadFromTrack3 padGetMagTrack 3 track3 TRACK3_MAX return 1 return 0 ...

Page 129: ......

Page 130: ......

Page 131: ......

Page 132: ... PadCom UG Rev A 4619 Jordan Road P O Box 187 Skaneateles Falls New York 13153 0187 ...

Reviews: