libIEC61850
Open-source IEC 61850 MMS server and client library
Main Page
Modules
Data Structures
Files
Downloads
Contact
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
iedserver
version2
server_api_v2.h
Go to the documentation of this file.
1
/*
2
* server_api_v2.h
3
*
4
* IEC 61850 server API for libiec61850.
5
*
6
* Copyright 2013 Michael Zillgith
7
*
8
* This file is part of libIEC61850.
9
*
10
* libIEC61850 is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* libIEC61850 is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public License
21
* along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
22
*
23
* See COPYING file for the complete license text.
24
*
25
* Description:
26
*
27
* The user of this API has to handle MMS values directly. It provides no additional
28
* abstraction layer on top of the MMS layer. Therefore it is not intended to implement
29
* a generic IEC 61850 server. But an IEC 61850 compliant MMS server can be implemented
30
* easily with this API.
31
* This API is intended to be used on embedded devices that should not be burdened with an
32
* additional data modeling and data handling layer.
33
*
34
* This API provides two different usage patterns that can also be combined in a single
35
* application:
36
*
37
* Option 1: The user can provide callbacks for MMS server read and write operations.
38
* Every time a client requests a value a callback will be invoked and the appropriate
39
* value has to be provided by the application.
40
*
41
* Option 2: The MMS server can handle all read and write operations autonomously without
42
* invoking any application callbacks. The application can provide updated process values
43
* by pushing them periodically or on demand to the MMS server.
44
*
45
*/
46
47
#ifndef IED_SERVER_API_V2_H_
48
#define IED_SERVER_API_V2_H_
49
54
#include "mms_server.h"
55
#include "model.h"
56
57
typedef
struct
sIedServer*
IedServer
;
58
66
IedServer
67
IedServer_create
(IedModel* iedModel);
68
74
void
75
IedServer_destroy
(
IedServer
self
);
76
83
void
84
IedServer_start
(
IedServer
self
,
int
tcpPort);
85
91
void
92
IedServer_stop
(
IedServer
self
);
93
101
bool
102
IedServer_isRunning
(
IedServer
self
);
103
114
MmsValue*
115
IedServer_getAttributeValue
(
IedServer
self
, ModelNode* node);
116
117
132
void
133
IedServer_updateAttributeValue
(
IedServer
self
, DataAttribute* node, MmsValue* value);
134
142
typedef
bool (*
ControlHandler
) (
void
* parameter, MmsValue* ctlVal);
143
157
void
158
IedServer_setControlHandler
(
IedServer
self
, DataObject* node,
ControlHandler
handler,
void
* parameter);
159
165
void
166
IedServer_lockDataModel
(
IedServer
self
);
167
173
void
174
IedServer_unlockDataModel
(
IedServer
self
);
175
176
179
#endif
/* IED_SERVER_API_V2_H_ */
Generated on Tue May 14 2013 23:20:13 for libIEC61850 by
1.8.3.1