WO2000079493A1 - A visual design tool for interactive sale devices - Google Patents

A visual design tool for interactive sale devices Download PDF

Info

Publication number
WO2000079493A1
WO2000079493A1 PCT/US2000/015365 US0015365W WO0079493A1 WO 2000079493 A1 WO2000079493 A1 WO 2000079493A1 US 0015365 W US0015365 W US 0015365W WO 0079493 A1 WO0079493 A1 WO 0079493A1
Authority
WO
WIPO (PCT)
Prior art keywords
control
offering
pos
visual basic
code
Prior art date
Application number
PCT/US2000/015365
Other languages
French (fr)
Inventor
J. Gregory Stout
Original Assignee
@Pos.Com, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by @Pos.Com, Inc. filed Critical @Pos.Com, Inc.
Publication of WO2000079493A1 publication Critical patent/WO2000079493A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/047Payment circuits using payment protocols involving electronic receipts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/18Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/30Individual registration on entry or exit not involving the use of a pass
    • G07C9/32Individual registration on entry or exit not involving the use of a pass in combination with an identity check
    • G07C9/35Individual registration on entry or exit not involving the use of a pass in combination with an identity check by means of a handwritten signature
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F19/00Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
    • G07F19/20Automatic teller machines [ATMs]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F19/00Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
    • G07F19/20Automatic teller machines [ATMs]
    • G07F19/201Accessories of ATMs
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • G07G1/14Systems including one or more distant stations co-operating with a central processing unit
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G5/00Receipt-giving machines

