22 #ifndef SRC_INC_CS104_CONNECTION_H_
23 #define SRC_INC_CS104_CONNECTION_H_
28 #include "tls_config.h"
52 typedef struct sCS104_Connection* CS104_Connection;
279 int ca, InformationObject command);
314 CS104_CONNECTION_OPENED = 0,
315 CS104_CONNECTION_CLOSED = 1,
316 CS104_CONNECTION_STARTDT_CON_RECEIVED = 2,
317 CS104_CONNECTION_STOPDT_CON_RECEIVED = 3,
318 CS104_CONNECTION_FAILED = 4
319 } CS104_ConnectionEvent;
struct sCS101_ASDU * CS101_ASDU
Application Service Data Unit (ASDU) for the CS101/CS104 application layer.
Definition: iec60870_common.h:216
IEC60870_5_TypeID
Message type IDs.
Definition: iec60870_common.h:125
void(* IEC60870_RawMessageHandler)(void *parameter, uint8_t *msg, int msgSize, bool sent)
Callback handler for sent and received messages.
Definition: iec60870_common.h:105
uint8_t QualifierOfInterrogation
Qualifier of interrogation (QUI) according to IEC 60870-5-101:2003 7.2.6.22.
Definition: cs101_information_objects.h:146
CS101_AppLayerParameters CS104_Connection_getAppLayerParameters(CS104_Connection self)
Return the currently used application layer parameter.
bool CS104_Connection_sendTestCommandWithTimestamp(CS104_Connection self, int ca, uint16_t tsc, CP56Time2a timestamp)
Send a test command with timestamp (C_TS_TA_1 typeID: 107)
void CS104_Connection_setConnectionHandler(CS104_Connection self, CS104_ConnectionHandler handler, void *parameter)
Set the connection event handler.
bool CS104_Connection_sendASDU(CS104_Connection self, CS101_ASDU asdu)
Send a user specified ASDU.
void CS104_Connection_setConnectTimeout(CS104_Connection self, int millies)
Sets the timeout for connecting to the server (in ms)
void CS104_Connection_sendStartDT(CS104_Connection self)
start data transmission on this connection
bool CS104_Connection_sendInterrogationCommand(CS104_Connection self, CS101_CauseOfTransmission cot, int ca, QualifierOfInterrogation qoi)
send an interrogation command
bool CS104_Connection_sendCounterInterrogationCommand(CS104_Connection self, CS101_CauseOfTransmission cot, int ca, uint8_t qcc)
send a counter interrogation command
bool CS104_Connection_sendTestCommand(CS104_Connection self, int ca)
Send a test command (C_TS_NA_1 typeID: 104)
void CS104_Connection_close(CS104_Connection self)
Close the connection.
bool CS104_Connection_sendProcessCommandEx(CS104_Connection self, CS101_CauseOfTransmission cot, int ca, InformationObject sc)
Send a process command to the controlled (or other) station.
bool CS104_Connection_isTransmitBufferFull(CS104_Connection self)
Check if the transmit (send) buffer is full. If true the next send command will fail.
void CS104_Connection_setASDUReceivedHandler(CS104_Connection self, CS101_ASDUReceivedHandler handler, void *parameter)
Register a callback handler for received ASDUs.
bool CS104_Connection_sendProcessCommand(CS104_Connection self, TypeID typeId, CS101_CauseOfTransmission cot, int ca, InformationObject command)
Send a process command to the controlled (or other) station.
CS104_APCIParameters CS104_Connection_getAPCIParameters(CS104_Connection self)
Get the currently used CS104 specific APCI parameters.
CS104_Connection CS104_Connection_create(const char *hostname, int tcpPort)
Create a new connection object.
void CS104_Connection_setLocalAddress(CS104_Connection self, const char *localIpAddress, int localPort)
Set the local IP address and port to be used by the client.
bool CS104_Connection_sendClockSyncCommand(CS104_Connection self, int ca, CP56Time2a newTime)
Sends a clock synchronization command (C_CS_NA_1 typeID: 103)
bool CS104_Connection_sendReadCommand(CS104_Connection self, int ca, int ioa)
Sends a read command (C_RD_NA_1 typeID: 102)
CS104_Connection CS104_Connection_createSecure(const char *hostname, int tcpPort, TLSConfiguration tlsConfig)
Create a new secure connection object (uses TLS)
void CS104_Connection_setRawMessageHandler(CS104_Connection self, IEC60870_RawMessageHandler handler, void *parameter)
Set the raw message callback (called when a message is sent or received)
void(* CS104_ConnectionHandler)(void *parameter, CS104_Connection connection, CS104_ConnectionEvent event)
Handler that is called when the connection is established or closed.
Definition: cs104_connection.h:331
void CS104_Connection_setAPCIParameters(CS104_Connection self, const CS104_APCIParameters parameters)
Set the CS104 specific APCI parameters.
void CS104_Connection_setAppLayerParameters(CS104_Connection self, const CS101_AppLayerParameters parameters)
Set the CS101 application layer parameters.
void CS104_Connection_destroy(CS104_Connection self)
Close the connection and free all related resources.
void CS104_Connection_connectAsync(CS104_Connection self)
non-blocking connect.
void CS104_Connection_sendStopDT(CS104_Connection self)
stop data transmission on this connection
bool CS104_Connection_connect(CS104_Connection self)
blocking connect
Common master side definitions for IEC 60870-5-101/104 These types are used by CS101/CS104 master.
bool(* CS101_ASDUReceivedHandler)(void *parameter, int address, CS101_ASDU asdu)
Callback handler for received ASDUs.
Definition: iec60870_master.h:53
Definition: iec60870_common.h:255
Definition: iec60870_common.h:112
Definition: iec60870_common.h:273