Michael Zillgith
1f56110d32
- removed some compiler warnings
5 years ago
Michael Zillgith
98e7c5816a
- code formatting; compiler warnings
5 years ago
Michael Zillgith
fb9fc7b88b
Merge pull request #265 from mbourhis/v1.5-fix_GooseEthernetInterfaceId_allocation
...
IED Server/Goose: Fix the 'Goose Ethernet Interface Id' allocation
5 years ago
Michael Zillgith
7ee278cead
- IEC 61850 client: using poll/select to reduce CPU consumption
5 years ago
Mikael Bourhis
a095c16139
IED Server/Goose: Fix the 'Goose Ethernet Interface Id' allocation
...
Issue:
In the case of 'GooseInterfaceId' initialization for all GOOSE
publishers (API function: IedServer_setGooseInterfaceId()), only the pointer of
the character string is saved and used for the next operations.
If the corresponding memory is cleared or overwritten in the
application program, a segfault may occurred in libiec61850.
Proof:
In the 'server_example_goose.c' example, if we used a temporary
allocated memory to store the 'ethernetIfcId', the bug will occur:
/* set GOOSE interface for all GOOSE publishers (GCBs) */
+ unsigned int ethernet_interface_id_length = strnlen(ethernetIfcID, 32);
+ char * tmp_ethernet_interface_id = calloc(sizeof(char), ethernet_interface_id_length + 1);
+ memcpy(tmp_ethernet_interface_id, ethernetIfcID, ethernet_interface_id_length);
+
IedServer_setGooseInterfaceId(iedServer, tmp_ethernet_interface_id);
+
+ explicit_bzero(tmp_ethernet_interface_id, ethernet_interface_id_length);
+ free(tmp_ethernet_interface_id);
(This issue was discovered during the rewriting of 'server_example_goose'
in Python, with the Swig wrapper: the allocated memory for
'ethernetIfcID' parameter in the Swig wrapper is automatically reused)
Fix:
The 'gooseInterfaceId' attribute of 'MmsMapping' in libiec61850 must be a new
allocated memory (with the use of 'StringUtils_copyString()') and deallocated
in the 'MmsMapping_destroy()' function.
5 years ago
Michael Zillgith
ec5ccb62a0
- IED server: RCB and LCB service tracking replaced $ with . characters in object references
5 years ago
Michael Zillgith
5e520f21b5
- IED server: added missing data set update in GoCB service tracking object
5 years ago
Michael Zillgith
7e1c2ef18f
- IED server: added GoCB event callback
...
- IED server: added configuration option to use GoCB block handling without the integrated GOOSE publisher (IedServerConfig_useIntegratedGoosePublisher)
5 years ago
Michael Zillgith
e1ab323c1b
- IED server: added code for log service tracking
5 years ago
Michael Zillgith
3a2eea3611
- extended service tracking example for GoCB and SGCB service tracking
5 years ago
Michael Zillgith
fcdb83bc2f
- IED server: fixed memory leak in service tracking code
...
- IED server: fixed bug in GoCB service tracking (goID and dataSet not set)
5 years ago
Michael Zillgith
b04e651623
Merge pull request #262 from mbourhis/v1.5-smile-ecs
...
V1.5 smile ecs
5 years ago
Michael Zillgith
bef1ad21b4
- Java Tools: Add support to handle Services.ReportSettings@owner attribute
5 years ago
Michael Zillgith
bafe27a0e8
- IED server: add support for tissue 807 (owner attribute in RCB is only present when ReportSettings@owner attribute is true)
5 years ago
Michael Zillgith
9809582f96
- IED server: implemented tissue 1453 also for writing to "RptId"
...
(purgeBuf only executed when value changes)
5 years ago
Michael Zillgith
42013e1550
- MMS client: fixed bug in TLS connection handling
5 years ago
Michael Zillgith
0b58716ea3
- IED server: fixed issue - read access to SGCB is not possible when read access handler is installed
5 years ago
Michael Zillgith
3e1a23a6d0
Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5
5 years ago
Michael Zillgith
aabe20031f
- GOOSE subscriber: always copy GoID and DatSet from GOOSE message; always create new MmsValue instance for GOOSE data set when subscriber is observer
5 years ago
Michael Zillgith
69e359b03f
- added new DataAttributeType value IEC61850_TYPE_UNKNOWN
5 years ago
Michael Zillgith
a17e9603e0
- config file parser: fixed problem when compiling with visual
...
studio/C++
5 years ago
Michael Zillgith
2bc47a6a6c
- IED server: added configuration file support for data set entries with array elements or array element components
5 years ago
Michael Zillgith
131fcf5236
* IEC 61850 client: added missing check in ClientReportControlBlock_getConfRev
5 years ago
Michael Zillgith
ed8c8b3ac7
- IEC 61850 server: fixed some variable initialization issues caused by recent changes
5 years ago
Michael Zillgith
e4b2849894
- fixed problems in handling array elements and array element components
5 years ago
Michael Zillgith
6a3c66eafa
- fixed bug in MmsConnection_readMultipleVariables: send invaid messsage and memory access errors when too many items are passed to the function exhausting MMS payload size
5 years ago
Michael Zillgith
ee4da06690
- IEC 61850 server: fixed problem with test case sRp4 - RCB RptID attribute is not empty after writing empty string
5 years ago
Michael Zillgith
cbd5c0b36f
- GOOSE/SV publisher: remove internal header file from API header
5 years ago
Michael Zillgith
504c260667
- fixed program crash when normal mode parameers are missing in presentation layer ( #252 )
5 years ago
Michael Zillgith
9ab37e9836
- IED Server/GOOSE: Don't send GOOSE message with new event while data model is locked
5 years ago
Michael Zillgith
805d73b86f
- GOOSE: added GOOSE observer feature (GooseSubscriber listening to all GOOSE messages) and GOOSE observer example
5 years ago
Michael Zillgith
9ac8192bae
- IED Server: fixed service tracking object references for RCB and GoCB service tracking
5 years ago
Michael Zillgith
3e83cd6194
- GOOSE receiver: improvements in GOOSE receiver
5 years ago
Michael Zillgith
34647c6876
- GOOSE publisher: Added doxygen comments and functions GoosePublisher_publishAndDump, GoosePublisher_setStNum, GoosePublisher_setSqNum
5 years ago
Mikael Bourhis
401a436c95
Python wrapper: move the 'event handler' classes into a subdirectory
5 years ago
Michael Zillgith
473eec8464
- GOOSE/SV publisher: remove internal header file from API header
...
(cherry picked from commit 46d6769a89
)
[Romain: Apply the patch to v1.5]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
5 years ago
Mikael Bourhis
f5b5c0d3ad
Python wrapper: add the support of the 'Goose publishing'
5 years ago
Romain Naour
dcbd9f94ab
examples/server_example_basic_io
...
There is an access error while using iec61850_client_example1 with server_example_basic_io.
From [1]:
/* write a variable to the server */
value = MmsValue_newVisibleString("libiec61850.com");
IedConnection_writeObject(con, &error, "simpleIOGenericIO/GGIO1.NamPlt.vendor", IEC61850_FC_DC, value);
The error code is IED_ERROR_ACCESS_DENIED = 21.
By default access to variables with FC=DC and FC=CF is not allowed, fix this
by changing the access policy as suggested by [2].
[1] https://github.com/mz-automation/libiec61850/blob/v1.4.2.1/examples/iec61850_client_example1/client_example1.c#L71
[2] https://libiec61850.com/libiec61850/documentation/iec-61850-client-tutorial/#comment-61994
Signed-off-by: Romain Naour <romain.naour@smile.fr>
5 years ago
Mikael Bourhis
172883478a
Python wrapper: declare all the C 'char *buffer' output parameters as a Python output string of 1024 max size
...
Needed for example for:
- MmsValue_printToBuffer(values, buffer, buffer_size);
5 years ago
Mikael Bourhis
30f98e54cb
Python wrapper: add handler class for the reception of GOOSE events
5 years ago
Mikael Bourhis
ca97f2548f
Python wrapper: add handler class for the reception of ReportControlBlock events
5 years ago
Mikael Bourhis
7bac935648
Python wrapper: add generic classes for handling events (like ReportControlBlock or GOOSE)
5 years ago
Mikael Bourhis
7c68e3e3f6
Python wrapper: add the support of the 'Goose subscription'
...
The callback for the processing of the received GOOSE is still missing for now.
5 years ago
Mikael Bourhis
c2c7c7171e
Python wrapper: add 'user-defined data types' for Timestamp (msSinceEpoch, nsSinceEpoch)
5 years ago
Michael Zillgith
649db2b3d6
- IEC 61850 server: extended control service tracking
...
- IEC 61850 server: partially implemented setting group service tracking
- IEC 61850 server: partially implemented GoCB service tracking
5 years ago
Michael Zillgith
b857e4c4ec
Merge pull request #246 from RomainNaour/v1.5-client_example_reporting
...
iec61850_client_example_reporting: revert changes from MMS server pot…
5 years ago
Michael Zillgith
88acbd49c4
- COTP: fixed possible heap buffer overflow when handling message with invalid (zero) value in length field ( #250 )
5 years ago
Michael Zillgith
0129032f08
- IEC 61850 server: fixed - cancel command for time activated control returns object-access-denied even in case of success
5 years ago
Michael Zillgith
cc22c69fb1
Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5
5 years ago
Michael Zillgith
24a380c845
- IEC 61850 server: added updating of missing attributes for control
...
service tracking
5 years ago