Data capture on a serial device
11595468 · 2023-02-28
Assignee
Inventors
Cpc classification
H04L67/34
ELECTRICITY
International classification
G06F15/16
PHYSICS
H04L67/10
ELECTRICITY
Abstract
A system and a method are provided for enabling a user to connect a serial port of a device server to a serial device, query and capture data and settings pertaining to the serial device such that the device server can communicate and exchange data with the serial device without requiring customized programming. The device server may periodically query and capture user-specified data from the serial device. A poll configuration feature may be used to specify one or more commands which the device server will periodically query from the serial device. The response to each poll may be further sliced into a multiplicity of smaller portions according to user-specified filter rules. The captured data may be presented to other users online by way of a Web Manager, and the device server may establish machine-to-machine communications by way of XML and a Command Line Interface.
Claims
1. A serial device server, comprising: a processor; a memory wherein the memory is communicably coupled to the processor and comprises a data capture logic operable by the processor wherein the data capture logic is further configured to generate a user interface, the user interface is hosted on a serial device service and configured to receive one or more parameters, the data capture logic being configured to: establish communication with a serial device; capture data received from the serial device; receive one or more parameters configured to facilitate continued communication between the serial device server and the serial device; and continue communication with the serial device utilizing the received parameters, wherein the one or more parameters are configured to facilitate remote communication between a remote computing device and the serial device.
2. The serial device server of claim 1, wherein the contents of the continued communication may be selected by programming the user interface.
3. The serial device server of claim 2, wherein contents of the continued communication may be selected by programming the user interface.
4. The serial device server of claim 3, wherein programming the user interface may further include selecting what data received from the serial device is displayed.
5. The serial device server of claim 3, wherein programming the user interface may further include selecting what data is sent to the serial device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Preferred embodiments of the present invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
(2)
(3)
(4) illustrates an initialization setup step performed within a Monitor Explorer, wherein an initial state of an external serial device is unknown;
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26) Various embodiments may incorporate one or more of these and other features described herein while remaining within the spirit and scope of the invention. Further features of the present invention, its nature, and various advantages and embodiments will be more apparent by reference to the accompanying drawings and the following detailed description of the exemplary embodiments of the present invention.
DETAILED DESCRIPTION OF EMBODIMENTS
(27) In the following description, numerous specific details are set forth, such as examples of specific data signals, named components, connections, number of memory columns in a group of memory columns, and the like, in order to provide a thorough understanding of the present invention. It will be apparent, however, to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known components or methods have not been described in detail but rather in a block diagram in order to avoid unnecessarily obscuring the present invention. Further specific numeric references such as “first driver,” may be made. However, the specific numeric reference should not be interpreted as a literal sequential order but rather interpreted that the “first driver” is different than a “second driver.” Thus, the specific details set forth are merely exemplary. The specific details may be varied from and still be contemplated to be within the spirit and scope of the present invention. The term “coupled” is defined as meaning connected either directly to the component or indirectly to the component through another component.
(28) In general, a system and method are provided which enables a user to connect a serial port of a device server to a serial port of a serial device, query and capture data and settings pertaining to the serial device such that the device server can communicate and exchange data with the serial device without requiring customized programming. The device server may periodically query and capture user-specified data from the serial device. A poll configuration feature may be used to specify one or more commands which the device server will periodically query from the serial device. The response to each poll may be further sliced into a multiplicity of fields according to user-specified filter rules. The captured data may be presented to other users online by way of a Web Manager, and the device server may establish machine-to-machine communications by way of XML and a Command Line Interface.
(29)
(30) The processor 20 is configured and controlled using programming consisting of various software commands which may be stored in memory 25. The processor operates in accordance with software commands to carry out the functions of a server to facilitate communications between the device server and the serial device 15. The programming may be written in any suitable programming language that is capable of being run by the processor, in compiled form in some instances, and in as written form in other instances, such as when providing network services based on hypertext markup language.
(31) Throughout the description reference will be made to various software programs and hardware components that provide and carryout the features and functions of the various embodiments of the present invention. Software programs may be embedded onto a machine-readable medium. A machine-readable medium includes any mechanism that provides, stores or transmits information in a form readable by a machine, such as, for example, a computer, server or other such device. For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; digital video disc (DVD); EPROMs; EEPROMs; flash memory; magnetic or optical cards; or any type of media suitable for storing electronic instructions.
(32) Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These algorithms may be written in a number of different software programming languages. Also, an algorithm may be implemented with lines of code in software, configured logic gates in software, or a combination of both.
(33) It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussions, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers, or other such information storage, transmission or display devices.
(34) In an embodiment, the logic consists of electronic circuits that follow the rules of Boolean Logic, software that contain patterns of instructions, or any combination of both.
(35) Referring again to
(36) Device server 20 also includes Ethernet port 35, which facilitates connection to a wired Ethernet based network. Alternatively, device server may also include a wireless transmitter/receiver 50 which is configured to be controlled by the processor 20 to send and receive information through antenna 45 through a wireless network.
(37)
(38) It will be understood by those skilled in the art that the network/cloud may comprise one or more servers, databases, and associated memory or other storage facilities, as well as appropriate communication circuitry and interfaces to facilitate information flow between the user and device server. Various software programs may also be run on the User's processor, the device server, and any or all of the servers comprising the network to allow for bidirectional communication of information through the network.
(39) For example, device server 70 may include software that provides a graphic user interface (GUI), or a command line architecture, that can be accessed by a user to communicate with, configure, and control the processor of the server. One such program may be program such as a Monitor Explorer, one screen of which is illustrated in
(40) Monitor Explorer is an embodiment of a software program that is stored in the memory 25 of device server 10 (
(41) The Monitor Explorer program may also be accessed through a program such as a web manager program that is stored in the memory of the device server. A user, upon connecting to the device server, may log into the web manager, and, upon validation of the user's right to access the device server, may be presented with various programs or sub-programs that may be called using in the web manager.
(42) Typically, device server 70 will not be directly coupled to a display or user input/output devices. Accordingly, the processor of device server 70 is accessed by a user indirectly, through a network connection. Accordingly, the examples and description below may be assumed to contemplate that a person using the GUI described below has already logged into the device server.
(43) When an external serial device is initially connected to the device server 70, the initial state of the external serial device is unknown to the device server. Accordingly, a screen such as that depicted in
(44)
(45) As shown in
(46) The central portion 107 also includes areas that are designated for the display of information or data that is communicated to the user. Under certain circumstances, the program may display information to the user, and also provide an area for the user to enter a command or response. Column 108 typically provides information to the user to assist the user in interpreting and/or responding to data, information, or command requests presented by the program in central portion 107.
(47) Upon connecting the serial device to the device server, a user may select Monitor from the tabs of column 105 to determine the status of the serial device. At this time, the user may select the “Explore” button 120 to “explore” the serial device to determine the serial device's initial state.
(48) Alternatively, the user may access an alternative embodiment, shown in
(49) In one embodiment, the “Explore” feature of the Monitor program provides a sequence of five display pages to the user that may be used to determine the proper settings to communicate with the serial device as well as make entries to configure the device server to communicate with the serial device. The “Configuration” button 125 may also be activated from any of the displayed pages to go directly to an applicable configuration page and make specific changes. The device monitoring status may also be viewed by activating the “Status” button 115.
(50) The screens that are displayed to the user may be used to determine the output provided by the serial device and also to allow the user to create data parsing rules for selecting specific data from the stream of data produced by the serial device. All of this may be accomplished in real time without the need for the user to write complicated programming, and the results of the user entries may be tested in real time to determine if the entered rules and other parameters provide the desired data. Once the rules and parameters are entered, they may be stored in the memory of the device driver, and then are used by the processor of the device driver to interpret and parse the incoming stream of data from the serial device to provide data desired by the user to be transmitted through the Ethernet port of the device server to the user over a network or the Internet.
(51) In one embodiment, the five pages presented to the user when accessing the “Explorer” program include; a setup initiation page; a setup commands page; a define filters page; a pick data page; and a confirm and submit changes page.
(52)
(53)
(54) Once the initial setup is completed, the “Next” button 175 is activated which changes the display screen to the setup commands page shown in
(55) For example, to modify Message 1, the user activates “Edit” button 190, which expands the screen display as depicted in
(56) As shown, the values for the command, end character, length and timeout fields can be modified. As described above, each time the device server transmits (or polls) the message to the serial device, the command identified in the command field sent to the device should evoke a response from the serial device. The character end field identifies a character that the device server looks for that identifies the end of a response from the serial device to the transmitted command. The length field sets the maximum length of the response, and the timeout field sets the length of time the device server will wait for a response from the serial device. Each of the configuration parameters may be modified on this page.
(57) Alternatively, the user may activates the Monitor “Configuration” button 125 to directly modify one or more poll settings. This alters the display to that illustrated in
(58) In an embodiment, illustrated in
(59) In an exemplary embodiment, the response to each poll may be sliced into smaller portions according to user-specified filter rules. Slicing the data advantageously facilitates later access to the desired data, without having to search through large quantities of unneeded data. In one embodiment, the user may examine the form of the response received from a particular poll, looking for clues in the response to locate desired information. The user may further determine whether the form of the response may include variations depending on the state of the serial device.
(60) The rules for slicing the poll responses are configured by accessing the Define filter page, as illustrated in
(61) For example, the user may be interested in the value for the “Uptime” parameter, identified by reference numeral 205. As shown in
(62) As will be apparent, many different rules may be established to parse the data and information provided by the serial device to the poll of the device server. Rules are generally performed sequentially, but each rule can point to either raw source (0) or a result of a previous rule (R.f). In one embodiment, each rule may slice the raw input from the serial device into multiple fields (f). Thus, the nomenclature R.f refers to a particular sliced result selected from the rule.
(63)
(64) The first of the six rule configuration parameters is source, which indicates the input of the filter or rule. In the example shown in
(65) The second rule configuration parameter sets the mode of the rule. In one embodiment, the possible values include: all, delimiters, or binary.
(66) The third mode configuration parameter defines one or more delimiters that are applied with the rule, but is only displayed if delimiter mode is selected when entering the mode parameter, as described above. The number of delimiters to be applied is identified, as well as a binary string that is used to separate each delimited portion of the response. Delimiters are not included in a trunk of data. As shown in the display of the parameters for Rule 1, delimiter mode is selected, and the binary string separating information trunks is [0x0d, 0x0a].
(67) The fourth rule configuration parameter identifies a start index to indicate when delimiters start breaking input into trunks, if delimiter mode is selected.
(68) The fifth rule configuration parameter, is an offset parameter, which is used to set the size of the first trunk of data if binary mode is selected.
(69) A sixth rule configuration parameter is a length parameter, which, when the binary mode is selected, specifies the size of a second trunk of data created by the binary filter, if the binary mode is selected. In this mode, a third trunk of data created by the binary filter will contain the remainder of the raw input.
(70) Using the parameters defined above, Rules 1 and 2 are applied to the raw input displayed in area 195 of
(71)
(72) Once the user has created one or more filters, the user may select the particular data to be mined, so as to present the data to other users or to one or more machines on the network. In an exemplary embodiment, the user may have created multiple polls and filters, and different filters may generally apply to each of the multiple polls, though some filters may be applicable to more than one poll. However, since all of the slicing of the raw data is virtual, and thus all of the filter rules overlay raw data from each response to a poll, the user need only be concerned with the rules pertaining to a particular poll message.
(73) Once the rules and polling frequency for analyzing the data stream received from the serial device have been established, the user may then configure the device driver using the Monitor Explorer program to select specific data from the data stream to be displayed or transmitted to the user. In an exemplary embodiment, illustrated in
(74) In Monitor Explorer, clicking the “Next” button on the “Define filters” page takes the user to the “Pick data” page, shown in
(75) Multiple Selectors can be defined to select multiple data items from the results of the applications of the one or more rules previously defined and applied to the raw data received from the serial device by the device server. Activating the “Edit” button 255 associated with a particular Selector causes the display of the screen depicted in the
(76) In an embodiment, illustrated in
(77) Alternatively, the one or more Selectors (if any) may be configured using the “Configuration” program that is accessed by activating the “Configuration” button 125, as depicted in
(78) Once the user has configured the desired Selectors, the user may select the Confirm and submit changes screen of the Monitor Explorer as illustrated in
(79) In an exemplary embodiment, the user may consider options for sharing the data that was mined utilizing the various embodiments described above. In an embodiment, a Web page may be used for presenting the data to other users. In another embodiment, XML may be used to present the data for machine-to-machine communications. In still another embodiment, a Command Line Interface may be used for both machine-to-machine communications and other users.
(80) In an embodiment illustrated in
(81) In an exemplary embodiment, data received from a serial device may be presented to a user through the Web Manager software running on the processor of the device server. Typically, however, the data that results from application of the various Messages, Rules and Selectors of the various embodiments described above needs to be formatted in a manner that allows the data to be presented or transmitted in a useful manner.
(82) For example, in the case where a Serial Peripheral Interface port of the device server is connected to an external SPI slave device, the data may be communicated to the device server in a binary format, which is processed as described above. The binary form of data from the SPI must be converted to an appropriate format before being presented. In an embodiment, the binary data may be converted by using HTML and/or JavaScript programs that are loaded into and run by the processor of the device server.
(83)
(84) While the user interface of the present invention has be described with reference to a graphical user interface, as shown in the drawings, the device server configuration settings may be explored and/or altered using alternative interface designs and methods. For example, a text based interface, such as, but not limited to, a command line interface, may be used. In one embodiment, a user enters a parameter name followed by a parameter value on a command line displayed to the user.
(85) In another alternative embodiment, an XML interface may be used. In one embodiment, the user supplies parameter names and desired values using an XML interface which provides the device server with the parameter names and values in a machine readable format.
(86) Various embodiments may incorporate one or more of these and other features described herein while remaining within the spirit and scope of the invention. Further features of the present invention, its nature, and various advantages and embodiments will be apparent to those of ordinary skill in the art by reference to the accompanying drawings and the above summary of the preferred embodiments of the present invention.