Sets the event factor of the message notification that is related to the analog output.
Ret = AioSetAoEvent ( Id , hWnd , AoEvent )
Id
[ VB.NET : Short ] [ C, C++ : short ] [ C# : short ] [ Python : ctypes.c_short
]
Specifies the ID retrieved from AioInit function.
hWnd
[ VB.NET : IntPtr ] [ C, C++ : HWND ] [ C# : IntPtr ] [ Python : ctypes.wintypes.HANDLE
]
Specifies the window handle.
AoEvent
[ VB.NET : Integer ] [ C, C++ : long ] [ C# : int ] [ Python : ctypes.c_long
]
Specifies the event factor from the following range in macro or value.
AoEvent has the following meanings in bit, it can be specified by a combination
of these bits.
The available event factor is based on whether the device buffer is used or whether the user buffer is used.
Event factor |
Using Device buffer |
Using User buffer |
Macro |
Value |
Yes |
Yes |
AOE_START |
00000002H |
|
Yes |
Yes |
AOE_RPTEND |
00000010H |
|
Yes |
Yes |
AOE_END |
00000020H |
|
Yes |
No |
AOE_DATA_NUM |
00000080H |
|
No |
Yes |
AOE_DATA_TSF |
00000100H |
|
Yes |
Yes |
AOE_SCERR |
00020000H |
|
Yes |
Yes |
AOE_DAERR |
00040000H |
When "Event that the specified number of data are output" is used, set the number of generatings that raises the event by using the AioSetAoEventSamplingTimes function. When "Event that the specified number of data are transferred is used, set the transfer times that raises the event by using the AioSetAoEventTransferTimes function.
Ret [ VB.NET : Integer ] [ C, C++ : long ] [ C# : int ] [ Python : ctypes.c_long ]
Return values |
Content |
0 |
Normality completion |
7 |
Execute AioResetDevice function because the device has recovered from standby mode |
10001 |
Invalid
Id was specified |
10002 |
AIO
driver can't be called |
20001 |
This function can't be used by this device |
20002 |
Can
not use while by another device works |
20003 |
Can
not use because another process is using the device |
In all devices, AoEvent = 0 (Not use event)
The event factor set in this function are
notified as message to event message routine.
The message type are as follows.
Analog input message factor |
Macro |
Value |
AIOM_AOE_START |
1020H |
|
AIOM_AOE_RPTEND |
1021H |
|
AIOM_AOE_END |
1022H |
|
AIOM_AOE_DATA_NUM |
1023H |
|
AIOM_AOE_DATA_TSF |
1027H |
|
AIOM_AOE_SCERR |
1025H |
|
AIOM_AOE_DAERR |
1026H |
This function cannot be used on devices without
the analog output function.
If the device is in operation, the function cannot be performed.
It cannot be used with callback routine (AioSetAoCallBackProc).
For Ethernet
devices
If communication with the device is lost, the process
will be unregistered and will no longer receive event notifications.
If you want to perform event notification again,
please make the settings again using this function.
Sets the "Event that device operation end" and "Event that the specified number of data are output"
VB.NET |
WndProc |
C, C++ |
long
Ret; |
C# |
WndProc |
Python |
Ret
= ctypes.c_long() |
AioGetAoEvent AioSetAoEventSamplingTimes AioGetAoEventSamplingTimes
There are three(3) important values for arguments passed to event message
routines. [Message ID], [Device ID], [Unique parameters for each event].
Details of each argument are as follows.
Analog input message factor |
Macro |
Value |
AIOM_AOE_START |
1020H |
|
AIOM_AOE_RPTEND |
1021H |
|
AIOM_AOE_END |
1022H |
|
AIOM_AOE_DATA_NUM |
1023H |
|
AIOM_AOE_DATA_TSF |
1027H |
|
AIOM_AOE_SCERR |
1025H |
|
AIOM_AOE_DAERR |
1026H |
When you use multiple devices on the same PC, Please identify the device that generated the event by Device ID in the event message routine.
When you use only one(1) single device, you
do not need to identify Device ID.
You can handle the process with [message number] and [specific parameters
for each event] in the event message routine.
Event factor |
Parameter |
Event that DA conversion start |
None |
Event that repeat end |
The current number of repeats |
Event that device operation end |
The current number of generatings |
Event that the specified number of data are outputted |
The current number of generatings |
Event that the specified number of data are transferred |
The current transfer times |
Event that generating clock period error |
The current number of generatings |
Event that DA conversion error |
The current number of generatings |
The way of writing the event message routine processing depends on the development language you are using.
The following are some examples of how to override the event message
routine and the arguments.
For details, please refer to the documentation provided by Microsoft.
The way to override
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Please refer to the following three properties of the argument System.Windows.Forms.Message structure.
m.Msg: Message
ID is passed.
m.WParam: Device
ID is passed in lower 2 bytes. High 2 bytes aren't use now.
m.LParam: The parameter peculiar
to event is passed.
The way to override
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
Name="FullTrust")]
protected override void WndProc (ref Message m)
Please refer to the following three properties of the argument Message structure.
m.Msg: Message
ID is passed.
m.WParam: Device
ID is passed in lower 2 bytes. High 2 bytes aren't use now.
m.LParam : The parameter peculiar
to event is passed.
The way to override
LRESULT CVC6Dlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
Please refer to the following three arguments on DefWindowProc.
message:
Message ID is passed.
wParam: Device
ID is passed in lower 2 bytes. Higher 2 bytes aren't used now.
lParam: The parameter peculiar
to event is passed.