See below for answers to our most frequently asked questions. Have other questions? Contact us to learn more!
Device commands are commands that will execute on a device physically located at a remote location. When an application sends a REST command request to Jetstream the device status is evaluated. If the device is online, the command is executed immediately. If the device is offline, it is queued for the device to execute. Once the device has executed the command a CommandCompletionEvent is published with any results of executing the command.
Not all device commands support immediate execution. Not all device commands may be queued for future execution. Not all device commands will return results immediately.
To support the ability to install a device on a network that is not controlled by your company all devices use internet friendly protocols and initiate all communication with Jetstream. Therefore Jetstream may not have the ability to directly contact the device and queues all device commands until the next time the device polls the command queue.
Some commands are only eligible to execute immediately. In the event that a command is ineligible for offline execution, an attempt to execute the command will result in a failure.
Some commands take a long time to execute. To maintain the responsive nature of Jetstream not all commands will return results immediately.
For example, the GetEPCListCommand may take more than a minute before the data is returned. In this case, the command will be executed, but the results will not be returned to the caller; they will be published to GetEvents as if the device were offline.
Immediate results are returned to the calling system immediately. In these circumstances, the calling system will receive a CommandResponse as well as a CommandCompletionEvent.
Published results are published to GetEvents for retrieval. In these circumstances, the calling system will receive a CommandResponse but the results will only be made available in the CommandCompletionEvent which (along with the CommandQueuedEvent) can be retrieved via GetEvents.
Immediate and published results are returned to the calling system immediately as well as being published to GetEvents for retrieval. In these circumstances, the calling system will receive a CommandResponse as well as a CommandCompletionEvent. Additionally, the CommandQueuedEvent and CommandCompletionEvent will be available in GetEvents.