DioInpMultiByteSR


Function

Inputs multiple bytes from the input ports on the wireless I/O device.

Format

Ret = DioInpMultiByteSR ( Id , &PortNo[0] , PortNum , &Data[0] , &Timestamp , Mode )

Parameters

Id [C:short] [Python: ctypes.c_short]
Specified device ID retrieved from DioInit.

PortNo [C:short *] [Python: ctypes.POINTER(ctypes.c_short)]
Stores the logical input port numbers into an array. Specifies the base address of this array.

PortNum [C:short] [Python: ctypes.c_short]
Specifies the number of ports which are specified by PortNo. The maximum number of ports is 256.

Data [C:unsigned char *] [Python: ctypes.POINTER(ctypes.c_ubyte)]
Specifies the base address of array to store the input data.

Timestamp [C: unsigned short *] [Python: ctypes.POINTER(ctypes.c_ushort)]
Specify the address of the variable to store the timestamp.

Mode [C: unsigned char] [Python: ctypes.c_ubyte]
Specify where to refer to the input data.

Definition

Value

[Dec]

Description

DIONET_MODE_DIRECT

0

Refer to the input data of Terminal.

DIONET_MODE_AP

1

Refer to the input data of Gateway.

Return Value

Ret[C:long] [Python: ctypes.c_long]

Definition

Value

[Dec]

Description

DIO_ERR_SUCCESS

0

Normal complete

DIO_ERR_DLL_INVALID_ID

10001

Invalid ID is specified.

DIO_ERR_DLL_CALL_DRIVER

10002

Driver cannot be called (failed in ioctl).

DIO_ERR_DLL_BUFF_ADDRESS

10100

Invalid data buffer address.

DIO_ERR_SYS_NOT_SUPPORTED

20001

This function cannot be used for this device.

DIO_ERR_SYS_PORT_NO

20100

Port number is outside of the available range.

DIO_ERR_SYS_PORT_NUM

20101

Number of ports is outside of the available range.

The other errors: (See also: Error code details)

Initial Value

The initial values of the input data are 0, if no external device is connected.

Remarks

Inputs multiple bytes from the input ports.
Before this function is called, it is necessary that the logical port numbers to be input are set into the array specified by PortNo.
The input data are stored into the array Data in the order that the logical ports are specified by PortNo.
To acquire data, there are two methods. One is acquiring data stored in master unit, the other one is acquiring data directly from slave unit.
Please refer to the wireless I/O specification for features of each acquisition method.

For the data acquisition method, when acquiring the data stored in the master unit, you can acquire the time stamp of the data stored in the master unit.
The time stamp returns the time since the last update in seconds.
If the time stamp is longer than the update interval of the slave unit, the data from the slave unit is not reaching the master unit for some reason.
Please use it to check the validity of the data saved in the master unit.

Example

C

Ret = DioInpMultiByteSR( Id , &PortNo[0] , PortNum , &Data[0] , &Timestamp , Mode );
 

Python

Ret = cdio.DioInpMultiByteSR( Id , PortNo , PortNum , Data , ctypes.byref(Timestamp) , Mode )
 

See Also

DioInpByteSR
DioInpBitSR
DioInpMultiBitSR
Logic_Bit