WO2017158590A1 - System and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports - Google Patents

System and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports Download PDF

Info

Publication number
WO2017158590A1
WO2017158590A1 PCT/IL2017/050298 IL2017050298W WO2017158590A1 WO 2017158590 A1 WO2017158590 A1 WO 2017158590A1 IL 2017050298 W IL2017050298 W IL 2017050298W WO 2017158590 A1 WO2017158590 A1 WO 2017158590A1
Authority
WO
WIPO (PCT)
Prior art keywords
serial
port
hardware module
hardware
protocol
Prior art date
Application number
PCT/IL2017/050298
Other languages
French (fr)
Inventor
Eliav GNESSIN
David Ariel CHOURAQUI
Original Assignee
Cloud Of Things, Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloud Of Things, Ltd filed Critical Cloud Of Things, Ltd
Publication of WO2017158590A1 publication Critical patent/WO2017158590A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Definitions

  • the invention relates to a system and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports.
  • firmware update for supporting one or more other standards, and optionally update the firmware of the devices already shipped and/or sold to customers.
  • updating the firmware is not an easy task, and it may require installation by a person having physical access to the device (e.g. the customers himself or a support person, located at the device's location).
  • US Patent No. 7,457,847 discloses a method for remotely communicating with a computer system in a headless environment.
  • the system includes a service processor in communication with a computer through a UART communication channel and in communication with a remote console through a communication connection.
  • the service processor manages communication commands between the computer and the remote console.
  • the service processor transmits data communication received from the remote console to the computer through the UART channel, and the service processor transmits data communication received from the computer to the remote console through the UART channel.
  • a multiplexer may be employed to direct communication between one of a plurality of computers and the service processor in combination with a multiplexer control to select one of the computers for communication with the service processor.
  • the multiplexer directs the communication through the UART channel.
  • US Patent No. 6, 170,021 discloses a An operating system independent method and apparatus for redirecting a server computer's serial device input and display output to a remote console, through the coordinated use of a low-cost dedicated microcontroller integrated within the motherboard of the server computer, and a system management mode facility residing within the CPU microprocessor of the server computer.
  • the microcontroller Upon receipt of a redirection request from a remote console, the microcontroller asserts a system management interrupt request, which is acknowledged and serviced by a handler routine residing within the system management mode.
  • the system management interrupt handler routine then directly accesses serial device input and video output data residing within the server computer, and returns any redirection result to the microcontroller, which in turn, returns the redirection result to the requesting remote console.
  • a system for remotely communicating with one or more selected remote devices of a plurality of remote devices each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device
  • the system comprising at least one processor configured to: obtain identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.
  • At least one first remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding first remote device, to a first local area network and at least one second remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding second remote device, to a second local area network other than the first local area network.
  • the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first remote device cannot establish a direct wireless connection to the second local area network.
  • the first remote device is located at a first geographical location and the second remote device is located at a second geographical location other than the first geographical location.
  • the first geographic location is at least ten kilometers away from the second geographical location.
  • executing the serial-port based commands on the at least one remote device results in a firmware update of a firmware of the at least one remote device.
  • the firmware update includes updating an existing Internet of Things (IoT) protocol behavior or adding new Internet of Things (IoT) protocol support.
  • the processor is further configured to send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, firmware update commands, wherein executing the firmware update commands on the hardware modules of the selected remote devices results in a firmware update of a firmware of the hardware modules of the selected remote devices.
  • the firmware of the hardware module of the selected remote devices supports at least a first Internet of Things (IoT) protocol
  • the firmware update includes adding support of at least a second IoT protocol
  • the first IoT protocol and the second IoT protocol enable the hardware module of the selected remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
  • the processor is further configured to receive, from the wireless internet connection enabling component comprised within the hardware module of selected remote devices, over the network, serial-port output information enabling determination of output provided to the hardware module from the serial port of the selected remote devices.
  • the processor is further configured to send, over the network, the serial-port output information to a remote workstation for presenting the output on a display thereof.
  • the serial-port based commands information originates from the remote workstation.
  • the serial-port output information is in a format suitable for sending over the network and wherein the output provided to the hardware module from the serial port of the selected remote devices is in a format suitable for a serial port connection.
  • the serial-port based commands information is in a format suitable for sending over the network and wherein the serial-port based commands are in a format suitable for a serial port connection.
  • a hardware module connectable to a serial port connection of a hardware device, the hardware module comprising (a) a wireless internet connection enabling component, and (b) a controller, the controller configured to: receive, over a wireless internet connection established by the wireless internet connection enabling component, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection; determine, utilizing the serial-port based commands information, the serial-port based commands; and send the serial-port based commands to the hardware device through the serial port connection.
  • the controller is further configured to receive, from the hardware device, through the serial port connection, serial-port output in a format suitable for a serial port connection.
  • the controller is further configured to send, over the wireless internet connection, to a remote server, serial-port output information enabling determination of the serial-port output, wherein the serial-port output information is in a format suitable for sending over the wireless internet connection.
  • executing the serial-port based commands on the hardware device via the serial port connection results in a firmware update of a firmware of the hardware device.
  • the firmware update includes updating an existing Internet of Things (IoT) protocol or adding a new Internet of Things (IoT) protocol support.
  • the controller is further configured to receive, over the wireless internet connection established by the wireless internet connection enabling component, firmware update commands, wherein executing the firmware update commands on the hardware module results in a firmware update of a firmware of the hardware module.
  • the firmware of the hardware module supports at least a first Internet of Things (IoT) protocol
  • the firmware update includes adding support of at least a second IoT protocol
  • the first IoT protocol and the second IoT protocol enable the hardware device to communicate with : (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
  • a method for remotely communicating with one or more selected remote devices of a plurality of remote devices each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device, the method comprising: obtaining identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.
  • At least one first remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding first remote device, to a first local area network and at least one second remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding second remote device, to a second local area network other than the first local area network.
  • the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first remote device cannot establish a direct wireless connection to the second local area network.
  • the first remote device is located at a first geographical location and the second remote device is located at a second geographical location other than the first geographical location.
  • the first geographic location is at least ten kilometers away from the second geographical location.
  • executing the serial-port based commands on the at least one remote device results in a firmware update of a firmware of the at least one remote device.
  • the firmware update includes updating an existing Internet of Things (IoT) protocol behavior or adding new Internet of Things (IoT) protocol support.
  • IoT Internet of Things
  • IoT Internet of Things
  • the method further comprises sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, firmware update commands, wherein executing the firmware update commands on the hardware modules of the selected remote devices results in a firmware update of a firmware of the hardware modules of the selected remote devices.
  • the firmware of the hardware module of the selected remote devices supports at least a first Internet of Things (IoT) protocol
  • the firmware update includes adding support of at least a second IoT protocol
  • the first IoT protocol and the second IoT protocol enable the hardware module of the selected remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
  • the method further comprises receiving, from the wireless internet connection enabling component comprised within the hardware module of selected remote devices, over the network, serial-port output information enabling determination of output provided to the hardware module from the serial port of the selected remote devices.
  • the method further comprises sending, over the network, the serial-port output information to a remote workstation for presenting the output on a display thereof.
  • the serial-port based commands information originates from the remote workstation.
  • the serial-port output information is in a format suitable for sending over the network and wherein the output provided to the hardware module from the serial port of the selected remote devices is in a format suitable for a serial port connection.
  • the serial-port based commands information is in a format suitable for sending over the network and wherein the serial-port based commands are in a format suitable for a serial port connection.
  • a method of operating a hardware module connectable to a serial port connection of a hardware device comprising a wireless internet connection enabling component
  • the method comprising: receiving, by the hardware module, over a wireless internet connection established by the wireless internet connection enabling component, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection; determining, by the hardware module, utilizing the serial-port based commands information, the serial-port based commands; and sending, by the hardware module, the serial-port based commands to the hardware device through the serial port connection.
  • the method further comprises receiving, by the hardware module, from the hardware device, through the serial port connection, serial-port output in a format suitable for a serial port connection.
  • the method further comprises sending, by the hardware module, over the wireless internet connection, to a remote server, serial-port output information enabling determination of the serial-port output, wherein the serial-port output information is in a format suitable for sending over the wireless internet connection.
  • executing the serial-port based commands on the hardware device via the serial port connection results in a firmware update of a firmware of the hardware device.
  • the firmware update includes updating an existing Internet of Things (IoT) protocol or adding a new Internet of Things (IoT) protocol support.
  • IoT Internet of Things
  • the method further comprises receiving, by the hardware module, over the wireless internet connection established by the wireless internet connection enabling component, firmware update commands, wherein executing the firmware update commands on the hardware module results in a firmware update of a firmware of the hardware module.
  • the firmware of the hardware module supports at least a first Internet of Things (IoT) protocol
  • the firmware update includes adding support of at least a second IoT protocol
  • the first IoT protocol and the second IoT protocol enable the hardware device to communicate with : (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
  • a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a computer to perform a method comprising: obtaining (a) identification information enabling identification of one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote and (b) serial-port based commands information enabling determination of one or more serial-port based commands; and sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information
  • a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable
  • FIG. 1 is a schematic illustration of an environment of a system for connecting a plurality of devices to a communication network and remotely communicating with the devices via serial ports, in accordance with the presently disclosed subject matter;
  • Fig. 2 is a block diagram schematically illustrating one example of a hardware module connectable to a hardware device, in accordance with the presently disclosed subject matter;
  • Fig. 3 is a block diagram schematically illustrating one example of a server capable of communicating with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter;
  • Fig. 4 is a flowchart illustrating one example of a sequence of operations carried out for a remote server to communicate with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter;
  • Fig. 5 is a flowchart illustrating one example of a sequence of operations carried out for a hardware module of a hardware device to communicate with the hardware module over a serial port connection, in accordance with the presently disclosed subject matter.
  • should be expansively construed to cover any kind of electronic device with data processing capabilities, including, by way of non-limiting example, a personal desktop/laptop computer, a server, a computing system, a communication device, a smartphone, a tablet computer, a smart television, a processor (e.g. digital signal processor (DSP), a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), any other electronic computing device, and/or any combination thereof.
  • DSP digital signal processor
  • FPGA field programmable gate array
  • ASIC application specific integrated circuit
  • non-transitory is used herein to exclude transitory, propagating signals, but to otherwise include any volatile or non-volatile computer memory technology suitable to the application.
  • the phrase “for example,” “such as”, “for instance” and variants thereof describe non-limiting embodiments of the presently disclosed subject matter.
  • Reference in the specification to “one case”, “some cases”, “other cases” or variants thereof means that a particular feature, structure or characteristic described in connection with the embodiment(s) is included in at least one embodiment of the presently disclosed subject matter.
  • the appearance of the phrase “one case”, “some cases”, “other cases” or variants thereof does not necessarily refer to the same embodiment(s).
  • Figs. 1-3 illustrate a general schematic of the system architecture in accordance with an embodiment of the presently disclosed subject matter.
  • Each module in Figs. 1-3 can be made up of any combination of software, hardware and/or firmware that performs the functions as defined and explained herein.
  • the modules in Figs. 1-3 may be centralized in one location or dispersed over more than one location.
  • the system may comprise fewer, more, and/or different modules than those shown in Figs. 1-3.
  • FIG. 1 showing a schematic illustration of an environment of a system for connecting a plurality of devices to a communication network and remotely communicating with the devices via serial ports, in accordance with the presently disclosed subject matter.
  • the environment 10 can include a plurality of hardware devices 100 (e.g. home appliances such as refrigerators, washing machines, water heaters, air conditioners, television sets, audio systems, and any other electronic device having a controller), one or more servers 110 (e.g. computers acting as server computers capable of communicating with clients), and optionally one or more workstations 120.
  • hardware devices 100 e.g. home appliances such as refrigerators, washing machines, water heaters, air conditioners, television sets, audio systems, and any other electronic device having a controller
  • servers 110 e.g. computers acting as server computers capable of communicating with clients
  • workstations 120 e.g. Internet
  • the hardware devices are located remotely from the one or more servers, so that the hardware devices (also interchangeably referred to herein as "remote hardware devices”) are unable to directly connect to a local area network to which the servers are connected.
  • Each hardware device 100 includes a hardware module connected thereto through a serial port (which is the commonest communication mechanism for communicating with devices based on microcontroller units (MCUs)) of the hardware device 100.
  • the hardware module comprises a wireless network connection enabling component, enabling it to wirelessly connect, through a direct wireless connection to a local area network, to the communication network 130 (that can be, for example, the Internet, or any other network that enables a plurality of computerized devices to interconnect using, for example, the Transmission Control Protocol/Internet Protocol (TCP/IP)).
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • At least one first hardware device of the plurality of hardware devices 100 is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a first local area network and at least one second hardware device of the plurality of hardware devices 100 is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a second local area network other than the first local area network.
  • the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first hardware device cannot establish a direct wireless connection to the second local area network.
  • the first hardware device is located at a first geographical location and the second hardware device is located at a second geographical location other than the first geographical location.
  • the first geographic location is at least ten kilometers away from the second geographical location.
  • the one or more servers 110 can communicate with the hardware modules of the hardware devices 100, via the communication network 130.
  • the one or more servers 110 can send data to and/or receive data from the hardware modules of the respective hardware devices 100 over the communication network 130, as further detailed herein, inter alia with reference to Figs. 3 and 4.
  • the data can include data enabling update of a firmware of the hardware modules of the respective hardware devices 100 (e.g. for updating an existing Internet of Things (IoT) protocol behavior or adding new IoT protocol support to the hardware modules of the respective hardware devices 100), or a firmware of the hardware devices 100 themselves (e.g. for introducing new functionality to the hardware devices 100 and/or for changing/deleting existing functionality of the hardware devices 100 and/or for fixing software bugs).
  • IoT Internet of Things
  • a given workstation 120 can communicate with a hardware module of a given hardware devices 100, via the communication network 130.
  • the communication can be direct (e.g. via the communication network 130) whereas in other cases the communication can be indirect (e.g. through the servers 110).
  • the workstation 110 can send data to, and/or receive data from, the hardware module of the hardware device 100 over the communication network 130, as further detailed herein, inter alia with reference to Figs. 3 and 4.
  • the data can include debugging data.
  • Fig. 2 there is shown a block diagram schematically illustrating one example of a hardware module connectable to a hardware device, in accordance with the presently disclosed subject matter.
  • hardware module 220 can comprise a wireless network connection enabling component 230 (e.g. a WiFi client, a LiFi client, any other component that is capable of wirelessly connecting to the communication network 130, etc.), enabling connecting the hardware module 220 (and by that, enabling connecting the hardware device 100) to communication network 130 and enabling it to send data and/or receive data sent thereto, through the communication network 130, including sending and/or receiving serial-port based commands information, as detailed herein, inter alia with reference to Fig. 4.
  • a wireless network connection enabling component 230 e.g. a WiFi client, a LiFi client, any other component that is capable of wirelessly connecting to the communication network 130, etc.
  • Hardware module 220 can further comprise, or be otherwise associated with, a hardware module memory 250 (e.g. Read Only Memory - ROM, Random Access Memory - RAM, or any other type of memory, etc.) configured to store data, including, inter alia, a firmware.
  • the firmware can support at least one IoT standard (e.g. AllJoyn (designed by the AllSeen Alliance formed by LG and Qualcomm), IoTivity (designed by the Open Connectivity Foundation formed by Samsung, Microsoft and Inte), HomeKit (designed by Apple), Weave (designed by Google), etc.).
  • hardware module memory 250 can be further configured to enable retrieval and/or update and/or deletion of the data stored thereon.
  • Hardware module 220 further comprises a hardware module controller 240.
  • Hardware module controller 240 can be one or more processing units (e.g. central processing units), microprocessors, microcontrollers (e.g. microcontroller units (MCUs)) or any other computing devices or modules, including multiple and/or parallel and/or distributed processing units, which are adapted to independently or cooperatively process data for controlling relevant hardware module 220 resources and for enabling operations related to hardware module 220 resources.
  • processing units e.g. central processing units
  • microprocessors e.g. microcontroller units (MCUs)
  • MCUs microcontroller units
  • the hardware module controller 240 can comprise one or more of the following modules: hardware device communication module 280 and a server communication module 290.
  • hardware device communication module 280 can be configured to control communication between the hardware module 220 and the hardware device 100, as further detailed herein, inter alia with reference to fig. 5.
  • server communication module 290 can be configured to control communication between the hardware module 220 and the server 110, as further detailed herein, inter alia with reference to figs. 4 and 5.
  • Hardware module 220 is configured to connect to a serial port of a hardware device 100 having a vacant serial port connection.
  • hardware module 220 can have a serial port connector 270 capable of connecting to a serial port connector 260 of the hardware device 100. Connecting the hardware module 220 to the serial port of the hardware device 100 enables the hardware module 220 to directly communicate with the hardware device controller 200).
  • Hardware device 100 can comprise, or be otherwise associated with, a hardware device memory 210 (e.g. Read Only Memory - ROM, Random Access Memory - RAM, or any other type of memory, etc.) configured to store data, including, inter alia, a firmware.
  • the firmware can provide various functionality to the hardware device 100 (e.g. start operating, stop operating, set parameters, etc.).
  • hardware device memory 210 can be further configured to enable retrieval and/or update and/or deletion of the data stored thereon.
  • Hardware device 100 further comprise a hardware device controller 200
  • Hardware device controller 200 can be one or more processing units (e.g. central processing units), microprocessors, microcontrollers (e.g. microcontroller units (MCUs)) or any other computing devices or modules, including multiple and/or parallel and/or distributed processing units, which are adapted to independently or cooperatively process data for controlling relevant hardware device 100 resources and for enabling operations related to hardware device 100 resources.
  • processing units e.g. central processing units
  • microprocessors e.g. microcontroller units (MCUs)
  • MCUs microcontroller units
  • Fig. 3 shows a block diagram schematically illustrating one example of a server capable of communicating with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter.
  • network 110 can comprise one or more network interfaces 310 enabling connecting the server 100 to the communication network 130 and enabling it to send and receive data sent thereto through communication network 130, including sending data to remote hardware devices 100 and receiving data from remote hardware devices 100 as detailed herein, inter alia with reference to Figs. 4 and 5.
  • server 110 can further comprise, or be otherwise associated with, a data repository 320 (e.g. a database, a storage system, a memory including Read Only Memory - ROM, Random Access Memory - RAM, or any other type of memory, etc.) configured to store data, including, inter alia, information enabling communicating with one or more remote devices 100 (e.g. Internet Protocol (IP) addresses thereof, etc.), as further detailed herein.
  • data repository 130 can be further configured to enable retrieval and/or update and/or deletion of the stored data. It is to be noted that in some cases, data repository 130 can be distributed.
  • Server 110 further comprises one or more processing resources 110.
  • Processing resource 110 can be one or more processing units (e.g. central processing units), microprocessors, microcontrollers or any other computing devices or modules, including multiple and/or parallel and/or distributed processing units, which are adapted to independently or cooperatively process data for controlling relevant system resources and for enabling operations related to server 110 resources.
  • multiple servers 110 can exist.
  • the multiple servers 110 can share the data repository 320, or they can each maintain an independent data repository 320 that can contain identical data, partially identical data, or different data.
  • the processing resource 110 can comprise a hardware module communication module 340 and a remote workstation communication module 350.
  • hardware module communication module 340 can be configured to control communication between the server 110 and the hardware module 220, as further detailed herein, inter alia with reference to fig. 4.
  • remote workstation communication module 340 can be configured to control communication between the server 110 and the remote workstation 120, as further detailed herein, inter alia with reference to fig. 4.
  • FIG. 4 showing a flowchart illustrating one example of a sequence of operations carried out for a server to communicate with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter.
  • server 110 can be configure to perform a remote hardware module communication process 400, e.g. utilizing hardware module communication module 340.
  • server 110 can be configured to obtain identification information enabling identification of one or more selected remote devices of the plurality of remote devices 100, and serial-port based commands information enabling determination of one or more serial-port based commands for sending to the selected remote devices (block 410).
  • Each of the plurality of remote devices 100 are wirelessly connected to the communication network 130 via a wireless internet connection enabling component 230 comprised within the hardware module 220 connected to a serial port 260 of the respective remote device 100.
  • each remote device 100 connects to the communication network 130 (e.g. directly, or through a router establishing a local area network connected to the Internet), it receives (e.g. utilizing Dynamic Host Configuration Protocol (DHCP)) a unique Internet Protocol (IP) address, which enables other devices connected to the communication network 130 to identify it and to establish a communication channel with it.
  • DHCP Dynamic Host Configuration Protocol
  • IP Internet Protocol
  • the identification information can include the Internet Protocol (IP) addresses of each of the selected remote devices (or other information enabling identification of the selected remote devices, and establishing a communication channel therewith, e.g. IPv4 address, IPv6 address, etc.) with which the server 110 is expected to communicate as further detailed herein.
  • IP Internet Protocol
  • the identification information is obtained from the server (e.g. automatically), or from a user of a workstation 120 (in such case, the workstation 120 can be configured to send the identification information to the server 110), or from a user of a server 110, e.g. via a user interface thereof. It is to be noted that in some cases, the user can provide identification information of a given selected remote device 100 (e.g.
  • the user when there is a problem with the given remote device 100 and the user wishes to debug the given remote device using serial-port based commands; when the user wishes to update a firmware of the given remote device and/or of the given remote device's hardware module, etc.), and in other cases the user can provide identification information of a group of two or more selected remote devices of the remote devices 100 (e.g. when the user wishes to update a firmware of the group of two or more selected remote devices and/or of the hardware modules of the group of two or more selected remote devices, etc.).
  • the identification information enabling identification of two or more selected remote devices of the plurality of remote devices 100, at least one first selected remote device of the selected remote devices is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a first local area network and at least one second selected remote device of the selected remote devices is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a second local area network other than the first local area network.
  • the first selected remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first selected remote device cannot establish a direct wireless connection to the second local area network.
  • the first selected remote device is located at a first geographical location and the second selected remote device is located at a second geographical location other than the first geographical location.
  • the first geographic location is at least ten kilometers away from the second geographical location.
  • serial port based commands are required to be transferred from the hardware module 220 of the selected hardware devices to the selected hardware devices through their serial ports in accordance with a suitable serial- port connectivity standard
  • a serial-port connectivity standard can be, for example, a Universal Asynchronous Receiver/Transmitter (UART) protocol, an Inter-Integrated Circuit (I2C) protocol, a Serial Peripheral Interface (SPI) protocol, a Universal Serial Bus (USB), a Serial port console protocol, or a protocol suitable for other types of serial port connections), which is incompatible for sending over the communication network 130.
  • the serial- port based commands information (which enables identification of the serial port based commands in accordance with the suitable protocol) is obtained in a format compatible with a protocol for sending over the communication network 130 (it is to be noted that whenever reference is made herein to a format suitable for sending over the communication network, it can be, for example, Hypertext Transfer Protocol (HTTP), Web Sockets protocol, Extensible Messaging and Presence Protocol (XMPP), Message Queue Telemetry Transport (MQTT) protocol, etc.), which can be translated to a format compatible for a serial port when arriving to the hardware module 220 of the selected remote devices, as further detailed herein.
  • HTTP Hypertext Transfer Protocol
  • XMPP Extensible Messaging and Presence Protocol
  • MQTT Message Queue Telemetry Transport
  • the serial-port based commands information can be obtained from a workstation 120 (in such case, the workstation 120 can be configured to send the serial-port based commands information, which is in a format compatible with a protocol for sending over the communication network 130, to the server 110, over the communication network 130,), or from the server 110 (e.g. they can be retrieved from the server's 110 data repository 320; obtained from a user of the server 110 via a user interface of the server 110; etc.), e.g. in accordance with instructions received from a user via a user interface of the workstation 120 or the server 110.
  • the serial-port based commands information can be additionally or alternatively generated by the server 110.
  • the serial-port based commands can be commands for debugging the selected remote devices (for querying the selected remote devices for information, including information relating to one or more sensors connected to the selected remote devices or technical information relating to the hardware device controller 200, e.g. for analysis purposes, etc.), or for replacing or updating a firmware of the selected remote devices (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.).
  • IoT Internet of Things
  • the serial-port based commands can update the firmware of the selected remote device for changing, optionally temporarily (e.g. for a pre-determined time period and/or until input is received, optionally from a user, via an input means of the selected remote device, etc.), the functionality of one or more input and/or output means (e.g. a display of the selected remote devices, a touch screen of the selected remote devices, one or more buttons of the selected remote devices, etc.) thereof.
  • the firmware can be updated to change the functionality of a display of the selected remote devices, for example in order to provide commercials on the display.
  • the commercials can be provided continuously, at pre-determined times, and/or when a pre-determined rule is met (e.g. when a measurement performed by a sensor of the selected remote device indicates that a product required for its operation (e.g. Laundry detergent, dishwasher powder, milk, coffee capsules, etc.) is below a predetermined threshold, when the user of the selected remote device presses a certain button, a sequence of buttons, etc.).
  • the firmware can also be updated to change the functionality of an input means, so that it can be used for various purposes.
  • One such purpose is for automatically ordering a certain quantity of the product required for operation of the selected remote device. For example, assuming a commercial is provided with respect to a certain product (whether arbitrarily, or as a result of a shortage of the product that is required for the selected remote device operation), it can be presented on the display of the selected remote device for offering the user of the selected remote device to order a certain quantity of the product by pressing a given button of the selected remote device, whose functionality has been temporarily changed to enable automatically sending an order to a supplier of the product if the button is pressed.
  • the firmware can be updated to change the functionality of a display of the selected remote devices for providing information of errors and optionally for enabling a user to automatically request a technician visit in case of a detected malfunction of the selected remote device.
  • the updated firmware can, for example, provide the user of the selected remote device, on a display of the selected remote device, a notification with an explanation about the error.
  • the updated firmware can change the functionality of the power button (or any other button for that purpose) of the selected remote device so that when the user of the selected remote device presses the button, a service call is automatically sent to an entity that provides technical support (e.g. a technician, a company that employs technicians, a call center, etc.), optionally with information about the encountered error (e.g. the error code).
  • the server 110 can additionally or alternatively receive firmware update commands whose execution on the hardware modules of the selected remote devices results in a firmware update (or replacement) of a firmware of the hardware modules of the selected remote devices (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.).
  • the hardware modules of the selected remote devices support a first Internet of Things (IoT) protocol and does not support a second IoT protocol, and the firmware update commands add support of the second IoT protocol.
  • the first IoT protocol and the second IoT protocol enable the hardware modules of the selected 5 remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
  • 10 110 can be further configured to send, over the communication network 130, to the wireless internet connection enabling components 230 comprised within the corresponding hardware modules 220 of the selected remote devices, the obtained serial-port based commands information enabling determination of one or more serial - port based commands (and/or the firmware update commands detailed herein) (block
  • the serial-port based commands information (and the firmware update commands, if sent) is in a format compatible with a protocol for sending over the communication network 130.
  • the server 110 can be further
  • serial -port output information enabling determination of output received by the corresponding hardware modules 220 from the serial port 260 of the selected remote devices (block 430).
  • serial port output is required to be transferred from the selected remote devices to their respective hardware modules 220 through the serial port in accordance with a suitable serial-port protocol.
  • a suitable serial-port protocol is incompatible for sending the serial port output over the communication network 130. Therefore, the serial-port output can be translated by the hardware module 220 to serial-port output
  • serial-port output information which includes the serial-port output in a format compatible with a protocol for sending over the communication network 130, and such serial-port output information can be sent by the hardware module 220 to the server 110, which receives the serial-port output information in a format suitable for sending over the communication network 130.
  • the server 110 can be configured to send (e.g. utilizing the remote workstation communication module 350) the serial-port output information to a remote workstation 120 for presenting the serial-port output information (which includes the output received from the selected remote devices) to a user thereof (block 440).
  • Fig. 5 there is shown a flowchart illustrating one example of a sequence of operations carried out for a hardware module of a hardware device to communicate with the hardware module over a serial port connection, in accordance with the presently disclosed subject matter.
  • hardware module 220 of a selected remote device of the plurality of remote devices 100 can be configure to perform a server communication process 500, e.g. utilizing hardware device communication module 280 and server communication module 290.
  • the hardware module 220 of the selected remote device can be configured to receive (e.g. utilizing the server communication module 290), over a wireless internet connection to the communication network 130 established by the wireless internet connection enabling component 230, serial-port based commands information (and/or firmware update commands) in a format suitable for sending over the wireless internet connection (block 510).
  • the serial-port based commands information enables determination of one or more serial- port based commands in a format suitable for a serial port connection.
  • the serial-port based commands information is the serial-port based commands information sent by the server 110 at block 420.
  • firmware update commands can be executed by the hardware module controller 240, for updating (or replacing) the firmware of the hardware module 220 (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.).
  • firmware update commands can be executed by the hardware module controller 240, for updating (or replacing) the firmware of the hardware module 220 (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.).
  • IoT Internet of Things
  • IoT Internet of Things
  • the hardware module 220 of the selected remote device is further configured to determine (e.g. utilizing the hardware device communication module 280), utilizing the serial-port based commands information, the serial-port based commands (block 520).
  • the serial port based commands are required to be transferred from the hardware module 220 of the selected remote devices to the selected remote devices 100 through their serial ports in accordance with a suitable serial -port connectivity standard, which is incompatible for sending over the communication network 130. Therefore, the serial-port based commands information (which enables identification of the serial port based commands in accordance with the suitable protocol) is received at block 510 in a format compatible with a protocol for sending over the communication network 130, and it is translated to a format compatible for a serial port that complies with the serial port setting of the device at block 520.
  • the hardware module 220 of the selected remote device is further configured to send (e.g. utilizing the hardware device communication module 280) the serial-port based commands determined at block 520 to the hardware device through the serial port connection (block 530), where the selected remote device's hardware device controller 200 can run the commands, and optionally provide an output resulting from running the commands.
  • the hardware module 220 of the selected remote device can receive (e.g. utilizing the hardware device communication module 280), from the selected remote device, through the serial port connection, serial-port output in a format suitable for a serial port connection (block 540), translate the serial port output to serial port output information in a format suitable for sending over the communication network 130, and send (e.g. utilizing the server communication module 290) the serial port output information to a remote server 110 over the communication module 130 (block 550).
  • the serial port output information (sent at block 550 and received by the server 110 at block 430) enables the server 110 to determine the output received by the hardware modules 220 from the serial port 260 of the selected remote device.
  • system can be implemented, at least partly, as a suitably programmed computer.
  • the presently disclosed subject matter contemplates a computer program being readable by a computer for executing the disclosed method.
  • the presently disclosed subject matter further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the disclosed method.

Abstract

A system for remotely communicating with one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device, the system comprising at least one processor configured to: obtain identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.

Description

SYSTEM AND METHOD FOR CONNECTING A PLURALITY OF DEVICES TO A COMMUNICATION NETWORK AND REMOTELY COMMUNICATING THEREWITH VIA SERIAL PORTS
TECHNICAL FIELD
The invention relates to a system and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports. BACKGROUND
Many devices (including, for example, home appliances, cars, electronic signs, and many more) are designed nowadays to connect to the Internet. However, the process of designing a device (or alerting an existing device) to connect to the Internet can be an expensive and complicated process, that many manufacturers thus avoid doing. In addition, as many devices are designed to interconnect, various standards have been developed for supporting this purpose, including AllJoyn (designed by the AllSeen Alliance formed by LG and Qualcomm), loTivity (designed by the Open Connectivity Foundation formed by Samsung, Microsoft and Intel), HomeKit (designed by Apple), Weave (designed by Google), and more. As supporting each standard requires specific development, many manufacturers select a single standard that is incompatible with other standards, and hope that the selected standard will become the mainstream standard. If they are wrong, they will be required to develop a firmware update for supporting one or more other standards, and optionally update the firmware of the devices already shipped and/or sold to customers. In some cases, updating the firmware is not an easy task, and it may require installation by a person having physical access to the device (e.g. the customers himself or a support person, located at the device's location).
There is thus a need in the art for a new method and system for remotely communicating with a plurality of devices via serial ports. References considered to be relevant as background to the presently disclosed subject matter are listed below. Acknowledgement of the references herein is not to be inferred as meaning that these are in any way relevant to the patentability of the presently disclosed subject matter.
US Patent No. 7,457,847 (Ramey), published on Nov. 25, 2008, discloses a method for remotely communicating with a computer system in a headless environment is provided. The system includes a service processor in communication with a computer through a UART communication channel and in communication with a remote console through a communication connection. The service processor manages communication commands between the computer and the remote console. The service processor transmits data communication received from the remote console to the computer through the UART channel, and the service processor transmits data communication received from the computer to the remote console through the UART channel. In addition, a multiplexer may be employed to direct communication between one of a plurality of computers and the service processor in combination with a multiplexer control to select one of the computers for communication with the service processor. The multiplexer directs the communication through the UART channel.
US Patent No. 6, 170,021 (Graf), published on Jan. 2, 2001, discloses a An operating system independent method and apparatus for redirecting a server computer's serial device input and display output to a remote console, through the coordinated use of a low-cost dedicated microcontroller integrated within the motherboard of the server computer, and a system management mode facility residing within the CPU microprocessor of the server computer. Upon receipt of a redirection request from a remote console, the microcontroller asserts a system management interrupt request, which is acknowledged and serviced by a handler routine residing within the system management mode. The system management interrupt handler routine then directly accesses serial device input and video output data residing within the server computer, and returns any redirection result to the microcontroller, which in turn, returns the redirection result to the requesting remote console. GENERAL DESCRIPTION
In accordance with a first aspect of the presently disclosed subject matter, there is provided a system for remotely communicating with one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device, the system comprising at least one processor configured to: obtain identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.
In accordance with further aspects and optionally in combination with other aspects, at least one first remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding first remote device, to a first local area network and at least one second remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding second remote device, to a second local area network other than the first local area network.
In accordance with further aspects and optionally in combination with other aspects, the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first remote device cannot establish a direct wireless connection to the second local area network.
In accordance with further aspects and optionally in combination with other aspects, the first remote device is located at a first geographical location and the second remote device is located at a second geographical location other than the first geographical location.
In accordance with further aspects and optionally in combination with other aspects, the first geographic location is at least ten kilometers away from the second geographical location.
In accordance with further aspects and optionally in combination with other aspects, executing the serial-port based commands on the at least one remote device results in a firmware update of a firmware of the at least one remote device. In accordance with further aspects and optionally in combination with other aspects, the firmware update includes updating an existing Internet of Things (IoT) protocol behavior or adding new Internet of Things (IoT) protocol support.
In accordance with further aspects and optionally in combination with other aspects, the processor is further configured to send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, firmware update commands, wherein executing the firmware update commands on the hardware modules of the selected remote devices results in a firmware update of a firmware of the hardware modules of the selected remote devices.
In accordance with further aspects and optionally in combination with other aspects, the firmware of the hardware module of the selected remote devices supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware module of the selected remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
In accordance with further aspects and optionally in combination with other aspects, the processor is further configured to receive, from the wireless internet connection enabling component comprised within the hardware module of selected remote devices, over the network, serial-port output information enabling determination of output provided to the hardware module from the serial port of the selected remote devices.
In accordance with further aspects and optionally in combination with other aspects, the processor is further configured to send, over the network, the serial-port output information to a remote workstation for presenting the output on a display thereof.
In accordance with further aspects and optionally in combination with other aspects, the serial-port based commands information originates from the remote workstation. In accordance with further aspects and optionally in combination with other aspects, the serial-port output information is in a format suitable for sending over the network and wherein the output provided to the hardware module from the serial port of the selected remote devices is in a format suitable for a serial port connection.
In accordance with further aspects and optionally in combination with other aspects, the serial-port based commands information is in a format suitable for sending over the network and wherein the serial-port based commands are in a format suitable for a serial port connection. In accordance with a second aspect of the presently disclosed subject matter, there is provided a hardware module connectable to a serial port connection of a hardware device, the hardware module comprising (a) a wireless internet connection enabling component, and (b) a controller, the controller configured to: receive, over a wireless internet connection established by the wireless internet connection enabling component, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection; determine, utilizing the serial-port based commands information, the serial-port based commands; and send the serial-port based commands to the hardware device through the serial port connection.
In accordance with further aspects and optionally in combination with other aspects, the controller is further configured to receive, from the hardware device, through the serial port connection, serial-port output in a format suitable for a serial port connection.
In accordance with further aspects and optionally in combination with other aspects, the controller is further configured to send, over the wireless internet connection, to a remote server, serial-port output information enabling determination of the serial-port output, wherein the serial-port output information is in a format suitable for sending over the wireless internet connection.
In accordance with further aspects and optionally in combination with other aspects, executing the serial-port based commands on the hardware device via the serial port connection results in a firmware update of a firmware of the hardware device. In accordance with further aspects and optionally in combination with other aspects, the firmware update includes updating an existing Internet of Things (IoT) protocol or adding a new Internet of Things (IoT) protocol support.
In accordance with further aspects and optionally in combination with other aspects, the controller is further configured to receive, over the wireless internet connection established by the wireless internet connection enabling component, firmware update commands, wherein executing the firmware update commands on the hardware module results in a firmware update of a firmware of the hardware module.
In accordance with further aspects and optionally in combination with other aspects, the firmware of the hardware module supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware device to communicate with : (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
In accordance with a third aspect of the presently disclosed subject matter, there is provided a method for remotely communicating with one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device, the method comprising: obtaining identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.
In accordance with further aspects and optionally in combination with other aspects, at least one first remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding first remote device, to a first local area network and at least one second remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding second remote device, to a second local area network other than the first local area network.
In accordance with further aspects and optionally in combination with other aspects, the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first remote device cannot establish a direct wireless connection to the second local area network.
In accordance with further aspects and optionally in combination with other aspects, the first remote device is located at a first geographical location and the second remote device is located at a second geographical location other than the first geographical location.
In accordance with further aspects and optionally in combination with other aspects, the first geographic location is at least ten kilometers away from the second geographical location.
In accordance with further aspects and optionally in combination with other aspects, executing the serial-port based commands on the at least one remote device results in a firmware update of a firmware of the at least one remote device.
In accordance with further aspects and optionally in combination with other aspects, the firmware update includes updating an existing Internet of Things (IoT) protocol behavior or adding new Internet of Things (IoT) protocol support.
In accordance with further aspects and optionally in combination with other aspects, the method further comprises sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, firmware update commands, wherein executing the firmware update commands on the hardware modules of the selected remote devices results in a firmware update of a firmware of the hardware modules of the selected remote devices.
In accordance with further aspects and optionally in combination with other aspects, the firmware of the hardware module of the selected remote devices supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware module of the selected remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
In accordance with further aspects and optionally in combination with other aspects, the method further comprises receiving, from the wireless internet connection enabling component comprised within the hardware module of selected remote devices, over the network, serial-port output information enabling determination of output provided to the hardware module from the serial port of the selected remote devices.
In accordance with further aspects and optionally in combination with other aspects, the method further comprises sending, over the network, the serial-port output information to a remote workstation for presenting the output on a display thereof.
In accordance with further aspects and optionally in combination with other aspects, the serial-port based commands information originates from the remote workstation.
In accordance with further aspects and optionally in combination with other aspects, the serial-port output information is in a format suitable for sending over the network and wherein the output provided to the hardware module from the serial port of the selected remote devices is in a format suitable for a serial port connection.
In accordance with further aspects and optionally in combination with other aspects, the serial-port based commands information is in a format suitable for sending over the network and wherein the serial-port based commands are in a format suitable for a serial port connection.
In accordance with a fourth aspect of the presently disclosed subject matter, there is provided a method of operating a hardware module connectable to a serial port connection of a hardware device, the hardware module comprising a wireless internet connection enabling component, the method comprising: receiving, by the hardware module, over a wireless internet connection established by the wireless internet connection enabling component, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection; determining, by the hardware module, utilizing the serial-port based commands information, the serial-port based commands; and sending, by the hardware module, the serial-port based commands to the hardware device through the serial port connection.
In accordance with further aspects and optionally in combination with other aspects, the method further comprises receiving, by the hardware module, from the hardware device, through the serial port connection, serial-port output in a format suitable for a serial port connection.
In accordance with further aspects and optionally in combination with other aspects, the method further comprises sending, by the hardware module, over the wireless internet connection, to a remote server, serial-port output information enabling determination of the serial-port output, wherein the serial-port output information is in a format suitable for sending over the wireless internet connection.
In accordance with further aspects and optionally in combination with other aspects, executing the serial-port based commands on the hardware device via the serial port connection results in a firmware update of a firmware of the hardware device.
In accordance with further aspects and optionally in combination with other aspects, the firmware update includes updating an existing Internet of Things (IoT) protocol or adding a new Internet of Things (IoT) protocol support.
In accordance with further aspects and optionally in combination with other aspects, the method further comprises receiving, by the hardware module, over the wireless internet connection established by the wireless internet connection enabling component, firmware update commands, wherein executing the firmware update commands on the hardware module results in a firmware update of a firmware of the hardware module.
In accordance with further aspects and optionally in combination with other aspects, the firmware of the hardware module supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware device to communicate with : (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol. In accordance with a fifth aspect of the presently disclosed subject matter, there is provided a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a computer to perform a method comprising: obtaining (a) identification information enabling identification of one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote and (b) serial-port based commands information enabling determination of one or more serial-port based commands; and sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information In accordance with a sixth aspect of the presently disclosed subject matter, there is provided a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a computer to perform a method comprising: receiving, by a hardware module connected to a serial port connection of a hardware device, over a wireless internet connection established by a wireless internet connection enabling component comprised within the hardware module, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection; determining, by the hardware module, utilizing the serial-port based commands information, the serial-port based commands; and sending, by the hardware module, the serial-port based commands to the hardware device through the serial port connection.
BRIEF DESCRIPTION OF THE DRAWINGS
In order to understand the presently disclosed subject matter and to see how it may be carried out in practice, the subject matter will now be described, by way of non- limiting examples only, with reference to the accompanying drawings, in which: Fig. 1 is a schematic illustration of an environment of a system for connecting a plurality of devices to a communication network and remotely communicating with the devices via serial ports, in accordance with the presently disclosed subject matter;
Fig. 2 is a block diagram schematically illustrating one example of a hardware module connectable to a hardware device, in accordance with the presently disclosed subject matter;
Fig. 3 is a block diagram schematically illustrating one example of a server capable of communicating with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter;
Fig. 4 is a flowchart illustrating one example of a sequence of operations carried out for a remote server to communicate with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter; and
Fig. 5 is a flowchart illustrating one example of a sequence of operations carried out for a hardware module of a hardware device to communicate with the hardware module over a serial port connection, in accordance with the presently disclosed subject matter.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the presently disclosed subject matter. However, it will be understood by those skilled in the art that the presently disclosed subject matter may be practiced without these specific details. In other instances, well- known methods, procedures, and components have not been described in detail so as not to obscure the presently disclosed subject matter.
In the drawings and descriptions set forth, identical reference numerals indicate those components that are common to different embodiments or configurations.
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "receiving", "determining", "sending", "obtaining", "updating", "adding", "executing" or the like, include action and/or processes of a computer that manipulate and/or transform data into other data, said data represented as physical quantities, e.g. such as electronic quantities, and/or said data representing the physical objects. The terms "computer", "processor", and "controller" should be expansively construed to cover any kind of electronic device with data processing capabilities, including, by way of non-limiting example, a personal desktop/laptop computer, a server, a computing system, a communication device, a smartphone, a tablet computer, a smart television, a processor (e.g. digital signal processor (DSP), a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), any other electronic computing device, and/or any combination thereof.
The operations in accordance with the teachings herein may be performed by a computer specially constructed for the desired purposes or by a general purpose computer specially configured for the desired purpose by a computer program stored in a non-transitory computer readable storage medium. The term "non-transitory" is used herein to exclude transitory, propagating signals, but to otherwise include any volatile or non-volatile computer memory technology suitable to the application.
As used herein, the phrase "for example," "such as", "for instance" and variants thereof describe non-limiting embodiments of the presently disclosed subject matter. Reference in the specification to "one case", "some cases", "other cases" or variants thereof means that a particular feature, structure or characteristic described in connection with the embodiment(s) is included in at least one embodiment of the presently disclosed subject matter. Thus the appearance of the phrase "one case", "some cases", "other cases" or variants thereof does not necessarily refer to the same embodiment(s).
It is appreciated that, unless specifically stated otherwise, certain features of the presently disclosed subject matter, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the presently disclosed subject matter, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable sub-combination.
In embodiments of the presently disclosed subject matter, fewer, more and/or different stages than those shown in Fig. 4-5 may be executed. In embodiments of the presently disclosed subject matter one or more stages illustrated in Fig. 4-5 may be executed in a different order and/or one or more groups of stages may be executed simultaneously. Figs. 1-3 illustrate a general schematic of the system architecture in accordance with an embodiment of the presently disclosed subject matter. Each module in Figs. 1-3 can be made up of any combination of software, hardware and/or firmware that performs the functions as defined and explained herein. The modules in Figs. 1-3 may be centralized in one location or dispersed over more than one location. In other embodiments of the presently disclosed subject matter, the system may comprise fewer, more, and/or different modules than those shown in Figs. 1-3.
Bearing this in mind, attention is drawn to Fig. 1, showing a schematic illustration of an environment of a system for connecting a plurality of devices to a communication network and remotely communicating with the devices via serial ports, in accordance with the presently disclosed subject matter.
According to certain examples of the presently disclosed subject matter, the environment 10 can include a plurality of hardware devices 100 (e.g. home appliances such as refrigerators, washing machines, water heaters, air conditioners, television sets, audio systems, and any other electronic device having a controller), one or more servers 110 (e.g. computers acting as server computers capable of communicating with clients), and optionally one or more workstations 120. Each hardware device 100, server 110, and workstation 120, can be connected to a communication network 130 (e.g. Internet).
The hardware devices are located remotely from the one or more servers, so that the hardware devices (also interchangeably referred to herein as "remote hardware devices") are unable to directly connect to a local area network to which the servers are connected.
Each hardware device 100 includes a hardware module connected thereto through a serial port (which is the commonest communication mechanism for communicating with devices based on microcontroller units (MCUs)) of the hardware device 100. The hardware module comprises a wireless network connection enabling component, enabling it to wirelessly connect, through a direct wireless connection to a local area network, to the communication network 130 (that can be, for example, the Internet, or any other network that enables a plurality of computerized devices to interconnect using, for example, the Transmission Control Protocol/Internet Protocol (TCP/IP)). A more detailed explanation about the hardware module is provided herein, inter alia with reference to Fig. 2.
In some cases, at least one first hardware device of the plurality of hardware devices 100 is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a first local area network and at least one second hardware device of the plurality of hardware devices 100 is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a second local area network other than the first local area network. In some cases, the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first hardware device cannot establish a direct wireless connection to the second local area network. In some cases, the first hardware device is located at a first geographical location and the second hardware device is located at a second geographical location other than the first geographical location. In some cases, the first geographic location is at least ten kilometers away from the second geographical location.
The one or more servers 110 can communicate with the hardware modules of the hardware devices 100, via the communication network 130. In some cases, the one or more servers 110 can send data to and/or receive data from the hardware modules of the respective hardware devices 100 over the communication network 130, as further detailed herein, inter alia with reference to Figs. 3 and 4. In some cases, the data can include data enabling update of a firmware of the hardware modules of the respective hardware devices 100 (e.g. for updating an existing Internet of Things (IoT) protocol behavior or adding new IoT protocol support to the hardware modules of the respective hardware devices 100), or a firmware of the hardware devices 100 themselves (e.g. for introducing new functionality to the hardware devices 100 and/or for changing/deleting existing functionality of the hardware devices 100 and/or for fixing software bugs).
In some cases, a given workstation 120 can communicate with a hardware module of a given hardware devices 100, via the communication network 130. In some cases, the communication can be direct (e.g. via the communication network 130) whereas in other cases the communication can be indirect (e.g. through the servers 110). In such cases, the workstation 110 can send data to, and/or receive data from, the hardware module of the hardware device 100 over the communication network 130, as further detailed herein, inter alia with reference to Figs. 3 and 4. In some cases, the data can include debugging data.
It is to be noted that in some cases, the given workstation 120 can be one of the servers 110, and vice versa. Turning to Fig. 2, there is shown a block diagram schematically illustrating one example of a hardware module connectable to a hardware device, in accordance with the presently disclosed subject matter.
According to certain examples of the presently disclosed subject matter, hardware module 220 can comprise a wireless network connection enabling component 230 (e.g. a WiFi client, a LiFi client, any other component that is capable of wirelessly connecting to the communication network 130, etc.), enabling connecting the hardware module 220 (and by that, enabling connecting the hardware device 100) to communication network 130 and enabling it to send data and/or receive data sent thereto, through the communication network 130, including sending and/or receiving serial-port based commands information, as detailed herein, inter alia with reference to Fig. 4.
Hardware module 220 can further comprise, or be otherwise associated with, a hardware module memory 250 (e.g. Read Only Memory - ROM, Random Access Memory - RAM, or any other type of memory, etc.) configured to store data, including, inter alia, a firmware. In some cases, the firmware can support at least one IoT standard (e.g. AllJoyn (designed by the AllSeen Alliance formed by LG and Qualcomm), IoTivity (designed by the Open Connectivity Foundation formed by Samsung, Microsoft and Inte), HomeKit (designed by Apple), Weave (designed by Google), etc.). In some cases, hardware module memory 250 can be further configured to enable retrieval and/or update and/or deletion of the data stored thereon.
Hardware module 220 further comprises a hardware module controller 240. Hardware module controller 240 can be one or more processing units (e.g. central processing units), microprocessors, microcontrollers (e.g. microcontroller units (MCUs)) or any other computing devices or modules, including multiple and/or parallel and/or distributed processing units, which are adapted to independently or cooperatively process data for controlling relevant hardware module 220 resources and for enabling operations related to hardware module 220 resources.
The hardware module controller 240 can comprise one or more of the following modules: hardware device communication module 280 and a server communication module 290.
According to some examples of the presently disclosed subject matter, hardware device communication module 280 can be configured to control communication between the hardware module 220 and the hardware device 100, as further detailed herein, inter alia with reference to fig. 5.
According to some examples of the presently disclosed subject matter, server communication module 290 can be configured to control communication between the hardware module 220 and the server 110, as further detailed herein, inter alia with reference to figs. 4 and 5.
Hardware module 220 is configured to connect to a serial port of a hardware device 100 having a vacant serial port connection. For this purpose, hardware module 220 can have a serial port connector 270 capable of connecting to a serial port connector 260 of the hardware device 100. Connecting the hardware module 220 to the serial port of the hardware device 100 enables the hardware module 220 to directly communicate with the hardware device controller 200).
Hardware device 100 can comprise, or be otherwise associated with, a hardware device memory 210 (e.g. Read Only Memory - ROM, Random Access Memory - RAM, or any other type of memory, etc.) configured to store data, including, inter alia, a firmware. In some cases, the firmware can provide various functionality to the hardware device 100 (e.g. start operating, stop operating, set parameters, etc.). In some cases, hardware device memory 210 can be further configured to enable retrieval and/or update and/or deletion of the data stored thereon.
Hardware device 100 further comprise a hardware device controller 200
Hardware device controller 200 can be one or more processing units (e.g. central processing units), microprocessors, microcontrollers (e.g. microcontroller units (MCUs)) or any other computing devices or modules, including multiple and/or parallel and/or distributed processing units, which are adapted to independently or cooperatively process data for controlling relevant hardware device 100 resources and for enabling operations related to hardware device 100 resources.
Fig. 3 shows a block diagram schematically illustrating one example of a server capable of communicating with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter.
According to certain examples of the presently disclosed subject matter, server
110 can comprise one or more network interfaces 310 enabling connecting the server 100 to the communication network 130 and enabling it to send and receive data sent thereto through communication network 130, including sending data to remote hardware devices 100 and receiving data from remote hardware devices 100 as detailed herein, inter alia with reference to Figs. 4 and 5.
server 110 can further comprise, or be otherwise associated with, a data repository 320 (e.g. a database, a storage system, a memory including Read Only Memory - ROM, Random Access Memory - RAM, or any other type of memory, etc.) configured to store data, including, inter alia, information enabling communicating with one or more remote devices 100 (e.g. Internet Protocol (IP) addresses thereof, etc.), as further detailed herein. In some cases, data repository 130 can be further configured to enable retrieval and/or update and/or deletion of the stored data. It is to be noted that in some cases, data repository 130 can be distributed.
Server 110 further comprises one or more processing resources 110. Processing resource 110 can be one or more processing units (e.g. central processing units), microprocessors, microcontrollers or any other computing devices or modules, including multiple and/or parallel and/or distributed processing units, which are adapted to independently or cooperatively process data for controlling relevant system resources and for enabling operations related to server 110 resources.
It is to be noted that in some cases, multiple servers 110 can exist. In such cases, the multiple servers 110 can share the data repository 320, or they can each maintain an independent data repository 320 that can contain identical data, partially identical data, or different data.
The processing resource 110 can comprise a hardware module communication module 340 and a remote workstation communication module 350.
According to some examples of the presently disclosed subject matter, hardware module communication module 340 can be configured to control communication between the server 110 and the hardware module 220, as further detailed herein, inter alia with reference to fig. 4.
According to some examples of the presently disclosed subject matter, remote workstation communication module 340 can be configured to control communication between the server 110 and the remote workstation 120, as further detailed herein, inter alia with reference to fig. 4.
Having described the system environment and its components, attention is drawn to Fig. 4, showing a flowchart illustrating one example of a sequence of operations carried out for a server to communicate with a remote hardware device having a hardware module, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, server 110 can be configure to perform a remote hardware module communication process 400, e.g. utilizing hardware module communication module 340.
For this purpose, server 110 can be configured to obtain identification information enabling identification of one or more selected remote devices of the plurality of remote devices 100, and serial-port based commands information enabling determination of one or more serial-port based commands for sending to the selected remote devices (block 410).
Each of the plurality of remote devices 100 are wirelessly connected to the communication network 130 via a wireless internet connection enabling component 230 comprised within the hardware module 220 connected to a serial port 260 of the respective remote device 100. When each remote device 100 connects to the communication network 130 (e.g. directly, or through a router establishing a local area network connected to the Internet), it receives (e.g. utilizing Dynamic Host Configuration Protocol (DHCP)) a unique Internet Protocol (IP) address, which enables other devices connected to the communication network 130 to identify it and to establish a communication channel with it. Therefore, the identification information can include the Internet Protocol (IP) addresses of each of the selected remote devices (or other information enabling identification of the selected remote devices, and establishing a communication channel therewith, e.g. IPv4 address, IPv6 address, etc.) with which the server 110 is expected to communicate as further detailed herein.
In some cases, the identification information is obtained from the server (e.g. automatically), or from a user of a workstation 120 (in such case, the workstation 120 can be configured to send the identification information to the server 110), or from a user of a server 110, e.g. via a user interface thereof. It is to be noted that in some cases, the user can provide identification information of a given selected remote device 100 (e.g. when there is a problem with the given remote device 100 and the user wishes to debug the given remote device using serial-port based commands; when the user wishes to update a firmware of the given remote device and/or of the given remote device's hardware module, etc.), and in other cases the user can provide identification information of a group of two or more selected remote devices of the remote devices 100 (e.g. when the user wishes to update a firmware of the group of two or more selected remote devices and/or of the hardware modules of the group of two or more selected remote devices, etc.).
In some cases the identification information enabling identification of two or more selected remote devices of the plurality of remote devices 100, at least one first selected remote device of the selected remote devices is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a first local area network and at least one second selected remote device of the selected remote devices is connected to the communication network 130 (utilizing wireless network connection enabling component of the hardware module connected thereto) through a direct wireless connection to a second local area network other than the first local area network. In some cases, the first selected remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first selected remote device cannot establish a direct wireless connection to the second local area network. In some cases, the first selected remote device is located at a first geographical location and the second selected remote device is located at a second geographical location other than the first geographical location. In some cases, the first geographic location is at least ten kilometers away from the second geographical location.
As further detailed herein, the serial port based commands are required to be transferred from the hardware module 220 of the selected hardware devices to the selected hardware devices through their serial ports in accordance with a suitable serial- port connectivity standard (it is to be noted that whenever reference is made herein to a serial-port connectivity standard, it can be, for example, a Universal Asynchronous Receiver/Transmitter (UART) protocol, an Inter-Integrated Circuit (I2C) protocol, a Serial Peripheral Interface (SPI) protocol, a Universal Serial Bus (USB), a Serial port console protocol, or a protocol suitable for other types of serial port connections), which is incompatible for sending over the communication network 130. Therefore, the serial- port based commands information (which enables identification of the serial port based commands in accordance with the suitable protocol) is obtained in a format compatible with a protocol for sending over the communication network 130 (it is to be noted that whenever reference is made herein to a format suitable for sending over the communication network, it can be, for example, Hypertext Transfer Protocol (HTTP), Web Sockets protocol, Extensible Messaging and Presence Protocol (XMPP), Message Queue Telemetry Transport (MQTT) protocol, etc.), which can be translated to a format compatible for a serial port when arriving to the hardware module 220 of the selected remote devices, as further detailed herein.
In some cases, the serial-port based commands information can be obtained from a workstation 120 (in such case, the workstation 120 can be configured to send the serial-port based commands information, which is in a format compatible with a protocol for sending over the communication network 130, to the server 110, over the communication network 130,), or from the server 110 (e.g. they can be retrieved from the server's 110 data repository 320; obtained from a user of the server 110 via a user interface of the server 110; etc.), e.g. in accordance with instructions received from a user via a user interface of the workstation 120 or the server 110. In some cases, the serial-port based commands information can be additionally or alternatively generated by the server 110.
The serial-port based commands can be commands for debugging the selected remote devices (for querying the selected remote devices for information, including information relating to one or more sensors connected to the selected remote devices or technical information relating to the hardware device controller 200, e.g. for analysis purposes, etc.), or for replacing or updating a firmware of the selected remote devices (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.).
In some cases, the serial-port based commands can update the firmware of the selected remote device for changing, optionally temporarily (e.g. for a pre-determined time period and/or until input is received, optionally from a user, via an input means of the selected remote device, etc.), the functionality of one or more input and/or output means (e.g. a display of the selected remote devices, a touch screen of the selected remote devices, one or more buttons of the selected remote devices, etc.) thereof.
As an example, the firmware can be updated to change the functionality of a display of the selected remote devices, for example in order to provide commercials on the display. The commercials can be provided continuously, at pre-determined times, and/or when a pre-determined rule is met (e.g. when a measurement performed by a sensor of the selected remote device indicates that a product required for its operation (e.g. Laundry detergent, dishwasher powder, milk, coffee capsules, etc.) is below a predetermined threshold, when the user of the selected remote device presses a certain button, a sequence of buttons, etc.). In some cases, the firmware can also be updated to change the functionality of an input means, so that it can be used for various purposes. One such purpose is for automatically ordering a certain quantity of the product required for operation of the selected remote device. For example, assuming a commercial is provided with respect to a certain product (whether arbitrarily, or as a result of a shortage of the product that is required for the selected remote device operation), it can be presented on the display of the selected remote device for offering the user of the selected remote device to order a certain quantity of the product by pressing a given button of the selected remote device, whose functionality has been temporarily changed to enable automatically sending an order to a supplier of the product if the button is pressed.
As another example, the firmware can be updated to change the functionality of a display of the selected remote devices for providing information of errors and optionally for enabling a user to automatically request a technician visit in case of a detected malfunction of the selected remote device. Assume that the device outputs a certain error code, the updated firmware can, for example, provide the user of the selected remote device, on a display of the selected remote device, a notification with an explanation about the error. In some cases, the updated firmware can change the functionality of the power button (or any other button for that purpose) of the selected remote device so that when the user of the selected remote device presses the button, a service call is automatically sent to an entity that provides technical support (e.g. a technician, a company that employs technicians, a call center, etc.), optionally with information about the encountered error (e.g. the error code).
It is to be noted that in some cases, the server 110 can additionally or alternatively receive firmware update commands whose execution on the hardware modules of the selected remote devices results in a firmware update (or replacement) of a firmware of the hardware modules of the selected remote devices (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.). In some cases, the hardware modules of the selected remote devices support a first Internet of Things (IoT) protocol and does not support a second IoT protocol, and the firmware update commands add support of the second IoT protocol. The first IoT protocol and the second IoT protocol enable the hardware modules of the selected 5 remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
Returning to the flowchart, utilizing the identification information, the server
10 110 can be further configured to send, over the communication network 130, to the wireless internet connection enabling components 230 comprised within the corresponding hardware modules 220 of the selected remote devices, the obtained serial-port based commands information enabling determination of one or more serial - port based commands (and/or the firmware update commands detailed herein) (block
15 420). As indicated herein, the serial-port based commands information (and the firmware update commands, if sent) is in a format compatible with a protocol for sending over the communication network 130.
In some cases, e.g. when the serial port based commands are commands that cause the selected remote devices to return output, the server 110 can be further
20 configured to receive, from the wireless internet connection enabling component 230 comprised within the corresponding hardware modules 220 of selected remote devices, over the communication network 130, serial -port output information enabling determination of output received by the corresponding hardware modules 220 from the serial port 260 of the selected remote devices (block 430).
25 It is to be noted that the serial port output is required to be transferred from the selected remote devices to their respective hardware modules 220 through the serial port in accordance with a suitable serial-port protocol. Such protocol is incompatible for sending the serial port output over the communication network 130. Therefore, the serial-port output can be translated by the hardware module 220 to serial-port output
30 information, which includes the serial-port output in a format compatible with a protocol for sending over the communication network 130, and such serial-port output information can be sent by the hardware module 220 to the server 110, which receives the serial-port output information in a format suitable for sending over the communication network 130.
Still further, in some cases, the server 110 can be configured to send (e.g. utilizing the remote workstation communication module 350) the serial-port output information to a remote workstation 120 for presenting the serial-port output information (which includes the output received from the selected remote devices) to a user thereof (block 440).
It is to be noted that, with reference to Fig. 4, some of the blocks can be integrated into a consolidated block or can be broken down to a few blocks and/or other blocks may be added. It is to be further noted that some of the blocks (e.g. blocks 430 and 440) are optional. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein. Turning to Fig. 5, there is shown a flowchart illustrating one example of a sequence of operations carried out for a hardware module of a hardware device to communicate with the hardware module over a serial port connection, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, hardware module 220 of a selected remote device of the plurality of remote devices 100 can be configure to perform a server communication process 500, e.g. utilizing hardware device communication module 280 and server communication module 290.
For this purpose, the hardware module 220 of the selected remote device (identified at block 410) can be configured to receive (e.g. utilizing the server communication module 290), over a wireless internet connection to the communication network 130 established by the wireless internet connection enabling component 230, serial-port based commands information (and/or firmware update commands) in a format suitable for sending over the wireless internet connection (block 510). The serial-port based commands information enables determination of one or more serial- port based commands in a format suitable for a serial port connection. The serial-port based commands information is the serial-port based commands information sent by the server 110 at block 420. It is to be noted that if firmware update commands are received, they can be executed by the hardware module controller 240, for updating (or replacing) the firmware of the hardware module 220 (e.g. for fixing software bugs, adding new functionality, changing an existing functionality, deleting certain functionality, updating an existing Internet of Things (IoT) protocol behavior, adding new Internet of Things (IoT) protocol support, etc.).
The hardware module 220 of the selected remote device is further configured to determine (e.g. utilizing the hardware device communication module 280), utilizing the serial-port based commands information, the serial-port based commands (block 520).
As indicated herein, the serial port based commands are required to be transferred from the hardware module 220 of the selected remote devices to the selected remote devices 100 through their serial ports in accordance with a suitable serial -port connectivity standard, which is incompatible for sending over the communication network 130. Therefore, the serial-port based commands information (which enables identification of the serial port based commands in accordance with the suitable protocol) is received at block 510 in a format compatible with a protocol for sending over the communication network 130, and it is translated to a format compatible for a serial port that complies with the serial port setting of the device at block 520.
The hardware module 220 of the selected remote device is further configured to send (e.g. utilizing the hardware device communication module 280) the serial-port based commands determined at block 520 to the hardware device through the serial port connection (block 530), where the selected remote device's hardware device controller 200 can run the commands, and optionally provide an output resulting from running the commands.
In case such output is indeed provided, the hardware module 220 of the selected remote device can receive (e.g. utilizing the hardware device communication module 280), from the selected remote device, through the serial port connection, serial-port output in a format suitable for a serial port connection (block 540), translate the serial port output to serial port output information in a format suitable for sending over the communication network 130, and send (e.g. utilizing the server communication module 290) the serial port output information to a remote server 110 over the communication module 130 (block 550). The serial port output information (sent at block 550 and received by the server 110 at block 430) enables the server 110 to determine the output received by the hardware modules 220 from the serial port 260 of the selected remote device.
It is to be noted that, with reference to Fig. 5, some of the blocks can be integrated into a consolidated block or can be broken down to a few blocks and/or other blocks may be added. It is to be further noted that some of the blocks (e.g. blocks 540 and 550) are optional. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein. It is to be understood that the presently disclosed subject matter is not limited in its application to the details set forth in the description contained herein or illustrated in the drawings. The presently disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Hence, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting. As such, those skilled in the art will appreciate that the conception upon which this disclosure is based may readily be utilized as a basis for designing other structures, methods, and systems for carrying out the several purposes of the present presently disclosed subject matter.
It will also be understood that the system according to the presently disclosed subject matter can be implemented, at least partly, as a suitably programmed computer. Likewise, the presently disclosed subject matter contemplates a computer program being readable by a computer for executing the disclosed method. The presently disclosed subject matter further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the disclosed method.

Claims

CLAIMS:
1. A system for remotely communicating with one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device, the system comprising at least one processor configured to:
obtain identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and
send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.
2. The system of claim 1 wherein at least one first remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding first remote device, to a first local area network and at least one second remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding second remote device, to a second local area network other than the first local area network.
3. The system of claim 2 wherein the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first remote device cannot establish a direct wireless connection to the second local area network.
4. The system of claim 2 wherein the first remote device is located at a first geographical location and the second remote device is located at a second geographical location other than the first geographical location.
5. The system of claim 3 wherein the first geographic location is at least ten kilometers away from the second geographical location.
6. The system of claim 1 wherein executing the serial-port based commands on the at least one remote device results in a firmware update of a firmware of the at least one remote device.
7. The system of claim 6 wherein the firmware update includes updating an existing Internet of Things (IoT) protocol behavior or adding new Internet of Things (IoT) protocol support.
8. The system of claim 1 wherein the processor is further configured to send, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, firmware update commands, wherein executing the firmware update commands on the hardware modules of the selected remote devices results in a firmware update of a firmware of the hardware modules of the selected remote devices.
9. The system of claim 8 wherein the firmware of the hardware module of the selected remote devices supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware module of the selected remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
10. The system of claim 1 wherein the processor is further configured to receive, from the wireless internet connection enabling component comprised within the hardware module of selected remote devices, over the network, serial-port output information enabling determination of output provided to the hardware module from the serial port of the selected remote devices.
11. The system of claim 10 wherein the processor is further configured to send, over the network, the serial-port output information to a remote workstation for presenting the output on a display thereof.
12. The system of claim 11 wherein the serial-port based commands information originates from the remote workstation.
13. The system of claim 10 wherein the serial-port output information is in a format suitable for sending over the network and wherein the output provided to the hardware module from the serial port of the selected remote devices is in a format suitable for a serial port connection.
14. The system of claim 1 wherein the serial-port based commands information is in a format suitable for sending over the network and wherein the serial- port based commands are in a format suitable for a serial port connection.
15. A hardware module connectable to a serial port connection of a hardware device, the hardware module comprising (a) a wireless internet connection enabling component, and (b) a controller, the controller configured to:
receive, over a wireless internet connection established by the wireless internet connection enabling component, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial -port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection;
determine, utilizing the serial-port based commands information, the serial-port based commands; and
send the serial-port based commands to the hardware device through the serial port connection.
16. The hardware module of claim 15, wherein the controller is further configured to receive, from the hardware device, through the serial port connection, serial-port output in a format suitable for a serial port connection.
17. The hardware module of claim 16, wherein the controller is further configured to send, over the wireless internet connection, to a remote server, serial-port output information enabling determination of the serial-port output, wherein the serial- port output information is in a format suitable for sending over the wireless internet connection.
18. The hardware module of claim 15, wherein executing the serial-port based commands on the hardware device via the serial port connection results in a firmware update of a firmware of the hardware device.
19. The hardware module of claim 18 wherein the firmware update includes updating an existing Internet of Things (IoT) protocol or adding a new Internet of Things (IoT) protocol support.
20. The hardware module of claim 15 wherein the controller is further configured to receive, over the wireless internet connection established by the wireless internet connection enabling component, firmware update commands, wherein executing the firmware update commands on the hardware module results in a firmware update of a firmware of the hardware module.
21. The hardware module of claim 20 wherein the firmware of the hardware module supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware device to communicate with : (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
22. A method for remotely communicating with one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote device, the method comprising:
obtaining identification information enabling identification of the selected remote devices and serial-port based commands information enabling determination of one or more serial-port based commands; and
sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information.
23. The method of claim 22 wherein at least one first remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding first remote device, to a first local area network and at least one second remote device of the plurality of remote devices is connected, utilizing the wireless internet connection enabling component of the corresponding second remote device, to a second local area network other than the first local area network.
24. The method of claim 23 wherein the first remote device is located at a location outside the range of the second local area network, so the wireless internet connection enabling component of the first remote device cannot establish a direct wireless connection to the second local area network.
25. The method of claim 23 wherein the first remote device is located at a first geographical location and the second remote device is located at a second geographical location other than the first geographical location.
26. The method of claim 25 wherein the first geographic location is at least ten kilometers away from the second geographical location.
27. The method of claim 22 wherein executing the serial-port based commands on the at least one remote device results in a firmware update of a firmware of the at least one remote device.
28. The method of claim 27 wherein the firmware update includes updating an existing Internet of Things (IoT) protocol behavior or adding new Internet of Things (IoT) protocol support.
29. The method of claim 22 further comprising sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, firmware update commands, wherein executing the firmware update commands on the hardware modules of the selected remote devices results in a firmware update of a firmware of the hardware modules of the selected remote devices.
30. The method of claim 29 wherein the firmware of the hardware module of the selected remote devices supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware module of the selected remote devices to communicate with: (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
31. The method of claim 22 further comprising receiving, from the wireless internet connection enabling component comprised within the hardware module of selected remote devices, over the network, serial-port output information enabling determination of output provided to the hardware module from the serial port of the selected remote devices.
32. The method of claim 31 further comprising sending, over the network, the serial-port output information to a remote workstation for presenting the output on a display thereof.
33. The method of claim 32 wherein the serial-port based commands information originates from the remote workstation.
34. The method of claim 32 wherein the serial-port output information is in a format suitable for sending over the network and wherein the output provided to the hardware module from the serial port of the selected remote devices is in a format suitable for a serial port connection.
35. The method of claim 22 wherein the serial-port based commands information is in a format suitable for sending over the network and wherein the serial- port based commands are in a format suitable for a serial port connection.
36. A method of operating a hardware module connectable to a serial port connection of a hardware device, the hardware module comprising a wireless internet connection enabling component, the method comprising:
receiving, by the hardware module, over a wireless internet connection established by the wireless internet connection enabling component, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial - port based commands in a format suitable for a serial port connection;
determining, by the hardware module, utilizing the serial-port based commands information, the serial-port based commands; and
sending, by the hardware module, the serial -port based commands to the hardware device through the serial port connection.
37. The method of claim 36, further comprising receiving, by the hardware module, from the hardware device, through the serial port connection, serial-port output in a format suitable for a serial port connection.
38. The method of claim 37, further comprising sending, by the hardware module, over the wireless internet connection, to a remote server, serial-port output information enabling determination of the serial-port output, wherein the serial-port output information is in a format suitable for sending over the wireless internet connection.
39. The method of claim 36, wherein executing the serial-port based commands on the hardware device via the serial port connection results in a firmware update of a firmware of the hardware device.
40. The method of claim 39 wherein the firmware update includes updating an existing Internet of Things (IoT) protocol or adding a new Internet of Things (IoT) protocol support.
41. The method of claim 36, further comprising receiving, by the hardware module, over the wireless internet connection established by the wireless internet connection enabling component, firmware update commands, wherein executing the firmware update commands on the hardware module results in a firmware update of a firmware of the hardware module.
42. The method of claim 41 wherein the firmware of the hardware module supports at least a first Internet of Things (IoT) protocol, the firmware update includes adding support of at least a second IoT protocol, and wherein the first IoT protocol and the second IoT protocol enable the hardware device to communicate with : (a) one or more first other devices having first supporting firmware supporting the first IoT protocol and not supporting the second IoT protocol and (b) one or more second other devices having second supporting firmware supporting the second IoT protocol and not supporting the first IoT protocol.
43. A non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a computer to perform a method comprising: obtaining (a) identification information enabling identification of one or more selected remote devices of a plurality of remote devices, each of the plurality of remote devices being wirelessly connected to a network via a wireless internet connection enabling component comprised within a hardware module connected to a serial port of the respective remote and (b) serial-port based commands information enabling determination of one or more serial-port based commands; and sending, utilizing the identification information, over the network, to the wireless internet connection enabling components comprised within the hardware modules of the selected remote devices, the serial-port based commands information 44. A non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a computer to perform a method comprising: receiving, by a hardware module connected to a serial port connection of a hardware device, over a wireless internet connection established by a wireless internet connection enabling component comprised within the hardware module, serial-port based commands information in a format suitable for sending over the wireless internet connection, the serial-port based commands information enabling determination of one or more serial-port based commands in a format suitable for a serial port connection; determining, by the hardware module, utilizing the serial-port based commands information, the serial -port based commands; and
sending, by the hardware module, the serial -port based commands to the hardware device through the serial port connection.
PCT/IL2017/050298 2016-03-14 2017-03-09 System and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports WO2017158590A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662307628P 2016-03-14 2016-03-14
US62/307,628 2016-03-14

Publications (1)

Publication Number Publication Date
WO2017158590A1 true WO2017158590A1 (en) 2017-09-21

Family

ID=59851520

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2017/050298 WO2017158590A1 (en) 2016-03-14 2017-03-09 System and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports

Country Status (1)

Country Link
WO (1) WO2017158590A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595933A (en) * 2021-08-18 2021-11-02 石家庄科林电气股份有限公司 Serial port multiplexing method and device based on MQTT communication protocol

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170021B1 (en) * 1998-10-19 2001-01-02 Hewlett-Packard Company Server computer I/O redirection tool
US6369925B1 (en) * 2000-06-09 2002-04-09 Physical Optics Corporation Beam combiner
US20030126226A1 (en) * 2002-01-02 2003-07-03 International Business Machines Corporation Headless serial redirection through a service processor
US6651190B1 (en) * 2000-03-14 2003-11-18 A. Worley Independent remote computer maintenance device
US20100100876A1 (en) * 2008-10-21 2010-04-22 Enfora, Inc. Wireless device provisioning hardware tool
US20110055367A1 (en) * 2009-08-28 2011-03-03 Dollar James E Serial port forwarding over secure shell for secure remote management of networked devices
US8554945B1 (en) * 2003-08-29 2013-10-08 Sprint Communications Company L.P. Cellular extension of wireless local area networks
US20150146706A1 (en) * 2013-11-22 2015-05-28 Lantronix, Inc. Remotely Provisioning And Operating A Headless WIFI Device
US20150381776A1 (en) * 2013-02-08 2015-12-31 Interdigital Patent Holdings, Inc. METHOD AND APPARATUS FOR INCORPORATING AN INTERNET OF THINGS (IoT) SERVICE INTERFACE PROTOCOL LAYER IN A NODE

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170021B1 (en) * 1998-10-19 2001-01-02 Hewlett-Packard Company Server computer I/O redirection tool
US6651190B1 (en) * 2000-03-14 2003-11-18 A. Worley Independent remote computer maintenance device
US6369925B1 (en) * 2000-06-09 2002-04-09 Physical Optics Corporation Beam combiner
US20030126226A1 (en) * 2002-01-02 2003-07-03 International Business Machines Corporation Headless serial redirection through a service processor
US8554945B1 (en) * 2003-08-29 2013-10-08 Sprint Communications Company L.P. Cellular extension of wireless local area networks
US20100100876A1 (en) * 2008-10-21 2010-04-22 Enfora, Inc. Wireless device provisioning hardware tool
US20110055367A1 (en) * 2009-08-28 2011-03-03 Dollar James E Serial port forwarding over secure shell for secure remote management of networked devices
US20150381776A1 (en) * 2013-02-08 2015-12-31 Interdigital Patent Holdings, Inc. METHOD AND APPARATUS FOR INCORPORATING AN INTERNET OF THINGS (IoT) SERVICE INTERFACE PROTOCOL LAYER IN A NODE
US20150146706A1 (en) * 2013-11-22 2015-05-28 Lantronix, Inc. Remotely Provisioning And Operating A Headless WIFI Device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595933A (en) * 2021-08-18 2021-11-02 石家庄科林电气股份有限公司 Serial port multiplexing method and device based on MQTT communication protocol
CN113595933B (en) * 2021-08-18 2023-04-28 石家庄科林电气股份有限公司 Serial port multiplexing method and device based on MQTT communication protocol

Similar Documents

Publication Publication Date Title
JP6073287B2 (en) Method and apparatus for sending a device description file to a host
CN105683845B (en) System and method for device detection and APP configuration
US11509505B2 (en) Method and apparatus for operating smart network interface card
CN111181804B (en) Intelligent device offline state automatic detection method and device, electronic device and medium
KR102368200B1 (en) Selection of code modules for device design
KR101914604B1 (en) Control method and control system for iot device using cloud platform
EP2804393A1 (en) Remote control method, intelligent terminal and intelligent remote control system
WO2018129515A1 (en) Method, system and device for connecting devices
KR20130135134A (en) Installing application remotely
WO2014179352A1 (en) Method and system for platform-independent application development
US9710255B1 (en) Updating system of firmware of complex programmable logic device and updating method thereof
US20140125464A1 (en) Smart remote control
JP6201917B2 (en) System and method for configuring field devices
CN104518910B (en) Apparatus for configuring Ethernet device and method for configuring Ethernet device
JP2021502735A (en) How to access the gateway management console, systems, and programs
US20180357193A1 (en) Computing device and operation method
US20180357034A1 (en) Method and system for playing content using smart signage device
WO2017158590A1 (en) System and method for connecting a plurality of devices to a communication network and remotely communicating therewith via serial ports
US11075775B2 (en) Home automation system including cloud server based maintenance operation communication and related methods
CN109525417B (en) Household appliance access method based on internet access, household appliance controller and storage medium
AU2017319427A1 (en) Method, welding system and article with a computer programm for implementing universal commands in a welding or cutting system
US9473874B2 (en) Distribution apparatus and distribution method
CN103441925A (en) Home gateway device and method for mounting storage device on home gateway device
CN105094722B (en) Support the control method and its control device of multi-screen system attribute display
TWI557643B (en) System and method for automatically downloading program

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17765978

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 03/01/2019)

122 Ep: pct application non-entry in european phase

Ref document number: 17765978

Country of ref document: EP

Kind code of ref document: A1