7. RAS-Server for EC-Lyser and EC-Engineer
7.1. Integration Requirements
To use the diagnosis tool EC-Lyser with a customer application, some modifications have to be done during integration of the EC-Master. The task is to integrate and start the Remote API Server system within the custom application, which provides a socket based uplink, which later on is connected by the EC-Lyser.
An example on how to integrate the Remote API Server within the application is given with the example application EcMasterDemo, which in case is pre-configured to listen for EC-Lyser on TCP Port 6000 when command line parameter EcMasterDemo -sp is given.
To clarify the steps which are needed within a custom application, a developer may use the following pseudo-code segment as a point of start. The Remote API Server library EcMasterRasServer.lib (or respectively EcMasterRasServer.a) must be linked.
7.2. Application programming interface, reference
7.2.1. emRasSrvStart
-
EC_T_DWORD EC_NAMESPACE::emRasSrvStart(EC_T_RAS_SERVER_PARMS *pParms, EC_T_PVOID *ppHandle)
Initializes and starts a remote API Server Instance.
- Parameters
pParms – [in] Server start-up parameters
ppHandle – [out] Handle to opened instance, used for ctrl access
- Returns
EC_E_NOERROR or error code
-
struct EC_T_RAS_SERVER_PARMS
Public Members
-
EC_T_LOG_PARMS LogParms
[in] Logging parameters
-
EC_T_IPADDR oAddr
[in] Remote Access Server (RAS) listen IP address
-
EC_PF_NOTIFY pfnRasNotify
[in] Function pointer called to notify error and status information generated by Remote API Layer
-
EC_T_LOG_PARMS LogParms
-
union EC_T_IPADDR
- #include <EthernetServices.h>
Public Members
-
EC_T_INNER_IPADDR sAddr
IPv4 address (endianness independent)
-
EC_T_INNER_IPADDR sAddr
7.2.2. emRasSrvStop
-
EC_T_DWORD EC_NAMESPACE::emRasSrvStop(EC_T_PVOID pvHandle, EC_T_DWORD dwTimeout)
Stop and de-initialize remote API Server Instance.
- Parameters
pvHandle – [in] Handle to previously started Server
dwTimeout – [in] Timeout [ms] used to shut down all spawned threads, it’s multiplied internally by the amount of threads spawned
- Returns
EC_E_NOERROR or error code
7.2.3. emRasNotify - xxx
Callback function called by Remote API Server in case of state changes or error situations.
-
typedef EC_T_DWORD (*EC_PF_NOTIFY)(EC_T_DWORD dwCode, EC_T_NOTIFYPARMS *pParms)
7.2.4. emRasNotify - EC_RAS_NOTIFY_CONNECTION
Notification about a change in the Remote API’s state.
- emRasNotify - EC_T_RAS_CONNOTIFYDESC
- Parameter
pbyInBuf: [in] Pointer to data of type EC_T_RAS_CONNOTIFYDESCdwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
7.2.5. emRasNotify - EC_RAS_NOTIFY_REGISTER
Notification that a connected application registered a client to the EC-Master stack.
- emRasNotify - EC_RAS_NOTIFY_REGISTER
- Parameter
pbyInBuf: [in] Pointer to data of type EC_T_RAS_REGNOTIFYDESCdwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
7.2.6. emRasNotify - EC_RAS_NOTIFY_UNREGISTER
Notification that a connected application un-registered a client from the EC-Master stack.
- emRasNotify - EC_RAS_NOTIFY_UNREGISTER
- Parameter
pbyInBuf: [in] Pointer to data of type EC_T_RAS_REGNOTIFYDESCdwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
See also
7.2.7. emRasNotify - EC_RAS_NOTIFY_MARSHALERROR
Notification about an error during marshalling in Remote API Server connection layer.
- emRasNotify - EC_RAS_NOTIFY_MARSHALERRORDESC
- Parameter
pbyInBuf: [in] Pointer to data of type EC_T_RAS_MARSHALERRORDESCdwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
7.2.8. emRasNotify - EC_RAS_NOTIFY_ACKERROR
Notification about an error during creation of ack / nack packet.
- emRasNotify - EC_RAS_NOTIFY_ACKERROR
- Parameter
pbyInBuf: [in] Pointer to EC_T_DWORD containing error codedwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
7.2.9. emRasNotify - EC_RAS_NOTIFY_NONOTIFYMEMORY
Notification given when no empty buffers for notifications are available in the pre-allocated notification store. This points to a configuration error.
- emRasNotify - EC_RAS_NOTIFY_NONOTIFYMEMORY
- Parameter
pbyInBuf: [in] Pointer to EC_T_DWORD containing unique identification cookie of connection instancedwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
7.2.10. emRasNotify - EC_RAS_NOTIFY_STDNOTIFYMEMORYSMALL
Notification given when the buffer size for standard notifications available in pre-allocated notification store is too small to carry a specific notification. This points to a configuration error.
- emRasNotify - EC_RAS_NOTIFY_STDNOTIFYMEMORYSMALL
- Parameter
pbyInBuf: [in] Pointer to EC_T_DWORD containing unique identification cookie of connection instancedwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL
7.2.11. emRasNotify - EC_RAS_NOTIFY_MBXNOTIFYMEMORYSMALL
Notification given, when the buffer size for Mailbox notifications available in pre-allocated notification store is too small to carry a specific notification. This points to a configuration error.
This is a serious error. If this error is given, Mailbox Transfer objects may have become out of sync and therefore no longer usable. Mailbox notifications should be dimensioned correctly, see emRasSrvStart().
- emRasNotify - EC_RAS_NOTIFY_MBXNOTIFYMEMORYSMALL
- Parameter
pbyInBuf: [in] Pointer to EC_T_DWORD containing unique identification cookie of connection instancedwInBufSize: [in] Size of the input buffer in bytespbyOutBuf: [out] Should be set to EC_NULLdwOutBufSize: [in] Should be set to 0pdwNumOutData: [out] Should be set to EC_NULL