[go: up one dir, main page]

WO2025029266A1 - Systèmes et procédés de synchronisation de souris et de clavier - Google Patents

Systèmes et procédés de synchronisation de souris et de clavier Download PDF

Info

Publication number
WO2025029266A1
WO2025029266A1 PCT/US2023/035830 US2023035830W WO2025029266A1 WO 2025029266 A1 WO2025029266 A1 WO 2025029266A1 US 2023035830 W US2023035830 W US 2023035830W WO 2025029266 A1 WO2025029266 A1 WO 2025029266A1
Authority
WO
WIPO (PCT)
Prior art keywords
difference value
computing device
cursor
horizontal
vertical
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
PCT/US2023/035830
Other languages
English (en)
Inventor
Marcos Venicius dos Santos SILVA
Jose Leovigildo de Melo COELHO FILHO
Pablo Juan Morais DA CRUZ
Camila Fenerich LUCRI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ionic Health Holding Technologies LLC
Original Assignee
Ionic Health Holding Technologies LLC
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 Ionic Health Holding Technologies LLC filed Critical Ionic Health Holding Technologies LLC
Publication of WO2025029266A1 publication Critical patent/WO2025029266A1/fr
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry

Definitions

  • the techniques described herein relate to a method for mouse and keyboard synchronization, including: receiving, from a remote computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first ratio of a horizontal cursor position X1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user interface; subsequently receiving, from the remote computing device, a second indication of a second position of the cursor on the user interface, wherein the second position is a third ratio of a new horizontal cursor position Xn over a width of the user interface and a fourth ratio of a new vertical cursor position Yn over a height of the user interface; calculating a horizontal difference value between the first ratio and the third ratio and a
  • the techniques described herein relate to a system for mouse and keyboard synchronization, including: memory; and at least one hardware processor coupled with the memory, wherein the at least one hardware processor is configured to: receive, from a remote computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first ratio of a horizontal cursor position X1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user interface; subsequently receive, from the remote computing device, a second indication of a second position of the cursor on the user interface, wherein the second position is a third ratio of a new horizontal cursor position Xn over a width of the user interface and a fourth ratio of a new vertical cursor position Yn over a height of the user interface; calculate a horizontal difference value between the first ratio and the third ratio and a vertical difference value between the second ratio and the fourth ratio, wherein the horizontal difference value is a horizontal
  • the techniques described herein relate to a method for mouse synchronization, including: establishing a connection between a first computing device and a second computing device that has a cable emulating a mouse device; executing a request that shifts a cursor within a desktop environment of the first computing device to an origin position; receiving, from a remote computing device by the second computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first 044617-00026 ratio of a horizontal cursor position X1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user interface; determining a projected first position by calculating a horizontal projection and a vertical projection of the first position using a desktop specification of the first computing device; determining a plurality of moves between the origin position and the projected first position; dividing at least one of a horizontal difference value and a vertical difference value into a plurality of movement values based
  • FIG.1 is a diagram illustrating a remote operation system.
  • FIG. 2 is a diagram illustrating network connections in the remote operation system using a software-based keyboard, video, and mouse (KVM) component. 044617-00026
  • FIG.3 is a diagram illustrating an exemplary user interface for accessing medical equipment remotely.
  • FIG. 4 is a diagram illustrating physical connections in the remote operation system using a software-based KVM component.
  • FIG.5 illustrates a flow diagram of a method for pan smoothing.
  • FIG. 6 illustrates a flow diagram of a method for mouse synchronization when provisioning remote operation of medical equipment.
  • FIG. 7 illustrates a flow diagram of a method for mouse synchronization when provisioning remote operation of medical equipment using an origin position.
  • FIG. 8 presents an example of a general-purpose computer system on which aspects of the present disclosure can be implemented. DETAILED DESCRIPTION [0020] Exemplary aspects are described herein in the context of a system, method, and computer program product for provisioning remote operation of medical equipment. Those of ordinary skill in the art will realize that the following description is illustrative only and is not intended to be in any way limiting.
  • FIG.1 is a diagram illustrating a remote operation system 100.
  • Remote operation system 100 includes medical equipment 102, medical interfacing equipment 104, computing device 106, and camera 112.
  • Medical interfacing equipment 104 may be a controller for adjusting parameters of medical equipment 102.
  • Computing device 106 may be any computer device capable of receiving and displaying results from medical equipment 102.
  • Camera 112 may be used to monitor the medical environment (e.g., a clinic, hospital room, laboratory room, workstation, etc.).
  • computing device 106 may be a desktop computer
  • medical equipment 102 may be an MRI machine
  • medical interfacing equipment 104 may be an intercom/controller that controls scanning, adjusts movements of the components in the MRI machine, and enables communication between user 108 and the patient in the MRI machine.
  • Remote operation system 100 enables remote user 110 to remotely control medical interfacing equipment 104 and remotely view outputs of medical equipment 102 displayed on computing device 106.
  • FIG. 2 is a diagram 200 illustrating network connections in remote operation system 100.
  • FIG.2 is a diagram 200 illustrating network connections in the remote operation system 100 using a software-based keyboard, video, and mouse (KVM) component 212.
  • Diagram 200 depicts two networks: customer network 202 and public network 204.
  • customer network 202 is a local area network (LAN)
  • public network 204 is a wide 044617-00026 area network (WAN) (e.g., the Internet).
  • WAN wide 044617-00026 area network
  • both customer network 202 and public network 204 are WANs.
  • Customer network 202 features remote communication between devices in site A (e.g., a medical facility) and site B (e.g., a command center).
  • Remote computing device 216 establishes a secure connection with KVM component 212 via computing device 206, the secure connection including one or more of virtual private network (VPN) capabilities, multi- protocol label switching (MPLS) capabilities, and LAN to LAN connection capabilities.
  • VPN virtual private network
  • MPLS multi- protocol label switching
  • KVM component 212 may be installed on installed on an independent computing device that employs a video capture card and USB cable connected to computing device 206.
  • remote computing device 216 may communicate with camera 208, medical interfacing equipment 210, and/or computing device 206 using any combination of Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Internet Control Message Protocol (ICMP).
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • ICMP Internet Control Message Protocol
  • the display output of medical equipment 214 (e.g., an MRI machine) is presented on computing device 206 (e.g., a desktop computer).
  • computing device 206 e.g., a desktop computer
  • MRI images may be displayed on computing device 206, which can be viewed, modified, and interacted with using peripheral devices (e.g., a mouse and keyboard).
  • peripheral devices e.g., a mouse and keyboard.
  • remote computing device 216 is able to receive and replicate the display output of medical equipment 214, as well as transmit commands to control the mouse and keyboard of computing device 206 and/or medical interfacing equipment 210. This ultimately allows a remote user to program and perform a medical task (e.g., an examination process using medical equipment 214) directly as if he/she were actually sitting at the clinic or hospital workstation.
  • a medical task e.g., an examination process using medical equipment 214
  • a remote user may also be assisted by one or more of cameras 208 that generate real-time images of the patient’s position.
  • camera 208 may capture a video of the workstation in site A and transmit a stream over the secure connection to remote computing device 216.
  • the remote user of remote computing device 216 may communicate with a local user of computing device 206 using Voice over Internet Protocol (VoIP). This is enabled using communication platform 222, which receives and transmits audio information between the respective computing devices.
  • VoIP Voice over Internet Protocol
  • 044617-00026 communication platform includes VoIP server(s) 226 that perform communication exchanges.
  • cloud computation platform 220 which includes application server(s) 224, may be used by remote computing device 216 to perform various computational tasks.
  • the software e.g., nCommand
  • the software utilized by remote computing device 216 to perform remote access and control of device(s) in site A may be an application featuring a thin client and thick client.
  • the thin client application may be locally installed on remote computing device 216 to perform non-intensive processing tasks such as displaying information.
  • the thick client application may be installed on application server(s) 224 and may perform intensive processing tasks such as translating keyboard inputs received from remote computing device 216 to inputs for medical interfacing equipment 210 based on layouts.
  • Application server(s) 224 may additionally store device configuration information, user registrations, and other information.
  • both remote computing device 216 and computing device 206 may communicate with servers in cloud computation platform 220 and communication platform 222 using TCP and Hypertext Transfer Protocol Secure (HTTPS) (with Secure Sockets Layer(SSL)/ Transport Layer Security (TLS) 1.2) (Firewall or Proxy).
  • HTTPS Hypertext Transfer Protocol Secure
  • both computing device 206 and remote computing device 216 may contact technical support 218 to report, troubleshoot, and resolve remote access issues.
  • a KVM may be implemented as a standalone hardware device (e.g., described in FIG.7), or may be implemented as a software installed on computing device 206.
  • a physical connection e.g., via a USB cable
  • KVM component 212 may be programmed to capture the display output on computing device 206 and transmit a real-time video stream of the display output to remote computing device 216.
  • a remote control software e.g., nCommand or nVirtual installed on remote computing device 216 may receive and generate the video stream for display.
  • FIG. 3 is a diagram illustrating an exemplary user interface 300 for accessing medical equipment remotely.
  • user interface 300 may be displayed on remote 044617-00026 computing device 216 during an MRI scan and a mirror of the display from computing device 206 may be displayed on output window 302 (e.g., a mirror user interface based on user interface 300 may be displayed on computing device 206).
  • output window 302 may include the video stream captured from computing device 206.
  • the keyboard selections and the mouse movements of a cursor on the user interface of computing device 206 are shown on user interface 300.
  • cursor 314 may be moved by the local user from point A to point B.
  • output window 302 includes MRI images and various toolbar(s)/menu(s) 304 with imaging options such as for rotating, cropping, zooming into, and modifying the MRI images.
  • a remote user can access these options using their interface hardware (e.g., mouse, touchscreen, keyboard, etc.) connected to remote computing device 216.
  • the remote user may select option 306, which adjusts a contrast/brightness level of an MRI image.
  • the remote control software may transmit the selection of option 306 to KVM component 212, which executes the command on computing device 206.
  • the remote control software further receives and displays camera stream 308 on user interface 300.
  • Camera stream 308 may be a video stream captured by camera(s) 208.
  • camera(s) 208 transmit their video stream directly to remote computing device 216.
  • camera(s) 208 transmit their video stream to KVM component 212.
  • KVM component 212 then forwards the video stream to remote computing device 216.
  • User interface 300 may further display command window 310, which generates virtual options corresponding to physical input options on medical interfacing equipment 210.
  • a physical input option may include, but is not limited to, a button, a switch, a 044617-00026 toggle, a touch-sensitive surface, etc.
  • medical interfacing equipment 210 is used to control functionality of medical equipment 214.
  • Each medical interfacing equipment 210 may have a particular device type. Accordingly, when beginning a remote session, the remote control software may transmit a query to computing device 206 that asks for the device type.
  • This query may specifically ask for a product identifier such as a model number.
  • the remote control software may perform a lookup in an interfacing device layout database.
  • the interfacing device layout database may indicate, for each entry (of medical interfacing equipment), a plurality of options found physically on the equipment.
  • the remote control software may generate the corresponding plurality of options in command window 310.
  • interfacing device layout database is stored on application server(s) 224 and is periodically updated to include layouts of new medical equipment.
  • the remote control software receives a user selection of option 312 in command window 310.
  • the remote control software converts the user selection on remote computing device 216 to a selection of the button corresponding to option 312 on medical interfacing equipment 210.
  • command window 310 displays five options, which correspond to five buttons on medical interfacing equipment 210.
  • the remote control software determines, based on a mapping in the interfacing device layout database, that button 1 on medical interfacing equipment 210 should be selected.
  • the remote control software transmits a command to KVM component 212 to select button 1.
  • KVM component 212 locally converts the user selection on remote computing device 216 to a selection of the button corresponding to option 312 on medical interfacing equipment 210.
  • command window 310 displays five options, which correspond to five buttons on medical interfacing equipment 210.
  • the remote control software transmits an indication that option 312 has been selected to KVM component 212.
  • KVM component 212 determines, based on a mapping in the interfacing device layout database, that button 1 on medical interfacing 044617-00026 equipment 210 should be selected.
  • computing device 206 is connected to medical interfacing equipment 210 via a USB cable.
  • KVM component 212 transmits, via the USB cable, the selection of the button 1 to medical interfacing equipment 210, which executes the button selection and adjusts medical equipment 214 accordingly.
  • option 312 may involve activating a speaker of medical equipment 214 in order to allow the local user and/or the remote user to speak with a patient inside the MRI machine. This option is unavailable on the software that displays the MRI scans on computing device 206 and requires the use of medical interfacing equipment 210. In a traditional setting, the local user selects the button manually. However, using the remote control software and KVM component 212, the remote user is able to access the functionality of medical interfacing equipment 210 as described above.
  • the medical interfacing equipment 210 cannot be connected directly to computing device 206.
  • medical interfacing equipment 210 may be connected to medical equipment 214, which may further be connected to computing device 206.
  • the indirect connection prevents computing device 206 from transmitting commands to medical interfacing equipment 210.
  • a button pressing device may be connected to computing device 206.
  • the button pressing device may receive (via a wired or wireless connection) inputs from KVM component 212 (e.g., to select button 1 on medical interfacing equipment 210) and activate a solenoid built in the button pressing device that executes the inputs (e.g., a manual press of button 1).
  • the remote control software is not comparable to the screensharing and remote control capabilities in videotelephony software. This is because videotelephony software requires being installed on both devices to enable screensharing and remote control. However, installing videotelephony software on medical interfacing equipment 210 is not readily possible. This prevents such software from allowing command selection on medical interfacing equipment 210.
  • the fact that the remote control software of the present disclosure does not need to be installed on medical interfacing equipment 210 provides an additional benefit that computing resources are not taken from either medical equipment 214 or medical interfacing equipment 210.
  • KVM component 212 utilizes Web Real-Time Communication 044617-00026 (WebRTC) to perform mouse and keyboard synchronization for mouse/touch inputs received on remote computing device 216 and execution on the inputs on computing device 206. Because time is a crucial component in certain medical procedures (e.g., delays even by a few seconds can null an examination or may be harmful to the patient), KVM component 212 is configured to minimize the time latency between input receipt and command execution. In conventional remote assistance systems, WebRTC is solely used for transmitting audio and video and is not used for mouse and keyboard synchronization. [0044] There are various benefits to using a software-based KVM component.
  • WebRTC Web Real-Time Communication 044617-00026
  • the medical equipment 214 recognizes the KVM component 212 only as if a mouse, keyboard, and monitor were attached (plug and play). Thus, there is no additional memory or processor consumption, allowing the use of the KVM mechanism based on the software-based KVM without compromising the efficiency and effectiveness of the machine that is being remotely controlled. Additionally, maintaining the characteristics of medical equipment 214, which undergoes no alteration, enables the preservation of the manufacturer's machine warranty, an asset of significant importance to owners. [0045] Moreover, the absence of software installation on the medical equipment 214 being remotely controlled is essential for remote operation activities in high-security contexts (where the medical equipment must be isolated from network connections and software installations that may compromise its security) or low physical access to the medical equipment, compromising its on-site operation.
  • the video quality of the solution is defined according to the requirements of computing device 206, specifically the capture card, which can reach a resolution of 4K (3840 044617-00026 x 2160 pixels) at 60 frames per second.
  • the communication of mouse and keyboard events is done through a proprietary protocol, reducing the amount of network traffic and providing greater security for performing any action on the medical equipment.
  • KVM component 212 allows a user of remote computing device 216 to check the state of active keys on computing device 206. This functionality allows the keyboard of remote computing device 216 to be synchronized with the physical keyboard of the computing device 206.
  • the systems and methods utilize the WebRTC protocol (RFC 8835) for controlling computing device 206 by remote computing device 216 without the need for a VPN.
  • the traffic of streaming data (mouse, keyboard, and video) through application servers 224 is optional.
  • FIG.4 is a diagram 400 illustrating physical connections in the remote operation system 100 using a software-based KVM component.
  • computing device 403 may be a part of medical equipment 214.
  • the software-based KVM component is installed on computing device 404, which is connected to computing device 403.
  • monitor 402 may be connected to the video source of computing device 403 via cable 412.
  • a user may adjust the views outputted by medical device 214 using mouse 410 and keyboard 408 (connected to computing device 403 via cables 416 and 418, 044617-00026 respectively).
  • cable 414 is connected between the respective video sources of computing device 403 and computing device 404 (the device with KVM component 212 installed).
  • cable 406 which may be a USB cable, is connected between computing device 403 and 404.
  • a remote user may transmit a command (e.g., a selection of option 306 on user interface 300) via remote computing device 216 to computing device 404.
  • the command may be initiated by clicking option 306 with a mouse or a finger (in the case of touchscreen). Because the selection of option 306 is made on remote computing device 216, the selection is to be made on computing device 403 as though option 306 were selected via mouse 410. Likewise, if a selection is made by a local user on computing device 403 (e.g., via mouse 410), the selection is to be shown and made on remote computing device 216.
  • the present disclosure describes an advanced mouse and keyboard event algorithm that minimizes the latency relative to conventional mouse and keyboard synchronization algorithms and provides an excellent quality of experience for the end-user.
  • an external device is necessary to emulate a relative mouse, an absolute mouse, and a keyboard.
  • This external device is called the connect cable (e.g., cable 406) and functions as a cable that connects computing device 403 and computing device 404.
  • cable 406 emulates a relative mouse, an absolute mouse, and a keyboard using a universal serial bus (USB) and human interface devices (HID).
  • USB universal serial bus
  • HID human interface devices
  • cable 406 receives and sends data packets.
  • Client sync application 424 and server sync application 426 are installed on remote computing device 420 and computing device 404, respectively. These are applications configured to generate and transmit mouse and keyboard events over one or more server(s) over a wireless connection.
  • the server(s) are one or more application server(s) part of cloud computation platform 220.
  • Remote computing device 420 may be connected to mouse 432 and keyboard 434, through which a remote user may make selections and provide inputs.
  • Remote computing device 420 is connected to computing 044617-00026 device 404 over a wireless connection (e.g., the Internet).
  • information exchanged between remote computing device 420 and computing device 404 via the server(s) uses an "Ionic Connect Protocol" (ICP), which is a proprietary protocol designed to save bytes sent over the network by being lightweight and simple.
  • client sync application 424 and server sync application 426 are modules with a software application such as nCommand.
  • Cable 406 is configured to listen to inputs from server sync application 426 (originating from remote computing device 420) and emulate a keyboard, absolute mouse, and relative mouse device. There is a thread responsible for listening to requests from client sync application 424 and validating the request format based on Connect Cable Protocol (CCP), which is the standard communication protocol between client sync application 424 and cable 406.
  • CCP Connect Cable Protocol
  • keyboard events are detected by client sync application 424 and undergo an internal encoding defined by the ICP. Then a data packet containing information about the key state (e.g., pressed or released), and the encoded key is sent to server sync application 426.
  • server sync application 426 When server sync application 426 receives a keyboard command, it also receives the key identifier (in the ICP-encoded format), a timestamp, and the key state (e.g., pressed or released), and processes it for computing device 404.
  • Computing device 404 performs a series of checks to validate the information and ensure that the requested command is expected. For example, computing device 404 may keep track of the keys pressed in a buffer of length six, so if a request is made to release a key that is not in the buffer, it will simply ignore the request.
  • Computing device 404 implements a structure to simulate how the keyboard's "HID input report" should be, so whenever cable 406 receives an input from client sync application 424, it simply performs the USB "HID input report" without having to keep track of the keys.
  • This structure implemented by server sync application 426, has a six-byte buffer length and a one-byte modifier.
  • the modifier byte may include the modifier keys: Shift Left, 044617-00026 Control Left, Meta Left, Alt Left, Shift Right, Control Right, Meta Right, and Alt Right.
  • the buffer stores other keys, such as Key “A,” Key “B,” etc.
  • a mouse event captured by client sync application 424 includes information about the current position of a cursor on a user interface (e.g., cursor 314 on user interface 300).
  • the cursor position within computing device 403 is affected by the movements of a client mouse (e.g., mouse 410 and/or mouse 432). The cursor may move in a specific area inside the client-side application (showing user interface 300 on computing device 403).
  • This area is defined by a width and a height measured in pixels.
  • - N0 ⁇ 0, 1, 2, 3, 4, ... ⁇ – Width, Height ⁇ N0 and Width, Height > 0
  • - Area ⁇ (x, y)
  • client sync application 424 when sending these ratios to server sync application 426, multiplies the ratios by a predetermined amount (e.g., 2 24 ) and rounds the products to a lower integer.
  • a predetermined amount e.g. 2 24
  • This normalization step is defined in ICP and the values may be three bytes long and encoded in big-endian byte sequence.
  • a mouse click is an event captured within the client-side application area (e.g., within user interface 300), representing a button pressed or released.
  • mouse 410 and/or mouse 432 may have up to three buttons: Button 0 (primary), Button 1 (auxiliary), and Button 2 (secondary). Each button has a button identifier (ID) and state (e.g., pressed, released).
  • ID button identifier
  • Client sync application 424 may detect a mouse click event and transmit a timestamp, the button ID, and state associated with the pressed button to server sync application 426.
  • the button information may be [5/1/2023 22:10:11, Button 1, pressed].
  • the button information may be [5/1/202322:10:51, Button 1, released].
  • server sync application 426 receives data from the client sync application 424 and is configured to parse the data coming in ICP format and process the data as it is defined in ICP. For example, in response to receiving information about an event from remote computing device 420, server sync application 426 translates the information to a Connect Cable Protocol (CCP), which transfers the information to computing device 403 via cable 406.
  • CCP Connect Cable Protocol
  • the events recognized by client sync application 424 may be divided into event types including: (A) keyboard, which is an event type indicating a press or release of a key on keyboard 434, (B) mouse wheel, which may be a scrolling event type indicative of movement of a vertical wheel for mouse 432 or a horizontal wheel generally implemented in touchpads, (C) mouse click, which is an event type used to indicate the primary, secondary, and/or tertiary button press and/or release, and (D) mouse move, which may be an event type indicative of either an absolute move or a relative move.
  • A keyboard
  • mouse wheel which may be a scrolling event type indicative of movement of a vertical wheel for mouse 432 or a horizontal wheel generally implemented in touchpads
  • C mouse click
  • mouse move which may be an event type indicative of either an absolute move or a relative move.
  • client sync application 424 transmits the exact position of the cursor to server sync application 426. More specifically, the cursor position data sent by client sync application 424 is transposed into a 2 16 x 2 16 matrix. Cable 406 emulates this “absolute mouse” and expects the data to come in 16 bits for x (i.e., horizontal direction), and 16 bits for y (i.e., vertical direction). Accordingly, the x and y represent the absolute coordinates of the cursor 314 on user interface 300.
  • - TargetArea ⁇ (x, y)
  • client sync application 424 transmits the exact position of the cursor to server sync application 426.
  • a set of variables influence the calculation of relative move, and the main goal is to calculate a cursor projection using the data sent by the client sync application 424 so that the cursors associated with the desktop environment within the computing device 403 and cursors associated with the desktop environment within the computing device 420 remain synchronized.
  • the cursor within the computing device 403 moves inside a desktop environment.
  • the desktop environment of computing device 403 has a width and a height directly related to the monitor 402 and the operating system (OS) configuration.
  • OS operating system
  • TargetArea floor(Width/Scale) x floor(Height/Scale)
  • TargetArea ⁇ (x, y)
  • server sync application 426 sets the initial mouse pointer position as (0,0), which is the top left corner of the screen. This setting is required because subsequent projections will take into account the last known position of the cursor.
  • dClientXn is the current horizontal data received by server sync application 426 from the client-side and dClientX n-1 means the previous horizontal data received.
  • dClientY n is the current vertical data received by server sync application 426 from the client-side and dClientYn-1 means the previous vertical data received.
  • x represents “how far” the target mouse pointer is, in the horizontal direction, from the desktop coordinate origin.
  • y it represents “how far” it is, in the vertical direction, from the desktop coordinate origin.
  • xn is the current calculation of x and xn-1 is the previous calculation of x
  • y n is the current calculation of y and y n-1 is the previous calculation of y
  • TargetX and TargetY are respectively, the horizontal and the vertical coordinates of the target mouse pointer inside TargetArea
  • TargetWidth and TargetHeight are, the dimensions of the TargetArea.
  • TargetWidth stands for the horizontal direction
  • TargetHeight stands for the vertical direction.
  • client-side width and height are the same as the target computer width and height, therefore it is not correct to say that the same amount of 044617-00026 pixels that was moved in the client-side application must be the same amount of pixels to be moved in the target computer. That said, a way to find the correct amount to move in the horizontal direction and in the vertical direction is to find the proportion between the client- side and the target computer.
  • a rounding function that rounds to the nearest integer may be applied: - TargetX ⁇ round (dClientX/2 24 ⁇ floor(TargetWidth ⁇ Scale -1 )) - TargetY ⁇ round (dClientY/2 24 ⁇ floor(TargetHeight ⁇ Scale -1 )) - x n ⁇ round (dClientX n /2 24 ⁇ floor(TargetWidth ⁇ Scale -1 )) - y n ⁇ round (dClientY n /2 24 ⁇ floor(TargetHeight ⁇ Scale -1 )) [0086]
  • xn and yn are, respectively, the current calculation of the TargetX and TargetY, and will, approximately, be a good projection for the target mouse pointer in the horizontal and in the vertical direction.
  • x1 and y1 notations indicate that this is the first target mouse pointer projection.
  • the client-side sends the second mouse move command
  • n in the “sub n“ notation is incremented, where n ⁇ N0.
  • ⁇ x and ⁇ y respectively represent the horizontal and vertical relative movements that the target mouse pointer needs to perform in order to be synchronized with the user mouse pointer.
  • a mouse relative move can be described as a vector m such that m ⁇ ⁇ (x, y)
  • the ⁇ notation indicates a vector multiplication that is not usual, it caused by the floor function since the OS does not perform real numbers values, only integer numbers values.
  • V(move) (28, ⁇ 52)
  • V(m) is a general function for how the operating systems handles a relative move when the feature of velocity is active. m is a relative move that goes into the function, and Velocity a real number greater than zero.
  • server sync application 426 redefines the equation for a relative move in a way to “cancel” the OS mouse velocity within computing device 403 and fix impressions due to this calculation.
  • RemnantsX is an “accumulator” that represents a variable storing the sum of the decimal part of the current and all the previous calculations of ⁇ ⁇ – ⁇ ⁇ 1 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ .
  • abs(B) returns the absolute value of B 044617-00026
  • Step 4: x 2 2 [0108]
  • client sync application 424 applies a pan smoothing algorithm that adjusts the original path of the cursor to reduce the number of sharp curves and abrupt changes in direction.
  • the objectives of this algorithm are to be performant, so the remote mouse feels as real-time as possible, and avoid abrupt changes in directions, creating an “organic” movement.
  • client sync application 424 applies the pan smoothing algorithm when ⁇ x ⁇ Range or ⁇ y ⁇ Range.
  • FIG.5 illustrates a flow diagram of a method 500 for pan smoothing.
  • method 500 advances to 504, where server sync application 426 creates a list of moves including the relative move for the horizontal and vertical directions.
  • server sync application 426 determines whether
  • )
  • method 500 advances to 510, where server sync application 426 populates the first n ⁇ 1 elements of the list with ((2 r-1 -1) ⁇ sign( ⁇ x), floor(
  • server sync application 426 determines that Max(
  • method 500 advances to 516, where server sync application 426 populates the first n ⁇ 1 elements of the list with (floor(
  • server sync application 426 determines that
  • method 500 advances to 518, where server sync application 426 populates the first n ⁇ 1 elements of the list with ((2 r-1 -1) ⁇ sign( ⁇ x), (2 r-1 -1) ⁇ sign( ⁇ y)) and populates nth element with (
  • server sync application 426 receives, from a remote computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first ratio of a horizontal cursor position X 1 over a width of the user interface and a second ratio of a vertical cursor position Y 1 over a height of the user interface.
  • server sync application 426 subsequently receives, from the remote computing device, a second indication of a second position of the cursor on the user interface, wherein the second position is a third ratio of a new horizontal cursor position Xn over a width of the user interface and a fourth ratio of a new vertical cursor position Yn over a height of the user interface.
  • server sync application 426 calculates a horizontal difference value between the first ratio and the third ratio and a vertical difference value between the second ratio and the fourth ratio, wherein the horizontal difference value is a horizontal relative movement of the cursor and the vertical difference value is a vertical relative movement of the cursor. [0126] At 608, server sync application 426 determines that the horizontal difference value and the vertical difference value are greater than a predetermined size. [0127] At 610, server sync application 426 divides the at least one of the horizontal difference value and the vertical difference value into a plurality of movement values.
  • server sync application 426 applies a pan smoothing adjustment value to the plurality of movement values representing an original path of the cursor from the first position to the second position. 044617-00026 [0129] At 614, server sync application 426 transmits the plurality of movement values to a local computing device configured to mirror a movement of the cursor of the remote computing device on a local cursor based on the plurality of movement values. [0130] In some aspects, prior to determining the horizontal difference value and the vertical difference value, server sync application 426 applies a scaling factor to the first ratio and the third ratio and applies a different scaling factor to the second ratio and the fourth ratio.
  • server sync application 426 generates a corrected horizontal difference value and a corrected vertical difference value by applying a correction factor accounting for a mouse velocity to both the horizontal difference value and the vertical difference value.
  • Server sync application 426 adds a first remnants value to the corrected horizontal difference value, wherein the first remnants value stores a first sum of a decimal portions of each horizontal cursor position that is rounded to an integer.
  • Server sync application 426 adds a second remnants value to the corrected vertical difference value, wherein the second remnants value stores a second sum of a decimal portions of each vertical cursor position that is rounded to an integer.
  • the first remnants value and second remnants value each subtract their integer portion when greater than or equal to one.
  • the plurality of movements values includes n values
  • the horizontal difference value is ⁇ x
  • the vertical difference value is ⁇ y
  • applying the pan smoothing adjustment value comprises server sync application 426 determining that the horizontal difference value is greater than the vertical difference value, populating a first n-1 elements of the plurality of movement values with ((2 r-1 -1) ⁇ sign( ⁇ x), floor(
  • the plurality of movements values includes n values
  • the horizontal difference value is ⁇ x
  • the vertical difference value is ⁇ y
  • applying the pan smoothing adjustment value comprises server sync application 426 determining that 044617-00026 the vertical difference value is greater than the horizontal difference value, populating a first n-1 elements of the plurality of movement values with (floor(
  • server sync application 426 receives, from the remote computing device, a third indication of a mouse click, wherein the third indication comprises an identifier of a button clicked on a mouse connected to the remote computing device, a timestamp, and a state of the mouse, and transmits the third indication to the local computing device that is configured to replicate the mouse click.
  • server sync application 426 receives, from the remote computing device, a third indication of a keyboard selection, wherein the third indication comprises an identifier of a key clicked on a keyboard connected to the remote computing device and a timestamp, and transmits the third indication to the local computing device that is configured to replicate the keyboard selection.
  • FIG.7 illustrates a flow diagram of method 700 for mouse synchronization when provisioning remote operation of medical equipment using an origin position.
  • a second computing device e.g., computing device 404 with a cable (e.g., cable 406) emulating a mouse device establishes a connection with a first computing device (e.g., computing device 403).
  • the cable emulates the mouse device using a USB HID protocol.
  • the second computing device executes a request that shifts a cursor within a desktop environment of the first computing device to an origin position.
  • the origin position is a zero position along a horizontal axis and a zero position along a vertical axis.
  • the second computing device receives, from a remote computing device (e.g., remote computing device 420), a first indication of a first position of a cursor on a user interface.
  • the first position is a first ratio of a horizontal cursor position X1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user interface.
  • the second computing device determines a projected first position by calculating a horizontal projection and a vertical projection of the first position using a desktop specification of the first computing device.
  • the second computing 044617-00026 device calculates the horizontal projection by applying a scaling factor that is a ratio of the width over a predetermined scale, and calculates the vertical projection by applying a scaling factor that is a ratio of the height over the predetermined scale. [0140] At 710, the second computing device determines a plurality of moves between the origin position and the projected first position. [0141] At 712, the second computing device divides at least one of a horizontal difference value and a vertical difference value into a plurality of movement values based on an amount of the plurality of moves.
  • the horizontal difference value is a horizontal relative movement of the cursor from the origin position and the projected first position and the vertical difference value is a vertical relative movement of the cursor from the origin position and the projected first position.
  • the second computing device applies a pan smoothing adjustment value to the plurality of movement values representing an original path of the cursor from the origin position to the projected first position.
  • the second computing device transmits the plurality of movement values to the first computing device configured to mirror a movement of the cursor of the remote computing device on a local cursor based on the plurality of movement values.
  • the computer system 20 can be in the form of multiple computing devices, or in the form of a single computing device (e.g., computing device 206, remote computing device 216, etc.), for example, a desktop computer, a notebook computer, a laptop computer, a mobile computing device, a smart phone, a tablet computer, a server, a mainframe, an embedded device, and other forms of computing devices.
  • the computer system 20 includes a central processing unit (CPU) 21, a system memory 22, and a system bus 23 connecting the various system components, including the memory associated with the central processing unit 21.
  • the system bus 23 may comprise a bus memory or bus memory controller, a peripheral bus, and a local bus that is able to interact with any other bus architecture. Examples of the buses may include PCI, ISA, PCI-Express, HyperTransportTM, InfiniBandTM, Serial ATA, I 2 C, and other suitable interconnects. 044617-00026
  • the central processing unit 21 (also referred to as a processor) can include a single or multiple sets of processors having single or multiple cores.
  • the processor 21 may execute one or more computer-executable code implementing the techniques of the present disclosure. For example, any of commands/steps discussed in FIGS.1-7 may be performed by processor 21.
  • the system memory 22 may be any memory for storing data used herein and/or computer programs that are executable by the processor 21.
  • the system memory 22 may include volatile memory such as a random access memory (RAM) 25 and non-volatile memory such as a read only memory (ROM) 24, flash memory, etc., or any combination thereof.
  • the basic input/output system (BIOS) 26 may store the basic procedures for transfer of information between elements of the computer system 20, such as those at the time of loading the operating system with the use of the ROM 24.
  • the computer system 20 may include one or more storage devices such as one or more removable storage devices 27, one or more non-removable storage devices 28, or a combination thereof.
  • the one or more removable storage devices 27 and non-removable storage devices 28 are connected to the system bus 23 via a storage interface 32.
  • the storage devices and the corresponding computer-readable storage media are power- independent modules for the storage of computer instructions, data structures, program modules, and other data of the computer system 20.
  • the system memory 22, removable storage devices 27, and non-removable storage devices 28 may use a variety of computer- readable storage media.
  • Examples of computer-readable storage media include machine memory such as cache, SRAM, DRAM, zero capacitor RAM, twin transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technology such as in solid state drives (SSDs) or flash drives; magnetic cassettes, magnetic tape, and magnetic disk storage such as in hard disk drives or floppy disks; optical storage such as in compact disks (CD-ROM) or digital versatile disks (DVDs); and any other medium which may be used to store the desired data and which can be accessed by the computer system 20.
  • machine memory such as cache, SRAM, DRAM, zero capacitor RAM, twin transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM
  • flash memory or other memory technology such as in solid state drives (SSDs) or flash drives
  • magnetic cassettes, magnetic tape, and magnetic disk storage such as in hard disk drives or floppy disks
  • optical storage such
  • the system memory 22, removable storage devices 27, and non-removable storage devices 28 of the computer system 20 may be used to store an operating system 35, additional program applications 37, other program modules 38, and program data 39.
  • the computer system 20 may include a peripheral interface 46 for communicating data from input 044617-00026 devices 40, such as a keyboard, mouse, stylus, game controller, voice input device, touch input device, or other peripheral devices, such as a printer or scanner via one or more I/O ports, such as a serial port, a parallel port, a universal serial bus (USB), or other peripheral interface.
  • a display device 47 such as one or more monitors, projectors, or integrated display, may also be connected to the system bus 23 across an output interface 48, such as a video adapter.
  • the computer system 20 may be equipped with other peripheral output devices (not shown), such as loudspeakers and other audiovisual devices.
  • the computer system 20 may operate in a network environment, using a network connection to one or more remote computers 49.
  • the remote computer (or computers) 49 may be local computer workstations or servers comprising most or all of the aforementioned elements in describing the nature of a computer system 20.
  • Other devices may also be present in the computer network, such as, but not limited to, routers, network stations, peer devices or other network nodes.
  • the computer system 20 may include one or more network interfaces 51 or network adapters for communicating with the remote computers 49 via one or more networks such as a local-area computer network (LAN) 50, a wide-area computer network (WAN), an intranet, and the Internet.
  • networks such as a local-area computer network (LAN) 50, a wide-area computer network (WAN), an intranet, and the Internet.
  • the network interface 51 may include an Ethernet interface, a Frame Relay interface, SONET interface, and wireless interfaces.
  • Aspects of the present disclosure may be a system, a method, and/or a computer program product.
  • the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
  • the computer readable storage medium can be a tangible device that can retain and store program code in the form of instructions or data structures that can be accessed by a processor of a computing device, such as the computing system 20.
  • the computer readable storage medium may be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof.
  • such computer-readable storage medium can comprise a random access memory (RAM), a read-only memory (ROM), EEPROM, a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), flash memory, a hard disk, a portable computer diskette, a memory stick, a floppy disk, or even a 044617-00026 mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon.
  • a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or transmission media, or electrical signals transmitted through a wire.
  • Computer readable program instructions described herein can be downloaded to respective computing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
  • a network interface in each computing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing device.
  • Computer readable program instructions for carrying out operations of the present disclosure may be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language, and conventional procedural programming languages.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a LAN or WAN, or the connection may be made to an external computer (for example, through the Internet).
  • electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
  • FPGA field-programmable gate arrays
  • PLA programmable logic arrays
  • module refers to a real- world device, component, or arrangement of components implemented using hardware, such as by an application specific integrated circuit (ASIC) or FPGA, for example, or as a combination of hardware and software, such as by a microprocessor system and a set of instructions to implement the module’s functionality, which (while being executed) transform the microprocessor system into a special-purpose device.
  • a module may also be implemented as a combination of the two, with certain functions facilitated by hardware alone, and other functions facilitated by a combination of hardware and software. In certain implementations, at least a portion, and in some cases, all, of a module may be executed on the processor of a computer system.
  • each module may be realized in a variety of suitable configurations, and should not be limited to any particular implementation exemplified herein.
  • [0154] In the interest of clarity, not all of the routine features of the aspects are disclosed herein. It would be appreciated that in the development of any actual implementation of the present disclosure, numerous implementation-specific decisions must be made in order to achieve the developer’s specific goals, and these specific goals will vary for different implementations and different developers. It is understood that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art, having the benefit of this disclosure.
  • a method for mouse synchronization comprising: receiving, from a remote computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first ratio of a horizontal cursor position X 1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user 044617-00026 interface; subsequently receiving, from the remote computing device, a second indication of a second position of the cursor on the user interface, wherein the second position is a third ratio of a new horizontal cursor position Xn over a width of the user interface and a fourth ratio of a new vertical cursor position Y n over a height of the user interface; calculating a horizontal difference value between the first ratio and the third ratio and a vertical difference value between the second ratio and the fourth ratio, wherein the horizontal difference value is a horizontal relative movement of the cursor and the vertical difference value is a vertical relative movement of the cursor; determining whether the horizontal difference value and the vertical difference value
  • a system for mouse synchronization comprising: at least one memory; at least one hardware processor coupled with the at least one memory and configured, individually or in combination, to: receive, from a remote computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first ratio of a horizontal cursor position X 1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user interface; subsequently receive, from the remote computing device, a second indication of a second position of the cursor on the user interface, wherein the second position is a third ratio of a new horizontal cursor position X n over a width of the user interface and a fourth ratio of a new vertical cursor position Yn over a height of the user interface; calculate a horizontal difference value between the first ratio and the third ratio and a vertical difference value between the second ratio and the fourth ratio, wherein the horizontal difference value is a horizontal relative movement of the cursor and the vertical difference value is a
  • the at least one hardware processor is configured to: apply a scaling factor to the first ratio and the third ratio; and apply a different scaling factor to the second ratio and the fourth ratio.
  • the scaling factor is ratio of the width over a product of a predetermined scale
  • the different scaling factor is a ratio of the height over a product of the predetermined scale.
  • the at least one hardware processor is configured to: generate a corrected horizontal difference value and a corrected vertical difference value by applying a correction factor accounting for a mouse velocity to both the horizontal difference value and the vertical difference value; add a first remnants value to the corrected horizontal difference value, wherein the first remnants value stores a first sum of a decimal portions of each horizontal cursor position that is rounded to an integer; and add a second remnants value to the corrected vertical difference value, wherein the second remnants value stores a second sum of a decimal portions of each vertical cursor position that is rounded to an integer.
  • Clause 17 The system of any of the preceding clauses, wherein the at least one hardware processor is configured to: receive, from the remote computing device, a third indication of a mouse click, wherein the third indication comprises an identifier of a button clicked on a mouse connected to the remote computing device, a timestamp, and a state of the mouse; and transmit the third indication to the local computing device that is configured to replicate the mouse click.
  • the at least one hardware processor is configured to: receive, from the remote computing device, a third indication of a mouse click, wherein the third indication comprises an identifier of a button clicked on a mouse connected to the remote computing device, a timestamp, and a state of the mouse; and transmit the third indication to the local computing device that is configured to replicate the mouse click.
  • a method for mouse synchronization comprising: establishing a connection between a first computing device and a second computing device that has a cable emulating a mouse device; executing a request that shifts a cursor within a desktop environment of the first computing device to an origin position; receiving, from a remote computing device by the second computing device, a first indication of a first position of a cursor on a user interface, wherein the first position is a first ratio of a horizontal cursor position X1 over a width of the user interface and a second ratio of a vertical cursor position Y1 over a height of the user interface; determining a projected first position by calculating a horizontal projection and a vertical projection of the first position using a desktop specification of the first computing device; determining a plurality of moves between the origin position and the projected first position; dividing at least one of a horizontal difference value and a vertical difference value into a plurality of movement values based on an amount of the plurality of moves, wherein the horizontal difference value is a horizontal relative

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

L'invention concerne des systèmes et un procédé de synchronisation de clavier et de souris. Le procédé peut consister à recevoir, en provenance d'un dispositif informatique distant, des valeurs de position de curseur sur une période de temps. Le procédé peut consister à déterminer des valeurs de différence verticale et horizontale de la position de curseur. En fonction de la taille des valeurs de différence verticale et horizontale, le procédé peut comprendre la division de la valeur de différence horizontale et/ou de la valeur de différence verticale en une pluralité de valeurs de mouvement, l'application d'une valeur de réglage de lissage de pan à la pluralité de valeurs de mouvement représentant un trajet d'origine du curseur de la première position à la seconde position, et la transmission de la pluralité de valeurs de mouvement à un dispositif informatique local configuré pour refléter un mouvement du curseur du dispositif informatique distant sur un curseur local sur la base de la pluralité de valeurs de mouvement.
PCT/US2023/035830 2023-08-01 2023-10-24 Systèmes et procédés de synchronisation de souris et de clavier Pending WO2025029266A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363517002P 2023-08-01 2023-08-01
US63/517,002 2023-08-01

Publications (1)

Publication Number Publication Date
WO2025029266A1 true WO2025029266A1 (fr) 2025-02-06

Family

ID=94395754

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/035830 Pending WO2025029266A1 (fr) 2023-08-01 2023-10-24 Systèmes et procédés de synchronisation de souris et de clavier

Country Status (1)

Country Link
WO (1) WO2025029266A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246904A1 (en) * 2010-04-01 2011-10-06 Gus Pinto Interacting with Remote Applications Displayed Within a Virtual Desktop of a Tablet Computing Device
CN102929415A (zh) * 2012-09-17 2013-02-13 浪潮(北京)电子信息产业有限公司 一种本地监控器及其与远程虚拟机鼠标显示同步的方法
US20140002361A1 (en) * 2012-06-28 2014-01-02 Lee E. Ballard Systems and methods for remote mouse pointer management
US20170068410A1 (en) * 2015-09-08 2017-03-09 Apple Inc. Devices, Methods, and Graphical User Interfaces for Moving a Current Focus Using a Touch-Sensitive Remote Control
WO2022166927A1 (fr) * 2021-02-04 2022-08-11 上海达龙信息科技有限公司 Procédé et appareil d'affichage de curseur basé sur un bureau à distance, support et dispositif électronique

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246904A1 (en) * 2010-04-01 2011-10-06 Gus Pinto Interacting with Remote Applications Displayed Within a Virtual Desktop of a Tablet Computing Device
US20140002361A1 (en) * 2012-06-28 2014-01-02 Lee E. Ballard Systems and methods for remote mouse pointer management
CN102929415A (zh) * 2012-09-17 2013-02-13 浪潮(北京)电子信息产业有限公司 一种本地监控器及其与远程虚拟机鼠标显示同步的方法
US20170068410A1 (en) * 2015-09-08 2017-03-09 Apple Inc. Devices, Methods, and Graphical User Interfaces for Moving a Current Focus Using a Touch-Sensitive Remote Control
WO2022166927A1 (fr) * 2021-02-04 2022-08-11 上海达龙信息科技有限公司 Procédé et appareil d'affichage de curseur basé sur un bureau à distance, support et dispositif électronique

Similar Documents

Publication Publication Date Title
US11487412B2 (en) Information processing method and information processing system
US10410306B1 (en) Method and system for providing remote access to data for display on a mobile device
EP2875425B1 (fr) Mise en place de l'accès à une application distante via un client web
US8797233B2 (en) Systems, methods, and devices for dynamic management of data streams updating displays
US9729673B2 (en) Method and system for providing synchronized views of multiple applications for display on a remote computing device
US8924502B2 (en) System, method and computer program product for updating a user session in a mach-derived system environment
US8763054B1 (en) Cross-platform video display
US8776152B1 (en) Cloud-based cross-platform video display
CN105612738A (zh) 多功能会议系统和方法
US10623377B1 (en) On-premises data access and firewall tunneling
US9153208B2 (en) Systems and methods for image data management
WO2023284791A1 (fr) Procédé de fonctionnement d'interface virtuelle, dispositif d'affichage monté sur la tête et support lisible par ordinateur
US12273246B2 (en) 3D collaborative visual command line system to visualize and manage networked endpoints
EP4315353A1 (fr) Chariot chirurgical multi-utilisateurs
WO2025029266A1 (fr) Systèmes et procédés de synchronisation de souris et de clavier
CN113238728A (zh) 数据展示方法、装置、服务器、系统和存储介质
US20250008030A1 (en) Scanner redirection in nested mode
WO2025053841A1 (fr) Systèmes et procédés pour assurer l'exploitation à distance d'équipement médical
Kohlmann et al. Remote visualization techniques for medical imaging research and image-guided procedures
CN105446466A (zh) 虚拟桌面客户端、虚拟桌面客户端的控制芯片以及伺服装置的控制方法
US12437463B2 (en) Systems and methods for rendering images on a device
US12380991B2 (en) Systems and methods for rendering images on a device
Hosseini et al. Sink: A middleware for synchronization of heterogeneous software interfaces
CN117149122A (zh) 同屏互动方法、装置、系统、设备及介质
JP2014002526A (ja) リモート画面連携操作システムおよびリモート画面連携操作方法

Legal Events

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

Ref document number: 23947776

Country of ref document: EP

Kind code of ref document: A1