DioInpMultiByteSR


Function

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

Format

Ret = DioInpMultiByteSR ( Id , PortNo , PortNum , Data , Timestamp , Mode )

Parameters

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
Specify the device ID retrieved from DioInit.

PortNo [ VB.NET: Short ] [ C, C++: short * ] [ C#: out short ] [ Python: ctypes.POINTER(ctypes.c_short) ]
Store the logical input port numbers into an array, and specify the base address of this array.

PortNum [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
Specify the number of ports which are specified by PortNo. The maximum number of ports is 256.

Data [ VB.NET: Byte ] [ C, C++: BYTE * ] [ C#: out byte ] [ Python: ctypes.POINTER(ctypes.c_ubyte) ]
Specify the base address of the array to store the input data.

Timestamp [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
Specify the address of the variable to store the timestamp.

Mode [ VB.NET: Byte ] [ C, C++: BYTE ] [ C#: out byte ] [ 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 [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

Definition

Value

[Dec]

Description

DIO_ERR_SUCCESS

0

Normal completed.

DIO_ERR_SYS_RECOVERED_FROM_STANDBY

7

Execute DioResetDevice function because the device has recovered from standby mode.

DIO_ERR_DLL_INVALID_ID

10001

Invalid ID specified.

DIO_ERR_DLL_CALL_DRIVER

10002

Not call the driver (Failure on DEVICE I/O CONTROL).

DIO_ERR_DLL_BUFF_ADDRESS

10100

Invalid data buffer address.

DIO_ERR_SYS_NOT_SUPPORTED

20001

This board couldn't use this function.

DIO_ERR_SYS_PORT_NO

20100

Port No. beyond the limit.

DIO_ERR_SYS_PORT_NUM

20101

Port number beyond the limit.

The others (See also: Details of Error Code)

Initial Value

The initial values of input data are 0 in the state that other external equipment is not connected.

Remarks

Inputs multiple bytes from 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 named Data by the order of logical ports which 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

Inputs data from port 0 and port 1.

VB.NET

Dim Ret As Integer
Dim PortNo(1) As Short
Dim Data(1) As Byte
Dim Timestamp As UShort
Dim Mode As Byte
PortNo(0) = 0
PortNo(1) = 1
Mode = 0
Ret = DioInpMultiByteSR ( Id , PortNo , 2, Data , Timestamp , Mode )
 

C, C++

long Ret;
short PortNo[2]
BYTE Data[2];
unsigned short Timestamp;
BYTE Mode;
PortNo[0] = 0;
PortNo[1] = 1;
Mode = 0;
Ret = DioInpMultiByteSR ( Id , PortNo , 2  , Data , &Timestamp , Mode );
 

C#

int Ret;
short[] PortNo = new short[2];
byte[] Data = new byte[2];
ushort Timestamp;
byte Mode;
PortNo[0] = 0;
PortNo[1] = 1;
Mode = 0;
Ret = dio.DioInpMultiByteSR ( Id , out PortNo , 2 , out Data , out Timestamp , Mode );
 

Python

Ret = ctypes.c_long()
PortNoType = ctypes.c_short * 2
PortNo = PortNoType()
DataType = ctypes.c_ubyte * 2
Data = DataType()
Timestamp = ctypes.c_ushort()
Mode = ctypes.c_ubyte()
PortNo[0] = 0
PortNo[1] = 1
Mode.value = 0
Ret.value = cdio.DioInpMultiByteSR ( Id , PortNo , 2 , Data , ctypes.byref(Timestamp) , Mode )
 

See Also

DioInpByteSR DioInpBitSR DioInpMultiBitSR