uGOOSE  1.0
GOOSE for Embedded Devices. Sample project for Renesas R-IN32-EC
uied_types.h File Reference
#include "ugibso_types.h"
Include dependency graph for uied_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  UIED_TIME
 
struct  UIED_TIMESTAMP
 
struct  UIED_MAC
 
struct  UIED_OID
 
struct  UIED_NODE
 
struct  UIED_REFERENCE
 
struct  UIED_DATASET
 
struct  UIED_GOOSE
 

Macros

#define UIED_OCTET_BITS_NUMBER   (8u)
 
#define UIED_TIME_1984_1_1_IN_UNIXTIME   ((UINT32)441759600uL)
 
#define UIED_TIME_SECONDS_IN_DAY   ((UINT32)(24uL * 60uL * 60uL))
 
#define UIED_TIME_MSECONDS_IN_DAY   (UIED_TIME_SECONDS_IN_DAY * 1000uL)
 
#define UIED_MAC_LENGTH   (6)
 
#define UIED_ETHTYPE_LENGTH   (sizeof(UINT16))
 
#define UIED_VLAN_LENGTH   (sizeof(UINT16))
 
#define UIED_APPID_LENGTH   (sizeof(UINT16))
 
#define UIED_OID_MAX_LENGTH   (32)
 
#define UIED_FLOAT32_PACK_SIZE   (1 + sizeof(FLOAT32))
 
#define UIED_FLOAT32_BITS_NUMBER   (UIED_OCTET_BITS_NUMBER * sizeof(FLOAT32))
 
#define UIED_FLOAT32_EXPONENT_BITS_NUMBER   (8)
 
#define UIED_FLOAT32_EXPONENT_MAXIMUM   (1 << (UIED_FLOAT32_EXPONENT_BITS_NUMBER-1))
 
#define UIED_FLOAT32_EXPONENT_MINIMUM   (1 - UIED_FLOAT32_EXPONENT_MAXIMUM)
 
#define UIED_FLOAT32_EXPONENT_BIASING   (UIED_FLOAT32_EXPONENT_MAXIMUM -1)
 
#define UIED_FLOAT64_PACK_SIZE   (1 + sizeof(FLOAT64))
 
#define UIED_FLOAT64_BITS_NUMBER   (UIED_OCTET_BITS_NUMBER * sizeof(FLOAT64))
 
#define UIED_FLOAT64_EXPONENT_BITS_NUMBER   (11)
 
#define UIED_FLOAT64_EXPONENT_MAXIMUM   (1 << (UIED_FLOAT64_EXPONENT_BITS_NUMBER-1))
 
#define UIED_FLOAT64_EXPONENT_MINIMUM   (1 - UIED_FLOAT64_EXPONENT_MAXIMUM)
 
#define UIED_FLOAT64_EXPONENT_BIASING   (UIED_FLOAT64_EXPONENT_MAXIMUM -1)
 
#define UIED_TIME_PACK_SIZE   (6)
 
#define UIED_TIME_PACK_SIZE_SHORT   (4)
 
#define UIED_TIME_MSECONDS_OFFSET   (0)
 
#define UIED_TIME_MSECONDS_SIZE   (4)
 
#define UIED_TIME_DAYS_OFFSET   (4)
 
#define UIED_TIME_DAYS_SIZE   (2)
 
#define UIED_TIMESTAMP_PACK_SIZE   (8)
 
#define UIED_TIMESTAMP_SECONDS_OFFSET   (0)
 
#define UIED_TIMESTAMP_SECONDS_SIZE   (4)
 
#define UIED_TIMESTAMP_USECONDS_OFFSET   (4)
 
#define UIED_TIMESTAMP_USECONDS_SIZE   (3)
 
#define UIED_TIMESTAMP_FLAGS_OFFSET   (7)
 
#define UIED_GOOSE_HEADER_SIZE   (8)
 
#define UIED_NULL_INDEX   (UINT8_MAX_VALUE)
 

Typedefs

