Commit Graph

339 Commits (728c812fc88205924511bcaa1cc6e30e04a038b2)

Author SHA1 Message Date
Michael Zillgith 842bc271cd - IED server: added new function IedServer_handleWriteAccessForComplexAttribute. Changed WriteAccessHandler behavior when ACCESS_POLICY_ALLOW. 5 years ago
Michael Zillgith 60d66e5ba4 - some code beautification 5 years ago
Michael Zillgith fe39cc9b24 - IED server: control models - fixed bug that only one control is unselected when connection closes 5 years ago
Michael Zillgith 4f0667b597 - removed some warnings and code cleanup 5 years ago
Michael Zillgith db1671587e - IED server: fixed bug - logs (journals) are added to all logical devices instead of just the parents 5 years ago
Michael Zillgith 9e064ab709 - IED Server: prevent integrated GOOSE publisher to crash when ethernet socket cannot be created 5 years ago
Michael Zillgith 23a3b3a371 - IED server: make compatible with tissue 1178 5 years ago
Michael Zillgith 6c2b9ad473 - IED server: reporting - implemented behavior according to tissue 1432 5 years ago
Michael Zillgith 74a227bdf2 - IED server: WriteAccessHandler can tell the stack not to update the
value when returning DATA_ACCESS_ERROR_SUCCESS_NO_UPDATE
5 years ago
Michael Zillgith 5f2e14f712 Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith 945fe080f3 - removed some compiler warnings 5 years ago
Michael Zillgith d08f5a67ac - IED server: fixed problem with client connection handling of setting groups 5 years ago
Michael Zillgith 474a482766 IED server: fixed problem with CONFIG_IEC61850_RCB_ALLOW_ONLY_PRECONFIGURED_CLIENT configuration option enabled 5 years ago
Michael Zillgith 40f8b76ad7 - IED server: handle BRCB.Owner correctly when client uses pre-assigned RCB instance 5 years ago
Michael Zillgith 4793e298ff - IED server: fixed problem that BL FC is not writable (#287) 5 years ago
Michael Zillgith 4deca9a4c0 - IED server: fixed potential deadlock in report module when service tracking is enabled 5 years ago
Michael Zillgith 7b671f3a01 - GOOSE subscriber: accept GOOSE messages with the correct maximum size of DatSet and GoID 5 years ago
Michael Zillgith b88c4216c8 - IED server: send AddCause for invalid origin also in case of direct control models 5 years ago
Michael Zillgith 0c9d1b16f8 - fixed struct initialization problem with Visual Studio 5 years ago
Michael Zillgith 8a55ef47bf - IED server: ControlPerformCheckHandler has same parameters when called again in state WAITING_FOR_SELECT 5 years ago
Michael Zillgith 14f4f1ccf0 - IED server: added ControlSelectStateChangedHandler callback for control model 5 years ago
Michael Zillgith fb5ed11001 - IED server: also respect user provided error and addCause from ControlPerformCheckHandler when the handler is called multiple times in waiting-for-select state 5 years ago
Michael Zillgith a5bcd3c251 - IED server: fixed problem - control not unselected after connection is closed for sboClass "operate-many" 5 years ago
Michael Zillgith cc80bffa69 - IED server: support for configuration of EditSG service and online visibility of SGCB.ResvTms at runtime 5 years ago
Michael Zillgith 53d8a2f715 - IED server: changed types TrkOps and OptFlds to variable length bit strings 5 years ago
Michael Zillgith 23da9ba28e - IED server: control service tracking - fixed problem with missing attributes for SBOw tracking 5 years ago
Michael Zillgith 767bc887de - IED server: fixed problems in control service tracking 5 years ago
Michael Zillgith 49cc901263 - fixed problem in control service tracking 5 years ago
Michael Zillgith e4fcb923a0 - fixed problems in control service tracking 5 years ago
Michael Zillgith 42802db6f1 - added -Wextra to Makefile and changed code to avoid resulting warnings 5 years ago
Michael Zillgith 07525b598f Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith 1f56110d32 - removed some compiler warnings 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 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 0b58716ea3 - IED server: fixed issue - read access to SGCB is not possible when read access handler is installed 5 years ago
Michael Zillgith 69e359b03f - added new DataAttributeType value IEC61850_TYPE_UNKNOWN 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 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 9ab37e9836 - IED Server/GOOSE: Don't send GOOSE message with new event while data model is locked 5 years ago
Michael Zillgith 9ac8192bae - IED Server: fixed service tracking object references for RCB and GoCB service tracking 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 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
Michael Zillgith 8bc7b75e11 - IEC 61850 server: fixed crash in control service tracking when application doesn't register control handler 5 years ago
Michael Zillgith 2467457b5b - IEC 61850 server: fixed problem with wrong service-type for service
tracking when writing URCBs (SetBRCBValues instead of SetURCBValues)
5 years ago
Michael Zillgith 80d11fbf78 - IEC 61850 server: started to implement control service tracking
(implemented support for SpcTrk)
5 years ago
Michael Zillgith 2f5817e0ac - IEC 61850 server: implemented service tracking for BRCBs and URCBs 5 years ago
Michael Zillgith 092d8786ac - IEC 61850 server: control model - fixed bug in handling of check flags 5 years ago
Michael Zillgith d38e590c99 - IEC 61850/MMS server: control - allow WaitForExecutionHandler to trigger LastApplError message 5 years ago
Michael Zillgith 5f02ea1661 - IEC 61850 server: control module return AddCause command-already-in-execution when second operate is received while command is executed 5 years ago
Michael Zillgith b3c5ecdcf2 - IEC 61850 server: report service - combine quality and value change of a FCDO in the same report when model is locked (send data set entry with multiple reason-for-inclusion) 5 years ago
Michael Zillgith 12d703e453 - IEC 61850 server: Added ControlAction_setError function - with this function the user application can control the error code used in LastApplError and CommandTermination messages 5 years ago
Michael Zillgith d42f96ee97 - IEC 61850 server: fixed - control model - peer connection is not always available when control handlers are called (#232) 5 years ago
Michael Zillgith 73f1a98b4a Merge branch 'v1.4' into v1.5 5 years ago
Michael Zillgith cc08420e50 - IEC 61850 server: fixed problem with logging when log data set contains FCDO (#225) 5 years ago
Michael Zillgith 1744616866 - IEC 61850 server: RCB - fixed problem that other client can "steal" reservation 5 years ago
Michael Zillgith 4a15e9987b - IEC 61850 server: fixed compilation error in single thread mode 5 years ago
Michael Zillgith f4957cf62a - IEC 61850 server: wait for background thread termination before data model is released 5 years ago
Michael Zillgith 29efa333f8 - IEC 61850 server: allow server to start without logical devices in data model (#218) 6 years ago
Michael Zillgith cb8f159914 - IEC 61850 server: unbuffered reporting - send first integrity report after integrity timeout (before it was sent when the RCB was enabled) 6 years ago
Michael Zillgith c7f7989b85 - IEC 61850 server: control - unselect when operate with wrong origin parameters, check if check parameter matches for SBO 6 years ago
Michael Zillgith 0ba4a70d33 - IEC 61850 server: fixed missing report timestamp update for unbuffered reporting 6 years ago
Michael Zillgith 4aaced2639 - IEC 61850 server: unselect control when oper is not accepted
- IEC 61850 server: send select-failed for control when origin parameter is not valid
6 years ago
Michael Zillgith d8153483b5 - IEC 61850 server: fixed control handling to comply with test case sCtl25 6 years ago
Michael Zillgith 3a248a4f20 - IEC 61850 server: fixed control handling to comply with test case sCtl11 6 years ago
Michael Zillgith 0c83507727 - IEC 61850 server: pass origin, ctlNum, ctlVal to select handler for SBOw 6 years ago
Michael Zillgith d86055173d - IEC 61850 server: control models - allow delaying select response with check handler (new handler return value CONTROL_WAITING_FOR_SELECT) 6 years ago
Michael Zillgith abcf93416f - added function IedServer_getNumberOfOpenConnections
- IEC 61850/MMS server: refactored connection handling
6 years ago
Michael Zillgith df0e7c08df - IEC 61850 server: fixed new memory leak in unbuffered reporting 6 years ago
Michael Zillgith 18c2e30f87 - IEC 61850 server: refactored reporting module; unbuffered reports are stored to report buffer and sent by connection handling thread 6 years ago
Michael Zillgith 6c53924c05 - added additional length check in BerDecoder_decodeLength and checked return values in callers (fix problem #196) 6 years ago
Michael Zillgith 8c1b75b382 - code cleanup; fixed issues from compiler warnings 6 years ago
Michael Zillgith 6cbadb4b45 - IED server: added new function ControlAction_isSelect 6 years ago
Michael Zillgith 5fbb67c44c - some code beautification 6 years ago
Király Péter 7ed8516344 Added getter for the time of the timeActivated controls. 6 years ago
Király Péter a39397d21d Add check call before starting a timeactivated operate, so operates can be denied before the waiting state 6 years ago
Michael Zillgith e4c3875e3e IEC 61850 server: added function ControlAction_getCtlNum to access ctlNum value inside control handlers 6 years ago
Michael Zillgith 6b2404e80b - GOOSE: option to enable/disable VLAN tagging
- IED Server: Allow setting different interfaces for different GOOSE publishers
6 years ago
Michael Zillgith 4c123c0c3c - MMS server: fixed potential deadlock in multi-thread mode 6 years ago
Michael Zillgith d4304e0a38 - IEC 61850 server: URCB will not release reservation (and owner) when RCB is disabled 6 years ago
Michael Zillgith 2e9761c541 - IED server: cancel outstanding control tasks when client closes connection (to prevent blocking the connection for waiting time activated controls) 6 years ago
Michael Zillgith 6c14425ca8 - IEC 61850 server: refactored control model API (changed handler signatures, added ControlAction object to access origin and set addCause value, ...)
- IEC 61850 client: added ControlObjectClient_getLastError function
6 years ago
Michael Zillgith 28e2acbd33 - IED server: avoid dynamic memory allocation in control module 6 years ago
Michael Zillgith f0df571f42 - IED server: made code compatible with C++ 6 years ago
Michael Zillgith a9fa07a7d4 - IED server: some memory optimizations in control module 6 years ago
Michael Zillgith 2911781070 - IEC 61850 server/reporting: fixed bug when checking for invalid data set member 6 years ago
Michael Zillgith 38d67a4e69 - IEC 61850 server/reporting: send access error "object-value-invalid"
when data attribute in report data set has no value
6 years ago
Michael Zillgith ebc71d9731 - IEC 61850 common: moved some internal code to better seperate
client/server side code
6 years ago
Michael Zillgith d376370aaa - IEC 61850 server: control model - implemented automatic handling of opRcvd, opOk, and tOpOk when present in data object 7 years ago
Michael Zillgith a3c2c4652e - IEC 61850 server: control model - implemented automatic handling of stSeld when present in data object 7 years ago
Michael Zillgith 994484d1a6 - MMS server: added semaphore for open connections map to prevent problem in multi-threaded mode 7 years ago
Michael Zillgith b35a566145 - IEC 61850 server: fixed problem in report module 7 years ago
Michael Zillgith 0dff4286aa - merged latest changes to the server reporting module from 1.3 branch
- merged with 1.3 branch
7 years ago
Michael Zillgith 732ad79070 - fixed problem with read access to GCB (see github #130) 7 years ago
Michael Zillgith 199d091c6d - IEC 61850 server: don't send bufOvfl for unbuffered reports (see #101) 7 years ago
Michael Zillgith 3d8ab44a49 - MMS client: improved handling of malformed messages when reading data
- MMS client: improved handling of malformed messages when receiving reports
- MMS client: fixed potential memory leak when receiving malformed messages
7 years ago
Michael Zillgith d9cb36817a - IEC 61850 server: fixed problem with wrong purge buffer invocation when using dynamic data set in buffered report control block 7 years ago
Michael Zillgith 1d61afaa8b - C library: removed C++ style line comments 7 years ago
Michael Zillgith 0842097b7e - IEC 61850 server: fixed some small bugs and compiler warnings
- IEC 61850 server: retrun object-access-unsupported when ctlModel is status-only
7 years ago
Michael Zillgith 91c22b3193 - IEC 61850 server: added IedServer_updateCtlModel function to change control model at runtime 7 years ago
Michael Zillgith c9fe177a87 - IEC 61850 server: fixed potential deadlock in report processing 7 years ago
Michael Zillgith a830fc3cfb - IEC 61850 server: reporting - don't delete pending events when buffered report is enabled and dataset didn't change 7 years ago
Michael Zillgith e980a519ae - IEC 61850 server: control objects - fixed bug in select response for SBO control model 7 years ago
Michael Zillgith 2585aab516 - cleanup examples makefiles
- fixed bug in MMS mapping read handler
7 years ago
Michael Zillgith 26af0d93c2 - IEC 61850 server: made IEC 61850 edition configurable at runtime 7 years ago
Michael Zillgith 6199da1e55 - IEC 61850 server: CONFIG_REPORTING_SUPPORTS_OWNER replaced by CONFIG_IEC61850_EDITION_1 7 years ago
Michael Zillgith e7905cc16b - IEC 61850 server: memory handling optimization in control module 7 years ago
Michael Zillgith 020b1f40aa - IEC 61850 server: integrated automatic handling of "origin" and "ctlVal" status (ST) values for controllable CDCs 7 years ago
Michael Zillgith 713ca54cd0 - IEC 61850 server: optimized dynamic memory management in control handling; memory will be initialized at server start 7 years ago
Michael Zillgith 58b4d6c107 -IEC 61850 server: added ReadAccessHandler to control read access 7 years ago
Michael Zillgith 71493036dc - IEC 61850 server/MMS server: make dynamic data set service configurable at runtime with IedServerConfig object (new functions IedServerConfig_enableLogService and IedServerConfig_isLogServiceEnabled) 7 years ago
Michael Zillgith af35ee17fa - removed unused code 7 years ago
Michael Zillgith c36050f455 - renamed iec61850_client_example3 to iec61850_client_example_control
- removed outcommented code
7 years ago
Michael Zillgith b5cb80868c - IED SERVER: fixed bug when calling write access handler (when access policy DENY) 7 years ago
Michael Zillgith eacdfa953d - IED SERVER: fixed bug when calling write access handler (wrong pointer for ClientConnection object) 7 years ago
Michael Zillgith cc24c86484 - Fixed to compile with C++ 7 years ago
Michael Zillgith 7cb5ff670a - IEC 61850 server: added support to configure report buffer at runtime
- IEC 61850 server: new IedServerConfig type and new IedServer constructor
7 years ago
Michael Zillgith 9a8415b3e6 - IEC 61850 server: prevent sending reports when data model is locked (updated) 7 years ago
Michael Zillgith 9e15185c74 - ISO connection: fixed race condition that can cause corrupted messages 7 years ago
Michael Zillgith 605913b0c1 - fixed some configuration issues 7 years ago
Michael Zillgith a451731454 - IEC 61850 server: removed unnecessary dynamic string allocation 7 years ago
Michael Zillgith cf049071cc - IEC 61850 server: fixed bug in report module when RCB was enabled multiple times (new in 1.2.0) 7 years ago
Michael Zillgith 4fc17660e9 - IEC 61850 server: fixed bug in buffered report module - report can be lost under some circumstances when BRCB is enabled 7 years ago
Michael Zillgith 02a330e414 - IEC 61850 server: added memory alignement for buffered reporting 8 years ago
Michael Zillgith 64b589ac31 - IEC 61850 server: added support for OptFlds and TrgOps basic data types (required for service tracking) 8 years ago
Michael Zillgith c0a91a2a80 - fixed debug output 8 years ago
Michael Zillgith 924b4ef5c1 - IEC 61850/MMS server: removed deprecated AttributeChangedHandler 8 years ago
Michael Zillgith cd8f5f483d - IED server: added new function IedServer_udpateDbposValue; added new return code for control check callback function 8 years ago
Michael Zillgith 5b470f740c - MMS server: MMS read handler sets domain to NULL for VMD scope variable 8 years ago
Michael Zillgith 0651b94be5 - prepared for release 1.1 8 years ago
Michael Zillgith 3ac4cd88df - fixed memory cleanup in GOOSE subscriber
- added GooseReceiver_isRunning function
- updated goose_subscriber example
8 years ago
Michael Zillgith 69dbbcf306 - added support for Currency BasicType (mapped to visible-string-3 according to tissue 1047) 9 years ago
Michael Zillgith 9ad549592d - refactoring names in string_utils.h/.c
- fixed bug in StringUtils_copySubString
9 years ago
Michael Zillgith d15e2c73b1 - implemented server side obtain file procedure 9 years ago
Michael Zillgith d81e9e1c19 - implemente ControlObjectClient_setTestMode function, also for C# wrapper 9 years ago
Michael Zillgith 7a5f4a25e2 - added functions SV_ASDU_addFLOAT64 and SV_ASDU_setFLOAT64 to SV publisher 9 years ago
Michael Zillgith 787d7fc270 - file provider functions don't change file names; VMD_FILESTORE base part is now added in MMS server file service handling code
- IedConnection_readObject and IedConnection_getVariableSpecification can now read whole LNs
9 years ago
Michael Zillgith 2b28c0fed3 - added cmake support to build sqlite log driver
- made logging ready to be compiled with Visual Studio
- added functions to create LCBs and LOGs to dynamic model API
- client: added GetLogicalNodeDirectory(LOG) ACSI function
9 years ago
Michael Zillgith 23e695dae8 - removed asn1c dependable code from ServiceError PDU creation
- added ServiceError creation function that support serviceSpecific info
- server: delete dataset service now returns ServiceError with object-constraint-conflict when data set cannot be deleted because it is used in a control block
9 years ago
Michael Zillgith 069af684e9 - fixed problem with test case sSgN4 (return temporary-unavailable) when no EditSG is selected
- continued logging implementation
9 years ago
Michael Zillgith 0c042f2ba4 - added server examples logging
- added logging API
- added sqlite3 driver for logging
9 years ago