dnsDeviceMsg, dnsDeviceMsgSync — send an explicit message to a device.
(dnsDeviceMsg card_id device service class instance [serviceData...]) (dnsDeviceMsgSync card_id device service class instance [serviceData...])
If successful:
(dnsDeviceMsg card_id device service data1...dataN "data_string")
where datai is the i'th byte of the n bytes returned by the device, and data_string is the same data represented as a string, where '.' is used in place of unprintable characters.
Otherwise, one of the following error messages:
(error "dnsDeviceMsg DR_ERR_CARD_INVALID (time) invalid card: card_id")
(error "dnsDeviceMsg DR_ERR_NO_CARD (time) card not available")
(error "dnsDeviceMsg DVN_ERR_MSG_ILOCK (time)
Device card_id:device msg interlock unavailable")
(error "dnsDeviceMsg DVN_ERR_MSG_CONNECTION (time)
Device card_id:device Failed to open explicit connection")
(error "dnsDeviceMsg DVN_ERR_MSG_INTERNAL (time) Device card_id:device
Internal msg error: Service service Errorcode error_code")
(error "dnsDeviceMsg DVN_ERR_MSG_DEVICE (time) Device card_id:device
Device msg error: Service service Errorcode error_code")
(error "dnsDeviceMsg DVN_ERR_MSG_TRUNC (time) Device card_id:device msg truncated")
(error "dnsDeviceMsg DVN_ERR_MSG_TIMEOUT (time) Device card_id:device msg timeout")
(error "dnsDeviceMsg DVN_ERR_MSG_INTR (time) Device card_id:device msg SIGINTR")
(error "dnsDeviceMsg DVN_ERR_MSG_NOT_RCVD (time) Device card_id:device no msg received")These commands send the explicit message request to the specified device, returning with the response provided by the device.
Since some requests may not return an immediate response, and since in most cases the potential impact of the delay on normal I/O processing would not be acceptable, the dnsDeviceMsg command will suspend the client and continue to process all commands from other clients and card events until the response is received.
The dnsDeviceMsgSync form of the command will force the driver to ignore other commands or events until the reply is received from the device (or a timeout occurs), and is suitable for use in the configuration file to initialize the driver (before the driver enters the event loop).
> (dnsDeviceMsg 0 2 0xe 1 1 3)
(dnsDeviceMsg 0 2 0x000E 0x32 0x1 "2.")> (dnsDeviceMsg 0 2 0xe 1 1 7)
(dnsDeviceMsg 0 2 0x000E 0x19 0x20 0x20 0x57 0x41 0x47 0x4F 0x20 0x20 0x20
0x37 0x35 0x30 0x2D 0x33 0x30 0x36 0x20 0x56 0x30 0x32 0x2E 0x30 0x32 0x20
0x20 ". WAGO 750-306 V02.02 ")Copyright © 1995-2006 by Cogent Real-Time Systems, Inc. All rights reserved.