typedef UINT8 UIED_INDEX
 
typedef UINT16 UIED_DINDEX
 
typedef UINT16 UIED_ASN_LENGTH
 
typedef UINT8 UIED_ASN_SLENGTH
 
typedef UINT16 UIED_ASN_TAG
 

Enumerations

enum  UIED_ASN_TAG_CLASS
 
enum  UIED_ASN_TYPE_TAG
 
enum  UIED_ASN_GOOSE_TAG
 
enum  UIED_ETHTYPE
 
enum  UIED_NODE_TYPE
 
enum  UIED_RESULT
 

Detailed Description

This file contains all data type definitions used by the uIED library

Macro Definition Documentation

#define UIED_APPID_LENGTH   (sizeof(UINT16))

Application ID field length bytes

#define UIED_ETHTYPE_LENGTH   (sizeof(UINT16))

EthType field length in bytes

#define UIED_FLOAT32_BITS_NUMBER   (UIED_OCTET_BITS_NUMBER * sizeof(FLOAT32))

Number of bits in a FLOAT32

#define UIED_FLOAT32_EXPONENT_BIASING   (UIED_FLOAT32_EXPONENT_MAXIMUM -1)

Bias value for exponent of FLOAT32

#define UIED_FLOAT32_EXPONENT_BITS_NUMBER   (8)

Num bits for exponent of FLOAT32

#define UIED_FLOAT32_EXPONENT_MAXIMUM   (1 << (UIED_FLOAT32_EXPONENT_BITS_NUMBER-1))

Max value for exponent of FLOAT32

#define UIED_FLOAT32_EXPONENT_MINIMUM   (1 - UIED_FLOAT32_EXPONENT_MAXIMUM)

Min value for exponent of FLOAT32

#define UIED_FLOAT32_PACK_SIZE   (1 + sizeof(FLOAT32))

Num bytes required to pack FLOAT32

#define UIED_FLOAT64_BITS_NUMBER   (UIED_OCTET_BITS_NUMBER * sizeof(FLOAT64))

Number of bits in a FLOAT64

#define UIED_FLOAT64_EXPONENT_BIASING   (UIED_FLOAT64_EXPONENT_MAXIMUM -1)

Bias value for exponent of FLOAT64

#define UIED_FLOAT64_EXPONENT_BITS_NUMBER   (11)

Num bits for exponent of FLOAT64

#define UIED_FLOAT64_EXPONENT_MAXIMUM   (1 << (UIED_FLOAT64_EXPONENT_BITS_NUMBER-1))

Max value for exponent of FLOAT64

#define UIED_FLOAT64_EXPONENT_MINIMUM   (1 - UIED_FLOAT64_EXPONENT_MAXIMUM)

Min value for exponent of FLOAT64

#define UIED_FLOAT64_PACK_SIZE   (1 + sizeof(FLOAT64))

Num bytes required to pack FLOAT64

#define UIED_GOOSE_HEADER_SIZE   (8)

Size of the Goose header record

#define UIED_MAC_LENGTH   (6)

MAC address length in bytes

#define UIED_NULL_INDEX   (UINT8_MAX_VALUE)

Value used to indicate a Null node

#define UIED_OCTET_BITS_NUMBER   (8u)

Number of bits in an Octet

#define UIED_OID_MAX_LENGTH   (32)

Max length of an Object ID

#define UIED_TIME_1984_1_1_IN_UNIXTIME   ((UINT32)441759600uL)

The date 1/1/1984 in Unix time

#define UIED_TIME_DAYS_OFFSET   (4)

Offset of Days in Time structure

#define UIED_TIME_DAYS_SIZE   (2)

Size of Days in Time structure

#define UIED_TIME_MSECONDS_IN_DAY   (UIED_TIME_SECONDS_IN_DAY * 1000uL)

Number of mseconds in one day

#define UIED_TIME_MSECONDS_OFFSET   (0)

Offset of mSecs in Time structure

#define UIED_TIME_MSECONDS_SIZE   (4)

