# Real-time Ethernet Driver Control Interface ## emonIoCtl - EC_IOCTL_ISLINK_CONNECTED ### EC_IOCTL_ISLINK_CONNECTED Determine whether the main link or redundancy link is connected. #### NOTE See also EC_IOCTL_IS_MAIN_LINK_CONNECTED, EC_IOCTL_IS_RED_LINK_CONNECTED * **Parameters:** * **pbyInBuf** – [in] Should be set to EC_NULL * **dwInBufSize** – [in] Should be set to 0 * **pbyOutBuf** – [out] Pointer to EC_T_DWORD or [EC_T_LINK_CONNECTED_INFO](#d9/d56/struct_e_c___t___l_i_n_k___c_o_n_n_e_c_t_e_d___i_n_f_o). EC_T_DWORD: If value is EC_TRUE link is connected, if EC_FALSE it is not. * **dwOutBufSize** – [in] Size of the output buffer in bytes (sizeof(EC_T_DWORD) / sizeof(EC_T_LINK_CONNECTED_INFO)) * **pdwNumOutData** – [out] Pointer to EC_T_DWORD. Amount of bytes written to the output buffer. * **Returns:** [EC_E_NOERROR](error-codes_generic.html.md#d3/d2f/group___e_c___e_r_r_o_r___c_o_d_e_s___g_e_n_e_r_i_c_1ga8c8419c32e88e73d940a4501fe427116) or error code ### struct EC_T_LINK_CONNECTED_INFO ### Public Members ### [EC_T_BOOL](api.html.md#_CPPv49EC_T_BOOL) bConnected [out] MAIN or RED link detected ### [EC_T_BOOL](api.html.md#_CPPv49EC_T_BOOL) bSendEnabled [out] Send enabled on MAIN or RED ### [EC_T_BOOL](api.html.md#_CPPv49EC_T_BOOL) bMainConnected [out] MAIN link detected ### [EC_T_BOOL](api.html.md#_CPPv49EC_T_BOOL) bMainMasked [out] MAIN link not used for sending, because topology changed delay not elapsed yet ### [EC_T_BOOL](api.html.md#_CPPv49EC_T_BOOL) bRedConnected [out] RED link detected ### [EC_T_BOOL](api.html.md#_CPPv49EC_T_BOOL) bRedMasked [out] RED link not used for sending, because topology changed delay not elapsed yet #### SEE ALSO [`emonIoCtl()`](api_general.html.md#_CPPv49emonIoCtl10EC_T_DWORD10EC_T_DWORDPCK9EC_T_VOID10EC_T_DWORDPC9EC_T_VOID10EC_T_DWORDPC10EC_T_DWORD) ## emonIoCtl - EC_IOCTL_GET_LINKLAYER_MODE ### EC_IOCTL_GET_LINKLAYER_MODE Get Real-time Ethernet Driver mode (EcLinkMode_POLLING, EcLinkMode_INTERRUPT) * **Parameters:** * **pbyInBuf** – [in] Should be set to EC_NULL * **dwInBufSize** – [in] Should be set to 0 * **pbyOutBuf** – [out] Pointer to struct [EC_T_LINKLAYER_MODE_DESC](#db/d79/struct_e_c___t___l_i_n_k_l_a_y_e_r___m_o_d_e___d_e_s_c) * **dwOutBufSize** – [in] Size of the output buffer in bytes * **pdwNumOutData** – [out] Pointer to EC_T_DWORD. Amount of bytes written to the output buffer. * **Returns:** [EC_E_NOERROR](error-codes_generic.html.md#d3/d2f/group___e_c___e_r_r_o_r___c_o_d_e_s___g_e_n_e_r_i_c_1ga8c8419c32e88e73d940a4501fe427116) or error code ### struct EC_T_LINKLAYER_MODE_DESC ### Public Members ### EC_T_LINKMODE eLinkMode [out] Operation mode of main interface ### EC_T_LINKMODE eLinkModeRed [out] Operation mode of redundancy interface #### SEE ALSO [`emonIoCtl()`](api_general.html.md#_CPPv49emonIoCtl10EC_T_DWORD10EC_T_DWORDPCK9EC_T_VOID10EC_T_DWORDPC9EC_T_VOID10EC_T_DWORDPC10EC_T_DWORD) ## emonIoCtl - EC_LINKIOCTL… The generic control interface provides access to the main network adapter when adding `EC_IOCTL_LINKLAYER_MAIN` to the `EC_LINKIOCTL` parameter at dwCode. ```cpp EC_T_DWORD dwCode = (EC_IOCTL_LINKLAYER_MAIN | EC_LINKIOCTL_GET_ETHERNET_ADDRESS); ``` ## emonIoCtl - EC_LINKIOCTL_GET_ETHERNET_ADDRESS Provides MAC addresses of main or red line. **emonIoCtl - EC_LINKIOCTL_GET_ETHERNET_ADDRESS** : **Parameter** : * `pbyInBuf`: [in] Should be set to EC_NULL * `dwInBufSize`: [in] Should be set to 0 * `pbyOutBuf`: [out] Pointer to MAC address buffer (6 bytes) * `dwOutBufSize`: [in] Size of the output buffer in bytes (at least 6) * `pdwNumOutData`: [out] Pointer to EC_T_DWORD. Amount of bytes written to the output buffer. #### SEE ALSO [`emonIoCtl()`](api_general.html.md#_CPPv49emonIoCtl10EC_T_DWORD10EC_T_DWORDPCK9EC_T_VOID10EC_T_DWORDPC9EC_T_VOID10EC_T_DWORDPC10EC_T_DWORD) ## emonIoCtl - EC_LINKIOCTL_GET_SPEED **emonIoCtl - EC_LINKIOCTL_GET_SPEED** : **Parameter** : * `pbyInBuf`: [in] Should be set to EC_NULL * `dwInBufSize`: [in] Should be set to 0 * `pbyOutBuf`: [out] Pointer to EC_T_DWORD. Set by Real-time Ethernet Driver to 10/100/1000. * `dwOutBufSize`: [in] Size of the output buffer in bytes * `pdwNumOutData`: [out] Pointer to EC_T_DWORD. Amount of bytes written to the output buffer. #### SEE ALSO [`emonIoCtl()`](api_general.html.md#_CPPv49emonIoCtl10EC_T_DWORD10EC_T_DWORDPCK9EC_T_VOID10EC_T_DWORDPC9EC_T_VOID10EC_T_DWORDPC10EC_T_DWORD)