83 lines
1.3 KiB
C
83 lines
1.3 KiB
C
/*
|
|
* goose_out.h
|
|
*
|
|
* Created on: 08-02-2020
|
|
* Author: Krzysztof Jakubczyk
|
|
*/
|
|
|
|
#ifndef GOOSE_OUT_H_
|
|
#define GOOSE_OUT_H_
|
|
|
|
#include "tdefs.h"
|
|
#include "helper.h"
|
|
#include "comm.h"
|
|
#include "config.h"
|
|
|
|
//goose_out bits
|
|
#define GOOSE_OUT_VLAN_EN 0x01
|
|
|
|
#define GOOSE_TIMESTAMP_MS_MULTIPLIER (u32)((float)0xFFFFFFFF/1000.0f)
|
|
|
|
struct goose_out_logic
|
|
{
|
|
struct binary_io state_in[16];
|
|
struct binary_io ndscom_in;
|
|
struct binary_io test;
|
|
char *goose_id;
|
|
char *goose_dataset;
|
|
char *goose_cbref;
|
|
char *goose_dstaddr;
|
|
char *sv_id;
|
|
char *sv_dstaddr;
|
|
u8 *tstamp_secs;
|
|
u8 *tstamp_frac;
|
|
|
|
u8 *ttl;
|
|
u8 *stnum;
|
|
u8 *sqnum;
|
|
u8 *simulation;
|
|
u8 *ndscom;
|
|
u8 *state[16];
|
|
|
|
u8 state_prev[16];
|
|
u32 stnum_cur;
|
|
u32 sqnum_cur;
|
|
u8 values;
|
|
u32 len;
|
|
u32 retrans_cnt;
|
|
u32 retrans_cycle;
|
|
u8 first_packet;
|
|
u8 goose_out_frame[GOOSE_MAX_FR_OUT_SIZE] __attribute__((aligned(4)));
|
|
};
|
|
|
|
struct goose_out_io
|
|
{
|
|
u32 state_in[16];
|
|
u32 ndscom_in;
|
|
u32 test_in;
|
|
}__attribute__((__packed__));
|
|
|
|
|
|
struct goose_out_params
|
|
{
|
|
u32 bits;
|
|
u32 appid;
|
|
u32 cfg_rev;
|
|
u32 vlan_no;
|
|
u32 priority;
|
|
u32 ttl;
|
|
u32 strings_start;
|
|
}__attribute__((__packed__));
|
|
|
|
struct goose_out_args
|
|
{
|
|
struct goose_out_io io;
|
|
struct goose_out_params params;
|
|
// u16 crc;
|
|
}__attribute__((__packed__));
|
|
|
|
extern void goose_out(void *args, void *logic);
|
|
extern int goose_out_initlog(void *arguments, void *logic);
|
|
|
|
#endif
|