Size of mSecs in Time structure

#define UIED_TIME_PACK_SIZE   (6)

Num bytes to pack Time structure

#define UIED_TIME_PACK_SIZE_SHORT   (4)

Num bytes to pack short Time

#define UIED_TIME_SECONDS_IN_DAY   ((UINT32)(24uL * 60uL * 60uL))

Number of seconds in one day

#define UIED_TIMESTAMP_FLAGS_OFFSET   (7)

Offset of Flags field in Timestamp

#define UIED_TIMESTAMP_PACK_SIZE   (8)

Num bytes to pack Time structure

#define UIED_TIMESTAMP_SECONDS_OFFSET   (0)

Offset of Seconds in Timestamp

#define UIED_TIMESTAMP_SECONDS_SIZE   (4)

Size of Seconds field in Timestamp

#define UIED_TIMESTAMP_USECONDS_OFFSET   (4)

Offset of uSeconds in Timestamp

#define UIED_TIMESTAMP_USECONDS_SIZE   (3)

Size of uSeconds field in Timestamp

#define UIED_VLAN_LENGTH   (sizeof(UINT16))

VLAN field length in bytes

Typedef Documentation

Type used to specify an ASN Length

Type used to specify an ASN Suffix Length

Type used to specify an ASN Tag

Double range index

typedef UINT8 UIED_INDEX

Single range index

Enumeration Type Documentation

Enumerated list of ASN GOOSE Tags

Enumerator
UIED_ASN_GOOSE_TAG_SEQUENCE 

ASN GOOSE Tag : Sequence

UIED_ASN_GOOSE_TAG_GOCBREF 

ASN GOOSE Tag : GOOSE Control Block reference

UIED_ASN_GOOSE_TAG_TIMEALLOWEDTOLIVE 

ASN GOOSE Tag : Time Allowed To Live

UIED_ASN_GOOSE_TAG_DATSET 

ASN GOOSE Tag : IEC 61850 data container

UIED_ASN_GOOSE_TAG_GOID 

ASN GOOSE Tag : GOOSE ID

UIED_ASN_GOOSE_TAG_T 

ASN GOOSE Tag : Time of last state change

UIED_ASN_GOOSE_TAG_STNUM 

ASN GOOSE Tag : State Change Counter

UIED_ASN_GOOSE_TAG_SQNUM 

ASN GOOSE Tag : Sequence Counter

UIED_ASN_GOOSE_TAG_TEST 

ASN GOOSE Tag : Test mode bit flag

UIED_ASN_GOOSE_TAG_CONFREV 

ASN GOOSE Tag : Configuration change counter

UIED_ASN_GOOSE_TAG_NDSCOM 

ASN GOOSE Tag : 'Needs Commissioning' Flag

UIED_ASN_GOOSE_TAG_NUMDATSETENTRIES 

ASN GOOSE Tag : Num Data Set entries in AllData[]

UIED_ASN_GOOSE_TAG_ALLDATA 

ASN GOOSE Tag : AllData Array of Goose data types

UIED_ASN_GOOSE_TAG_SECURITY 

ASN GOOSE Tag : Security

Enumerated list of ASN Class Tags

Enumerator
UIED_ASN_TAG_CLASS_UNIVERSAL 

ASN Class : Universal

UIED_ASN_TAG_CLASS_APPLICATION 

ASN Class : Application

UIED_ASN_TAG_CLASS_CONTEXT_SPECIFIC 

ASN Class : Context Specific

UIED_ASN_TAG_CLASS_PRIVATE 

ASN Class : Private

Enumerated list of ASN Type Tags

Enumerator
UIED_ASN_TYPE_TAG_FAILURE 

ASN Type : Failure

UIED_ASN_TYPE_TAG_ARRAY 

ASN Type : Array

UIED_ASN_TYPE_TAG_STRUCTURE 

ASN Type : Structure

UIED_ASN_TYPE_TAG_BOOLEAN 

ASN Type : Boolean

UIED_ASN_TYPE_TAG_BITS 

