ICAROUS
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Modules Pages
gsInterface.h
Go to the documentation of this file.
1
7#ifndef _gsInterface_h_
8#define _gsInterface_h_
9
10#include "cfe.h"
11#include "cfe_error.h"
12#include "cfe_evs.h"
13#include "cfe_sb.h"
14#include "cfe_es.h"
15#include "cfe_platform_cfg.h"
16
17#include <string.h>
18#include <stdio.h>
19#include <stdlib.h>
20#include <errno.h>
21#include <unistd.h>
22#include <network_includes.h>
23#include <time.h>
24#include "Icarous.h"
25
26#include "sch_msgids.h"
27#include "gsInterface_table.h"
28
29#ifdef APPDEF_TRAFFIC
30#include "traffic_msg.h"
31#include "traffic_msgids.h"
32#endif
33
34#ifdef APPDEF_TRACKING
35#include "tracking_msg.h"
36#include "tracking_msgids.h"
37#endif
38
39#ifdef APPDEF_TRAJECTORY
40#include "trajectory_msg.h"
41#include "trajectory_msgids.h"
42#endif
43
44#ifdef APPDEF_GEOFENCE
45#include "geofence_msg.h"
46#include "geofence_msgids.h"
47#endif
48
49#ifdef APPDEF_ROTORSIM
50#include "rotorsim_msg.h"
51#include "rotorsim_msgids.h"
52#endif
53
54#ifdef APPDEF_MERGER
55#include "merger_msg.h"
56#include "merger_msgids.h"
57#endif
58
59#include "mavlink/ardupilotmega/mavlink.h"
60#include "port_lib.h"
61
62
63#define BUFFER_LENGTH 1000
64
65#define GSINTERFACE_PIPE_NAME "GSINTF_PIPE"
66#define GSINTERFACE_PIPE_DEPTH 100
67
68#define GSINT_TRAJ_PIPE_NAME "GSTRAJ_PIPE"
69
70
71#define SCH_GSINTERFACE_PIPE1_NAME "SCH_GSINTERFACE"
72
73
94typedef struct{
95 CFE_SB_PipeId_t INTERFACE_Pipe;
96 CFE_SB_PipeId_t Traffic_Pipe;
97 CFE_SB_PipeId_t Traj_Pipe;
98 CFE_SB_PipeId_t Band_Pipe;
99 CFE_SB_PipeId_t Command_Pipe;
100 CFE_SB_PipeId_t SchInterface_Pipe;
101 CFE_SB_MsgPtr_t INTERFACEMsgPtr;
102 CFE_SB_MsgPtr_t Sch_MsgPtr;
103 CFE_TBL_Handle_t INTERFACE_tblHandle;
113 mavlink_mission_item_t ReceivedMissionItems[MAX_WAYPOINTS];
114 mavlink_mission_item_int_t ReceivedMissionItemsInt[MAX_WAYPOINTS];
115 flightplan_t fpData;
116 flightplan_t mgData;
117 flightplan_t trajectory;
119 geofence_t gfData[MAX_GEOFENCES];
120 uint16_t fenceVertices[MAX_GEOFENCES];
123 uint8_t currentApMode;
124 uint8_t currentIcarousMode;
125 param_t storedparams[PARAM_COUNT];
126 uint32_t wptimer;
127 uint32_t gftimer;
128 uint32_t pmtimer;
129 uint32_t tjtimer;
130 uint32_t rcv_wp_seq;
131 uint32_t rcv_gf_seq;
132 bool fenceSent;
133 bool paramSent;
134 bool publishDefaultParams;
137
141void gsInterface_AppMain(void);
142
146void gsInterface_AppInit(void);
147
152
156void gsInterface_AppCleanUp(void);
157
161int GetMAVLinkMsgFromGS(void);
162
167void ProcessGSMessage(mavlink_message_t message);
168
173
177void gsSendHeartbeat(void);
178
182void gsSendCallsign(void);
183
184
189int32_t gsInterfaceTableValidationFunc(void *TblPtr);
190
191
196
197void gsConvertMissionItemsToPlan(uint16_t size, mavlink_mission_item_t items[],flightplan_t* fp);
198void gsConvertMissionItemsIntToPlan(uint16_t size, mavlink_mission_item_int_t items[],flightplan_t* fp);
199
200uint16_t gsConvertPlanToMissionItems(flightplan_t* fp);
201
202void gs_wpCallback(uint32_t timer);
203
204void gs_gfCallback(uint32_t timer);
205
206void gs_pmCallback(uint32_t timerId);
207
208void gs_tjCallback(uint32_t timerId);
209
210void gs_startTimer(uint32_t *timerID,void (*f)(uint32_t),char* name,uint32_t startTime,uint32_t intvl);
211
212void gs_stopTimer(uint32_t *timerID);
213
214void gsFragmentBands(bands_t *bands,uint8_t bandtype);
215
216#define SendGSMsg(arg) writeMavlinkData(&appdataIntGS.gs,&arg)
217
218#endif
EXTERN argsCmd_t startMission
start mission command
Definition: arducopter.h:222
EXTERN object_t traffic
traffic message
Definition: arducopter.h:224
EXTERN noArgsCmd_t resetIcarous
reset icarous command
Definition: arducopter.h:223
Defintion of messages used by geofence_msg.h.
Defines message topics published by the geofence application.
void gsSendCallsign(void)
Definition: gsProcessMessages.c:58
void gsInterface_AppCleanUp(void)
Definition: gsInterface.c:223
int GetMAVLinkMsgFromGS(void)
Definition: gsProcessMessages.c:31
void gsInterface_ProcessPacket(void)
Definition: gsProcessMessages.c:555
void gsSendHeartbeat(void)
Definition: gsProcessMessages.c:46
int32_t gsInterfaceTableValidationFunc(void *TblPtr)
Definition: gsInterface.c:229
void gsInterface_PublishParams(void)
void gsInterface_AppInit(void)
Definition: gsInterface.c:91
void gsInterface_AppMain(void)
Definition: gsInterface.c:24
void gsInterface_InitializeAppData(void)
Definition: gsInterface.c:186
void ProcessGSMessage(mavlink_message_t message)
Definition: gsProcessMessages.c:67
Defintion of messages used by merger_msg.h.
Defines message topics published by the merger application.
serial/socket port library
Defintion of messages used by rotorsim_msg.h.
Defines message topics published by the rotorsim application.
Structure to hold app data.
Definition: gsInterface.h:94
CFE_TBL_Handle_t INTERFACE_tblHandle
table handle
Definition: gsInterface.h:103
CFE_SB_PipeId_t Band_Pipe
pipe variable
Definition: gsInterface.h:98
CFE_SB_PipeId_t Traffic_Pipe
pipe variable
Definition: gsInterface.h:96
CFE_SB_PipeId_t Command_Pipe
pipe variable
Definition: gsInterface.h:99
CFE_SB_PipeId_t INTERFACE_Pipe
pipe variable
Definition: gsInterface.h:95
int recvGeofIndex
Index of geofence being received.
Definition: gsInterface.h:109
int numGeofences
num total geofences
Definition: gsInterface.h:108
int hbeatFreqCount
Counter for sending hbeat message.
Definition: gsInterface.h:112
int nextWaypointIndex
Next waypoint index to goto.
Definition: gsInterface.h:111
int waypointSeq
received position waypoint
Definition: gsInterface.h:110
CFE_SB_PipeId_t SchInterface_Pipe
pipe variable
Definition: gsInterface.h:100
CFE_SB_MsgPtr_t Sch_MsgPtr
msg pointer to SB message
Definition: gsInterface.h:102
port_t gs
groundstation port
Definition: gsInterface.h:105
int receivingWP
waypoint current being received
Definition: gsInterface.h:106
gsInterfaceTable_t Tbl
Table.
Definition: gsInterface.h:104
int numWaypoints
num total waypoints
Definition: gsInterface.h:107
CFE_SB_MsgPtr_t INTERFACEMsgPtr
msg pointer to SB message
Definition: gsInterface.h:101
CFE_SB_PipeId_t Traj_Pipe
pipe variable
Definition: gsInterface.h:97
Command with arguments.
Definition: Icarous_msg.h:244
Definition: Icarous_msg.h:35
Definition: icarous_utils.c:58
message encoding flight plan information
message encoding geofence vertex information.
Definition: Icarous_msg.h:139
Input parameters for ardupilot application.
Definition: gsInterface_table.h:16
Command without arguments.
Definition: Icarous_msg.h:235
message to represent information about an static/dynamic object
Definition: Icarous_msg.h:154
Definition: Icarous.h:13
Structure to hold port attributes.
Definition: port_lib.h:37
Traffic message definition.
Traffic message id definitions.
definition of messages generated by the trajectory messages
definition of message ids relevant to the trajectory applicaiton