Abstract: An application that runs on a browser of a terminal can appropriately control a device connected to a controller. In a POS systeml, anapplicationAPthatruns onabrowser of the tablet device 10 requests a controller 11 for control of a device connected to the c0ntr0ller11.Thecontroller11fromwhichdevicecontrolwasrequested establishes control of the device, and after the controller 11 establishes control of the device, the tablet device 10 establishes control of the device by the application AP through the controller 11.
BACKGROUND
1. Technical Field
[00011
The present disclosure relates to a control method of a control
system including a control device to which a device is connected,
and a terminal that communicates with the control device.
I 2. Related Art
[0002]
A control system (POS system) that has- a POS terminal and a POS
I controller connected to the POS terminal, and executes processes
including recording images by the cooperation of the POS terminal
and POS controller, is known from the literature. See, for example
I JP-A-H05-73769. Devices such as a barcode scanner and card reader
are normally connected to the POS terminal in this type of control
system.
[00041
The control system disclosed in JP-A-H05-73769 anticipates
controlling devices connected to a POS terminal, which functions as
a control device, by means of an application that runs on a browser
of the POS controller, which functions as a terminal device. This
implementation requires appropriately controlling the connected
device by means of the application using functions of the browser.
SUMMARY
[00051
In a control method of a control system including a terminal
configuredtoexecuteanapplicationonabrowser, adevice configured
>
, I 1 1 - 3 -
I I
t!o sehd or reqeive data and a controller connected to the device
I according to the disclosure,
transmittingarequest foradevice control fromthe application
to the controller;
executinganestablishingofthedevicecontrolbythecontroller
at the controller, after the controller receives the request;
executinganestablishingofthedevicecontrolbytheapplication
through the controller at the terminal after the controller executes
the establishing of the device control by the device control.
[ 0 0 0 6 ]
In the disclosure, the establishing of the device by the control
device is establishing a state in which the device can be caused to
execute a process based on a request from the terminal.
In the disclosure, the establishing of the device control by
the controller also includes to establish a state in which data can
be sent and received between the device and the terminal.
[00071
In the disclosure, the establishing of the device control by
the control device also includes to instantiate a control object
configuredtohandledata communicationwiththe deviceby the control
device.
[ 0 0 0 8 ]
In another disclosure, the establishing of the device control
by the application through the control device is to instantiate on
the terminal an interface object configured to communicate with the
control object.
60009'3 , t
In another disclosure, the device is a printer is configured
to print; the application transmits a request for a printer control
to control of the printer; the controller executes an establishing
of the printer control based on received request for the printer
control;andafterthecontrollerexecutestheestablishingtheprinter
through the controller.
Other objects and attainments together with a fuller
understanding of the disclosure will become apparent and appreciated
by referring to the following description and claims taken in
conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
F I G . 1 is a block diagram showing the configuration of a POS
system according to a preferred embodiment of the disclosure.
F I G . 2 is a block diagram showing the functional configuration
of devices in the POS system.
F I G . 3 is a function block diagram of the browser execution unitand
the device control unit.
F I G . 4 is a flow chart of instantiating control and interface
objects.
F I G . 5 is a flowchart of deletingcontrol andinterfaceobjects.
F I G . 6 shows an example of a user interface.
F I G . 7 is a flow chart of a process executed after a barcode
is read by the barcode scanner.
F I G . 8 is a flow chart of printing with the printer unit.
F I G . 9 is a flow chart showing the operation of a tablet and
control device.
F I G . 10 is a flow chart showing the operation of a tablet and
DESCRIPTION OF EMBODIMENTS
[OOll]
A preferred embodiment of the present disclosure is described
below with reference to the accompanying figures.
FIG.1i~ablo~kdiagramschematicallyshowingtheconfiguration
of a POS (point-of-sale) system 1 (control system) according to a
preferred embodiment of the disclosure. FIG. 2 is a block diagram
showingthefunctionalconfigurationofatabletdevice10 (terminal),
control device (controller) 11, and POS server 17 in the POS system
1.
The POS system 1 is a system used, for example, in a retail store
in a shopping center, a department store, or convenience store, in
the food service industry such as a restaurant, coffee shop, or bar,
and in other types of businesses and facilities. The functions of
the POS systemlinclude, for example, managingproduct sales, product
inventory, and sales trends in a store, processing sale transactions
at checkout counters L in a store according to the products purchased
by a customer, producing receipts based on the payment received from
the customer, and providing transaction-related information to the
customer.
Checkout counters L where sale transactions are processed are
located in a store where the POS system 1 is used. One control device
11andatabletdevice10thatcommunicateswirelesslywiththe control
device 11, are installed at each checkout counter L.
The tablet device 10 is atabletcomputer, andmore particularly
in this embodiment as shown in FIG. 6 and described below, the tablet
device 10 is a computer that has a touch panel 30 covering substantially
the entire front surface and enables input by touch.
f The ,tablqt device 10 is a terminal used by the checkout clerk
responsiblefortransactionsatthecheckoutcounterL, andasdescribed
belowprovides auser interface tothe checkout clerk when processing
a transaction at the checkout counter L.
The control device 11 is a device that functions as a device
controller. As shown in F I G . 2, connected to the control device 11
aredevices suchasabarcode scanner12 (device) for readingbarcodes
onproductsorproductpackaging, acashdrawer13 (device) forholding
cash, checks, or other payment instruments, and a display 14 (device)
for displaying transaction data for the customer.
[00121
As shown in F I G . 2, the control device 11 includes a control
unit 20, a printer unit 21 (printer, print unit, device) , a storage
unit 22, and a communication module 23.
The control unit 20 controls parts of the control device 11,
andincludes CPU, ROM, RAM, andotherperipheralcircuits. The control
unit 20 also has a device controller 20a, but this function block
is described further below.
The printer unit 21 (process unit) includes a conveyance mechanism
forconveyingrollpaper, aprintmechanismthatprintstextandimages
on the roll paper using a thermal head, and a cutting mechanism for
cutting the roll paper, and can produce a receipt by cutting the roll
paper at a specific position after printing a receipt-related image
on the roll paper.
The storageunit22 includes EEPROMorothernonvolatilememory,
and stores data nonvolatilely so that the data can be overwritten.
The communicationmodule 23 includes amodule andcircuits, such
as a network card conforming to a particular communication standard,
for communicating wirelessly with the tablet device 10, and
communicates wirelessly according to the specific communication
1 I
~tanc&ard,with~thtea blet device 10 as controlled by the control unit
The tablet device 10 includes a terminal storage unit 25, a terminal
control unit 26, a communication module 27, an input detection unit
29, and a touch panel 30. The terminal control unit 26 includes a
display control unit 28.
The terminal storageunit 25 is EEPROMorothernonvolatilememory,
and nonvolatilely stores data rewritably.
The touch panel 30 includes a display panel 30a disposed on the
front of the tablet device 10, and an integrally formed touch sensor
30b disposed over the display panel 30a. The display panel 30a is
a display such as an LCD panel, OLED panel, or e-paper display, and
is driven by the display control unit 28. The touch sensor 30b is
an electrostatic or pressure sensitive sensor that is overlaid on
the display panel 30a, detects touches by the user's fingers or a
pen-like stylus, and outputs a signal indicating the position where
the touch was detected to the input detection unit 29. This touch
panel 30 is a display unit that displays a browser.
The display control unit 28 displays a screen containing text
or images on the display panel 30a by driving the display panel 30a
basedondisplaydatainputfromabrowserexecutionunit26adescribed
below.
The input detectionunit29 detectstouchoperations onthe touch
panel 30 based on the signals output by the touch sensor 30b. When
a touch operation is detected, the input detection unit 29 generates
coordinate data containing coordinates correlatingthe position that
wastouchedtoadisplaypositiononthe displaypanel30a, andoutputs
the coordinate data to the terminal control unit 26.
The communicationmodule 27 includes amodule and circuits, such
+s a aetyork sard conforming to a specific communication protocol,
forcommunicatingwirelesslywiththe controldevicelland POS server
17, and communicates wirelessly based on the specific protocol with
the control device 11 and POS server 17 as controlled by the terminal
control unit 26.
[00141
The terminal control unit26 controls parts of the tablet device
10, and includes CPU, ROM, RAM, and other peripheral circuits. The
terminal control unit 26 also includes a browser execution unit 26a
that renders the function of a browser by running a browser program.
The browser execution unit 26a downloads a web page (such as
an HTML file) written in a scripting language or markup language such
as HTML from the POS server 17 using a function of the web browser.
The downloadedwebpage data is stored, for example, inRAMnotshown.
The browser execution unit 26a reads the data of the downloaded web
page, generates display data for displayingthe webpage, and outputs
to the display control unit 28. Based on the input display data, the
display control unit 28 displays the image of a web page related to
the display data on the display panel 30a.
When the input detection unit 29 detects a touch operation on
the touch sensor 30b, the browser execution unit 26a determines the
input content based on the coordinate data input from the input
detection unit 29 according to the touch operation, and the display
data output to the display control unit 28. Based on the identified
input content, thebrowserexecutionunit26aexecutestheappropriate
process using a script function, for example, as needed.
[00151
The POS server 17 includes a server storage unit 31 that stores
adatabaseofproduct-relatedinformation, asalesmanagementdatabase,
and an inventory management database, and manages the POS system 1
t !
asingtthqse detabases.
The POS server 17 includes a server control unit 37, server storage
unit 31, and communication module 38.
The server control unit 37 controls parts of the POS server 17,
and includes CPU, ROM, RAM, and other peripheral circuits. The
server-side storage unit 31 includes a hard disk drive, EEPROM, or
other nonvolatile memory, for example, and nonvolatilely stores data
rewritably.
The communicationmodule 38 includes amodule andcircuits, such
as anetwork card conformingto aparticular communication standard,
for communicating wirelessly with the tablet device 10, and
communicates wirelessly according to the specific communication
protocol with the tablet device 10 as controlledby the server control
unit 37.
[0016]
The POS application 35 is installed on the POS server 17.
The browser execution unit 26a of the tablet device 10 executes
various processes using a function of the POS application 35 on the
POS server 17.
For example, the browser execution unit 26a appropriately asserts
a request for an operation to the POS server 17, causes the POS server
17 to execute the requested process using a function of the POS
application 35, gets the result of the process, and performs an
appropriate process. More specifically, for example, the browser
executionunit26aoutputs the result of readingbythebarcode scanner
12 to the POS server 17, searches for the product using a function
of the POS application 35, gets the result of the search, and then
controls the control device 11 to display the product information
on the display 14. The browser execution unit 26a also requests
calculating the total amount of the transaction, calculates the total
I wsingla fpnction of the POS application 35, and after receiving the
result of the calculation, controls the control device 11 to produce
a receipt on which information including the total is printed.
Note that an "application that runs on a browser" is the POS
application 35 or another application installed by the browser
execution unit 26a on another device that can communicate, and
conceptually includes applications with functions that can be used
by the browser execution unit 26a. An application in this example
could be an application that is executed by and runs on the other
device that can communicate, or an application that is downloaded
from another device and is executed by and runs on the tablet device
10. The "application that runs on a browser" also includes scripts
embeddedinawebpage (HTMLfile) that is readby thebrowser execution
unit 26a, as well as programs and other software with functions that
can be used by the browser execution unit 26a.
[00171
FIG. 3 is a function block diagram of the browser execution unit
26a of the tablet device 10 (a f unctionblock corresponding to a terminal
control unit), and the device controller 20a of the control device
Note that for convenience of description, blocks schematically
representing programs, software objects, and functions rendered by
programs, andblocks representing actual physical devices, are shown
on the same level in FIG. 3.
Note also that in this embodiment an I1object" is an instance
inobject-orientedprogramming, andmore specificallymeans anobject
of software defined by data and a set of methods. However, an "object1I
as used herein is not limited to an instance in object-oriented
programming, and may be any software object that can render some
function.
t As spownjnFIG. 3 , applicationAPis runby thebrowser execution
unit 26a of the tablet device 1 0 . As described above, application
APconceptuallyincludesanapplicationthat, l i k e the POSapplication
35, canrunonanotherdeviceorcanbedownloadedfromanotherdevice,
a s c r i p t embeddedinanHTML f i l e t h a t is readby the browser execution
unit 26a, as well as a program or software with functions t h a t can
be used by the browser execution unit 26a.
A t l e a s t one of a cash drawer interface object 40 ( i n t e r f a c e
object) , barcode scanner interface object 4 1 ( i n t e r f a c e o b j e c t ) ,
display interface object 42 ( i n t e r f a c e o b j e c t ) , and p r i n t e r i n t e r f a c e
object 43 (interface object) , the central control object 4 4 , and the
browser-side WebSocket interface 45 can operate on the browser
executionunit26a. A t l e a s t one of adevice-side WebSocket i n t e r f a c e
50, relay object 51, cash drawer control object 53 (control o b j e c t ) ,
barcode scanner control object 54 (control o b j e c t ) , display control
object 55 (control object) , and p r i n t e r control object 56 (control
object) can operate on the device c o n t r o l l e r 20a.
Referring first t o F I G . 4 , the process for generating and the
functionsoftheseobjectsandsoftwareinterfacesaredescribedfirst
below with reference to the flow chart i n F I G . 4.
[0018]
FIG. 4 is a flowchart o f t h e p r o c e s s whereby objects are created
by the browser execution unit 26a and device c o n t r o l l e r 20a. More
p a r t i c u l a r l y , the flow chart i n FIG. 4 describes a process whereby
objects a r e c r e a t e d u s i n g a s examplesinstantiatingabarcode scanner
i n t e r f a c e o b j e c t 4 1 a s anexampleof a n i n t e r f a c e object, andabarcode
scanner control object 54 as example of a control object.
Note that below "the application AP does" something means t h a t
when describing a process based mainly on the operation of the
application AP, the CPU (terminal control unit 2 6 , browser execution
I iinit Y6a), that; reads and runs the application AP uses a funct-ion of
theapplicationAPtoexecutetheprocess. Likewise, "theobject does"
something means that when describing a process based mainly on the
operation of an object, the CPU (corresponding control unit) uses
a function of the object to execute the process.
The application AP first executes the central control object
instantiation process (step SA1). The central control object
instantiation process is a process that creates the central control
object44. Thecentralcontrolobject44, asdescribedindetailbelow,
is anobject containingmethods related to controlling the POS system
1, including methods related to establishing a communication path
and the cutting process, and.methods related to instantiating and
deleting control objects and interface objects.
[00191
The central control object instantiation process in step SA1
is executed by, for example, the manufacturer of the control device
11 supplying a dedicated API (application programming interface),
and the application AP using a function of the API.
When a central control object 44 is instantiated by the process
of step SAl, the application AP asserts an open communication link
request (communication request) to establish a communication
connection in step SA2. The open communication link request
(communication request) is a request to establish a 10~ica.lW ebSocket
communication link K1 (a communication connection conforming to a
communicationprotocol for two-way communication) between the tablet
device 10 and control device 11, and causes the devices to establish
a link enabling sending and receiving data based on the WebSocket
standard. Theopencommunicationlinkrequest (communicationrequest)
I 1 + - 13 -
I 1
itn respopse to the open communication link request in 9 step SA2,
the central control object 44 and relay object 51 together open a
connection based on the Websocket standard and establish a
communication link K1 between the browser-side Websocket interface
45 and device-side Websocket interface 50 (step SA3).
Notethatthebrowser-sideWebSocketinterface45anddevice-side
WebSocket interface 50 areboth functionblocks relatedtoa software
interfaceforsendingandreceivingdatausingthe~eb~ocketstandard.
The relay object 51 is an object that is run by the device controller
2Oa, and includes a method related to the process establishing a
communication link K1, andmethods related to otherprocesses described
below.
The browser-side WebSocket interface 45 and central control
object 44 function as a reception unit that receives data to which
identification information output from the control device has been
added. The device-side Websocket interface 50 and relay object 51
function as a second communication unit for communicating with a
terminal on which the browser runs, a second communication unit that
receives communication requests and device control requests from a
terminal, or a second communication unit that is connected to and
receives requests from a terminal on which the browser runs.
When a communication link K1 is established, a communication
link ID (communication link identification information,
identification information related to a communication connection),
which is information identifying the communication link K1, is added
to the communication link K1 by a function of the central control
object 44 or the relay object 51. The assigned communication link
ID is stored in the tablet device 10 in a specific storage area of
the terminal storage unit 25 in a form enabling referencing by the
application AP, and is stored in the control device 11 in a specific
1 4 I + - 14 -
I I
I Storage area pf the storage unit 22 in a form enabling referencing
I by the relay object 51.
By establishing a communication link K1, the tablet device 10
(terminal) and the control device 11can communicate witheachother.
Next, theapplicationAPassertsabarcode scanner controlobject
instantiation request (device control request) (step SA4). Abarcode
scanner control object instantiation request is a process requesting
the device controller 20a to instantiate a barcode scanner control
object 54. Note that because instantiating a device control object
establishes a state enabling controlling the corresponding device
(establishes control of a device) as further described below, the
process of step SA4 is a process of an application (or terminal)
requesting control of a device.
Identification information (a "device ID" below) is assigned
to each device connected to the control device 11 according to the
type of device. In the following example, "scanneru is assigned as
the device ID to the barcode scanner 12.
To instantiate a barcode scanner control object 54, the
application AP specifies the device ID of the barcode scanner 12 to
be controlled. As will be understood below, the relay object 51
instantiatesanappropriatecontrolobjectcorrespondingtothedevice
to be controlled using the specified device ID as a key.
Control objects are further described below.
A control object is an object containing methods related to
controllingadevice, andcontrolsaparticulardeviceusingafunction
ofacorrespondinghandler.Forexample,thecashdrawercontrolobject
53 contains a method for executing a process related to controlling
the cash drawer 13, and the object controls the cash drawer 13 using
a function of a cash drawer handler 61.
+ rA h?ndle~ is a function or subroutine that executes a process
related to the corresponding device as requested. For example, when
60getstheinputresultof reading thebarcode, executes aninterrupt
process, and passes the read result (such as a numeric string) to
thebarcode scannercontrolo6ject54. The other handlers (cashdrawer
handler 61, display handler 62, and printer handler 63) function
similarly.
The device interface 71 and the handlers function as a
communication unit that communicates with a device, or a first
communication unit that communicates with a device.
As described above, control of a device by the control device
11 is established by instantiating a control object.
[00201
In response tothe barcode scanner control object instantiation
request from the application AP, the central control object 44 sends
a barcode scanner control object instantiation request to the relay
object 51 through the communication link K1 (step SA5).
In response to this request, the relay object 51 instantiates
a control object (barcode scanner control object 54 in this example)
corresponding to the specified device ID (the device ID "scanner"
for the barcode scanner 12 in this example) using a "newu statement,
for example (step SA6). In other words, the device controller 20a
instantiates the control cbject , and the instantiated control object
runs on the device controller 20a.
InstepSA6, the relayobject51managestheinstantiatedbarcode
scanner control object 54 using the communication link ID assigned
in step SA3. This also applies to the instantiation of other control
objects. Because the control object is linked to a particular
communication link ID by the relay object 51, the relay object 51
1 5 - 16 -
can kAow,whicq application AP manages each control object.
This is described more specifically next using as an example
a configuration in which two tablets, a first tablet and a second
tablet, are connected to a single control device 11. In this example,
eachtabletestablishesaWebSocketcommunicationlinkwiththecontrol
device 11, anda communication link ID is assigned to each communication
link. The first tablet then instantiates a barcode scanner control
object 54 in order for an application AP running on the first tablet
to take control of the barcode scanner 12. In this example, the relay
object 51 links and manages the barcode scanner control object 54
usingthe communication link ID of the communication link tothe first
tablet.
The second tablet then instantiates a cashdrawer control object
53 in order for an application AP running on the second tablet to
take control of the cash drawer 13. In this example, the relay object
51 links and manages the cash drawer control object 53 using the
communicationlinkID of the communication link tothe second tablet.
Asaresult, therelayobject51outputsdataoutputbythebarcode
scanner control object 54 to the first tablet based on the result
of reading by the barcode scanner 12 to the first tablet through the
communicationlinkwith the corresponding communication link ID, that
is, the communication link to the first tablet. Likewise, when the
application AP running on the second tablet controls the cash drawer
13, and there is communication through the communication link to the
second tablet, the communicated data is output appropriately to the
cashdrawer control object 53 corresponding tothe communication link
ID of the communication link.
As a result of the relay object 51 thus managing control objects
using the associated communication link ID, control objects will not
communicatethroughthewrongcommunicationlinkevenwhenaplurality
pf tablets are connected and a plurality of communication links are
thus established.
[00211
When instantiation of the barcode scanner control object 54 is
completed, the relay object 51reports through the communication link
K1 to the central control object 44 that instantiation of the object
was completed (step SA7) , and the central control object 44 passes
the report to the application AP (step S A 8 ) .
Note that when the barcode scanner control object instantiation
process executes in step SA4, a callback that receives the result
oftheprocessrelatedtoinstantiatingthecontrolobjectisdeclared,
and successful instantiation of the barcode scanner control object
54 is reported to the application AP by executing the callback function.
The centralcontrolobject44theninstantiates abarcode scanner
interface object 41 corresponding to the barcode scanner control obj ect
54 that was instantiated (step S A 9 ) .
Interface objects are described next.
An interface object functions as an interface causing the
application AP to use the methods embedded in the control object related
I tothe correspondingdevicewhentheapplicationAPis usedto control
a device. More specifically, if when controlling one device the
application AP outputs information to the interface object
corresponding to the one device, the interface object communicates
with the control object corresponding to the one device, executes
a method embedded in the control object, and can control the one device.
By instantiating this interface object, the application AP can
control the device using methods of the control object through the
interfaceobject. More specifically, establishingcontrolof adevice
by the application AP through the control device 11 is accomplished
by instantiating an interface object in conjunction with instantiating
I Instantiation of the barcode scanner control ob j ec t 54 and barcode
scanner interface object 41 is thus completed as described above.
Control objects and interface objects for other devices are
instantiated by the same steps.
As described above, this embodiment of the disclosure
instantiates a corresponding interface object when instantiation of
acontrolobjectinthe controldevice11is completed. Thus comprised,
a control object and interface object pair is always instantiated
for any single device, and a state enabling device control by the
application AP is established for each device.
I Aninterface object and control object pair is also instantiated
I
1 foreachdevice connected tothe control device llinthis embodiment.
As aresult, byusing functions of the interface object corresponding
to the one device when controlling any one device, the application
AP can reliably control the one device and can exchange data with
the one device.
Development (programming) of the application AP is also
simplified because a program associated with an interface related
to controlling a device needs only to consider the relationship to
the interface object of each device. For example, routines of the
application AP related to controlling the cash drawer 13 only need
toconsider input andoutput of information (data) withthe cashdrawer
interface object 40, and development is simplified.
[00231
A process for deleting an instantiated control object and
interface object, and closing the established communication link,
is described next with reference to FIG. 5. The example in the flow
chart in FIG. 5 describes deleting a control object and interface
1 ,
objeclt f?r thg barcode scanner 12.
TheapplicationAPfirstassertsadeleterequest (devicecontrol
delete request) for the barcode scanner control object 54 (step SB1) .
TheapplicationAPalso specifiesthe device IDofthebarcode scanner
12. The control object delete request is executed by the application
AP executing a method embedded in the central control object 44.
Inresponse to the barcode scanner control object 54 delete request
fromthe applicationAP, the central control object44 sends abarcode
scanner controlobject54 deleterequesttotherelayobject51through
the communication link K1 (step SB2) .
In response to the delete request, the relay object 51 deletes
the control object (the barcode scanner control object 54 in this
example) corresponding to the specified device ID (the device ID
of the barcode scanner 12 in this example) using a delete
operator, for example (step SB3). By deleting the control object,
controlofthebarcodescanner12bythecontroldevice11is cancelled.
A specific control object can thus be deleted in this embodiment
by the application AP asserting a control object control request .
By deleting the control object for a specific device, control of the
specific device byanapplicationAP running onone tablet is cancelled,
thereby enabling an application AP operating on a different tablet
to take control of the specific device. As a result, when a specific
device is no longer used, the application AP can release that device
by deleting the control object for the specific device, and unnecessary
occupation of a device can be prevented.
[0024]
Whendeletingthebarcodescannercontrolobject54 is completed,
the relay object 51 reports to the central control object 44 through
the communication link K1 that deletingthe object was completed (step
SB4), and the central control object 44 then passes that report to
I 1
&he applicatipn AP (step SBS).
Note that a callback that receives the result of the process
related to deleting the control object is declared in step SB1, and
successful deletionof the barcode scanner control object 54 is reported
to the application AP by executing the callback function.
The central control object 44 then deletes the barcode scanner
interface object 41 corresponding to the barcode scanner control object
54 that was deleted (step SB6) .
Next, the applicationAP requestscuttingthe communicationlink
K1tothecontroldevice11 (cancel communicationrequest) (stepSB7).
This request is executed by the application AP executing a dedicated
method of the central control object 44.
In response to the request asserted in step 587, the central
control object 44 and relay object 51 cut the communication link K1
established between the browser-side Websocket interface 45 and
device-sideWebSocketinterface50accordingtotheWebSocketstandard
(step SB8).
An instantiated control object and interface object can thus
bedeletedandanestablishedcommunicationlinkcancelledasdescribed
above.
Aninstantiatedcontrolobjectcanthusbe deletedat thedesired
time by a request from the application AP. More specifically, when
maintainingcontrolofadeviceisnolongernecessary, theapplication
AP can quickly delete the control object instantiated for that one
deviceandreleasecontrolofthatonedevice.Controlobjectsremaining
instantiatedwhenno longerneeded, and the application~p of another
tablet unnecessarily continuing to be unable to control the device,
can therefore be effectively prevented.
[0025]
A specific example of operation in a transaction process is
Before the transaction process executes, the tablet device 10
first executes the following processes.
More specifically, the checkout clerkor the person responsible
for another task starts the browser of the tablet device 10, and displays
a user interface UI (FIG. 6A) on the touch panel 30. The browser execution
unit 26a of the terminal control unit 26 then accesses a specific
address on the POS server 17 as instructed, acquires web page data
such as an HTML file, and displays the user interface UI on the touch
panel 30 based on the acquired data.
FIG. 6A shows an example of a user interface UI displayed on
the touch panel 30.
Displayed in the user interface UI as shown in FIG. 6A is a list
area 65 displaying the names of products purchased by the customer,
product prices, and product quantities in the upper left area. On
the right beside the list area 65 is a transaction amount display
area 66 where the total amount of the products purchasedby the customer,
the amount of money received from the customer for the transaction,
and the amount of change due to the customer are displayed.
Below the list area 65 is a barcode information input field 67
where inf ormationrepresentedby the barcode readby the barcode scanner
12 ( "barcode information" below) is input and displayed. The barcode
informationisbasicallyidentificationinformationuniquelyassigned
to each type of product. On the right side of the barcode information
input field67 isavirtualkeypad68. Informationcanbe input through
t h i s v i r t u a l k e y p a d 6 8 t o e a c h o f t h e i n p u t f i e l d s i n t h e u s e r i n t e r f a c e
UI, and the virtual keypad 68 has keys for inputting information.
An address field 69 where the accessed address is displayed is
presented at the top of the user interface UI.
to0261
4 The ,procgss until the information expressed by the read barcode
(ubarcodeinformationbue low) is displayedinthebarcodeinformation
input field 67 of the user interface UI after a barcode is read by
the barcode scanner 12 is described first below.
FIG. 7 is a flow chart describing this process.
First, to enable the application AP to acquire the result of
reading a barcode, a callback name for the barcode scanner interface
object 41 is first registered by the application AP (step SC1). A
callback name is an identification name assigned to each event (an
event such as the barcode scanner 12 reading a barcode). When data
l i n k e d t o t h e c a l l b a c k n a m e i s i n p u t t o t h e i n t e r f a c e o b j e c t , aspecific
callback functionis executed, andthe data is input tothe application
AP. In this example, the callback name of "reading a barcode with
the barcode scanner 12" is "ondata."
At the checkout counter L, the checkout clerk uses the barcode
scanner12toreadthebarcode fromaproductpurchasedbythe customer
(step SX1).
Next, the result of reading the barcode is input to the barcode
scanner handler 60 (step SC2). The barcode scanner handler 60 then
executes an interrupt process and outputs the barcode information,
the result of reading, to the barcode scanner control object 54 (step
SC3) .
Next, the barcode scanner control object 54 outputs data including
at least the device ID of the barcode scanner 12 (scanner in this
example), the callback name (ondata in this example), and the barcode
information (data) in a specific format to the relay object 51 (step
SC4) .
[00271
The relay object 51 generates a data ID (identification
information) , and adds the data ID in a predetermined format to the
' P - 23 -
,barcode inforpation contained in the input data (step SC5) . The data
ID is identification information uniquely assigned to identify the
data passed to the application AP (barcode in£ ormation in this example) .
In this embodiment the data ID is a number, and the relay object 51
generates and assigns the data ID so that the value increases as the
time that the data is output to the central control object 44 becomes
later. For example, if the data IDgeneratedandassignedtothe input
barcode information and output to the central control object 44 is
1, the data ID generated and assigned to the next input barcode
information and output to the central control object 44 is 2 (or any
value other than 2 that is greater than 1). How the assigned data
ID is used is described below.
Next, the relay object 51 stores the barcode information (data)
of the assigned data ID to a specific storage area in the storage
unit 22 (step SC6). As a result, data related to the device of the
same data ID output to the application AP (information related to
the device) is cumulatively stored in the storage unit 22.
Next, the relay object 51 outputs data including at least the
device ID of the barcode scanner 12 (scanner in this example), the
callback name (ondata in this example) , and the barcode information
(data) with the data ID in a specific format to the central control
object 44 (step SC7) . The relay object 51 outputs the data through
the communication link K1 identified by the communication link ID
assigned to the barcode scanner control object 54.
[00281
Next, the central control object 44 outputs data to a specific
interfaceobject (barcodescannerinterfaceobject41inthis example)
related to the device ID contained in the input data (step SC8).
Basedon the callback name (ondata in this example), the barcode
scanner interface object41executes the specific callback function,
AP (step SC9).
The application AP executes the display process based on the
input barcode information, and displays the barcode information in
the barcode inf ormation input field 67 (step SC10) . As a result, as
shown in FIG. 6B, the barcode information is displayed in the barcode
information input field 67.
Next, the application AP extracts the data ID from the input
barcode information with an assigned data ID, and stores the data
ID to a specific storage area in the terminal storage unit 25 (step
SC11). This step SCll results in the data ID of the data input to
theapplicationAPbeingextractedfromthedataoutputfromthedevice
(barcode information in this example) and accumulated in memory. A
method of using the data ID stored in the terminal storage unit 25
is described below.
unit 21 to produce a receipt is described next.
FIG. 8 is a flow chart describing the steps in this process.
First, the application AP generates an image to be printed on
thereceiptusinganembeddedfunction, andthenbasedonthegenerated
imagecreatesanXMLdocument (data) containingtheinformationrelated
to the receipt to be produced by the printer unit 21 (step SD1) . Included
in the XML document is the information for producing a receipt, such
as the text and images to be printed on the receipt, in a specific
formatconformingtotheXMLformat, andasdescribedbelow, theprinter
control unit 80 can convert the XML document to a control command
conforming to the command language of the printer unit 21.
Next, the application AP outputs data including at least the
device IDoftheprinterunit21, informationspecifyingthe functions
- 25 -
I
bo be 'exe,cuteQ by the printer control object 5 6 , and the generated
XML document, to the printer interface object 43 (step SD2) . In this
example, the function executed by the printer control object 56 is
a function for executing a process that outputs the XML document through
the printerldisplay interface 8 1 to the printer control unit 8 0 .
Next, the printer interface object 43 requests the printer control
object 56 to output the data input from the application AP to the
central control object 44 (step SD3) . The central control object 44
outputs the data through the communication link Kltothe relay object
51 (step SD4), and the relay object 5 1 outputs the data to the printer
control object 56 (step SD5) .
The printer control object 56 outputs the XML file contained
in the input data through the printer/display interface 8 1 to the
printer control unit 80 by executing a function specified in the input
data (step SD6). At this time the printer control object 56 outputs
the XML file to the printer control unit 80 after formatting or
processing the data to enable processing by the printer control unit
80.
The printer control unit 80 is a function block rendered by a
function of a so-called printer driver, and based on the input XML
file, generates control commands conforming to the command language
of the printer unit 2 1 and outputs to the printer unit 2 1 through
the printer handler 63 (step SD7) . The printer unit 2 1 then operates
therequiredmechanismstoproduceareceiptbasedontheinputcontrol
commands (step SD8) .
Note that displaying data on the display 14 is accomplished by
a process of steps similar to those described in FIG. 8 .
More specifically, the application AP outputs display data to
the display control object 55 through the display interface object
4 2 . The display control object 55 outputs the display data to the
display ~ o n t r p lu nit 82 through the printer/display interface 81.
The display control unit 82 converts the input display data t o control
commands conforming to the command language of the display 1 4 , and
using a function of t h e display handler 62 outputs t o t h e d i s p l a y
14. The display 14 then presents t h e display data based on the control
commands.
[00301
As described above, device control by the application AP, and
exchangingdatabetweenthe applicationAPandadevice, are desirably
achieved foreachdevicebycommunicationbetweenaninterface object
and a control object corresponding t o the target device.
More s p e c i f i c a l l y , t h e t a b l e t device 1 0 and control device 11
in t h i s embodiment communicate according t o the Websocket standard.
That i s , any device can send data t o another device without sending
a data transmission request from the browser on the t a b l e t device
10 to the control device 11 functioning as a server. In other words,
the interface object and the corresponding control object can
communicatebidirectionally. As a r e s u l t , as describedusingthe flow
chart in FIG. 7 , triggered by an event on the device s i d e , data can
be output smoothly from the device through the control object and
interface object to t h e a p p l i c a t i o n AP. In addition, as described
usingthe flowchartinFIG. 8, triggeredbyaneventonthe application
AP side, the applicationAP cancontroladevicethroughtheinterface
object and the control object.
[00311
Furthermore, as described above, control of a p a r t i c u l a r device
can be establishedby i n s t a n t i a t i n g a control object f o r t h a t device.
More s p e c i f i c a l l y , i n s t a n t i a t i n g a c o n t r o l o b j e c t e s t a b l i s h e s a s t a t e
enabling data input between the device and the corresponding control
object, thereby enabling t h e a p p l i c a t i o n AP to control the
* ' - 27 -
correspopding,device to execute a process, and enabling the
I corresponding device to output data to the application AP. As further
described below, a control object can cause the device to execute
a particular process by outputting data output by the application
AP to the device (or the control unit of the device), and can output
a control command to the device in response to a request from the
application AP to cause the device to execute a particular process.
More specifically, as described above, one function (method)
of the barcode scanner control object 54 is a function (method) that,
when a barcode was read by the corresponding barcode scanner 12,
acquirestheresultofreadingthebarcodethroughaninterruptprocess,
and outputs the acquired reading result through the barcode scanner
interface object 41 to the application AP. More specifically, the
barcode scanner control object 54 can send the result of reading a
barcode to the tablet device 10 as the corresponding barcode scanner
12 reads the barcode. Establishing device control in this instance
means establishing a state in which the result of reading by the
corresponding barcode scanner 12 can be sent to the tablet device
10. These functions are enabled by instantiating a barcode scanner
control object 54.
As described above, the printer control object 56 outputs an
XML document created by the application AP to the printer control
unit 80 after formatting or converting the data to enable processing
by the printer control unit 80. Based on the data output in aprocessable
form, the printer control unit 80 generates and outputs a control
command, and produces a receipt (prints a receipt) with the printer
unit 21. The printer control object 56 also acquires data output by
the printer unit 21 (for example, data identifying the status (such
as no paper or an error) of the printer unit 21) through the printer
control unit 80. The printer control object 56 then outputs the acquired
0 ' - 28 -
I
data thr~ught he printer interface object 43 to the application AP.
Establishing control of a device here thus means creating a state
in which data can be output from the tablet device 10 (application
AP) to the corresponding printer unit 21, and a state in which the
printer unit 21canbe controlledby the tablet device 10 (application
AP) to execute printing and other processes. It also means establishing
a state in which data can be sent at appropriate times from the
corresponding printer unit 21 to the tablet device 10 (application
AP) . These functions can be achieved by instantiating a printer control
object 56.
Control of a device can also be established by the display control
object 55 similarlyto the printer control object 56. More specifically,
instantiatingadisplay controlobject55 establishes astateinwhich
data can be output from the tablet device 10 (application AP) to the
correspondingdisplay, andinformationcanbedisplayedonthedisplay
14 by the tablet device 10 (application AP) . Instantiating a display
control object 55 also establishes a state in which the display 14
can send data at the appropriate timing to the tablet device 10
(application AP) .
Based on a request from the application AP, the cash drawer control
object 53 also generates and outputs to the cash drawer 13 a control
command corresponding to the process to be executed, and causes the
cash drawer 13 to execute a deposit process, withdrawal process, or
other process. Generating andoutputtingthis control command is done
by the application AP executing a specific method. In other words,
the tablet device 10 (application AP) can cause the cash drawer 13
to execute a desired process by specifying a method embedded in the
cashdrawercontrolobject53throughthe cashdrawer interface object
4 0 .
When counting is done by the cash drawer 13, or when a deposit
I
.orwithdrawal,is made with the cashdrawer13, the cashdrawer control
object 53 acquiresthe result ofthat process by an interrupt process,
I and outputs the acquired process result through the cash drawer
interface object 40 to the application AP.
More specifically, establishing device control in this instance
means establishinga state inwhichdata canbe output fromthetablet
device10 (applicationAP) tothe cashdrawer13, and the tablet device
10 (application AP) can control the cash drawer 13 to execute deposit
and other processes. It also means establishing a state in which the
corresponding cash drawer 13 can send data to the tablet device 10
(applicationAP) attheappropriate time. Thesefunctionsareachieved
by instantiating a cash drawer control object 53.
[00321
The tablet device 10 and control device 11 are connected to
communicate wirelessly using a specific standard such as Ethernet
(R), but communication can be unintentionally temporarily cut off
(interrupted) due to radio interference or other cause. Even when
communicatingbyawiredconnection, communication canbe temporarily
interrupted by disconnection of the communication cable, a poor
connection, or other cause.
In such instances, the tablet device 10 and control device 11
execute aprocess based on the existence of a control object as described
below.
[00331
FIG. 9 is a flow chart of the operation of the tablet device
10 and control device 11 when communication is interrupted.
F I G . 9 (A) shows the steps of a process of the application AP
running on the tablet device 10, and F I G . 9 (B) shows the process
of the relay object 51 operating on the control device 11.
The process shown in the flow chart in F I G . 9 (A) and FIG. 9
I
I 4 ' ' 0 - 30 -
I
*(B) assumbs thgt a communication link K1 is already established between
the tablet device 10 and control device 11, and control objects for
the cash drawer 13, barcode scanner 12, display 14 , and printer unit
21 have been instantiated by the control device 11.
As shown in FIG. 9 (A), the application AP monitors whether or
not communication is interrupted (step SE1) . Note that thebrowser-side
WebSocket interface 45 monitors if communication is interrupted by
ameans conformingto the WebSocket standard, and when communication
iscutoff~thebrowser-sideWebSocketinterface45reportsaccordingly
I I to the application AP.
I When communication is cut off (step SE1 returns YES), the
I
I
I application AP attempts to reconnect using a function of the central
i controlobject44, anddeterminesifreconnectingwas successful (step
I SE2). Attempting to reconnect continues for a predetermined period
I
I of time.
I [0034]
I
As shown in FIG. 9 (B), the relay object 51 also monitors if I
communicationis cut off (step SF1) . Note that the device-side WebSocket
interface 50 monitors if communication is interrupted by a means
conforming to the WebSocket standard, and when communication is cut
off, the device-side WebSocket interface 50 reports accordingly to
the application AP.
If communication is cut off (step SF1 returns YES), the relay
object 51 starts counting the time past since communication was
interrupted (step SF2) . As will be understood below, the relay object
51 is configured to delete the control object corresponding to the
communication link ID associated with the interrupted communication
link when the time past since communication was interrupted exceeds
time TI. The length of time T1 is set to be a reference value enabling
determining if the interruption of communication was an intentional
I
intercup!ion pr an unintended breakdown.
After starting to count the elapsed time, the relay object 51
watches if the elapsed time has reached the time T1 (step SF4), and
continues checking if reconnection was successful until time T1 is
reached (step SF3).
If the elapsed time reaches time T1 without successfully
reconnecting (step SF4 returns YES) , the interruption of communication
can be determined tobe an intentional shutdownand not a sudden failure .
The relay object 51 then deletes the control objects corresponding
to the communication link ID associated with the interrupted
communication connection (in this example, the control objects of
the cash drawer 13, barcode scanner 12, display 14, and printer unit
21) (step SF5). As describedabove, deletinga control object releases
the corresponding device to an application AP operating on another
tablet, andenablesanotherapplicationAPtoinstantiateanewcontrol
object and control the corresponding device.
If communicationbetweenthecontroldevice11andatabletdevice
10 (which could be the same terminal as before communication was
interrupted, or a different terminal) is established again after a
control object is deleted, the device controller 20a instantiates
andoperates acontrolobjectbasedonarequest fromthetabletdevice
10 according to the process described in FIG. 4. As a result, controlling
a device can be quickly re-enabled even when reconnecting is not
successfulwithinthespecifictimeaftercommunicationisinterrupted,
and the corresponding control object was therefore deleted.
This embodiment thus determines that an interruption of
communication was intentional if the elapsed time reaches time T1
without successfully reconnecting, and deletes the control object
(releases the control object). As a result, the time for whichanother
application AP cannot control a device is prevented from continuing
for an uqnecegsarily long time.
[00351
Referring again to FIG. 9 (A), if reconnecting is successful
as a result of attempting to reconnect in step SE2 (step SE2 returns
YES), the application AP sends the communication link ID of the
communication link K1 associated with the communication connection
that was interrupted to the relay object 51 (step SE3) . As described
in step SA3 in FIG. 4, a communication link ID is assigned in conjunction
withestablishing acommunicationlinkK1, and is storedina specific
storage area in the terminal storage unit 25 in a format enabling
referencing by the application AP.
Referring to FIG. 9 (B), because YES is returned by decision
step SF3 when re-establishing communication is successful, and the
communication link ID of the communication link K1 associated with
the interrupted connection is sent by the application AP in step SE3,
the relay object 51 receives the communication link ID (step SF6).
When the communication link ID is received, the relay object
51 determines if a control object corresponding to the received
communicationlinkIDalreadyexists (stepSF7). If thecontrolobject
does not exist (step SF7 returns NO), the relay object 51 ends the
process.
However, if a control object corresponding to the received
communicationlinkIDalreadyexists (stepSF7 returnsYES), therelay
object 51 cancels deleting these control objects after time TI, and
keeps the control objects instantiated instead of deleting them
(controls control object instantiation) (step SF8).
Whena communication link is re-establishedwithin time T1 after
communication is interrupted, this embodiment of the disclosure
determines that the probability the interruption of communication
wasanunintendedsuddenfailureishigh, andmaintainsthethecontrol
o b j e c t r e , l a t e d t o t h e communication link I D of the communication l i n k
K1 through which communication was interrupted. As a r e s u l t , the
application AP can quickly and e f f i c i e n t l y control a device without
i n s t a n t i a t i n g a n e w c o n t r o l o b j e c t t o c o n t r o l t h e device. I n a d d i t i o n ,
when one application AP controls a device, device control w i l l not
be released to another application AP (the corresponding control object
w i l l not be deleted) and device control w i l l not be taken over by
that other application AP in the event of a sudden communication
f a i l u r e .
After cancelling deletion of t h e control object (control of
control object i n s t a n t i a t i o n ) in step SF8, t h e a p p l i c a t i o n AP and
relay object 51 work together t o send data again (step SE4, step SF9) .
lo0361
FIG. 10 is a flow chart of application AP and relay object 51
operationin the data retransmissionprocess, (A) showing the process
of the application AP and (B) showing the process of the relay object
51.
Referring to FIG. 10 ( A ) , from among t h e d a t a IDS stored i n the
terminal storage unit 25, t h e application AP outputs the data I D of
the most recently received data t o the relay object 51 (step SG1) .
AsdescribedwithreferencetostepSCllinFIG. 7, a d a t a I D i s a s s i g n e d
to the device data (information related t o a device) input to the
applicationAP, andwhenthedata is input, theapplicationAPextracts
the data I D from the barcode information with the input data I D , and
stores the data I D i n a specific storage area i n the terminal storage
unit 25.
When a data I D is input from t h e a p p l i c a t i o n AP, the relay object
51 compares the data IDS of the data with a data I D accumulated i n
the storage unit 22 w i t h the data I D input from the application AP,
and i d e n t i f i e s (determines) if the data is data t h a t was t o be output
to the application AP but was not input to the application AP due
toasuddencommunication failure (step SH1). More specifically, data
IDS are generated based on the rule that the value of the data ID
increases as the time when the data is output to the application AP
becomes later. Based on this, the relay object 51 knows that data
having the same data ID as the data ID received from the application
AP was output successfully. However, data having a data ID with a
value greater than the received data ID is data that has not been
input to the application AP due a sudden communication failure, and
is identified as data that has not been input to the application AP.
More specifically, in step SH1 the relay object 51 identifies the
data ID of data that has not been input normally to the tablet device
10 by finding among the data IDS assigned to data sent to the tablet
device 10 a data ID that is not stored in the tablet device 10.
Next, the relay object 51 outputs data that has not been input
(device-related information) to the application AP (step SH2) . The
application AP gets and appropriately processes the data output by
the relay object 51 (step SG2).
By executing this data retransmission process, all data that
shouldbeoutput tothe applicationAPcanbeoutputtothe application
AP without data loss even when communication is momentarily
interrupted.
[00371
As described above, a POS system 1 (control system) according
to this embodiment of the disclosure includes a device (such as a
barcode scanner 12), and a control device 11 having a communication
unit that communicates with the device by cooperation of a device
interface71andhandler, andadevicecontroller2Oathatinstantiates
a control object for controlling the device. The POS system 1 also
includes a tablet device 10 (terminal) with a touch panel 30 (display
unit)~tha,td isplays abrowser, andaterminalcontrolunit 26 (browser
execution unit 26a) that instantiates an interface object that
communicates device-related informationwiththe control object, and
processes device-related information by means of an application AP
that runs on the browser.
Thus comprised, an application AP running on the browser of the
tablet device 10 can get and process device-related information by
a function of the control object and interface object, enabling the
application AP operating on the browser of the tablet device 10 to
control the device.
[00381
Multiple devices are connected to the control device 11 in this
embodiment. When a first device (such as a barcode scanner 12) is
connectedanda seconddevice (suchas a cashdrawer 13) is then connected,
the device controller 20a of the control device 11 instantiates a
second control object (such as a cash drawer control object 53) that
controls the second device. In addition, the terminal control unit
26 (browser execution unit 26a) of the tablet device 10 instantiates
a second interface object (such as a cash drawer interface object
40) that communicates information related to the second device with
the second control object.
Thus comprised, a corresponding control object and interface
o b j e c t a r e i n s t a n t i a t e d f o r t h e seconddevice connectedtothe control
device 11. More specifically, a corresponding control object and
interface object are instantiated for each device connected to the
controldevice11, andusingfunctionsoftheseobjects, anapplication
AP operating under the browser of the tablet device 10 can control
each of the devices.
[0039]
A communication link K1 based on the Websocket standard, which
is a comyunicgtion standard for bidirectional communication, is
established between the tablet device 10 and control device 11, and
the control object and corresponding interface object communicate
bidirectionally through the communication link K1.
Because the control object and corresponding interface object
can communicate bidirectionally through the communication link K1
inthisembodimentofthedisclosure,outputtingdatafromtheinterface
object tothe control object triggeredbyaneventonthe tablet device
10 side, and outputting data from the control object to the interface
object triggered by an event on the control device 11 side, can be
appropriately executed.
[00401
This embodiment of the disclosure instantiates an interface
object corresponding to the control object after instantiation of
the control object is completed.
This configuration means that a corresponding interface object
is reliably instantiated when a control object is instantiated.
[00411
A printer unit 21 (print unit) is connected as a device to the
control device 11 in this embodiment, and the device controller 20a
instantiates a printer control object 56 that controls the printer
unit 21.
Thus comprised, the application AP running on the browser of
the tablet device 10 can acquire and process information related to
t h e p r i n t e r u n i t 2 1 a s t h e t a r g e t d e v i c e u s i n g functions ofthe control
object and interface object, and the application AP running on the
browser of the tablet-device 10 can print.
[00421
Furthermore, when an application AP running on the browser of
the tablet device 10 requests the control device 11 to instantiate
a A # - 37 -
L
a cont?rol 9bjec.t for a connected device (requests control of the device) ,
the control device 11 requested to instantiate a control object for
the device (requested for control of the device) establishes control
of the device by instantiating a control object. After the control
devicellestablishes control ofthe devicebyinstantiatingacontrol
object, the tablet device 10 establishes control of the device by
the application AP through the control device 11 by instantiating
an interface object corresponding to the control object.
Thus comprised, device control is established, and control of
the device through the control device 11 by the application AP is
sequentiallyestablished, inresponsetoarequestfromtheapplication
AP, and control of the device by the application AP operating on the
browser of the tablet device 10 is enabled.
[0043]
The control device 11 in this embodiment further establishes
device control by instantiating a control object that controls the
device.
Devicecontrolcanthusbeestablishedbyinstantiatingacontrol
object.
[0044]
Inthis embodiment the tablet device10 alsoestablishes control
of a device by the application AP through the control device 11 by
instantiating an interface object with a function for communicating
with the control object.
This configuration can establish control of a device by the
applicationAPthroughthe controldevice11bymeans of instantiating
a control object and instantiating an interface object that can
communicate with the control object.
[00451
The POS system 1 (control system) according to this embodiment
I
of'the di,scloqure includes a tablet device 10 having a touch panel
I 30 (display unit) that displays a browser, and a terminal control
unit 26 (browser execution unit 26a) that asserts a communication
request (open communication link request) to open a communication
connection, and a device control request that requests instantiating
a control object (requests device control). The POS system 1 also
hasacontroldevice11includingacommunicationunitthatcommunicates
with a device, and a device controller 20a that establishes
communicationwitha tablet device10 basedona communication request
sent from the tablet device 10, and establishes control of a device
by instantiating a control object based on a device control request
after communication with the tablet device 10 is established.
Thus comprised, communication is established and device control
is sequentiallyestablishedaccordingtoacommunicationrequestfrom
the tablet device 10 and a device control request, enabling control
of a device by the tablet device 10 using a function of the browser.
[00461
The terminal control unit 26 (browser execution unit 26a) of
thetabletdevice10outputsadevicecontroldeleterequestrequesting
deletion of the control object (requesting cancelling control of a
device), andthedevicecontroller20aofthecontroldevice11deletes
the control object and cancels control of the device based on the
device control delete request.
Control of a device can thus be released, and leaving the device
under the control of a particular terminal unnecessarily, can thus
be prevented by the device control delete request from the tablet
device 10.
[0047]
In this embodiment, the application AP of the tablet device 10
outputs a request (cancel communication request) to cut off the
< * 4 - 39 -
commuhicqtion.link K1 established with the control device 11, and
the device controller 20a of the control device 11 cancels the
communication connection based on the cancel communication request.
An established communication connection can thus be
appropriately cancelled by a cancel communication request from the
tablet device 10.
[0048]
The tablet device 10 (application AP) in this embodiment also
outputs a communication request requesting establishing a
communication connection, and outputs a device control request
requesting instantiating a control object for the printer unit 21
as the device to control (requesting control of the print unit) . The
device controller 20a of the control device 11 establishes a
communication connection with the tablet device 10 based on the
communication request, and based on the device control request
instantiates a printer control object 56 and establishes control of
the printer unit 21 after communication with the tablet device 10
is established.
Communication is thus established and control of the printer
unit 21 as the target device is sequentially established according
to the communication request and the device control request from the
tablet device 10, andusing a functionof abrowser, the tablet device
10 can print with the printer unit 21.
[00491
The control device 11 according to the disclosure has a first
communication unit that communicates with a device by cooperation
of the device interface 71 and handler, a device controller 20a that
runs a control object that controls the device, and a second
communication unit that communicates with the tablet device I 10 by
ob3ec'k 51, and when the connection with the tablet device 10 is
interrupted, the device controller 20a deletes the control object
after waiting time T1.
Thus comprised, the control object is not deleted immediately
whencommunicationis interrupted, andis insteaddeletedafterbeing
kept for time TI. As a result, the control object is not immediately
deleted when communication is briefly interrupted unintentionally,
and control of the device by the control object that was kept without
being deleted can quickly resume after recovery from the temporary
interruptionof communication. Inaddition,becausethecontrolobject
is deleted after waiting time TI, a control object not being deleted
for an unnecessarily long time, and control rights of the device
therefore not being released, can be effectively prevented.
[0050]
Furthermore, when communication between the control device 11
and a tablet device 10 (the same terminal as before communication
was interrupted, or a different terminal) is established again after
communication between the tablet device 10 and control device 11 is
interrupted, connection is not re-established within time TI, and
the control object is deleted, the device controller 20a instantiates
andruns anewcontrolobjectbasedonarequestfromthetabletdevice
10 according to the process described in FIG. 4.
As a result, control of a device can be quickly enabled even
when a connection is not re-established within a specific time after
communication is interrupted and the control object is therefore
deleted.
[0051]
Furthermore, when a connectionwith the tablet device 10 is made
within time T1 in this embodiment, deleting the saved control object
is cancelled (instantiation of a control object is controlled).
' @Becquse oeleting the control object is thus cancelled when
reconnection is successful within time T1 after communication is
interrupted, deletion of the control object can be prevented in the
event of a temporary interruption such as when connection is
re-established within time T1 after communication is cut off.
[00521
When a connection is established between the tablet device 10
and control device 11 in this embodiment, each device stores
identification information (a communication link ID) corresponding
to the connection, andwhen reconnecting after the connection is broken,
thesedevicesreconnectbasedontheidentificationinformationstored
by each.
As a result, the identification information (communication link
ID) stored by each device can be used as needed when reconnecting
in order to reconnect in a way corresponding to the connection that
was interrupted.
[00531
The control device 11 in this embodiment instantiates a control
object for each device that is connected in order to control the device.
The control device 11 (relay object 51) also stores identification
information (communication link ID) related to the control object,
and deletes the control object if connection with the tablet device
10 is not re-established within time TI after the connection to the
tabletdevice10isinterrupted.Whenreconnectingaftertheconnection
is interrupted, the control device 11 determines if a control object
has been instantiated with the same identification information as
the identification information stored in the tablet device 10, and
if sucha control object is found, cancels deletingthe control object
after a specific time passes.
Thus comprised, deleting a control object that was used before
~h'e cOnngction was interrupted is thus prevented in the event of a
I
temporary interruption in which reconnection was successful within
time T1 after the connection was interrupted, and the control object
can be used after reconnection without instantiating a new control
object.
[00541
A POS system 1 (control system) according to this embodiment
of the disclosure has control device with a first communication unit
that communicates witha device andacquires data output by the device
by cooperation of the device interface 71 and a handler, a device
controller 20a that adds identification information (data ID) to the
data (suchasbarcodeinformation) acquiredbythe first communication
unit, a storage unit 22 that stores the data with a data ID, and a
second communication unit that outputs the data with a data ID by
the cooperation of a device-side WebSocket interface 50 and a relay
object 51. The POS systemlalsohas atabletdevice 10 witha reception
unit that receives data with a data ID output from the control device
11 by the cooperation of a browser-side WebSocket interface 45 and
a central control object 44, a terminal storage unit 25 that stores
the identification information assigned to the data received by the
receptionunit, a n d a t e r m i n a l c o n t r o l u n i t 2 6 t h a t r u n s anapplication
processing data.
Thus comprised, identification information (data ID) is added
to data output from the control device 11 to the tablet device 10,
the control device 11 stores the output data, and the tablet device
10 stores the identification information associated with the input
data. As a result, when the connection is interrupted, data that has
not been input tothe tablet device10 due to an interrupted connection
can be identified using the identification information (data ID) as
a search key, and the identified data can be output again.
.[0(0551 , I
Whenreconnectingafterthe connectionbetween the tablet device
10 and control device 11 is interrupted, the tablet device 10 in this
embodiment sends the stored identification information (data ID) to
thecontroldevicell, andthecontroldevice11identifies andresends
data that has not been input tothe tablet device 10basedoncomparing
the identification information (data ID) received from the tablet
device 10 with the data IDS of the stored data with a data ID.
Whenreconnectingafterthe connectionisinterrupted, datathat
has not been input to the tablet device 10 can thus be appropriately
identified using the identification information (data ID).
[00561
In this embodiment the control device 11 also adds a regular
data ID to data based on input from a device and outputs to the tablet
device 10, and stores the data that was output with a data ID. When
reconnecting after the connection between the tablet device 10 and
control device 11 is interrupted, the tablet device 10 sends the
identification information (data ID) related to the most recently
receiveddatatothe control device 11. The control device 11 compares
the identification information (data ID) received from the tablet
device 10 with the data IDS in the data stored with a data ID, and
based on the regularity of the identification information (data ID),
identifies and resends data that has not been input to the tablet
device 10.
In this instance, the tablet device 10 sends the identification
information (data ID) for all data input within a specific time, for
example, tothe controldevicell. The controldevice11cantherefore
identify data that has not been input to the tablet device 10 by the
sirnplemeansofusingtheregularityoftheidentificationinformation
(data ID), instead of executing a process such as the control device
,
b11 C identifying data not input to the tablet device 10 by comparing
the received identification information (data ID) with the data IDS
of the data stored with a data ID.
[00571
The disclosure is described above with reference to a preferred
embodiment thereof, but the disclosure is not limited thereto and
can be modified and adapted in many ways without departing from the
scope of the accompanying claims.
For example, the disclosure is described in the foregoing
embodiment using the POS system 1 in a store with a checkout counter
L as an example, but the POS system is not limited to such use, and
can be used in the food industry in coffee shops and restaurants,
for example. The controldevice11andPOS server17 are also separate
devices above, butthe function of the POS server17 couldbe included
in the control device 11. Yet further, the control device 11 is a
thermal printer above, but any desirable recordingmethodcanbe used.
The function blocks shown in FIG. 2 and FIG. 3 can be desirably
achievedbythecooperationofhardwareandsoftware, anddonot suggest
a specific hardware configuration. The devices may also operate by
running a program stored on an externally connected storage medium.
[0058]
Inacontrolmethodof acontrol systemaccording to the disclosure,
operating on a browser of a terminal requesting a control device for
control of adeviceconnectedtothe control deviceby anapplication;
requesting for control ofthe device establishes control ofthe device
by the control device; and establishing control of the device by the
applicationthroughthecontroldevicebytheterminalafterthecontrol
device establishes control of the device.
In this aspect of the disclosure, establishing control of the
device by the control device and establishing control of the device
.b$ an applicagion through a control device occur sequentially, and
a device can be appropriately controlled by an application that runs
on a browser of the terminal.
In the disclosure, the establishing control of the device by
the control device is establishing a state in which the device can
be caused to execute a process based on a request from the terminal.
In the disclosure, the establishing control of the device by
the control device also includes establishing a state in which data
can be sent and received between the device and the terminal.
[0060]
In the disclosure, the establishing control of the device by
the control device also includes the control device instantiating
a control object configured to handle data communication with the
device by the control device.
As described above, the disclosure can appropriately establish
control of a device by instantiating a control object.
[0061]
Inanotheraspect ofthe disclosure, the disclosure establishing
device control by the application of the terminal through the control
device is instantiating on the terminal an interface object configured
to communicate with the control object.
Thisaspectofthedisclosurecanappropriatelyestablishcontrol
ofadevicebyanapplicationthroughacontroldevicebyinstantiating
a control object and instantiating an interface object that can
communicate with the control object.
[0062]
In another aspect of the disclosure, the device is a printer
is configured to print; the application is configured to run on the
browser of the terminal request the control device for control of
*tAe prinFer; ,the control device is configured to establish control
of the printer based on received the printer control request; and
after the control device establishes control of the printer, the
terminal establishes control oftheprinterby theapplicationthrough
the control device.
In this aspect of the disclosure, control of a printer as an
exampleofadevicebasedonarequestfromanapplication, andcontrol
of the printer by the application through the control device, are
sequentially established, and an application that runs on a browser
of the terminal can print desirably.
Other objects and attainments together with a fuller
understanding of the disclosure will become apparent and appreciated
by referring to the following description and claims taken in
conjunction with the accompanying drawings.
CLAIM
1. A control method of a control system including a terminal
configuredtoexecuteanapplicationonabrowser, adevice configured
to send or receive data and a controller connected to the device,
comprising:
transmittingarequest foradevice control fromthe application
to the controller;
executinganestablishingofthedevicecontrolbythe controller
at the controller, after the controller receives the request;
executinganestablishingofthedevicecontrolbytheapplication
through the controller at the terminal after the controller executes
the establishing of the device control by the device control.
2. The control method of a control system described in claim 1,
wherein
the establishing of the device control by the controller is to
establishastateinwhichthedevicecanbe causedtoexecute aprocess
based on a request from the terminal.
3. The control method of a control system described in claim 1,
wherein
the establishing of the device control by the controller is to
establish a state in which data can be sent and received between the
device and the terminal.
4. The control method of a control system described in claim 1,
wherein
the establishing of the device control by the controller is to
instantiate a control object configuredto handle data communication
5 . The control method of a control system described in claim 4,
wherein
theestablishingofthedevice controlbytheapplicationthrough
the controller is to instantiate on the terminal an interface object
configured to communicate with the control object.
6 . The control method of a control system described in claim 1,
wherein
the device is a printer configured to print;
the application transmits a request for a printer control to
control the printer;
the controller executes an establishing of the printer control
based on received request for the printer control; and
after the controller executes the establishing the printer
control, theapplicationexecutestheestablishingtheprintercontrol
through the controller.
7 . The control method of a control system described in claim 1,
wherein
the device is a scanner that reads;
the application transmits a request for the scanner control to
control the scanner;
I
I the controller executes an establishing of the scanner control
i
I based on received request for the scanner control to control the
I scanner; and
I
I after the controller executes the establishing of the scanner
control, the application executes the establishing of the scanner
control through the controller.
L* 3 - 49 -
4 " . ' sai.i.*i aLJ-*-
* t #
L 2 4 2013 8 . The control method of a control system described in claim 7,
wherein
the scanner control is to send data read by the scanner to the
application through the controller.
9. A control system comprising:
a device configured to send or receive data;
a terminal including,
a browser execution unit configured to run a browser on
which an application configured to output a device control request
operates,
and a communication module configured to transmit the
request of the application; and
a controller including,
an interface configured to connect to the device, and
a control unit configured to execute an establishing of
the device control when the request transmitted from the terminal
is received.
10. The control system described in claim 9, wherein
after the control unit executes the establishing of the device
control,theapplicationexecutesanestablishingofthedevicecontrol
through the controller.
11. The control system described in claim 9, wherein
the device includes a processing unit; and
the establishing of the device control by controller is
establishing a state in which the processing unit of the device can
be caused to execute a process based on the request.
12. The control system described in claim 9, wherein r ‘L 1 I r r v CL;:!j *.
the establishing of the device control by controller is
establishing a state in which data can be sent and received between
the device and the terminal.
13. The control system described in claim 9, wherein
the establishing of the device control by controller is the
controller instantiating a control object configured to handle data
communication with the device.
14. The control system described in claim 10, wherein
the establishing of device control by the application of the
terminal through the controller is instantiating on the terminal an
interface object configured to communicate with the control object.
15. The control system described in claim 9, wherein
the device is a printer configured to print;
the application transmits arequest for a printer control to
control the printer; and
the controller executes the establishingprinter control based
on received request for the printer control to control the printer.
16. The control system described in claim 15, wherein
after the controller executes the establishing the printer
control, the application executes the establishing the printer
control through the controller.
17. The control system described in claim 9, wherein
the device is a scanner configured to read;
control the scanner; and
the controller executes the establishing of the scanner control
based on received the request for the scanner control to control the
scanner.
18. The control system described in claim 17, wherein
after the controller executes the establishing of the scanner
control, the application executes the establishing of the scanner
control through the controller.
19. The control system described in claim 18, wherein
the scanner control is control configured to send data read by
the scanner to the application through the controller.
Dated this 24'h day of December, 201 3.
of G R O S&~ G ROSER
AGENT FO THE APPLICANTS
| # | Name | Date |
|---|---|---|
| 1 | 3752-del-2013-Form-18-(17-01-2014).pdf | 2014-01-17 |
| 2 | 3752-del-2013-Correspondence-Others-(17-01-2014).pdf | 2014-01-17 |
| 3 | 3752-del-2013-Form-13-(27-02-2014).pdf | 2014-02-27 |
| 4 | 3752-del-2013-Drawings-(27-02-2014).pdf | 2014-02-27 |
| 5 | 3752-del-2013-Correspondence-Others-(27-02-2014).pdf | 2014-02-27 |
| 6 | 3752-del-2013-Correspondence-Others-(04-03-2014).pdf | 2014-03-04 |
| 7 | 3752-DEL-2013-GPA-(11-03-2014).pdf | 2014-03-11 |
| 8 | 3752-DEL-2013-Correspondence-Others-(11-03-2014).pdf | 2014-03-11 |
| 9 | 3752-del-2013-Form-5.pdf | 2014-05-20 |
| 10 | 3752-del-2013-Form-3.pdf | 2014-05-20 |
| 11 | 3752-del-2013-Form-2.pdf | 2014-05-20 |
| 12 | 3752-del-2013-Form-1.pdf | 2014-05-20 |
| 13 | 3752-del-2013-Drawings.pdf | 2014-05-20 |
| 14 | 3752-del-2013-Description (Complete).pdf | 2014-05-20 |
| 15 | 3752-del-2013-Correspondence-others.pdf | 2014-05-20 |
| 16 | 3752-del-2013-Claims.pdf | 2014-05-20 |
| 17 | 3752-del-2013-Abstract.pdf | 2014-05-20 |
| 18 | 3752-del-2013-Form-1-(12-02-2015).pdf | 2015-02-12 |
| 19 | 3752-del-2013-Correspondance Others-(12-02-2015).pdf | 2015-02-12 |
| 20 | 3752-DEL-2013-FER.pdf | 2018-11-22 |
| 21 | 3752-DEL-2013-AbandonedLetter.pdf | 2019-10-14 |
| 1 | SEARCHSTRATEGY_20-11-2018.pdf |