ASN Type : Bits

UIED_ASN_TYPE_TAG_INTEGER 

ASN Type : Signed Integer

UIED_ASN_TYPE_TAG_UINTEGER 

ASN Type : Unsigned Integer

UIED_ASN_TYPE_TAG_FLOAT 

ASN Type : Float

UIED_ASN_TYPE_TAG_OCTETS 

ASN Type : Octets Array

UIED_ASN_TYPE_TAG_STRING 

ASN Type : String

UIED_ASN_TYPE_TAG_TIME 

ASN Type : Time structure

UIED_ASN_TYPE_TAG_UTF8STRING 

ASN Type : UTF8 format string

UIED_ASN_TYPE_TAG_TIMESTAMP 

ASN Type : Timestamp

Enumerated list of known Ethernet Packet Types

Enumerator
UIED_ETHTYPE_VLAN 

Ethernet Packet Type: Virtual LAN (VLAN)

UIED_ETHTYPE_GOOSE 

Ethernet Packet Type: GOOSE

Enumerated list of allowed Node Types

Enumerator
UIED_NODE_TYPE_NONE 

Node Type : None - an empty Node

UIED_NODE_TYPE_LD 

Node Type : Logical Device

UIED_NODE_TYPE_DS 

Node Type : Data set

UIED_NODE_TYPE_REFERENCE 

Node Type : Reference

UIED_NODE_TYPE_LN 

Node Type : Logical Node

UIED_NODE_TYPE_FC 

Node Type : Functional Constraint

UIED_NODE_TYPE_DO 

Node Type : Data Object

UIED_NODE_TYPE_DA 

Node Type : Data Attribute

UIED_NODE_TYPE_ARRAY 

Node Type : Array

UIED_NODE_TYPE_BOOLEAN 

Node Type : Boolean Array

UIED_NODE_TYPE_BITS 

Node Type : Bit field array

UIED_NODE_TYPE_INTEGER8 

Node Type : Signed Integer - 8 bits

UIED_NODE_TYPE_INTEGER16 

Node Type : Signed Integer - 16 bits

UIED_NODE_TYPE_INTEGER32 

Node Type : Signed Integer - 32 bits

UIED_NODE_TYPE_INTEGER64 

Node Type : Signed Integer - 64 bits

UIED_NODE_TYPE_UINTEGER8 

Node Type : Unsigned Integer - 8 bits

UIED_NODE_TYPE_UINTEGER16 

Node Type : Unsigned Integer - 16 bits

UIED_NODE_TYPE_UINTEGER32 

Node Type : Unsigned Integer - 32 bits

UIED_NODE_TYPE_UINTEGER64 

Node Type : Unsigned Integer - 64 bits

UIED_NODE_TYPE_FLOAT32 

Node Type : Floating Point Number - 32 bits

UIED_NODE_TYPE_FLOAT64 

Node Type : Floating Point Number - 64 bits

UIED_NODE_TYPE_OCTETS 

Node Type : Array of Octets

UIED_NODE_TYPE_STRING 

Node Type : String

UIED_NODE_TYPE_TIME 

Node Type : Time Structure

UIED_NODE_TYPE_UTF8STRING 

Node Type : String - format UTF-8

UIED_NODE_TYPE_TIMESTAMP 

Node Type : Timestamp Structure

Enumerate list of return codes

Enumerator
UIED_RESULT_OK 

Result : OK

UIED_RESULT_ERROR_BAD_INDEX 

Result : Invalid Index

UIED_RESULT_ERROR_BAD_LENGTH 

Result : Invalid length

UIED_RESULT_ERROR_BAD_TAG 

Result : Invalid tag

UIED_RESULT_ERROR_BAD_TYPE 

Result : Invalid type

UIED_RESULT_ERROR_BAD_VALUE 

Result : Invalid value

UIED_RESULT_ERROR_NO_MEMORY 

Result : No memory

UIED_RESULT_ERROR_UNDER_SIZE 

Result : Size too small