Once a task has opened a handle to a Direct-Link card, it may request sdadmin to read or write messages on the Data Highway. The task must identify both the card number and the handle granted by the SD_OPEN request. The task should also indicate whether to wait on the request or return immediately.
As well, a task may request a copy of the active node list through the SD_GET_DHP_STAT request (Data Highway Plus only).
When a task requires data to be read from the Data Highway, it performs an SD_READ. The task must provide a valid handle and an indication whether to wait. If wait is set true, the administrator does not reply until either data has been received or a timeout has occurred. If wait is false, the administrator replies immediately with either data or SD_R_NO_DATA.
If a message is returned, the reply contains the following fields:
If a message is received from the card, it is buffered in one of the administrator message buffers. If it is not read by a task within twice the card timeout period, it is discarded, making the buffer available.
Similarly, if a task performs a read and no data is available, the read returns after a delay of twice the card timeout period.
When a task requires data to be written to the Data Highway, it performs an SD_WRITE. The task must provide a valid handle and an indication whether to wait. If wait is set true, the administrator does not reply until the data has been sent to the card or a timeout has occurred. If wait is false, the administrator replies immediately with either SD_R_OK if there was a message buffer available or SD_R_WRITE_FAILED.
The structure passed to represent the message contains the following fields:
If the SD card doesn't have room to store a write request, the write fails (SD_R_WRITE_FAILED is returned) after one card timeout period.
The SD_GET_DHP_STAT function allows a task to interrogate the Data Highway Plus status maintained by each card. This function does not apply for Data Highway.
If the function call is successful, the administrator returns to the requesting task 8 bytes of data. Each bit represents the status of a station on the Data Highway Plus. If a bit is set to 1, the station is present, otherwise the station is not present. The active node list is arranged as follows:
| Bit Number | ||||||||
|---|---|---|---|---|---|---|---|---|
| Byte# | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 0 | #00 | #10 | #20 | #30 | #40 | #50 | #60 | #70 |
| 1 | #01 | #11 | #21 | #31 | #41 | #51 | #61 | #71 |
| 2 | #02 | #12 | #22 | #32 | #42 | #52 | #62 | #72 |
| 3 | #03 | #13 | #23 | #33 | #43 | #53 | #63 | #73 |
| 4 | #04 | #14 | #24 | #34 | #44 | #54 | #64 | #74 |
| 5 | #05 | #15 | #25 | #35 | #45 | #55 | #65 | #75 |
| 6 | #06 | #16 | #26 | #36 | #46 | #56 | #66 | #76 |
| 7 | #07 | #17 | #27 | #37 | #47 | #57 | #67 | #77 |
Copyright © 1995-2006 by Cogent Real-Time Systems, Inc. All rights reserved.