G05B2219/25367

DATA COLLECTION SYSTEM AND MOTOR CONTROLLER

A data collection system includes a subordinate controller configured to control an electrical device, and a superordinate controller connected to the subordinate controller via synchronous communication and asynchronous communication to control the subordinate controller. The superordinate controller includes a reference signal transmitter to transmit a timing reference signal to the subordinate controller via the synchronous communication. The subordinate controller includes data storage configured to record data relating to the electrical device; a delay time calculator to measure a delay time from a timing at which the subordinate controller receives the timing reference signal to a timing at which the data storage starts recording the data; and a data transmitter configured to transmit the data and the delay time to the superordinate controller via the asynchronous communication or the synchronous communication.

Asynchronous task multiplexing and chaining

The described technology is directed towards sharing asynchronous (async) tasks between task chains, including in a way that prevents cancellation of lower-level chain entity from cancelling a shared async task. A shared async task is wrapped in multiplexer code that maintains lower-level entity identities as a set of listeners of the shared async task, and when a listener cancels, only removes that listener from the set of listeners so that the shared async task does not cancel as long as one listener remains in the set. Also described is optimization to share an async task, and wrapping tasks in cancel-checking code that prevents the task from running its work if the task is intended to be cancelled but is queued to run before the cancel request is queued to run.

Asynchronous task multiplexing and chaining

The described technology is directed towards sharing asynchronous (async) tasks between task chains, including in a way that prevents cancellation of lower-level chain entity from cancelling a shared async task. A shared async task is wrapped in multiplexer code that maintains lower-level entity identities as a set of listeners of the shared async task, and when a listener cancels, only removes that listener from the set of listeners so that the shared async task does not cancel as long as one listener remains in the set. Also described is optimization to share an async task, and wrapping tasks in cancel-checking code that prevents the task from running its work if the task is intended to be cancelled but is queued to run before the cancel request is queued to run.

ASYNCHRONOUS TASK MULTIPLEXING AND CHAINING

The described technology is directed towards sharing asynchronous (async) tasks between task chains, including in a way that prevents cancellation of lower-level chain entity from cancelling a shared async task. A shared async task is wrapped in multiplexer code that maintains lower-level entity identities as a set of listeners of the shared async task, and when a listener cancels, only removes that listener from the set of listeners so that the shared async task does not cancel as long as one listener remains in the set. Also described is optimization to share an async task, and wrapping tasks in cancel-checking code that prevents the task from running its work if the task is intended to be cancelled but is queued to run before the cancel request is queued to run.