DioOutMultiByte


Function

Outputs multiple bytes to output ports.

Format

Ret = DioOutMultiByte ( Id , PortNo , PortNum , Data )

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 output 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) ]
Store the output data into an array, and specify the base address of this array. The output data are set by hex number from 0H to FFH.

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 output data are 0 after the device is reset. (DIO-0808RN-USB is set to FFH)

Remarks

Outputs multiple bytes to output ports. Before this function is called, it is necessary that the logical port numbers to be output are set into the array specified by PortNo. The data to be output are stored into the array named Data by the order of logical ports which are specified by PortNo.

When you want to output data to the same port continuously, the same port numbers are stored in the array named PortNo and the data which are to be continuously output are stored in the array named Data sequentially. In that case, the maximum number of ports and the maximum number of data are 256. When the device type is isolation, after outputting data, it necessary to wait until the data are really output. Therefore, this usage is effective only for devices that output TTL level.

Example

Outputs 55H to port 0 and AAH to port 1 respectively.

VB.NET

Dim Ret As Integer
Dim PortNo(1) As Short
Dim Data(1) As Byte
PortNo(0) = 0
PortNo(1) = 1
Data(0) = &H55
Data(1) = &HAA
Ret = DioOutMultiByte ( Id , PortNo , 2 , Data )
 

C, C++

long Ret;
short PortNo[2]
BYTE Data[2];
PortNo[0] = 0;
PortNo[1] = 1;
Data[0] = 0x55;
Data[1] = 0xaa;
Ret = DioOutMultiByte ( Id , PortNo , 2 , Data );
 

C#

int Ret;
short[] PortNo = new short[2];
byte[] Data = new byte[2];
PortNo[0] = 0;
PortNo[1] = 1;
Data[0] = 0x55;
Data[1] = 0xaa;
Ret = dio.OutMultiByte ( Id , out PortNo , 2 , out Data );
 

Python

Ret = ctypes.c_long()
PortNoType = ctypes.c_short * 2
PortNo = PortNoType()
DataType = ctypes.c_ubyte * 2
Data = DataType()
PortNo[0] = 0
PortNo[1] = 1
Data[0] = 0x55
Data[1] = 0xaa
Ret.value = cdio.DioOutMultiByte ( Id , PortNo , 2 , Data )
 

See Also

DioOutByte DioOutBit DioOutMultiBit