An mbed implementation of IEC 61850-9-2LE Sample Values. Creating using the rapid61850 library, available at: https://github.com/stevenblair/rapid61850.
An mbed implementation of IEC 61850-9-2LE Sample Values. Creating using the rapid61850 library, available at: https://github.com/stevenblair/rapid61850.
rapid61850/gsePacketData.h@0:f09b7bb8bcce, 2012-10-02 (annotated)
- Committer:
- sblair
- Date:
- Tue Oct 02 21:31:05 2012 +0000
- Revision:
- 0:f09b7bb8bcce
converted library to folder
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sblair | 0:f09b7bb8bcce | 1 | /** |
sblair | 0:f09b7bb8bcce | 2 | * Rapid-prototyping protection schemes with IEC 61850 |
sblair | 0:f09b7bb8bcce | 3 | * |
sblair | 0:f09b7bb8bcce | 4 | * Copyright (c) 2012 Steven Blair |
sblair | 0:f09b7bb8bcce | 5 | * |
sblair | 0:f09b7bb8bcce | 6 | * This program is free software; you can redistribute it and/or |
sblair | 0:f09b7bb8bcce | 7 | * modify it under the terms of the GNU General Public License |
sblair | 0:f09b7bb8bcce | 8 | * as published by the Free Software Foundation; either version 2 |
sblair | 0:f09b7bb8bcce | 9 | * of the License, or (at your option) any later version. |
sblair | 0:f09b7bb8bcce | 10 | |
sblair | 0:f09b7bb8bcce | 11 | * This program is distributed in the hope that it will be useful, |
sblair | 0:f09b7bb8bcce | 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
sblair | 0:f09b7bb8bcce | 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
sblair | 0:f09b7bb8bcce | 14 | * GNU General Public License for more details. |
sblair | 0:f09b7bb8bcce | 15 | |
sblair | 0:f09b7bb8bcce | 16 | * You should have received a copy of the GNU General Public License |
sblair | 0:f09b7bb8bcce | 17 | * along with this program; if not, write to the Free Software |
sblair | 0:f09b7bb8bcce | 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
sblair | 0:f09b7bb8bcce | 19 | */ |
sblair | 0:f09b7bb8bcce | 20 | |
sblair | 0:f09b7bb8bcce | 21 | #ifndef GSE_PACKET_DATA_H |
sblair | 0:f09b7bb8bcce | 22 | #define GSE_PACKET_DATA_H |
sblair | 0:f09b7bb8bcce | 23 | |
sblair | 0:f09b7bb8bcce | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ |
sblair | 0:f09b7bb8bcce | 25 | extern "C" { |
sblair | 0:f09b7bb8bcce | 26 | #endif |
sblair | 0:f09b7bb8bcce | 27 | |
sblair | 0:f09b7bb8bcce | 28 | #include <stdlib.h> |
sblair | 0:f09b7bb8bcce | 29 | #include <string.h> |
sblair | 0:f09b7bb8bcce | 30 | #include "ctypes.h" |
sblair | 0:f09b7bb8bcce | 31 | |
sblair | 0:f09b7bb8bcce | 32 | struct gseControl { |
sblair | 0:f09b7bb8bcce | 33 | struct ethHeaderData ethHeaderData; |
sblair | 0:f09b7bb8bcce | 34 | unsigned char *gocbRef; // <LDinst>/LLN0$<GSEControl.name> e.g. "C1/LLN0$ItlPositions" |
sblair | 0:f09b7bb8bcce | 35 | CTYPE_INT32U timeAllowedToLive; |
sblair | 0:f09b7bb8bcce | 36 | unsigned char *datSet; // <IEDname><LDinst>/LLN0$<DataSet.name> e.g. "E1Q1SB1C1/LLN0$Positions" |
sblair | 0:f09b7bb8bcce | 37 | unsigned char *goID; // optional |
sblair | 0:f09b7bb8bcce | 38 | CTYPE_TIMESTAMP t; |
sblair | 0:f09b7bb8bcce | 39 | CTYPE_INT32U stNum; |
sblair | 0:f09b7bb8bcce | 40 | CTYPE_INT32U sqNum; |
sblair | 0:f09b7bb8bcce | 41 | CTYPE_BOOLEAN test; |
sblair | 0:f09b7bb8bcce | 42 | CTYPE_INT32U confRev; |
sblair | 0:f09b7bb8bcce | 43 | CTYPE_BOOLEAN ndsCom; |
sblair | 0:f09b7bb8bcce | 44 | CTYPE_INT32U numDatSetEntries; |
sblair | 0:f09b7bb8bcce | 45 | CTYPE_INT32U minTime; // stored in milliseconds |
sblair | 0:f09b7bb8bcce | 46 | CTYPE_INT32U maxTime; // stored in milliseconds |
sblair | 0:f09b7bb8bcce | 47 | int (*encodeDataset)(unsigned char *buf); // function pointer to dataset-specific encoder |
sblair | 0:f09b7bb8bcce | 48 | int (*getDatasetLength)(); // function pointer to dataset-specific getLength function |
sblair | 0:f09b7bb8bcce | 49 | int (*send)(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); // function pointer to send GSE packet |
sblair | 0:f09b7bb8bcce | 50 | }; |
sblair | 0:f09b7bb8bcce | 51 | |
sblair | 0:f09b7bb8bcce | 52 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ |
sblair | 0:f09b7bb8bcce | 53 | } |
sblair | 0:f09b7bb8bcce | 54 | #endif |
sblair | 0:f09b7bb8bcce | 55 | |
sblair | 0:f09b7bb8bcce | 56 | #endif |