11#ifndef TASE2_SERVER_H_
12#define TASE2_SERVER_H_
271TASE2_API IsoApplicationAddress
struct sTLSConfiguration * TLSConfiguration
Definition tls_config.h:38
Tase2_TagValue
Definition tase2_common.h:293
struct sTase2_Endpoint_Connection * Tase2_Endpoint_Connection
Represents a connection to another connected TASE.2 endpoint.
Definition tase2_endpoint.h:37
struct sTase2_BilateralTable * Tase2_BilateralTable
Definition tase2_endpoint.h:27
struct sTase2_Endpoint * Tase2_Endpoint
A TASE.2 endpoint that can be configured as passive (TCP server) or active (TCP client)
Definition tase2_endpoint.h:32
Tase2_ReportReason
Definition tase2_common.h:308
struct sTase2_Server * Tase2_Server
Handle for a Tase2_Server instance (representing a TASE.2/MMS server)
Definition tase2_endpoint.h:93
struct sTase2_TransferSet * Tase2_TransferSet
Definition tase2_model.h:95
struct sTase2_ControlPoint * Tase2_ControlPoint
Definition tase2_model.h:138
struct sTase2_DSTransferSet * Tase2_DSTransferSet
Represents a data set transfer set (DSTS) in the server.
Definition tase2_model.h:56
struct sTase2_DataPoint * Tase2_DataPoint
Abstract type representing data points in the server data model.
Definition tase2_model.h:41
struct sTase2_PointValue * Tase2_PointValue
A TASE.2 point value with type information.
Definition tase2_common.h:388
TASE2_API void Tase2_BilateralTable_addControlPoint(Tase2_BilateralTable self, Tase2_ControlPoint controlPoint, int16_t checkBackId, bool allowSetTag, bool allowGetTag, bool allowOperate, bool allowRead)
Add a control point object to the BLT.
TASE2_API Tase2_BilateralTable Tase2_BilateralTable_create(const char *bltId, Tase2_Domain domain, const char *apTitle, int aeQualifier)
Create a new bilateral table (Tase2_BilateralTable) instance.
TASE2_API void Tase2_BilateralTable_addDataPoint(Tase2_BilateralTable self, Tase2_DataPoint dataPoint, bool allowRead, bool allowWrite)
Add an indication point or protection equipment object to the BLT.
TASE2_API const char * Tase2_BilateralTable_getID(Tase2_BilateralTable self)
Get the BLT ID.
TASE2_API void Tase2_BilateralTable_setIsoParameters(Tase2_BilateralTable self, Tase2_PSelector pSelector, Tase2_SSelector sSelector, Tase2_TSelector tSelector)
Set the ISO protocol layer addresses to associate the endpoint to this BLT.
TASE2_API void Tase2_BilateralTable_addInformationMessage(Tase2_BilateralTable self, int32_t infoRef, int32_t localRef, bool vccScope)
Add an information message object to the BLT.
TASE2_API bool Tase2_BilateralTable_addPeerCertificat(Tase2_BilateralTable self, Crypto_X509Certificate cert)
Associate a peer X509 certificate with the BLT.
void(* Tase2_ClientConnectionHandler)(void *parameter, const char *clientAddress, Tase2_BilateralTable clientBlt, bool connect)
Callback handler for accepted client connections.
Definition tase2_server.h:78
TASE2_API IsoApplicationAddress Tase2_Server_getLocalAddresses(Tase2_Server self)
TASE2_API void Tase2_Server_setIdentity(Tase2_Server self, char *vendor, char *model, char *revision)
Set own identity for the identity service.
TASE2_API void Tase2_Server_setDSTransferSetUpdateHandler(Tase2_Server self, Tase2_DSTransferSetUpdateHandler handler, void *parameter)
Install a callback handler that is called whenever the DS transfer set is updated (enabled/disabled)
TASE2_API void Tase2_Server_setCriticalReportTimeout(Tase2_Server self, int timeoutInMs)
Set the timeout for critical report confirmations.
void(* Tase2_IMTransferSetEventHandler)(void *parameter, Tase2_Endpoint_Connection peer, Tase2_BilateralTable clientBlt, bool enabled)
Callback handler for IM transfer set events (enabled/disabled)
Definition tase2_server.h:178
TASE2_API void Tase2_Server_setLocalAddresses(Tase2_Server self, Tase2_PSelector pSelector, Tase2_SSelector sSelector, Tase2_TSelector tSelector)
set local addresses for the lower layers
TASE2_API void Tase2_Server_setWriteDataHandler(Tase2_Server self, Tase2_WriteDataHandler handler, void *parameter)
Set the Tase2_WriteDataHandler callback handler that is called when a data point is written.
TASE2_API Tase2_Server Tase2_Server_createEx(Tase2_DataModel dataModel, Tase2_Endpoint endpoint)
Create a new TASE.2 server instance using an existing endpoint instance.
TASE2_API void Tase2_Server_setSelectTimeout(Tase2_Server self, int timeoutInMs)
Set the timeout for select operations (device model)
void(* Tase2_DSTransferSetReportSentHandler)(void *parameter, Tase2_Endpoint_Connection peer, Tase2_BilateralTable clientBlt, Tase2_DSTransferSet transferSet, LinkedList sentDataPoints, Tase2_ReportReason reason)
Callback handler for sent DSTS reports.
Definition tase2_server.h:190
TASE2_API void Tase2_Server_setTSCriticalNotConfirmedHandler(Tase2_Server self, Tase2_TSCriticalNotConfirmedHandler handler, void *parameter)
Install a callback handler that is called when a transfer set report (marked as critical) is not conf...
Tase2_HandlerResult
Type for the result of callback handlers for operations.
Definition tase2_server.h:32
struct sTase2_SentPointValue * Tase2_SentPointValue
Definition tase2_server.h:60
void(* Tase2_DSTransferSetUpdateHandler)(void *parameter, Tase2_Endpoint_Connection peer, Tase2_BilateralTable clientBlt, Tase2_DSTransferSet transferSet, bool isEnabled)
Callback handler for DSTS updates (enabled/disabled)
Definition tase2_server.h:155
void(* Tase2_TSCriticalNotConfirmedHandler)(void *parameter, Tase2_TransferSet transferSet, uint64_t timeSent, bool nack)
Callback handler for critical report timeout or negative acknowledge.
Definition tase2_server.h:135
TASE2_API void Tase2_Server_setMaxDSTSEventQueueSize(Tase2_Server self, int maxSize)
Set the maximum event queue size for DS transfer sets.
void(* Tase2_DataSetEventHandler)(void *parameter, bool create, Tase2_Endpoint_Connection peer, Tase2_BilateralTable clientBlt, Tase2_Domain dataSetDomain, char *dataSetName, LinkedList dataPoints)
Callback handler that is called when a data set is created or deleted.
Definition tase2_server.h:168
TASE2_API void Tase2_Server_setTcpPort(Tase2_Server self, int tcpPort)
Set the local TCP port.
Tase2_HandlerResult(* Tase2_OperateHandlerEx)(void *parameter, Tase2_ControlPoint controlPoint, int16_t cmdDiscreteValue, float realValue)
Definition tase2_server.h:101
TASE2_API void Tase2_Server_updateByOnlineValue(Tase2_Server self, Tase2_DataPoint dataPoint)
Update the local value by the online available value of the data point.
TASE2_API void Tase2_Server_setSetTagHandler(Tase2_Server self, Tase2_SetTagHandler handler, void *parameter)
Set the set tag operation callback handler and parameter.
TASE2_API void Tase2_Server_setDSTransferSetReportSentHandler(Tase2_Server self, Tase2_DSTransferSetReportSentHandler handler, void *parameter)
Install a callback handler that is called whenever a transfer set report is sent.
TASE2_API void Tase2_Server_start(Tase2_Server self)
Starts the server (will start a background thread handling incoming connections)
TASE2_API void Tase2_Server_setDataSetEventHandler(Tase2_Server self, Tase2_DataSetEventHandler handler, void *parameter)
Install a callback handler that is called whenever a dynamic data set is created or deleted by a clie...
TASE2_API Tase2_PointValue Tase2_SentPointValue_getPointValue(Tase2_SentPointValue self)
TASE2_API void Tase2_Server_setDSTransferSetStateChangedHandler(Tase2_Server self, Tase2_DSTransferSetStateChangedHandler handler, void *parameter)
Install a callback handler that is called whenever the state of a DS transfer set changes.
TASE2_API bool Tase2_Server_isRunning(Tase2_Server self)
Checks if the server is running.
TASE2_API void Tase2_Server_setSelectHandler(Tase2_Server self, Tase2_SelectHandler handler, void *parameter)
Set the select operation callback handler and parameter.
TASE2_API void Tase2_Server_setLocalApTitle(Tase2_Server self, const char *apTitle, int aeQualifier)
Set application endpoint identifier of the local endpoint.
TASE2_API void Tase2_Server_setClientConnectionHandler(Tase2_Server self, Tase2_ClientConnectionHandler handler, void *parameter)
Set the client connection handler that is called when a client connects or disconnects.
Tase2_HandlerResult(* Tase2_SetTagHandler)(void *parameter, Tase2_ControlPoint controlPoint, Tase2_TagValue value, const char *reason)
Callback handler for the set tag operation.
Definition tase2_server.h:113
TASE2_API void Tase2_Server_stop(Tase2_Server self)
Stops the server.
void(* Tase2_DSTransferSetStateChangedHandler)(void *parameter, Tase2_DSTransferSet transferSet, bool enabled)
Callback handler for DSTS state changes (enabled/disabled)
Definition tase2_server.h:144
TASE2_API void Tase2_Server_updateOnlineValue(Tase2_Server self, Tase2_DataPoint dataPoint)
Update the online available value with the local value of the data point.
Tase2_HandlerResult(* Tase2_SelectHandler)(void *parameter, Tase2_ControlPoint controlPoint)
Callback handler for the select operation.
Definition tase2_server.h:88
TASE2_API void Tase2_Server_addBilateralTable(Tase2_Server self, Tase2_BilateralTable blt)
Load bilateral table (BLT) into the server (part of the server configuration phase)
TASE2_API Tase2_Server Tase2_Server_create(Tase2_DataModel dataModel, TLSConfiguration tlsConfiguration)
Create a new TASE.2 server instance.
TASE2_API void Tase2_Server_setOperateHandler(Tase2_Server self, Tase2_OperateHandler handler, void *parameter)
Set the operate operation callback handler and parameter.
TASE2_API Tase2_Statistics Tase2_Server_getStatistics(Tase2_Server self)
Get some communication statistics.
TASE2_API Tase2_Endpoint Tase2_Server_getEndpoint(Tase2_Server self)
Get the endpoint instance used by the server.
TASE2_API void Tase2_Server_destroy(Tase2_Server self)
Destroy the server instance (release all allocated resources)
TASE2_API void Tase2_Server_setSupportedFeatures(Tase2_Server self, int value)
Change the default value of the "Supported_Features" variable.
TASE2_API void Tase2_Server_setIMTransferSetEventHandler(Tase2_Server self, Tase2_IMTransferSetEventHandler handler, void *parameter)
Install a callback handler that is called whenever the IM Transfer set is enabled or disabled.
TASE2_API void Tase2_Server_setOperateHandlerEx(Tase2_Server self, Tase2_OperateHandlerEx handler, void *parameter)
Set the alternative operate handler (used to simplify programming language bindings)
TASE2_API void Tase2_Server_updateOnlineValueNoTrigger(Tase2_Server self, Tase2_DataPoint dataPoint)
Update the online available value with the local value of the data point (don't trigger transfer sets...
Tase2_HandlerResult(* Tase2_WriteDataHandler)(void *parameter, Tase2_Domain domain, Tase2_DataPoint dataPoint, Tase2_PointValue value)
Callback handler for write operations to indication points (and protection event data points)
Definition tase2_server.h:125
TASE2_API Tase2_DataPoint Tase2_SentPointValue_getDataPoint(Tase2_SentPointValue self)
Tase2_HandlerResult(* Tase2_OperateHandler)(void *parameter, Tase2_ControlPoint controlPoint, Tase2_OperateValue value)
Callback handler for the operate operation.
Definition tase2_server.h:99
TASE2_API bool Tase2_Server_requestReport(Tase2_Server self, Tase2_DSTransferSet transferSet, Tase2_ReportReason reason, int16_t eventCode)
Manually trigger a DSTS report transmission of the given transfer set.
TASE2_API int Tase2_Server_sendInformationMessage(Tase2_Server self, Tase2_Domain domain, int32_t infoRef, int32_t localRef, int32_t msgId, int32_t size, uint8_t *buffer)
Send information message to all clients that have the IM transfer set enabled and BLT matches the inf...
TASE2_API void Tase2_Server_setLocalIpAddress(Tase2_Server self, const char *localIpAddress)
Set the local IP address.
@ TASE2_RESULT_OBJECT_VALUE_INVALID
Definition tase2_server.h:46
@ TASE2_RESULT_SUCCESS
Definition tase2_server.h:34
@ TASE2_RESULT_OBJECT_ACCESS_DENIED
Definition tase2_server.h:43
@ TASE2_RESULT_TEMPORARILY_UNAVAILABLE
Definition tase2_server.h:40
@ TASE2_RESULT_HARDWARE_FAULT
Definition tase2_server.h:37
Value for the operate action (supports the different types for command and set points)
Definition tase2_server.h:52
int16_t commandValue
Definition tase2_server.h:54
int16_t discreteValue
Definition tase2_server.h:55
float realValue
Definition tase2_server.h:56
P selector (ISO presentation layer address)
Definition tase2_endpoint.h:123
S selector (ISO session layer address)
Definition tase2_endpoint.h:112
Some stack statistics.
Definition tase2_common.h:131
T selector (ISO transport layer address)
Definition tase2_endpoint.h:101