Table: | For thread contexts |
Table: | For controlling MIL events |
Table: | For controlling a MIL mutex |
MIL_ID ThreadEventOrMutexId, | //in |
MIL_INT64 ControlType, | //in |
MIL_DOUBLE ControlValue | //in |
This function controls a MIL thread context, MIL event, or MIL mutex setting. Most of these control type settings can be inquired using MthrInquire().
Specifies the identifier of a user-allocated MIL thread context, event, or mutex, allocated using MthrAlloc(). This parameter can also be set to the MIL identifier of a system.
For specifying the identifier of a user-allocated MIL
thread context, event, or mutex
|
|||||||||||||||||||||||||||||||||||||||
Value | Description | ||||||||||||||||||||||||||||||||||||||
M_DEFAULT |
Specifies the default MIL thread context identifier associated with the current Host thread. |
||||||||||||||||||||||||||||||||||||||
MIL event identifier |
Specifies the identifier of a user-allocated MIL event (MthrAlloc()). |
||||||||||||||||||||||||||||||||||||||
MIL mutex identifier |
Specifies the identifier of a user-allocated MIL mutex (MthrAlloc()). |
||||||||||||||||||||||||||||||||||||||
MIL system identifier |
Specifies the identifier of a valid system identifier (MsysAlloc()). When the parameter is set to the MIL identifier of a system, the function inquires about the current thread on the particular system. (summarize)Specifies the identifier of a valid system identifier (MsysAlloc()). (more details...) |
||||||||||||||||||||||||||||||||||||||
MIL thread context identifier |
Specifies the identifier of a user-allocated MIL thread context (MthrAlloc()). |
Specifies the type of setting to control.
See the Parameter associations section for possible values that can be specified.
Specifies the new value to assign to the setting specified by the ControlType parameter.
See the Parameter associations section for possible values that can be specified.
The tables below list possible values for the ControlType and ControlValue parameters.
The following ControlType and corresponding ControlValue settings can be specified to control MIL thread contexts:
For thread contexts
|
|||||||||||||||||||||||||||||||||||||||
ControlType | Description | MIL system-specific tooltip (‡) |
|||||||||||||||||||||||||||||||||||||
ControlValue | |||||||||||||||||||||||||||||||||||||||
M_ACCELERATOR |
Sets whether the thread uses hardware acceleration. Hardware acceleration speeds up the execution of certain functions in a thread. Use MsysInquire() with M_ACCELERATOR_PRESENT to learn if your Matrox imaging board has an accelerator. INQ (summarize)Sets whether the thread uses hardware acceleration. INQ (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_DISABLE |
Specifies not to use hardware acceleration. |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_ENABLE |
Specifies to use hardware acceleration. This is the default value. (summarize)Specifies to use hardware acceleration. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_BUS_MASTER_COPY_MODE |
Sets the synchronization mode for copy operations when they are driven by your imaging board (bus master). In this case, the current setting for M_THREAD_MODE does not effect the synchronization mode. INQ (summarize)Sets the synchronization mode for copy operations when they are driven by your imaging board (bus master). INQ (more details...) |
‡ | g | h | i | j | k M10 |
l | m | p | r U27 |
u U36 |
y U75 |
aa | |||||||||||||||||||||||||
M_DEFAULT |
Same as M_SYNCHRONOUS. |
‡ | g | h | i | j | k M10 |
l | m | p | r U27 |
u U36 |
y U75 |
aa | |||||||||||||||||||||||||
M_ASYNCHRONOUS |
Specifies that when possible, control will be returned to the imaging board (bus master) immediately after a copy operation is launched. |
‡ | g | h | i | j | k M10 |
l | m | p | r U27 |
u U36 |
y U75 |
aa | |||||||||||||||||||||||||
M_SYNCHRONOUS |
Specifies that the execution of a copy operation must be completed before returning control to the imaging board (bus master). |
‡ | g | h | i | j | k M10 |
l | m | p | r U27 |
u U36 |
y U75 |
aa | |||||||||||||||||||||||||
M_NODE_SELECT |
Sets the MIL system where MIL functions will run in the thread, when running multiple systems in DMIL. (summarize)Sets the MIL system where MIL functions will run in the thread, when running multiple systems in DMIL. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_DEFAULT |
Specifies that the MIL system on which the MIL functions will run is selected automatically. |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
MIL system identifier |
Specifies a valid system identifier, which forces all MIL functions to run on this system. When running a monitoring model DMIL setup, to specify that MIL functions must run on a monitored computer, the monitored computer must first publish its system identifier, using MobjControl(). Once the system identifier is published, the monitoring computer must inquire it, using MobjInquire(), before using it with this control value. (summarize)Specifies a valid system identifier, which forces all MIL functions to run on this system. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_THREAD_COMMANDS_ABORT |
Cancels all calls queued in the thread. The remainder of the application is executed. (summarize)Cancels all calls queued in the thread. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_DEFAULT |
Implements the default behavior. |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_THREAD_MODE |
Sets the execution mode of the thread. Note that a thread can only work in asynchronous mode if threads allocated on the same system can execute in asynchronous mode (MsysControl() with M_THREAD_MODE). If they can only execute in synchronous mode, the specified thread will work in synchronous mode regardless of this setting. INQ (summarize)Sets the execution mode of the thread. INQ (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
MIL system specific | |||||||||||||||||||||||||||||||||||||||
Note that the specified synchronization mode does not affect copy operations. Use M_BUS_MASTER_COPY_MODE to specify the required mode for copying. |
‡ | g | h | l | m | ||||||||||||||||||||||||||||||||||
M_DEFAULT |
Same as M_ASYNCHRONOUS. |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_ASYNCHRONOUS |
Specifies that the thread will execute in asynchronous mode, if possible. In this mode, control is returned to the Host immediately after a MIL function is sent to the processor of the thread's associated system (when the system and function allow an immediate return). (summarize)Specifies that the thread will execute in asynchronous mode, if possible. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_SYNCHRONOUS |
Specifies that the thread will execute in synchronous mode. In this mode, the execution of a MIL function sent to the processor of the thread's associated system must be completed (execution terminated) before returning control to the Host. (summarize)Specifies that the thread will execute in synchronous mode. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_THREAD_PRIORITY |
Sets the priority status of the thread. INQ (summarize)Sets the priority status of the thread. INQ (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_ABOVE_NORMAL |
Specifies that the thread is above normal priority. Only time critical threads will be executed before it. (summarize)Specifies that the thread is above normal priority. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_BELOW_NORMAL |
Specifies that the thread is below normal priority. Threads of normal, above normal, and time critical priority will be executed before it. (summarize)Specifies that the thread is below normal priority. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_IDLE |
Specifies that the thread is idle. The thread will remain idle until its priority status is changed. (summarize)Specifies that the thread is idle. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_LOWEST |
Specifies that the thread is of the lowest priority. All other non-idle threads will be executed before it. (summarize)Specifies that the thread is of the lowest priority. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_NORMAL |
Specifies that the thread is of normal priority. Threads of above normal and time critical priority will be executed before it. This is the default value. (summarize)Specifies that the thread is of normal priority. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_TIME_CRITICAL |
Specifies that the thread is time critical. Time critical threads will be executed before all other threads that are not time critical. (summarize)Specifies that the thread is time critical. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_THREAD_SELECT |
Sets the selectable thread, specified by the ThreadEventOrMutexId parameter, as the destination for subsequent MIL functions. This allows MIL functions to be executed on systems with on-board processors. Before calling MthrControl() with M_THREAD_SELECT you should inquire and save the identifier of the on-board thread that is by default associated with the Host thread, using MsysInquire() with M_CURRENT_THREAD_ID. This allows you to return control to this on-board thread. If the ThreadEventOrMutexId parameter is set to an identifier of a thread that is not selectable, changing the settings of this control will generate an error. (summarize)Sets the selectable thread, specified by the ThreadEventOrMutexId parameter, as the destination for subsequent MIL functions. (more details...) |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa | ||||||||||||||||||
M_DEFAULT |
Implements the default behavior. |
‡ | a | c M10 |
g | h | i | j | k M10 |
l | m | o | p | r U27 |
t U28 |
u U36 |
v | w U53 |
y U75 |
z | aa |
The following ControlType and corresponding ControlValue setting can be specified to control MIL events:
For controlling MIL events
|
|||||||||||||||||||||||||||||||||||||||
ControlType | Description | ||||||||||||||||||||||||||||||||||||||
ControlValue | |||||||||||||||||||||||||||||||||||||||
M_EVENT_SET |
Sets an event to the specified state. INQ (summarize)Sets an event to the specified state. INQ (more details...) |
||||||||||||||||||||||||||||||||||||||
M_NOT_SIGNALED |
Sets the event to the not-signaled state. |
||||||||||||||||||||||||||||||||||||||
M_SIGNALED |
Sets the event to the signaled state. |
The following ControlType and corresponding ControlValue setting can be specified to control a MIL mutex:
For controlling a MIL mutex
|
|||||||||||||||||||||||||||||||||||||||
ControlType | Description | ||||||||||||||||||||||||||||||||||||||
ControlValue | |||||||||||||||||||||||||||||||||||||||
M_LOCK |
Forces the current thread to wait until the specified MIL mutex is available and then locks it. Locking the mutex blocks all other threads from accessing the current critical section of code. Note that the current thread can lock the same mutex several times without an error occurring. However, the current thread must unlock (M_UNLOCK) the mutex as many times as it was locked. For example, if the current thread previously locked the mutex twice, the mutex must be unlocked twice after the critical section of code has completed. (summarize)Forces the current thread to wait until the specified MIL mutex is available and then locks it. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_DEFAULT |
Specifies the default behavior. |
||||||||||||||||||||||||||||||||||||||
M_LOCK_TRY |
Locks the specified MIL mutex if it is currently unlocked. Locking the mutex blocks all other threads from accessing the current critical section of code. If the mutex is locked by another thread, M_LOCK_TRY does not force the thread to wait for the mutex to become unlocked; the thread continues executing without executing the critical section of code protected by the mutex. To determine whether the current thread has successfully locked the mutex, use MthrInquire() with M_LOCK_TRY. (summarize)Locks the specified MIL mutex if it is currently unlocked. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_DEFAULT |
Implements the default behavior. |
||||||||||||||||||||||||||||||||||||||
M_UNLOCK |
Unlocks the specified mutex. (summarize)Unlocks the specified mutex. (more details...) |
||||||||||||||||||||||||||||||||||||||
M_DEFAULT |
Implements the default behavior. |
void MthrControlDouble
(MIL_ID
ThreadEventOrMutexId, MIL_INT64 ControlType,
MIL_DOUBLE ControlValue)
Parameters
ThreadEventOrMutexId See ThreadEventOrMutexId of the main function for a description. ControlType See ControlType of the main function for a description. ControlValue See ControlValue of the main function for a description. |
Parameters
ThreadEventOrMutexId See ThreadEventOrMutexId of the main function for a description. ControlType See ControlType of the main function for a description. ControlValue See ControlValue of the main function for a description. |
Header | Include mil.h. |
Library | Use mil.lib. |
DLL | Requires mil.dll. |