|
ProtoCore v0.0.2
Deterministic, zero-heap network stack for embedded targets
|
IEC 61850 GOOSE publisher + subscriber codec (PC_ENABLE_GOOSE). More...
Go to the source code of this file.
IEC 61850 GOOSE publisher + subscriber codec (PC_ENABLE_GOOSE).
GOOSE (Generic Object Oriented Substation Event) is the fast raw-L2 multicast publish IEC 61850 uses for protection trips. A GOOSE frame is an Ethernet frame (ethertype 0x88B8, see services/fieldbus/rawl2) with an 8-octet GOOSE header (APPID, length, two reserved) followed by the BER-encoded IECGoosePdu:
61 len { 80 gocbRef 81 timeAllowedToLive 82 datSet 83 goID 84 t(UtcTime,8) 85 stNum 86 sqNum 87 simulation(BOOL) 88 confRev 89 ndsCom(BOOL) 8A numDatSetEntries AB allData }
This builds the control PDU (all fields above) with allData supplied as a caller-encoded BER blob (a SEQUENCE of Data elements), then wraps it in the GOOSE header + Ethernet frame; pc_goose_parse_frame decodes a received frame the other way (the subscriber side), walking the BER TLVs into a pc_goose_rx. Pure, zero heap, no stdlib, host-testable; the raw-L2 transmit / receive is the device step.
Definition in file goose.h.