Definitions

  • This invention relates to software design and development and to point-of-sale devices. More specifically, this invention relates to application-development-kit software for controlling the appearance and behavior of interactive point-of-sale devices - both legacy and new.
  • POS point-of-sale
  • the developer then compiles the code, transfers it to the POS device and executes it. Only then does he (or she) see whether the code produces boxed text with the desired appearance and/or behavior.
  • the developer makes a best guess at the appropriate correction, changes the command sequence accordingly, re- compiles, re-transmits and re-executes the code. Again, only then does he see whether the (now modified) code produces boxed text with the desired appearance and behavior.
  • the apparatus includes a development host, a POS device and a link communicatively connecting the host and POS device.
  • software presents a graphical user interface (GUI) for developing an application for the POS device.
  • GUI graphical user interface
  • the software automatically generates code for the POS application in response to a developer's using that GUI.
  • the GUI offers a control for affecting the appearance or behavior of a POS device.
  • the automatic generation of code involves generating code for that control in the POS application.
  • the developer's selecting the offered code drives the automatic generation of code for the selected control.
  • the method may be repeated, adding code to the POS application control by control.
  • the GUI may display the control on the screen of the development host.
  • the code in the POS application for the selected control re-creates substantially identically the appearance and behavior of the control on the development screen.
  • the controls offered may include a standard Visual Basic control, as well as a modified Visual Basic control.
  • the standard control may be from a set of standard Visual Basic controls, including lines.
  • the modified control may be from a set of modified Visual Basic controls, including command buttons, images, labels, text boxes, lists boxes, shapes and timers.
  • the GUI may offer a control that is neither a standard nor a modified Visual Basic control, such as a signature-capture control or a magnetic-strip reader control.
  • Code may be generated automatically in multiple modes. One mode may automatically generate code for a POS application that is resident on a host communicating with a POS. Another mode may automatically generate code for a POS application that is resident on a POS device. (The controls offered in one mode may be different from the controls offered in another mode.)
  • Figure 1 illustrates a development environment incorporating an embodiment of the invention.
  • Figure 2 illustrates the development host of Figure 1, incorporating an embodiment of the invention.
  • FIG 3 illustrates the relationships among components of the software on the development host of Figure 1, according to one embodiment of the invention.
  • Figures 4A through 4C illustrate the organization of objects, properties and methods for the script-mode development software.
  • Figures 5A and 5B illustrate the organization of objects, properties and methods for the VB-mode development software.
  • Figure 6 illustrates the relationships among " components of the software on the POS device of Figure 1, according to one embodiment of the invention.
  • FIG. 1 illustrates a development environment 100 incorporating an embodiment of the invention.
  • the development environment 100 includes a development host 110, a POS device 120 and a communications link 130.
  • the link 130 communicatively couples the host 110 and the POS device 120.
  • FIG. 2 illustrates the development host 110, incorporating an embodiment of the invention.
  • the development host 110 may include the following: a central processing unit (“CPU") 111, a memory 112, a user interface 113, a port 114, a communications interface 115, a co-processor 116 and an internal bus 117.
  • the bus 117 communicatively interconnects the CPU 111, memory 112, user interface 113, port 114, communications interface 115 and co-processor 116. (Of course, in a distributed computing environment, some of these components may be on separate physical machines, as is well understood in the art of distributed computing.)
  • a PC-compatible computer is an example of a host 110.
  • the memory 112 includes high-speed, volatile random-access memory (RAM) 1122, as well as non-volatile memory such as read-only memory (ROM) 1121 and magnetic disk drives. Further, the memory 112 contains software 1123.
  • the software 1123 is layered: Application software 11231 communicates with the operating system 11232, and the operating system 11232 communicates with the 1/0 subsystem 11233.
  • the 1/0 subsystem 11233 communicates with the CPU 111, user interface 113, the communications interface 115 and the co-processor 116 by means of the communications bus 117.
  • the memory 112 may be programmed according to the methods described herein.
  • Figure 3 illustrates the relationships among components of the software 11231, according to one embodiment of the invention.
  • the iPOS software 11231a is the highest- level application software 11231.
  • the iPOS software 11231a builds upon the iPOS development software 11231b.
  • the iPOS development software 1123b optionally builds upon the prior-art POS software developer's kit (available from @POS.com, San Jose, California) and, in any event, upon the prior-art Visual Basic software 11231c (available from Microsoft Corp., Redmond, Washington).
  • the user interface 113 may include a mouse 1131, a keyboard 1132, a display 1133 and voice-command sub-system 1134.
  • the user interface 113 may include other sub-systems for human direction of the development host 110 or other sub-systems for human perception of the state of the development host 110.
  • the communications interface 115 communicatively couples the development host 110 to the communications link 113.
  • the POS device 120 is of a type known in the art.
  • the device 120 is preferably interactive, that is to say, an iPOS device.
  • the iPOS TC (available from ( aP0S.com, San Jose, California) is an example iPOS device 120.
  • the invention may be a development environment 100, a development host 110, application software 11231 or 11231a. development software 11231b or the iPOS software generated by the development software 11231b for execution on an iPOS device 120. Each of these facets is described further herein.
  • the iPOS software application forms a project. Forms are most often used in Visual Basic to make up the interface of an application.
  • the development software 11231b adds start forms to Visual Basic. A developer creates screens o? an iPOS device 120 control by control.
  • Visual Basic 6.0 Visual Basic 6.0 Programer's Guide (Microsoft Press, Redmond, WA), 1998.
  • Microsoft Corp. Microsoft Visual Basic 6.0 Programer's Guide (Microsoft Press, Redmond, WA), 1998.
  • the Microsoft Corp. reference is incorporated herein by reference, although the Applicant does not admit that the Microsoft Corp. reference is prior art.
  • the development software 1123 may execute in "script” mode or in "VB” mode.
  • a developer uses the script mode when iPOS terminals 120 and their programs are to integrate into existing programs.
  • a common example is the retail point-of-sale General Sales Application (GSA, available from International Business Machine Corp., Armonk, New York) where new interactive applications must integrate with proprietary retail sales applications and dated equipment.
  • GSA General Sales Application
  • Scripts are programs compiled in the Visual Basic environment.
  • the development software 11231b creates applications that reside and execute on the iPOS terminal 120 and that are triggered by the existing retail applications.
  • Developers typically use the VB mode to build stand-alone applications 11231a that reside on a host 110 and control an iPOS device 120 from the host 110.
  • a developer may seek to integrate components created in VB mode with existing applications that reside and execute on a host 110.
  • a common stand-alone application is security sign-in.
  • VB mode is especially useful to developers who need to quickly develop iPOS applications or prepare mock ups and demonstrations for project proposals.
  • the development software 11231b (in its runtime embodiment) automatically executes certain routines on the occurrence of predetermined events.
  • the software 11231b for example, executes a routine Screenlnitialize before the placement of the first control on an iPOS screen.
  • an AfterScreenDraw( ) routine is executed after all the controls on the screen of the iPOS 120 are displayed.
  • Figures 4A through 4C illustrate the organization of objects, properties and methods available in development software 11231b in script mode.
  • the objects are Disp (Display), Script, Sig (Signature), Sound, Stopwatch, Txtbox (TextBox), Unit and Var (Variable). Each of these is described in turn below.
  • the DISP commands relate to the visual aspects of iPOS scripts.
  • the DISP commands change the visual displays that occur during script operations.
  • the Display object may have the following methods: Box, Clear, DeleteAllControls, DrawLine, Frame, SetColor, SetFont, Text. keyPIN and GetPIN.
  • Disp. Box draws a filled box on the screen of the iPOS device.
  • the method has four integer parameters: Left, Top, Width and Height. Left and Right respectively specify the distance from the left and right edges of the iPOS device screen. Width and Height respectively specify the width and height of the box. Disp. Box does not return a value.
  • Disp.DeleteAllControls removes all objects from the screen.
  • the method has no parameters and does not return a value.
  • Disp.DrawLine draws a line on the screen.
  • the method has four integers parameters. As a tuple (XI, YD, the first two parameters specify the coordinates of the start of the line. Correspondingly, as a tuple (X2, Y2), the last two parameters specify the coordinates of the end of the line. The method does not return a value.
  • Disp. Frame draws unfilled rectangles on the screen.
  • the method has four integer parameters: Left, Top, Width and Height. Left and Top respectively specify the distance from the left and top edges of the iPOS device screen. Width and Height respectively specify the width and height of the frame. Disp. Frame does not return a value.
  • Disp.SetColor sets the current color.
  • the method has one parameter, specifying the color.
  • Disp.SetColor does not return a value.
  • Disp.SetFont sets the current font.
  • the method has one parameter, specifying the font.
  • Disp.SetFont does not return a value.
  • Disp.Text displays text beginning at specified coordinates.
  • the method has three parameters: Left, Top and Text.
  • Left and Top are integers that respectively specify the distances from the left and top edges of the screen.
  • Text is the string of text to be displayed.
  • Disp.GetPIN displays a (derived unique key per transaction
  • DUKPT binary binary DUKPT PIN entry prompt and returns a standard binary DUKPT PIN as a string.
  • the method has two parameters: Title and Account.
  • Title is an optional string specifying the displayed title of the screen.
  • Account is a string of ASCII digits, specifying the account number.
  • Disp.GetPIN encrypts a pin returned as a binary value. An error or cancelled entry may be indicated by a zero-length return value.
  • Disp.MkeyPIN displays a PIN entry prompt and returns a standard Masterkey PIN. The method has four parameters: Title, Account,
  • Skey and MkeylD Title and Account are as described immediately above with respect to Disp.GetPIN.
  • Skey is a transaction/session key
  • MkeylD is a stored master key ID.
  • Script commands handle logic that deals with scripts.
  • the Script object may have the following methods: DoNothing, GotoRoutine, GotoScreen, GotoVar, IfFalse,
  • Script.DoNothing is a place holder or N00P.
  • the command may be used with If statements where the Else clause is to do nothing.
  • Script.DoNothing does not return a value.
  • Script.GotoRoutine executes the specified routine. The method has one parameter, the name of a user-defined routine. Script.GotoRoutine is not a subroutine call. Instead, it completely transfers execution of the script to the routine. Execution does not automatically return to the calling code.
  • Script.GotoRoutine returns TRUE if the code transfer was successful .
  • Script.GotoScreen displays a specified screen.
  • the method has one parameter, the name of the screen form to display.
  • Script.GotoScreen does not return a value.
  • Script.GotoVar is a goto statement. The method has one parameter, specifying the user-defined subroutine. Like Script.GotoRoutine, Script.GotoVar is not a subroutine call.
  • Script.GotoVar returns TRUE if the code transfer was successful .
  • Script IfFalse is a conditional branch statement. The method has three parameters: Expression, ThenClause and ElseClause. Expression is a script command that returns a boolean value. ThenClause is a command that Script. IfFalse executes if Expression returns FALSE. Correspondingly, ElseClause is a command that Script. IfFalse executes if Expression returns TRUE.
  • Script IfFalse does not return a value. Script. IfTrue is also a conditional branch statement.
  • the method has three parameters: Expression, ThenClause and ElseClause. Expression is a script command that returns a boolean value. ThenClause is a command that Script..IfFalse executes if Expression returns TRUE. Correspondingly, ElseClause is a command that Script. IfFalse executes if Expression returns FALSE.
  • Script IfTrue does not return a value.
  • Script. Pause halts the execution of a script for the specified number of seconds. The method has one parameter, the number of seconds of delay. When a script is halted with Script. Pause, most actions nonetheless occur and most events are handled. (Button clicks are an example.) Script. Pause accommodates displaying messages and splash screens.
  • Script.Pause does not return a value.
  • Script.StopScript completely halts execution of a script.
  • the method has not parameters and returns no values.
  • Sig commands manipulate signature data.
  • the Sig object may have the following methods: Clear, Convert, GetCount, Height, InchesHigh, InchesWide, IsEmpty, Save and Width.
  • Sig.Clear clears the signature area of a SigControl control.
  • the method has one parameter, the name of the SigControl. Sig. Clear does not return a value.
  • Sig.Convert changes signatures from one format to another.
  • the method has two parameters, VarName and Format.
  • VarName is a string containing signature information for conversion to another format.
  • Format specifies the new format for the signature information.
  • Sig.Convert returns a string containing signature information.
  • Sig.GetCount counts the number of points for a signature.
  • the method has one parameter, a string containing signature information.
  • Sig.Count returns the point count for the specified signature.
  • Sig.Height determines the height (in pixels) of a specified signature.
  • the method has one parameter, a string containing signature information.
  • Sig.Height returns the pixel height of the specified signature.
  • Sig. InchesHigh determines the height of a specified signature in hundredths of inches.
  • the method has one parameter, specifying the signature information.
  • Sig. InchesHigh returns the signature height in inches times one hundred (100).
  • Sig. InchesWide determines the width of a specified signature in hundredths of inches.
  • the method has one parameter, specifying the signature information.
  • Sig. InchesWide returns the signature width in inches times one hundred (100).
  • Sig. IsEmpty determines whether a specified variable holds a signature. The method has one parameter, specifying the SigControl variable to check. Sig. IsEmpty returns TRUE if the control has no signature in it.
  • Sig.Save moves signature data in a SigControl control to a binary variable.
  • the method has two parameters: Control Name and VarName.
  • ControlName is the name of the SigControl containing the signature data.
  • VarName is a string variable.
  • Sig.Save returns TRUE if the move was successful .
  • Sig.Width determines the signature width (in pixels) of a specified signature.
  • the method has one parameter, a string containing signature information.
  • Sig.Width returns the pixel width of the specified signature.
  • the Sound object may have the following methods: Bell and Tone. Sound. Bell causes an iPOS device 120 to make a specified sound. Sound.Bell has one parameter, specifying the type of bell sound to produce. The sound types may be, for example, an alarm, a failure bell, a normal bell and a success bell. Sound. Bell does not return a value.
  • Sound.Tone causes an iPOS device 120 to make a specified tone.
  • the method has two parameters: FreqHz and BeatCount.
  • FreqHz specifies the frequency of the tone to be generated.
  • BeatCount specifies the duration of the tone to be generated. Sound.Tone does not return a value.
  • Stopwatch commands control the (sole, in one embodiment) timer in an iPOS device 120.
  • the Stopwatch object may have the following methods: Continue, GetTimer, Pause and Start. Stopwach. Continue reactivates the (sole) iPOS-device timer from a Stopwatch. Pause command. The method has no parameters and returns no value. Stopwatch.GetTi e determines the number of seconds elapsed since activation of a specified timer. The method has no parameters. Stopwatch.GetTimer returns the determined time interval in seconds. Stopwatch.Pause halts the timer on an iPOS device 120. Stopwatch.Pause has no parameters and returns no values.
  • Stopwatch Start initializes and starts the timer of an iPOS device 120.
  • the method has no parameters and returns no value.
  • the TxtBox object may have the following methods: IsEmpty, Load, Save and SendKeys.
  • TxtBox IsEmpty determines whether a specified text box control contains data. The method has one parameter, specifying the text box control. TxtBox. IsEmpty returns True if the specified control does not contain data.
  • TxtBox Load copies the content of a variable into a text box control.
  • the method has two parameters: the name of the text box control and a string variable containing data.
  • TxtBox.Save copies the contents of a text box control into a variable.
  • the method has the two parameters described immediately above.
  • TxtBox.Save returns TRUE if the copy was successful.
  • TxtBox.SendKeys send text to a text box control and then refreshes the control's image.
  • the method has two parameters: a text box control and a string.
  • the command appends text to the contents of a control and returns TRUE if the append operation was successful.
  • the Unit commands provide information about an iPOS device 120 on which a script is running.
  • the Unit commands may include: Model and Version.
  • Unit.Model returns the model number of the iPOS terminal running the script.
  • the method has no parameters.
  • Unit.Version returns the version number of the software running on an iPOS terminal.
  • the method has no parameters.
  • Var commands manipulate variables.
  • Delete, FindVar and SetVar are Var sub-commands that deal with binary (Bin), numeric (Num) and string (Str) variables.
  • the Bin object may have the following methods: SetVar, ToBase64 and ToHex.
  • the Num object may have the following methods: Dec, Diff GetVar, Inc, IsEqual , IsGreaterThan, IsLessThan, SetVar and Sum.
  • the Str object may have the following methods: Concat, GetVar, IsEqual, Left, Right and SetVar.
  • Var.Delete removes a variable name from the symbol table of an i OS device 120 and frees its memory resources.
  • the method has one parameter, the name of the variable to be removed. Var. Delete does not return a value.
  • Var.FindVar indicates if a variable exits in the symbol table of an iPOS device 120.
  • the method has one parameter: the name of the variable for which to check.
  • Var.FindVar returns TRUE if the specified variable exists.
  • Var.SetVar assigns the result of a specified command into a specified variable.
  • the method has two parameters: the name of a variable and a command that returns a value.
  • Var.SetVar returns TRUE if it succeeds in setting the variable.
  • the Bin sub-commands are SetVar, ToBase64 and ToHex. Each of these sub-commands is described in turn below.
  • Var. Bin.SetVar sets a variable to a value.
  • the method has two parameters, specifying the variable and the binary data.
  • Var. Bin.SetVar returns true if it succeeds in setting the variable.
  • Var.Bin.ToBase64 converts binary data in a variable to base-64 format.
  • the method has one parameter, specifying the variable containing binary data.
  • Var.Bin.ToBase64 returns a string.
  • Var. Bin.ToHex converts binary data in a variable to a hexadecimal format.
  • the method has one parameter, specifying the variable containing binary data.
  • Var. Bin.ToHex returns a string.
  • the Num sub-commands are Dec, Diff, GetVar, Inc, IsEqual, IsGreaterThan, IsLessThan, SetVar and Sum. Each of these sub-commands is described in turn below.
  • Var. um.Dec decrements the value of a variable by one.
  • the method has one parameter, the variable to decrease.
  • Var. Num.Dec does not return a value.
  • Var. Num. Diff subtracts a specified amount from a variable.
  • the method has two parameters, both numeric variables.
  • Var. Num.Diff returns the difference between the two numbers.
  • Var. Num.GetVar has one parameter, a variable. The method returns the numeric value assigned to the variable.
  • Var. Num. Inc increments the value of a variable by one.
  • the method has one parameter, the variable to increase. Var. Num. Inc does not return a value.
  • IsEqual, IsGreaterThan and IsLessThan respectively determine whether a variable's value is identical to, greater than or less than a specified value.
  • Each method has two parameters, the variable and the value. Each method returns a boolean value.
  • Var.Num.SetVar assigns a value to a variable.
  • the method has two parameters, a variable and a value.
  • Var. Num.SetVar returns TRUE if it succeeds in assigning the value to the variable.
  • Var. Num.Sum sums integers.
  • the method has two parameters, two variables.
  • Var.Num.Sum returns the sum of its parameters.
  • Var.Str sub-commands are Concat, GetVar, IsEqual, Left, Right and SetVar. Each of these methods is described in turn below.
  • Var.Str. Concat has two parameters, two strings to concatenate. The method returns a string that is the concatenation.
  • Var.Str.Get has one parameter, a variable. The method returns the string stored in the variable. Var. IsEqual determines whether two strings are equal. The method has two parameters, the strings to compare, and returns a boolean value. Var.Str. Left has two parameters, a string and an integer count. The method returns a string that is the sub-string from the left end of the specified string and of length count.
  • Var.Str. Right has two parameters (as described immediately above). The method returns a string that is the sub-string from the right end of the specified string and is of length count.
  • Var.Str.SetVar assigns data to a variable.
  • the method has two parameters, a variable and data for storage.
  • Var.Str.SetVar returns TRUE if it succeeds in assigning the data.
  • the invention incorporates as-is certain controls from the Visual Basic programming environment, modifies and incorporates other controls from Visual Basic and adds controls non-existent in Visual Basic. All Visual Basic controls may not display and work on all iPOS devices 120.
  • the development software 11231b uses unchanged the following controls: lines. Their appearance and behavior are the same as in a conventional Visual Basic environment.
  • the software 11231b modifies the behavior of the following pre-existing controls: command buttons, images, labels, text boxes, list boxes, shapes and timers. (The behavior of a customized (modified) control may depend on the mode (script or VB) of its use.)
  • the behavior of the command button control tracks the behavior of that control in Visual Basic.
  • FontSize, Caption and Style properties are available as in Visual Basic, the Caption property may not be used to create keyboard shortcuts - - - IMAGES
  • the size of an image on a device 120 depends on its pixel dimensions.
  • An image displays on the device 120 with the same number of pixels as the image on the host display. (An image may be adjusted once placed on a form but looks better if adjusted in the image-generating application.)
  • the label control works as in a conventional Visual Basic environment with the exception that text does not wrap. Therefore, in the development-software environment, multiple labels are used for multiple lines of text.
  • the Caption and FontSize label properties are available.
  • the development software 11231b creates a hidden button in front of the label and assigns the _Click-event code to that hidden button.
  • the text box control appears and behaves as does a label as modified herein. Like labels, multiple lines of text use multiple text boxes .
  • a line control behaves as it does in Visual Basic.
  • the Visible, XI, Yl, X2 and Y2 properties are available. --- LIST BOXES
  • a list box control behaves like a serial marquee: A sequence of words (a line of text, for example) appears one word at a time in the list box window.
  • the shape control in the inventive development environment draws only rectangles.
  • the FillStyle property is available for configuration.
  • a Timer control can execute code at regular intervals by causing a Timer event to occur.
  • a timer control behaves like a "countdown" timer: It waits for the number of seconds specified in the Interval property then executes the code under the timer event. The countdown occurs only once. Displaying a sequence of screens is an example of this timer's usefulness.
  • the Interval property is configurable.
  • the development software 11231b adds two controls not found in Visual Basic to the development-software environment: SigControl and MSRControl .
  • SigControl allows developers to put a signature-capture box on an iPOS device 120 and to manipulate signature information.
  • the signature capture control has three configurable properties: BorderStyle, MaxSize ad Timeout.
  • BorderStyle allows a developer to set the border style for the control.
  • MaxSize limits the number of points collected per signature. Once the signer produces MaxSize pixels, the iPOS terminal 120 stops taking signature data.
  • the Timeout property sets the number of seconds following the user's lifting the pen from the iPOS terminal 120 and before a SigTimer event occurs.
  • the magnetic strip control enables an iPOS terminal 120 to read magnetic strips on credit, debit, loyalty and like cards.
  • MSRControl activates a magnetic strip reader to capture the information.
  • a magnetic strip control may be invisible on the iPOS device 120 but visible nonetheless on the developer's screen on the host 110.
  • the magnetic- strip reader also activates. Once active, the MSR can accept information from cards. If a good swipe occurs, any code under the GoodSwipe event is executed.
  • the magnetic strip control has no configurable properties.
  • a developer constructs an unconventional program and compiles it into a script using a DLL associated with the development software 11231b.
  • a script Once a script is developed and compiled (or otherwise made resident) on a host 110, a developer may download the script into an iPOS device 120 by means of the communications link 130.
  • the iPOS device 120 stores the script in nonvolatile memory.
  • the host 110 and the device 120 may by design work substantially asynchronously, exchanging commands and other communications through the link 130. - COMMUNICATIONS
  • GoToLabel has the following syntax:
  • Label Name may be a routine name.
  • the iPOS device 120 transfers the flow of execution to the parameter LabelName.
  • the SetVar command has the following syntax:
  • VarName is a variable name and StringValue is a string.
  • SetVar enables a host 110 to set a string variable on the device 120. For example, a host 110 might set a variable named. "Date” to "12/01/1999" as follows:
  • the GetVar commands has the following syntax:
  • VariableNa e is a variable name and GetVarO returns a string.
  • GetVarO corresponds to SetVar in that the former enables a host 110 to retrieve a string value from an iPOS device 120. For example, if the script variable, "CreditCardNumber" holds credit-card data from an MSR read event, the host 110 may request that variable information from the script by issuing the following GetVar command:
  • the host 110 may read or write any text variable in a script on the device 120, using GetVarO and SetVarO. The host 110 initiates these exchanges of information. The device 120 does not itself invoke SetVarO or GetVarO.
  • VB mode the visual programming environment highly parallels the iPOS environment.
  • the application eventually produced replicates on the iPOS device 120 the objects and their appearance on host forms (with the exception of those intentionally hidden). Both the host 110 and the iPOS device 120 operate from the same software 1123. Program responses triggered by actions at the hosts closely match the programs responses triggered by actions at the iPOS device 120.
  • Honing an iPOS application proceeds quickly. As soon as the host 110 runs the application generated by the development software 11231b, the form appears on the iPOS device 120. The close coupling of the host 110 and iPOS device 120 effects a responsive interface that keeps clear the cause-and-effect relationships between application changes and application performance. Because the development host 110 can run the VB-mode application, a developer can test aspects of the application without having access to an actual iPOS device 120. To test a VB-mode application, the developer sets the development software 1123 into test mode. The different modes enable the developer to place application logic where it is most appropriate -- either on a host or on the iPOS terminal itself. That flexibility allows a developer to create transactions applications for practically any hardware and software configurations.
  • the development software 11231b uses unchanged the following controls: check boxes, command buttons, images, labels, lines and list boxes. Their appearance and behavior are the same as in a conventional Visual Basic environment. Accordingly, each of these is described summarily below.
  • the software 11231b modifies the behavior of the following pre-existing Visual Basic controls: shapes and timers. Each of these controls, along with new, added controls, is described in turn below.
  • the behavior of the check box control tracks the behavior of that control in Visual Basic. All of the following standard properties are available: Alignment, Appearance, BackColor, ForeColor, Caption, Enabled, Font, FontBold. Fontltalic, FontSt ikethru, FontUnderline. FontName, FontSize, Height, Width, Left. Top, Name, Style, Value, and Visible.
  • the size of an image on a device 120 stretches to fit the size of the image control.
  • the image may be in any Visual Basic- ) compatible format.
  • the properties of an image control are the same as in a standard Visual Basic environment.
  • an iPOS device 120 may store an image in its non-volatile memory. This way, the images appear faster, not being transmitted with each display.
  • the behavior of the label control tracks the behavior of that control in Visual Basic -- including the wrapping of words. All of the standard properties are available.
  • the behavior of the line control tracks the behavior of that control in Visual Basic. All of the standard properties are available.
  • the behavior of the list box control tracks the behavior of that control in Visual Basic. All of the standard properties are available.
  • the development software 11231b adds two controls not found in Visual Basic to the development-software environment: SigControl and MSRControl.
  • SigControl allows developers to put a signature-capture box on an iPOS 120 device and to manipulate signature information.
  • the signature capture control has one configurable property: BorderStyle.
  • BorderStyle allows a developer to set the border style for the control.
  • the magnetic strip control enables the a iPOS terminal 120 to read magnetic strips on credit, debit, loyalty and like cards.
  • MSRControl activates a magnetic strip reader to capture the information.
  • a magnetic strip control may be invisible on the iPOS device 120 but visible nonetheless on the developer's screen on the host 110.
  • the magnetic- strip reader also activates. Once active, the MSR can accept information from cards. If a good swipe occurs, any code under the GoodSwipe event is executed.
  • the magnetic strip control has one configurable property, the number of seconds to wait before firing the GoBack event on the form. (The default is for no timing out.)
  • SHAPE Unlike the shape control in Visual Basic, the shape control in the inventive development environment draws only rectangles.
  • the standard BorderStyle, FillStyle and Fill Color properties are available for configuration.
  • a VB-mode timer control behaves like a standard Visual Basic timer control . - - V .A .
  • FIGS 5A and 5B illustrate the organization of methods and properties for the VB-mode development software.
  • V.A. commands relate to an attached iPOS device 120.
  • V.A. The prefixes for VB-mode commands herein are "V.A.,” “MSR” and "SigBox.”
  • the V.A. commands are CurrentScreen, DisplayPreviousScreen, DisplayScreen, DrawLabel , DrawScreenHotSpot, ErrorDescription, FontHeight, FontWidth, InvertControl , MagOff, MagOn, PadFontSize.
  • RedrawScreen. RefreshListBox, ScreenStackClear, ShowError,shrinkWrap, Signature, Smoothing and Terminate.
  • the MSR commands are AssignTrackNames and Reset.
  • the MSR properties are AccountNumber, FirstName, LastName, Trackl, Track2 and Track3.
  • the SigBox command passes commands through to the POS device's SDK. This allows the software to take advantage of unique qualities of the POS device.
  • V.A.CurrentScreen is a form method holding information about the currently displayed form. The method gives access to all the properties and methods of a form. V.A.CurrentScreen has no parameters and returns no values.
  • V.A.DisplayPreviousScreen navigates back to the previous screen. If the current screen is the first screen, the application terminates normally. V.A.DisplayPreviousScreen has no parameters and returns no values.
  • V.A.DisplayScreen displays a specified screen.
  • the method has one parameter, the identity of the screen to display.
  • V.A.DisplayScreen does not return a value.
  • V.A.DrawLabel draws a label on the current screen.
  • the method has two parameters, a label for display and an (optional) boolean indicator whether the screen under the label is to be cleared.
  • V.A.DrawLabel does not return a value.
  • V.A.DrawLabel changes a label's contents but does not display the change on the screen. The change appears on the execution of a subsequent V.A. RedrawScreen command.
  • V.A.DrawScreenHotSpot creates an invisible button that covers the entire screen. When the screen is touched anywhere, the hidden button activates, and the GoNext command of the screen fires. V.A.DrawScreenHotSpot has no parameters and returns no value. V.A. ErrorDescription is a property for displaying error messages to the user. After the screen is redrawn, the error messages appears along with an "OK" button. Clicking of the OK button starts the application over at padStart.
  • V.A.FontHeight returns the height of a font.
  • the method has one parameter, the font whose height is to be determined.
  • V.A.FontHeight returns the height in pixels.
  • V.A. FontWidth returns the width of a font.
  • the method has one parameter, the font whose width is to be determined.
  • V.A. FontWidth returns the width in pixels.
  • V.A. InvertControl reverses (inverts) the colors of a control on a screen.
  • the method has one parameter, the identity of the control to reverse.
  • V.A. InvertControl does not return a value.
  • V.A.MagOff and V.A.MagOn respectively turn off and turn on a magnetic-strip reader.
  • the methods have no parameters and return no value.
  • V.A.PadFontSize returns the size of a font.
  • the method has one parameter, the identity of any object with a (Visual Basic) font.
  • V.A.ReDrawScreen clears the current screen and redraws it.
  • the method has no parameters and returns no value.
  • V.A. RefreshListBox redraws the list box control on the iPOS device 120.
  • the method has one parameter, identifying a list control.
  • V.A. RefreshListBox does not return a value.
  • V.A.ScreenStackClear clears a stack of screens loaded to an iPOS device 120.
  • the method has no parameters and returns no value.
  • V.A.ShowErrorMsg displays an error message on the IPOS screen with "OK" button.
  • the method has one parameter, a text message to display.
  • V.A.ShowErrorMsg does not return a value. (Compare V.A.ErrorDesription. )
  • V.A.ShrinkWrap is a boolean property. With ShrinkWrap set TRUE, any extra pixels surrounding a signature are trimmed off before the signature is saved. WithshrinkWrap set to FALSE, the entire signature screen (320 x 240 pixels, in some embodiments) is saved. A signature with dimension of 50 x 200 pixels takes up more than seven (7) times as much memory when ShrinkWrap is set to FALSE than when it is set to TRUE.
  • V.A.Signature saves a signature into a string variable. (See V.A.ShrinkWrap.)
  • V.A.Smoothing is a property. It specifies the level of smoothing applied to captured signatures. Smoothing removes unwanted lines from a signature. (Too much smoothing causes loss of data in signatures. )
  • V.A.Terminate ends the current application. The method has no parameters and returns no value.
  • the MSR object may be accessed at any point after a good swipe.
  • MSR.AssignTrackNames assigns MSR information to MSR properties. On a good swipe, this method executes automatically.
  • MSR Reset clears all MSR properties. This method has no parameters and returns no values.
  • MSR.AccountNumber MSR. FirstName and MSR. LastName respectively hold the account number, the first-name information and the last-name information read as track one (1) of a good swipe. (Compare the MSR.Trackl property.)
  • MSR.Trackl, MSR.Track2 and MSR.Track3 hold the information read as tracks one (1), two (2) and three (3), respectively, of a good swipe.
  • MSR FirstName and MSR. LastName hold the first-name and last- name information, respectively, read as track one (1) of a good swipe.
  • designing the appearance of an iPOS-device screen is as straightforward as using a drawing program.
  • the graphical nature of the development software saves development time.
  • the signature-capture and magnetic-strip-reading controls enable developers to create applications that capture a signature, read credit cards and display forms for user input.
  • iPOS-resident applications can trigger iPOS-resident applications.
  • the iPOS application runs to completion, it can return information such as a signature or magnetic-strip values to the triggering applications.
  • the development software 11231b insulates developers from lower-level coding that is necessary if directly using the SDK 11231d.
  • the SDK 11231d supplies software components such as encryption and POS libraries while the development software 11231b provides an environment for rapid and visual application development.

Abstract

An apparatus for developing a point-of-sale (POS) application including a development host, a POS device and a link communicatively connecting host and POS device. On the development host, software automatically generates code to present a graphical user interface (GUI) for developing an application for the POS device. The GUI offers a control for affecting the appearance and behaviour of the POS device. The controls may include a standard (or modified) Visual Basic control. Code may be generated automatically in multiple modes: automatically generating code for a POS application resident on host, or resident on a POS device.

Description

A VISUAL DESIGN TOOL FOR INTERACTIVE SALE DEVICES
RELATED APPLICATIONS
This application claims the benefit of the filing date(s) of the following earlier applications(s): U.S. Patent Application No. 60/137,575, entitled, "A Web-
Enabled Point-of-Sale Device," filed June 4, 1999, naming Scott T. Allan, Timothy L. Droz, Alexander F. Fraikor, Jeffrey T. Miles and J. G. Stout as inventors, with Attorney Docket No. P-68133/T0H/LM, and under obligation of assignment to ReceiptCity.com of San Jose, California; and U.S. Patent Application No. 60/141,380, entitled. "An
Electronic-Receipts Service," filed June 28, 1999, naming Llavanya Fernando and Aziz Valliani as joint inventors, with Attorney Docket No. P-68207/TOH/LM, and under obligation of assignment to ReceiptCity.com of San Jose, California. The benefit applications are incorporated herein by reference.
This invention relates to software design and development and to point-of-sale devices. More specifically, this invention relates to application-development-kit software for controlling the appearance and behavior of interactive point-of-sale devices - both legacy and new.
BACKGROUND
Developing compiled code for a point-of-sale (POS) device can be difficult and tedious - especially with a complex, graphical device. The typical software development kit for this task is command driven, requiring an application developer to code line by line for a desired result.
Consider an example of placing boxed text on the screen of a POS device. The developer might include commands corresponding to the following pseudo-code:
Clear_Screen() ; Set_Pen_Color BLACK; X_Location = Set_X_Location_of_Box( ) ; Y_Location = Set_Y_Location_of_Box();
Write_Text( "Hello, World!", X_Location, Y_Location); Draw_Rectangle(X_Location, Y_Location, Rectangle_Width, Rectange_Height);
Draw Screen;
The developer then compiles the code, transfers it to the POS device and executes it. Only then does he (or she) see whether the code produces boxed text with the desired appearance and/or behavior.
If, say, the text is too far to the right on the POS-device screen or the rectangle is too large, the developer makes a best guess at the appropriate correction, changes the command sequence accordingly, re- compiles, re-transmits and re-executes the code. Again, only then does he see whether the (now modified) code produces boxed text with the desired appearance and behavior.
Accordingly, a need exists in the art for a design tool that gives the application developer more immediate feedback - and most preferably, substantially instantaneous feedback - on the effects of code creation and code changes on the appearance and behavior of a POS-device screen.
From a different angle, integrating POS-device functionality into legacy software and hardware systems can also be difficult. Sensitive systems such as financial transaction networks need to be thoroughly tested after they are modified. Proprietary sales applications are often guarded as trade secrets. Dated equipment are notoriously prone to failure with seeming the slightest modification to software. The less such code is disturbed, the more easily it can be readied for reuse.
Accordingly, there is a need in the art for a software- development tool that enables the integration of emerging POS technologies into legacy POS systems with only light modifications to existing hardware. There is also a need for a tool that speeds the development of POS-transaction applications, nonetheless producing stable code. These and other goals of the invention will be readily apparent to one of ordinary skill in the art on reading the background above and the description below.
SUMMARY
Herein are described apparatus and methods for developing a point-of-sale (POS) application. In various embodiments, the apparatus includes a development host, a POS device and a link communicatively connecting the host and POS device. On the development host, software presents a graphical user interface (GUI) for developing an application for the POS device. Under certain conditions, the software automatically generates code for the POS application in response to a developer's using that GUI. For example, the GUI offers a control for affecting the appearance or behavior of a POS device. The automatic generation of code involves generating code for that control in the POS application. The developer's selecting the offered code drives the automatic generation of code for the selected control. The method may be repeated, adding code to the POS application control by control.
The GUI may display the control on the screen of the development host. The code in the POS application for the selected control re-creates substantially identically the appearance and behavior of the control on the development screen.
The controls offered may include a standard Visual Basic control, as well as a modified Visual Basic control. The standard control may be from a set of standard Visual Basic controls, including lines. The modified control may be from a set of modified Visual Basic controls, including command buttons, images, labels, text boxes, lists boxes, shapes and timers.
The GUI may offer a control that is neither a standard nor a modified Visual Basic control, such as a signature-capture control or a magnetic-strip reader control.
Code may be generated automatically in multiple modes. One mode may automatically generate code for a POS application that is resident on a host communicating with a POS. Another mode may automatically generate code for a POS application that is resident on a POS device. (The controls offered in one mode may be different from the controls offered in another mode.)
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates a development environment incorporating an embodiment of the invention.
Figure 2 illustrates the development host of Figure 1, incorporating an embodiment of the invention.
Figure 3 illustrates the relationships among components of the software on the development host of Figure 1, according to one embodiment of the invention.
Figures 4A through 4C illustrate the organization of objects, properties and methods for the script-mode development software.
Figures 5A and 5B illustrate the organization of objects, properties and methods for the VB-mode development software. Figure 6 illustrates the relationships among" components of the software on the POS device of Figure 1, according to one embodiment of the invention.
DESCRIPTION OF THE INVENTION
ARCHITECTURE
Figure 1 illustrates a development environment 100 incorporating an embodiment of the invention. The development environment 100 includes a development host 110, a POS device 120 and a communications link 130. The link 130 communicatively couples the host 110 and the POS device 120.
Figure 2 illustrates the development host 110, incorporating an embodiment of the invention. The development host 110 may include the following: a central processing unit ("CPU") 111, a memory 112, a user interface 113, a port 114, a communications interface 115, a co-processor 116 and an internal bus 117. The bus 117 communicatively interconnects the CPU 111, memory 112, user interface 113, port 114, communications interface 115 and co-processor 116. (Of course, in a distributed computing environment, some of these components may be on separate physical machines, as is well understood in the art of distributed computing.)
A PC-compatible computer is an example of a host 110. The memory 112 includes high-speed, volatile random-access memory (RAM) 1122, as well as non-volatile memory such as read-only memory (ROM) 1121 and magnetic disk drives. Further, the memory 112 contains software 1123. The software 1123 is layered: Application software 11231 communicates with the operating system 11232, and the operating system 11232 communicates with the 1/0 subsystem 11233. The 1/0 subsystem 11233 communicates with the CPU 111, user interface 113, the communications interface 115 and the co-processor 116 by means of the communications bus 117. The memory 112 may be programmed according to the methods described herein. More particularly, Figure 3 illustrates the relationships among components of the software 11231, according to one embodiment of the invention. The iPOS software 11231a is the highest- level application software 11231. The iPOS software 11231a builds upon the iPOS development software 11231b. The iPOS development software 1123b optionally builds upon the prior-art POS software developer's kit (available from @POS.com, San Jose, California) and, in any event, upon the prior-art Visual Basic software 11231c (available from Microsoft Corp., Redmond, Washington).
The user interface 113 may include a mouse 1131, a keyboard 1132, a display 1133 and voice-command sub-system 1134. The user interface 113 may include other sub-systems for human direction of the development host 110 or other sub-systems for human perception of the state of the development host 110.
The communications interface 115 communicatively couples the development host 110 to the communications link 113.
The POS device 120 is of a type known in the art. The device 120 is preferably interactive, that is to say, an iPOS device. The iPOS TC (available from (aP0S.com, San Jose, California) is an example iPOS device 120.
In various embodiments, the invention may be a development environment 100, a development host 110, application software 11231 or 11231a. development software 11231b or the iPOS software generated by the development software 11231b for execution on an iPOS device 120. Each of these facets is described further herein.
MODES
As does every Visual Basic application, the iPOS software application forms a project. Forms are most often used in Visual Basic to make up the interface of an application. The development software 11231b adds start forms to Visual Basic. A developer creates screens o? an iPOS device 120 control by control.
(This application uses the terminology of Visual Basic 6.0 ("Visual Basic," herein, available from Microsoft Corp., Redmond, WA). See, for example, Microsoft Corp., Microsoft Visual Basic 6.0 Programer's Guide (Microsoft Press, Redmond, WA), 1998. The Microsoft Corp. reference is incorporated herein by reference, although the Applicant does not admit that the Microsoft Corp. reference is prior art.)
The development software 1123 may execute in "script" mode or in "VB" mode. Typically, a developer uses the script mode when iPOS terminals 120 and their programs are to integrate into existing programs. A common example is the retail point-of-sale General Sales Application (GSA, available from International Business Machine Corp., Armonk, New York) where new interactive applications must integrate with proprietary retail sales applications and dated equipment.
Scripts are programs compiled in the Visual Basic environment. In script mode, the development software 11231b creates applications that reside and execute on the iPOS terminal 120 and that are triggered by the existing retail applications. Developers typically use the VB mode to build stand-alone applications 11231a that reside on a host 110 and control an iPOS device 120 from the host 110. Alternatively, a developer may seek to integrate components created in VB mode with existing applications that reside and execute on a host 110. A common stand-alone application is security sign-in. VB mode is especially useful to developers who need to quickly develop iPOS applications or prepare mock ups and demonstrations for project proposals.
(The development software 11231b (in its runtime embodiment) automatically executes certain routines on the occurrence of predetermined events. The software 11231b, for example, executes a routine Screenlnitialize before the placement of the first control on an iPOS screen. As another example, an AfterScreenDraw( ) routine is executed after all the controls on the screen of the iPOS 120 are displayed.)
- SCRIPT MODE
Figures 4A through 4C illustrate the organization of objects, properties and methods available in development software 11231b in script mode. The objects are Disp (Display), Script, Sig (Signature), Sound, Stopwatch, Txtbox (TextBox), Unit and Var (Variable). Each of these is described in turn below.
The DISP commands relate to the visual aspects of iPOS scripts. The DISP commands change the visual displays that occur during script operations. The Display object may have the following methods: Box, Clear, DeleteAllControls, DrawLine, Frame, SetColor, SetFont, Text. keyPIN and GetPIN.
Disp. Box draws a filled box on the screen of the iPOS device. The method has four integer parameters: Left, Top, Width and Height. Left and Right respectively specify the distance from the left and right edges of the iPOS device screen. Width and Height respectively specify the width and height of the box. Disp. Box does not return a value.
Disp. Clear clears the screen. The method has no parameters and does not return a value.
Disp.DeleteAllControls removes all objects from the screen. The method has no parameters and does not return a value. Disp.DrawLine draws a line on the screen. The method has four integers parameters. As a tuple (XI, YD, the first two parameters specify the coordinates of the start of the line. Correspondingly, as a tuple (X2, Y2), the last two parameters specify the coordinates of the end of the line. The method does not return a value. Disp. Frame draws unfilled rectangles on the screen. The method has four integer parameters: Left, Top, Width and Height. Left and Top respectively specify the distance from the left and top edges of the iPOS device screen. Width and Height respectively specify the width and height of the frame. Disp. Frame does not return a value.
Disp.SetColor sets the current color. The method has one parameter, specifying the color. Disp.SetColor does not return a value. Disp.SetFont sets the current font. The method has one parameter, specifying the font. Disp.SetFont does not return a value. Disp.Text displays text beginning at specified coordinates.
The method has three parameters: Left, Top and Text. Left and Top are integers that respectively specify the distances from the left and top edges of the screen. Text is the string of text to be displayed.
Disp.Text does not return a value.
Disp.GetPIN displays a (derived unique key per transaction
(DUKPT)) PIN entry prompt and returns a standard binary DUKPT PIN as a string. The method has two parameters: Title and Account. Title is an optional string specifying the displayed title of the screen. Account is a string of ASCII digits, specifying the account number.
Disp.GetPIN encrypts a pin returned as a binary value. An error or cancelled entry may be indicated by a zero-length return value. Disp.MkeyPIN displays a PIN entry prompt and returns a standard Masterkey PIN. The method has four parameters: Title, Account,
Skey and MkeylD. Title and Account are as described immediately above with respect to Disp.GetPIN. Skey is a transaction/session key, and
MkeylD is a stored master key ID. Script commands handle logic that deals with scripts.
Navigating and branching are examples. The Script object may have the following methods: DoNothing, GotoRoutine, GotoScreen, GotoVar, IfFalse,
IfTrue, Pause and StopScript.
Script.DoNothing is a place holder or N00P. The command may be used with If statements where the Else clause is to do nothing.
Script.DoNothing does not return a value. Script.GotoRoutine executes the specified routine. The method has one parameter, the name of a user-defined routine. Script.GotoRoutine is not a subroutine call. Instead, it completely transfers execution of the script to the routine. Execution does not automatically return to the calling code.
Script.GotoRoutine returns TRUE if the code transfer was successful .
Script.GotoScreen displays a specified screen. The method has one parameter, the name of the screen form to display. Script.GotoScreen does not return a value.
Script.GotoVar is a goto statement. The method has one parameter, specifying the user-defined subroutine. Like Script.GotoRoutine, Script.GotoVar is not a subroutine call.
Script.GotoVar returns TRUE if the code transfer was successful .
Script. IfFalse is a conditional branch statement. The method has three parameters: Expression, ThenClause and ElseClause. Expression is a script command that returns a boolean value. ThenClause is a command that Script. IfFalse executes if Expression returns FALSE. Correspondingly, ElseClause is a command that Script. IfFalse executes if Expression returns TRUE.
Script. IfFalse does not return a value. Script. IfTrue is also a conditional branch statement. The method has three parameters: Expression, ThenClause and ElseClause. Expression is a script command that returns a boolean value. ThenClause is a command that Script..IfFalse executes if Expression returns TRUE. Correspondingly, ElseClause is a command that Script. IfFalse executes if Expression returns FALSE.
Script. IfTrue does not return a value. Script. Pause halts the execution of a script for the specified number of seconds. The method has one parameter, the number of seconds of delay. When a script is halted with Script. Pause, most actions nonetheless occur and most events are handled. (Button clicks are an example.) Script. Pause accommodates displaying messages and splash screens.
Script.Pause does not return a value. Script.StopScript completely halts execution of a script.
The method has not parameters and returns no values.
Sig commands manipulate signature data. The Sig object may have the following methods: Clear, Convert, GetCount, Height, InchesHigh, InchesWide, IsEmpty, Save and Width. Sig.Clear clears the signature area of a SigControl control.
The method has one parameter, the name of the SigControl. Sig. Clear does not return a value.
Sig.Convert changes signatures from one format to another. The method has two parameters, VarName and Format. VarName is a string containing signature information for conversion to another format. Format specifies the new format for the signature information.
Sig.Convert returns a string containing signature information.
Sig.GetCount counts the number of points for a signature. The method has one parameter, a string containing signature information. Sig.Count returns the point count for the specified signature.
Sig.Height determines the height (in pixels) of a specified signature. The method has one parameter, a string containing signature information. Sig.Height returns the pixel height of the specified signature.
Sig. InchesHigh determines the height of a specified signature in hundredths of inches. The method has one parameter, specifying the signature information. Sig. InchesHigh returns the signature height in inches times one hundred (100). Sig. InchesWide determines the width of a specified signature in hundredths of inches. The method has one parameter, specifying the signature information. Sig. InchesWide returns the signature width in inches times one hundred (100).
Sig. IsEmpty determines whether a specified variable holds a signature. The method has one parameter, specifying the SigControl variable to check. Sig. IsEmpty returns TRUE if the control has no signature in it.
Sig.Save moves signature data in a SigControl control to a binary variable. The method has two parameters: Control Name and VarName. ControlName is the name of the SigControl containing the signature data. VarName is a string variable. Sig.Save returns TRUE if the move was successful .
Sig.Width determines the signature width (in pixels) of a specified signature. The method has one parameter, a string containing signature information. Sig.Width returns the pixel width of the specified signature.
Sound commands control all audio output for an iPOS device 120. The Sound object may have the following methods: Bell and Tone. Sound. Bell causes an iPOS device 120 to make a specified sound. Sound.Bell has one parameter, specifying the type of bell sound to produce. The sound types may be, for example, an alarm, a failure bell, a normal bell and a success bell. Sound. Bell does not return a value.
Sound.Tone causes an iPOS device 120 to make a specified tone. The method has two parameters: FreqHz and BeatCount. FreqHz specifies the frequency of the tone to be generated. BeatCount specifies the duration of the tone to be generated. Sound.Tone does not return a value.
Stopwatch commands control the (sole, in one embodiment) timer in an iPOS device 120. The Stopwatch object may have the following methods: Continue, GetTimer, Pause and Start. Stopwach. Continue reactivates the (sole) iPOS-device timer from a Stopwatch. Pause command. The method has no parameters and returns no value. Stopwatch.GetTi e determines the number of seconds elapsed since activation of a specified timer. The method has no parameters. Stopwatch.GetTimer returns the determined time interval in seconds. Stopwatch.Pause halts the timer on an iPOS device 120. Stopwatch.Pause has no parameters and returns no values.
Stopwatch. Start initializes and starts the timer of an iPOS device 120. The method has no parameters and returns no value.
The TxtBox object may have the following methods: IsEmpty, Load, Save and SendKeys. TxtBox. IsEmpty determines whether a specified text box control contains data. The method has one parameter, specifying the text box control. TxtBox. IsEmpty returns True if the specified control does not contain data.
TxtBox.Load copies the content of a variable into a text box control. The method has two parameters: the name of the text box control and a string variable containing data. TxtBox. Load returns TRUE if the copy was successful .
Correspondingly, TxtBox.Save copies the contents of a text box control into a variable. The method has the two parameters described immediately above. TxtBox.Save returns TRUE if the copy was successful. TxtBox.SendKeys send text to a text box control and then refreshes the control's image. The method has two parameters: a text box control and a string. The command appends text to the contents of a control and returns TRUE if the append operation was successful. The Unit commands provide information about an iPOS device 120 on which a script is running. The Unit commands may include: Model and Version.
Unit.Model returns the model number of the iPOS terminal running the script. The method has no parameters. Unit.Version returns the version number of the software running on an iPOS terminal. The method has no parameters. Var commands manipulate variables. Accompanying the methods Delete, FindVar and SetVar are Var sub-commands that deal with binary (Bin), numeric (Num) and string (Str) variables.
The Bin object may have the following methods: SetVar, ToBase64 and ToHex. The Num object may have the following methods: Dec, Diff GetVar, Inc, IsEqual , IsGreaterThan, IsLessThan, SetVar and Sum. The Str object may have the following methods: Concat, GetVar, IsEqual, Left, Right and SetVar.
Var.Delete removes a variable name from the symbol table of an i OS device 120 and frees its memory resources. The method has one parameter, the name of the variable to be removed. Var. Delete does not return a value.
Var.FindVar indicates if a variable exits in the symbol table of an iPOS device 120. The method has one parameter: the name of the variable for which to check. Var.FindVar returns TRUE if the specified variable exists.
Var.SetVar assigns the result of a specified command into a specified variable. The method has two parameters: the name of a variable and a command that returns a value. Var.SetVar returns TRUE if it succeeds in setting the variable.
The Bin sub-commands are SetVar, ToBase64 and ToHex. Each of these sub-commands is described in turn below.
Var. Bin.SetVar sets a variable to a value. The method has two parameters, specifying the variable and the binary data. Var. Bin.SetVar returns true if it succeeds in setting the variable.
Var.Bin.ToBase64 converts binary data in a variable to base-64 format. The method has one parameter, specifying the variable containing binary data. Var.Bin.ToBase64 returns a string.
Var. Bin.ToHex converts binary data in a variable to a hexadecimal format. The method has one parameter, specifying the variable containing binary data. Var. Bin.ToHex returns a string. The Num sub-commands are Dec, Diff, GetVar, Inc, IsEqual, IsGreaterThan, IsLessThan, SetVar and Sum. Each of these sub-commands is described in turn below.
Var. um.Dec decrements the value of a variable by one. The method has one parameter, the variable to decrease. Var. Num.Dec does not return a value.
Var. Num. Diff subtracts a specified amount from a variable. The method has two parameters, both numeric variables. Var. Num.Diff returns the difference between the two numbers. Var. Num.GetVar has one parameter, a variable. The method returns the numeric value assigned to the variable.
Var. Num. Inc increments the value of a variable by one. The method has one parameter, the variable to increase. Var. Num. Inc does not return a value. IsEqual, IsGreaterThan and IsLessThan respectively determine whether a variable's value is identical to, greater than or less than a specified value. Each method has two parameters, the variable and the value. Each method returns a boolean value.
Var.Num.SetVar assigns a value to a variable. The method has two parameters, a variable and a value. Var. Num.SetVar returns TRUE if it succeeds in assigning the value to the variable.
Var. Num.Sum sums integers. The method has two parameters, two variables. Var.Num.Sum returns the sum of its parameters.
The Var.Str sub-commands are Concat, GetVar, IsEqual, Left, Right and SetVar. Each of these methods is described in turn below.
Var.Str. Concat has two parameters, two strings to concatenate. The method returns a string that is the concatenation.
Var.Str.Get has one parameter, a variable. The method returns the string stored in the variable. Var. IsEqual determines whether two strings are equal. The method has two parameters, the strings to compare, and returns a boolean value. Var.Str. Left has two parameters, a string and an integer count. The method returns a string that is the sub-string from the left end of the specified string and of length count.
Similarly, Var.Str. Right has two parameters (as described immediately above). The method returns a string that is the sub-string from the right end of the specified string and is of length count.
Var.Str.SetVar assigns data to a variable. The method has two parameters, a variable and data for storage. Var.Str.SetVar returns TRUE if it succeeds in assigning the data.
-- CONTROLS
The invention incorporates as-is certain controls from the Visual Basic programming environment, modifies and incorporates other controls from Visual Basic and adds controls non-existent in Visual Basic. All Visual Basic controls may not display and work on all iPOS devices 120.
In script mode, the development software 11231b uses unchanged the following controls: lines. Their appearance and behavior are the same as in a conventional Visual Basic environment. The software 11231b modifies the behavior of the following pre-existing controls: command buttons, images, labels, text boxes, list boxes, shapes and timers. (The behavior of a customized (modified) control may depend on the mode (script or VB) of its use.)
Each of these controls is described in turn below.
--- COMMAND BuπONS
The behavior of the command button control tracks the behavior of that control in Visual Basic. However, while the FontSize, Caption and Style properties are available as in Visual Basic, the Caption property may not be used to create keyboard shortcuts - - - IMAGES
With respect to the image control, the size of an image on a device 120 depends on its pixel dimensions. An image displays on the device 120 with the same number of pixels as the image on the host display. (An image may be adjusted once placed on a form but looks better if adjusted in the image-generating application.)
The properties of an image control are the same as in a standard Visual Basic environment.
--- LABELS
The label control works as in a conventional Visual Basic environment with the exception that text does not wrap. Therefore, in the development-software environment, multiple labels are used for multiple lines of text. The Caption and FontSize label properties are available.
(When a developer adds code under the _Click event for a label, the development software 11231b creates a hidden button in front of the label and assigns the _Click-event code to that hidden button.)
- - - TEXT BOXES
The text box control appears and behaves as does a label as modified herein. Like labels, multiple lines of text use multiple text boxes .
The BorderStyle and FontSize properties are available.
--- LINES
A line control behaves as it does in Visual Basic. The Visible, XI, Yl, X2 and Y2 properties are available. --- LIST BOXES
In script mode, a list box control behaves like a serial marquee: A sequence of words (a line of text, for example) appears one word at a time in the list box window.
The List and FontSize properties are available.
--- SHAPE
Unlike the shape control in Visual Basic, the shape control in the inventive development environment draws only rectangles. The FillStyle property is available for configuration.
--- TIMER
In Visual Basic, a Timer control can execute code at regular intervals by causing a Timer event to occur. In the inventive software- development environment, a timer control behaves like a "countdown" timer: It waits for the number of seconds specified in the Interval property then executes the code under the timer event. The countdown occurs only once. Displaying a sequence of screens is an example of this timer's usefulness.
As the above suggests, the Interval property is configurable.
--- SIGCONTROL
The development software 11231b adds two controls not found in Visual Basic to the development-software environment: SigControl and MSRControl . SigControl allows developers to put a signature-capture box on an iPOS device 120 and to manipulate signature information.
The signature capture control has three configurable properties: BorderStyle, MaxSize ad Timeout. The BorderStyle property allows a developer to set the border style for the control. MaxSize limits the number of points collected per signature. Once the signer produces MaxSize pixels, the iPOS terminal 120 stops taking signature data.
The Timeout property sets the number of seconds following the user's lifting the pen from the iPOS terminal 120 and before a SigTimer event occurs.
--- MSRCONTROL
The magnetic strip control enables an iPOS terminal 120 to read magnetic strips on credit, debit, loyalty and like cards.
MSRControl activates a magnetic strip reader to capture the information. A magnetic strip control may be invisible on the iPOS device 120 but visible nonetheless on the developer's screen on the host 110. When a form containing a magnetic strip control activates, the magnetic- strip reader also activates. Once active, the MSR can accept information from cards. If a good swipe occurs, any code under the GoodSwipe event is executed.
The magnetic strip control has no configurable properties. With the select standard Visual Basic controls and the modified and new controls in the development software 11231b, a developer constructs an unconventional program and compiles it into a script using a DLL associated with the development software 11231b. Once a script is developed and compiled (or otherwise made resident) on a host 110, a developer may download the script into an iPOS device 120 by means of the communications link 130. (The iPOS device 120 stores the script in nonvolatile memory.) The host 110 and the device 120 may by design work substantially asynchronously, exchanging commands and other communications through the link 130. - COMMUNICATIONS
Communications between an iPOS device 120 and a host 110 occur in the form of three commands: GoToLabel, SetVar and GetVar. The GoToLabel command has the following syntax:
GoToLabel LabelName
where Label Name may be a routine name. On receipt of this command, the iPOS device 120 transfers the flow of execution to the parameter LabelName.
The SetVar command has the following syntax:
SetVar VarName, StringValue
where VarName is a variable name and StringValue is a string. SetVar enables a host 110 to set a string variable on the device 120. For example, a host 110 might set a variable named. "Date" to "12/01/1999" as follows:
SetVar Date, "12/01/99"
The GetVar commands has the following syntax:
GetVar(VariableName) as String
where VariableNa e is a variable name and GetVarO returns a string. GetVarO corresponds to SetVar in that the former enables a host 110 to retrieve a string value from an iPOS device 120. For example, if the script variable, "CreditCardNumber" holds credit-card data from an MSR read event, the host 110 may request that variable information from the script by issuing the following GetVar command:
GetVar( "CreditCardNumber")
The host 110 may read or write any text variable in a script on the device 120, using GetVarO and SetVarO. The host 110 initiates these exchanges of information. The device 120 does not itself invoke SetVarO or GetVarO.
- VB MODE
In VB mode, the visual programming environment highly parallels the iPOS environment. The application eventually produced replicates on the iPOS device 120 the objects and their appearance on host forms (with the exception of those intentionally hidden). Both the host 110 and the iPOS device 120 operate from the same software 1123. Program responses triggered by actions at the hosts closely match the programs responses triggered by actions at the iPOS device 120.
Honing an iPOS application proceeds quickly. As soon as the host 110 runs the application generated by the development software 11231b, the form appears on the iPOS device 120. The close coupling of the host 110 and iPOS device 120 effects a responsive interface that keeps clear the cause-and-effect relationships between application changes and application performance. Because the development host 110 can run the VB-mode application, a developer can test aspects of the application without having access to an actual iPOS device 120. To test a VB-mode application, the developer sets the development software 1123 into test mode. The different modes enable the developer to place application logic where it is most appropriate -- either on a host or on the iPOS terminal itself. That flexibility allows a developer to create transactions applications for practically any hardware and software configurations.
-- CONTROLS
In VB mode, the development software 11231b uses unchanged the following controls: check boxes, command buttons, images, labels, lines and list boxes. Their appearance and behavior are the same as in a conventional Visual Basic environment. Accordingly, each of these is described summarily below.
The software 11231b modifies the behavior of the following pre-existing Visual Basic controls: shapes and timers. Each of these controls, along with new, added controls, is described in turn below.
--- CHECK BOXES
The behavior of the check box control tracks the behavior of that control in Visual Basic. All of the following standard properties are available: Alignment, Appearance, BackColor, ForeColor, Caption, Enabled, Font, FontBold. Fontltalic, FontSt ikethru, FontUnderline. FontName, FontSize, Height, Width, Left. Top, Name, Style, Value, and Visible.
--- COMMAND BUTTONS
The behavior of the command button control tracks the behavior of that control in Visual Basic. All of the standard properties are available. --- IMAGES
The size of an image on a device 120 stretches to fit the size of the image control. (The image may be in any Visual Basic- ) compatible format.) The properties of an image control are the same as in a standard Visual Basic environment.
For increased display speed, an iPOS device 120 may store an image in its non-volatile memory. This way, the images appear faster, not being transmitted with each display.
--- LABELS
The behavior of the label control tracks the behavior of that control in Visual Basic -- including the wrapping of words. All of the standard properties are available.
--- LINES
The behavior of the line control tracks the behavior of that control in Visual Basic. All of the standard properties are available.
- - - LIST BOXES
The behavior of the list box control tracks the behavior of that control in Visual Basic. All of the standard properties are available.
--- SIGCONTROL
The development software 11231b adds two controls not found in Visual Basic to the development-software environment: SigControl and MSRControl. SigControl allows developers to put a signature-capture box on an iPOS 120 device and to manipulate signature information. The signature capture control has one configurable property: BorderStyle. The BorderStyle property allows a developer to set the border style for the control.
--- MSRCONTROL
The magnetic strip control enables the a iPOS terminal 120 to read magnetic strips on credit, debit, loyalty and like cards. MSRControl activates a magnetic strip reader to capture the information. A magnetic strip control may be invisible on the iPOS device 120 but visible nonetheless on the developer's screen on the host 110. When a form containing magnetic strip control activates, the magnetic- strip reader also activates. Once active, the MSR can accept information from cards. If a good swipe occurs, any code under the GoodSwipe event is executed. The magnetic strip control has one configurable property, the number of seconds to wait before firing the GoBack event on the form. (The default is for no timing out.)
--- SHAPE Unlike the shape control in Visual Basic, the shape control in the inventive development environment draws only rectangles. The standard BorderStyle, FillStyle and Fill Color properties are available for configuration.
- - - TIMER
A VB-mode timer control behaves like a standard Visual Basic timer control . - - V .A .
Figures 5A and 5B illustrate the organization of methods and properties for the VB-mode development software. V.A. commands relate to an attached iPOS device 120.
The prefixes for VB-mode commands herein are "V.A.," "MSR" and "SigBox." The V.A. commands are CurrentScreen, DisplayPreviousScreen, DisplayScreen, DrawLabel , DrawScreenHotSpot, ErrorDescription, FontHeight, FontWidth, InvertControl , MagOff, MagOn, PadFontSize. RedrawScreen. RefreshListBox, ScreenStackClear, ShowError, ShrinkWrap, Signature, Smoothing and Terminate.
The MSR commands are AssignTrackNames and Reset. The MSR properties are AccountNumber, FirstName, LastName, Trackl, Track2 and Track3. The SigBox command passes commands through to the POS device's SDK. This allows the software to take advantage of unique qualities of the POS device.
Each of these commands is described in turn below. V.A.CurrentScreen is a form method holding information about the currently displayed form. The method gives access to all the properties and methods of a form. V.A.CurrentScreen has no parameters and returns no values.
V.A.DisplayPreviousScreen navigates back to the previous screen. If the current screen is the first screen, the application terminates normally. V.A.DisplayPreviousScreen has no parameters and returns no values.
V.A.DisplayScreen displays a specified screen. The method has one parameter, the identity of the screen to display. V.A.DisplayScreen does not return a value. V.A.DrawLabel draws a label on the current screen. The method has two parameters, a label for display and an (optional) boolean indicator whether the screen under the label is to be cleared. V.A.DrawLabel does not return a value.
(V.A.DrawLabel changes a label's contents but does not display the change on the screen. The change appears on the execution of a subsequent V.A. RedrawScreen command.)
V.A.DrawScreenHotSpot creates an invisible button that covers the entire screen. When the screen is touched anywhere, the hidden button activates, and the GoNext command of the screen fires. V.A.DrawScreenHotSpot has no parameters and returns no value. V.A. ErrorDescription is a property for displaying error messages to the user. After the screen is redrawn, the error messages appears along with an "OK" button. Clicking of the OK button starts the application over at padStart.
V.A.FontHeight returns the height of a font. The method has one parameter, the font whose height is to be determined. V.A.FontHeight returns the height in pixels.
V.A. FontWidth returns the width of a font. The method has one parameter, the font whose width is to be determined. V.A. FontWidth returns the width in pixels. V.A. InvertControl reverses (inverts) the colors of a control on a screen. The method has one parameter, the identity of the control to reverse. V.A. InvertControl does not return a value.
V.A.MagOff and V.A.MagOn respectively turn off and turn on a magnetic-strip reader. The methods have no parameters and return no value.
V.A.PadFontSize returns the size of a font. The method has one parameter, the identity of any object with a (Visual Basic) font. V.A.ReDrawScreen clears the current screen and redraws it. The method has no parameters and returns no value. V.A. RefreshListBox redraws the list box control on the iPOS device 120. The method has one parameter, identifying a list control. V.A. RefreshListBox does not return a value. V.A.ScreenStackClear clears a stack of screens loaded to an iPOS device 120. The method has no parameters and returns no value.
V.A.ShowErrorMsg displays an error message on the IPOS screen with "OK" button. The method has one parameter, a text message to display. V.A.ShowErrorMsg does not return a value. (Compare V.A.ErrorDesription. )
V.A.ShrinkWrap is a boolean property. With ShrinkWrap set TRUE, any extra pixels surrounding a signature are trimmed off before the signature is saved. With ShrinkWrap set to FALSE, the entire signature screen (320 x 240 pixels, in some embodiments) is saved. A signature with dimension of 50 x 200 pixels takes up more than seven (7) times as much memory when ShrinkWrap is set to FALSE than when it is set to TRUE.
V.A.Signature saves a signature into a string variable. (See V.A.ShrinkWrap.) V.A.Smoothing is a property. It specifies the level of smoothing applied to captured signatures. Smoothing removes unwanted lines from a signature. (Too much smoothing causes loss of data in signatures. )
V.A.Terminate ends the current application. The method has no parameters and returns no value.
-- MSR
The MSR object may be accessed at any point after a good swipe. MSR.AssignTrackNames assigns MSR information to MSR properties. On a good swipe, this method executes automatically.
(MSR.AssignTrackNames has no parameters and returns no value.)
MSR. Reset clears all MSR properties. This method has no parameters and returns no values.
MSR.AccountNumber, MSR. FirstName and MSR. LastName respectively hold the account number, the first-name information and the last-name information read as track one (1) of a good swipe. (Compare the MSR.Trackl property.)
MSR.Trackl, MSR.Track2 and MSR.Track3 hold the information read as tracks one (1), two (2) and three (3), respectively, of a good swipe.
MSR. FirstName and MSR. LastName hold the first-name and last- name information, respectively, read as track one (1) of a good swipe.
With various aspects of the invention, designing the appearance of an iPOS-device screen is as straightforward as using a drawing program. The graphical nature of the development software saves development time. The selected, standard and modified controls of Visual Basic support boxes, buttons, pictures and lines for advertisements and graphics. The signature-capture and magnetic-strip-reading controls enable developers to create applications that capture a signature, read credit cards and display forms for user input.
Developers can create applications that reside and run on iPOS terminals. Existing programs 11231 can trigger iPOS-resident applications. When the iPOS application runs to completion, it can return information such as a signature or magnetic-strip values to the triggering applications.
Developers can create an iPOS-resident code that minimizes disruption of existing host code.
Developers can quickly modify projects and produce stable code for transaction applications. Developers can quickly create iPOS proof-of-concept demonstrations. The speed and ease with which the development software generates and complies scripts allows developers to rapidly iterate through potential solutions and optimize a solution. The development software 11231b insulates developers from lower-level coding that is necessary if directly using the SDK 11231d. The SDK 11231d supplies software components such as encryption and POS libraries while the development software 11231b provides an environment for rapid and visual application development.
The invention now being fully described, one of ordinary skill in the art will readily recognize many changes and modifications that can be made thereto without departing from the spirit of the appended claims. For example, as biometric identification systems come to POS platforms, controls to interact with such systems may be added to the development software. As another example, Visual Basic is one GUI environment. Another could be Visio® (available from Microsoft Corp., Redmond, Washington). Still another GUI environment could be a proprietary one created from scratch.

Claims

WHAT IS CLAIMED IS:
1. A method for developing a point-of-sale (POS) application, the method comprising: presenting a graphical user interface (GUI) for developing a POS application; and automatically generating code for a POS application in response to a developer's using that GUI.
2. The method of claim 1, wherein the step of presenting a GUI comprises offering a control for affecting one of the appearance and behavior of a POS device.
3. The method of claim 2, wherein the step of automatically generating comprises generating code for the control in the POS application.
4. The method of claim 2, wherein the method further comprises receiving input indicating the selection of the offered control ; and the step of automatically generating comprises generating code for the selected control in the POS application.
5. The method of claim 2, wherein the method further comprises receiving input indicating the selection of the offered control ; the step of automatical ly generating comprises generating code for the selected control in the POS application; and the method still further comprises repeating the method at least once from its beginning, adding code to the POS application control by control.
6. The method of claim 2, wherein the method further comprises receiving input indicating the selection of the offered control ; and displaying on a development screen the selected control; and the step of automatically generating comprises generating code for the selected control in the POS application.
7. The method of claim 2, wherein the method further comprises receiving input indicating the selection of the offered control ; and displaying on a development screen the selected control; and the step of automatically generating comprises generating code for the selected control in the POS application, the appearance and behavior of the selected control on the development screen substantially identical to the appearance and behavior of the selected control in the generated code.
8. The method of claim 2, wherein the step of offering a control for affecting one of appearance and behavior comprises offering a standard Visual Basic control; and offering a modified Visual Basic control.
9. The method of claim 2, wherein the step of offering a control for affecting one of appearance and behavior comprises offering a control from a set of standard Visual Basic controls, the set including lines; and offering a modified Visual Basic control.
10. The method of claim 2, wherein the step of offering a control for affecting one of appearance and behavior comprises offering a standard Visual Basic control; and offering a control from a set of modified Visual Basic controls, the set including command buttons, images, labels, text boxes, lists boxes, shapes and timers.
11. The method of claim 2, wherein the step of offering a control comprises offering a control that is neither a standard nor modified Visual Basic control .
12. The method of claim 2, wherein the step of offering a control comprises offering a control from a set of controls that are neither standard nor modified Visual Basic control, the set including a signature-capture control and a magnetic-strip reader control.
13. The method of claim 1, wherein the step of presenting comprises offering multiple modes of automatically generating code.
14. The method of claim 13, wherein the step of offering multiple modes comprises offering controls in a first of the multiple modes that are different from controls offered in the second of the multiple modes.
15. The method of claim 13, wherein the step of offering multiple modes comprises offering a mode for automatically generating code for a POS application that is resident on a host communicating with a POS.
16. The method of claim 13, wherein the step of offering multiple modes of presenting comprises offering a mode for automatically generating code for a POS application that is resident on a POS device.
17. The method of claim 13, wherein the step of offering multiple modes of presenting comprises offering a first mode for automatically generating code for a POS application that is resident on a host communicating with a POS; offering a second mode for automatically generating code for a POS application that is resident on a POS device; and offering controls in the first mode that are different from controls offered in the second mode.
PCT/US2000/015365 1999-06-04 2000-06-02 A visual design tool for interactive sale devices WO2000079493A1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US13757599P 1999-06-04 1999-06-04
US60/137,575 1999-06-04
US14138099P 1999-06-28 1999-06-28
US60/141,380 1999-06-28
US48088300A 2000-01-10 2000-01-10
US09/480,883 2000-01-10

Publications (1)

Publication Number Publication Date
WO2000079493A1 true WO2000079493A1 (en) 2000-12-28

Family

ID=27385040

Family Applications (7)

Application Number Title Priority Date Filing Date
PCT/US2000/015369 WO2000079496A2 (en) 1999-06-04 2000-06-02 A point-of-sale/service (pos) portal
PCT/US2000/015371 WO2000075835A2 (en) 1999-06-04 2000-06-02 A secure internet vault for consumer receipts, legal documents and commerce
PCT/US2000/015363 WO2000075890A1 (en) 1999-06-04 2000-06-02 Displaying color advertisements on point-of-sales/service (pos) platforms
PCT/US2000/015368 WO2000075834A2 (en) 1999-06-04 2000-06-02 An electronic-receipts service
PCT/US2000/015365 WO2000079493A1 (en) 1999-06-04 2000-06-02 A visual design tool for interactive sale devices
PCT/US2000/015195 WO2000075879A1 (en) 1999-06-04 2000-06-02 Obtaining a signature using a markup language
PCT/US2000/015257 WO2000075855A2 (en) 1999-06-04 2000-06-02 System for consumer-transaction information that follows the consumer

Family Applications Before (4)

Application Number Title Priority Date Filing Date
PCT/US2000/015369 WO2000079496A2 (en) 1999-06-04 2000-06-02 A point-of-sale/service (pos) portal
PCT/US2000/015371 WO2000075835A2 (en) 1999-06-04 2000-06-02 A secure internet vault for consumer receipts, legal documents and commerce
PCT/US2000/015363 WO2000075890A1 (en) 1999-06-04 2000-06-02 Displaying color advertisements on point-of-sales/service (pos) platforms
PCT/US2000/015368 WO2000075834A2 (en) 1999-06-04 2000-06-02 An electronic-receipts service

Family Applications After (2)

Application Number Title Priority Date Filing Date
PCT/US2000/015195 WO2000075879A1 (en) 1999-06-04 2000-06-02 Obtaining a signature using a markup language
PCT/US2000/015257 WO2000075855A2 (en) 1999-06-04 2000-06-02 System for consumer-transaction information that follows the consumer

Country Status (2)

Country Link
EP (1) EP1185945A2 (en)
WO (7) WO2000079496A2 (en)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694300B1 (en) * 1997-03-21 2004-02-17 Walker Digital, Llc Method and apparatus for providing supplementary product sales to a customer at a customer terminal
US6397194B1 (en) * 1995-05-08 2002-05-28 Image Data, Llc Receipt scanning system and method
US7236942B1 (en) 1997-12-19 2007-06-26 Walker Digital, Llc Pre-sale data broadcast system and method
GB2358723A (en) * 1999-09-09 2001-08-01 Ibm Creating and managing Electronic receipts
US7058592B1 (en) * 1999-11-29 2006-06-06 Microsoft Corporation Transmission of information during ad click-through
CA2399101A1 (en) * 2000-02-03 2001-08-09 Afterbot, Inc. Electronic transaction receipt system and method
US7552087B2 (en) 2000-02-03 2009-06-23 Afterbot, Inc. Electronic transaction receipt system and method
US7742989B2 (en) 2000-02-03 2010-06-22 Afterbot, Inc. Digital receipt generation from information electronically read from product
NO314866B1 (en) 2000-05-08 2003-06-02 Ericsson Telefon Ab L M Mobile receipt system
US7694332B2 (en) 2000-07-28 2010-04-06 Verisign, Inc. Digital receipt for a transaction
KR20020037188A (en) * 2000-11-13 2002-05-18 서재선 Apparatus and method for receipting and endorsing of electronic receipt
KR20020064469A (en) * 2001-02-01 2002-08-09 (주)한국전자증명원 Transaction Protect Service Offering Method of Public Key Infrastructure Through Internet and System Thereof
US7035813B1 (en) * 2001-02-15 2006-04-25 Sprint Communications Company L.P. Product registration using a code processing system
US20030028485A1 (en) * 2001-06-27 2003-02-06 Huberman Bernando A. System and method for providing convenient global access to and storage of personal and business information
KR20030045881A (en) * 2001-12-03 2003-06-12 스타브리지커뮤니케이션 주식회사 Method for issuing electronic receipt by dealing of credit card and method for providing search service of dealing list
AU2002358457A1 (en) * 2001-12-10 2003-06-23 Beamtrust A/S Method of managing lists of purchased goods
US20030120607A1 (en) * 2001-12-20 2003-06-26 Koninklijke Philips Electronics N.V. E-receipt verification system and method
AUPS331202A0 (en) * 2002-06-28 2002-07-25 Intellect Holdings Limited A method for transacting a trade electronically, and a system therefor
US20040064373A1 (en) * 2002-09-30 2004-04-01 Shannon Robert W. J. Point of sale receipt service
WO2005050407A2 (en) * 2003-11-17 2005-06-02 International Outsourcing Services, Llc Systems and methods for credit card charge validation over a network
WO2006110605A2 (en) * 2005-04-08 2006-10-19 American Express Travel Related Services Company, Inc. System and method for merchant acquisition data capture
DE102005052700A1 (en) * 2005-04-18 2006-11-02 NIEDERHAGEBÖCK, Guilherme Apparatus and methods for generating user-related documents
GB2439966A (en) * 2006-07-07 2008-01-16 Comtech Holdings Ltd Product alarm
US8024267B2 (en) * 2007-09-14 2011-09-20 Ebay Inc. Centralized transaction record storage
US8949226B2 (en) 2012-10-02 2015-02-03 Wal-Mart Stores, Inc. Searching digital receipts at a mobile device
US9330382B2 (en) 2013-01-31 2016-05-03 Wal-Mart Stores, Inc. Method to facilitate an in-store audit after issuance of an electronic receipt
US10417387B2 (en) 2016-01-28 2019-09-17 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for mobile check-in in retail store
US10445473B2 (en) 2016-01-28 2019-10-15 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for evaluating search engine results and displaying a virtual pill case
US10445471B2 (en) 2016-01-28 2019-10-15 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for mobile check-out in retail store
US10621645B2 (en) 2016-01-28 2020-04-14 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for endless aisle of products in retail store
US10762985B2 (en) 2016-01-28 2020-09-01 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for generating accounts for use in computer systems
US10417231B2 (en) 2016-06-28 2019-09-17 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for locating a receipt for a product
EP3568825A4 (en) * 2017-01-13 2020-07-08 JPMorgan Chase Bank, N.A. Systems and methods for management of asset or obligation-backed virtual receipts on a distributed system
US11562060B2 (en) 2020-10-01 2023-01-24 Conveyance Media Group LLC Secure private portable vault container

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0727740A2 (en) * 1995-02-14 1996-08-21 NCR International, Inc. Systems for generating a control program for a target apparatus
EP0841614A2 (en) * 1996-10-31 1998-05-13 Ncr International Inc. System and method for building, testing and integrating a graphical touch user interface
US5764226A (en) * 1995-12-29 1998-06-09 International Business Machine Corp. Reusable and modifiable data entry interface part
WO1999004349A1 (en) * 1997-07-15 1999-01-28 Koninklijke Philips Electronics N.V. A method and system for designing a graphical user interface for an electronic consumer product

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0082225B1 (en) * 1981-12-23 1987-05-06 International Business Machines Corporation Business system
US4882675A (en) 1984-11-26 1989-11-21 Steven Nichtberger Paperless system for distributing, redeeming and clearing merchandise coupons
JPS62226271A (en) * 1986-03-27 1987-10-05 Tokyo Electric Co Ltd Automatic switching device for pos loop
US4884199A (en) * 1987-03-02 1989-11-28 International Business Macines Corporation User transaction guidance
US5235509A (en) * 1989-06-28 1993-08-10 Management Information Support, Inc. Customer self-ordering system using information displayed on a screen
JPH03223958A (en) * 1990-01-29 1991-10-02 Hitachi Ltd Transaction inquiring method
US5334821A (en) * 1992-07-16 1994-08-02 Telxon Corporation Portable point of sale terminal
WO1994009458A1 (en) * 1992-10-13 1994-04-28 Gilbarco Inc. An apparatus and method for displaying video information
US5455406A (en) * 1992-12-15 1995-10-03 Hitachi, Ltd. Automatic transaction apparatus
US5537315A (en) * 1994-03-23 1996-07-16 Mitcham; Martin K. Method and apparatus for issuing insurance from kiosk
US5590038A (en) * 1994-06-20 1996-12-31 Pitroda; Satyan G. Universal electronic transaction card including receipt storage and system and methods of conducting electronic transactions
US5544255A (en) * 1994-08-31 1996-08-06 Peripheral Vision Limited Method and system for the capture, storage, transport and authentication of handwritten signatures
US5732400A (en) * 1995-01-04 1998-03-24 Citibank N.A. System and method for a risk-based purchase of goods
US5696909A (en) * 1995-01-27 1997-12-09 Hypercom, Inc. Virtual POS terminal
JPH08279078A (en) * 1995-04-06 1996-10-22 Fujitsu Ltd Purchase data display method and article registration system
GB9520463D0 (en) * 1995-10-06 1995-12-06 Green Graham M Color-categorized POS station clerk performance evaluation systems and methods
JPH09237298A (en) * 1996-02-29 1997-09-09 Hitachi Ltd Electronic currency settlement system
GB2313276B (en) * 1996-05-14 2001-05-02 Fujitsu Ltd Panel displaying method of order receiving pos terminal and order receiving pos terminal
US5739512A (en) * 1996-05-30 1998-04-14 Sun Microsystems, Inc. Digital delivery of receipts
US5915022A (en) * 1996-05-30 1999-06-22 Robinson; Rodney Aaron Method and apparatus for creating and using an encrypted digital receipt for electronic transactions
WO1997049050A2 (en) * 1996-06-17 1997-12-24 Verifone, Inc. A system, method and article of manufacture for managing transactions in a high availability system
US5889863A (en) * 1996-06-17 1999-03-30 Verifone, Inc. System, method and article of manufacture for remote virtual point of sale processing utilizing a multichannel, extensible, flexible architecture
JPH1040388A (en) * 1996-07-26 1998-02-13 Pilot Corp:The Device for inputting signature and system for collating signature
DE19646733A1 (en) * 1996-11-13 1998-05-14 Rene Baltus Signature writing surface for signature checking device
AU3497397A (en) * 1996-12-24 1998-07-17 Meridian Enterprises, Inc. System and method for administration of an incentive award program through use of credit
US6490567B1 (en) * 1997-01-15 2002-12-03 At&T Corp. System and method for distributed content electronic commerce
AU2305297A (en) * 1997-03-19 1998-10-12 Trintech Limited A point-of-sale transaction processing system
JPH10275191A (en) * 1997-03-31 1998-10-13 Hitachi Ltd Electronic transaction system
TW432305B (en) * 1997-03-31 2001-05-01 Hitachi Ltd Electronic commerce transaction system
US6193152B1 (en) 1997-05-09 2001-02-27 Receiptcity.Com, Inc. Modular signature and data-capture system and point of transaction payment and reward system
US5899980A (en) * 1997-08-11 1999-05-04 Trivnet Ltd. Retail method over a wide area network
US6128603A (en) * 1997-09-09 2000-10-03 Dent; Warren T. Consumer-based system and method for managing and paying electronic billing statements
NZ503311A (en) * 1997-09-12 2003-05-30 Amazon Single action method and system for placing a purchase order via a communications network
US5883810A (en) * 1997-09-24 1999-03-16 Microsoft Corporation Electronic online commerce card with transactionproxy number for online transactions
AU1119599A (en) 1997-10-24 1999-05-17 Penware, Inc. Method and system for automated electronic receipt of transactions
BR9815131A (en) * 1997-12-02 2005-05-31 Cash Technologies Inc Automated transaction network, automated transaction terminal, and process for transacting with one of several service providers from an automated transaction terminal
WO1999066446A1 (en) * 1998-06-19 1999-12-23 Walker Digital, Llc Billing statement customer acquisition system
JP2000036000A (en) * 1998-06-30 2000-02-02 Sun Microsyst Inc Neutral observer in electronic commercial transaction
WO2000055729A1 (en) * 1999-03-15 2000-09-21 Netpliance, Inc. Dedicated internet access device and method for use
WO2000067218A1 (en) * 1999-05-03 2000-11-09 The Chase Manhattan Bank System and method for effectuating electronic payments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0727740A2 (en) * 1995-02-14 1996-08-21 NCR International, Inc. Systems for generating a control program for a target apparatus
US5764226A (en) * 1995-12-29 1998-06-09 International Business Machine Corp. Reusable and modifiable data entry interface part
EP0841614A2 (en) * 1996-10-31 1998-05-13 Ncr International Inc. System and method for building, testing and integrating a graphical touch user interface
WO1999004349A1 (en) * 1997-07-15 1999-01-28 Koninklijke Philips Electronics N.V. A method and system for designing a graphical user interface for an electronic consumer product

Also Published As

Publication number Publication date
WO2000075855A2 (en) 2000-12-14
WO2000075834A2 (en) 2000-12-14
WO2000079496A2 (en) 2000-12-28
WO2000075834A3 (en) 2001-05-25
WO2000075890A1 (en) 2000-12-14
WO2000075835A2 (en) 2000-12-14
EP1185945A2 (en) 2002-03-13
WO2000079496A3 (en) 2001-02-15
WO2000075835A3 (en) 2001-05-03
WO2000075879A1 (en) 2000-12-14
WO2000075855A3 (en) 2001-06-28

Similar Documents

Publication Publication Date Title
WO2000079493A1 (en) A visual design tool for interactive sale devices
EP0284764B1 (en) Improved user transaction guidance
US5960199A (en) Model trace view for object-oriented systems
RU2253150C2 (en) Atm system and method for realization thereof
US5644728A (en) Control systems
CA2093839C (en) Method and system for demonstrating a computer program
US7302683B2 (en) Method and apparatus for controlling communications
US7077312B2 (en) Automated banking machine system and method
EP0756726B1 (en) Trainable user interface translator
US6856964B1 (en) System and methods for integrating a self-checkout system into an existing store system
US20020138431A1 (en) System and method for providing supervision of a plurality of financial services terminals with a document driven interface
US20020032655A1 (en) System and method for providing financial services terminals with a document driven interface
AU2004232121A2 (en) Smart card personalization assistance tool
JPH06139193A (en) Data-control-network designing apparatus for modeling entire process
WO1996006403A1 (en) Method and apparatus for the development and implementation of an interactive and dynamically responsive customer service system
CZ20031173A3 (en) System and method for providing safety to financial service terminals with document-controlled interface
US20010029490A1 (en) Automatic transaction device and recording medium having a transaction program which can be read by a computer
CN112230820B (en) Method, device and medium for displaying activity information and electronic equipment
RU2002104360A (en) SYSTEM OF AUTOMATED BANKING MACHINES AND METHOD OF IMPROVEMENT
EP1369796A2 (en) Customizable electronic bill presentment and payment system and method
US7577903B1 (en) Defining a process by a plurality of pages defined in a mark-up language
AU753163B2 (en) Method and apparatus for controlling communications
Sels et al. A Fixed NFC Payment Terminal for the Event-Wallet on an Android Tablet.
Fatimi Comparison of Mobile and Native Technologies for Mobile MES Applications
Gauton et al. Memis-Mheg environment for multimedia information and simulation

Legal Events

Date Code Title Description
AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase