154 lines
3.9 KiB
C
154 lines
3.9 KiB
C
|
|
#define OurSetItemText(hwndLV, i, iSubItem_, pszText_) \
|
|
{ LV_ITEM _ms_lvi;\
|
|
_ms_lvi.iSubItem = iSubItem_;\
|
|
_ms_lvi.pszText = pszText_;\
|
|
SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)i, (LPARAM)(LV_ITEM FAR *)&_ms_lvi);\
|
|
}
|
|
|
|
#define TRACKPOINTS 100
|
|
|
|
struct SORTLIST
|
|
{
|
|
char Callsign[12];
|
|
struct STATIONRECORD * Rec;
|
|
|
|
} SortList;
|
|
|
|
struct STATIONRECORD
|
|
{
|
|
struct STATIONRECORD * Next;
|
|
char Callsign[12];
|
|
char Path[120];
|
|
char Status[256];
|
|
char LastPacket[392]; // Was 400. 8 bytes used for Approx Location Flag and Qt Icon pointer
|
|
char Approx;
|
|
char spare1;
|
|
char spare2;
|
|
char spare3;
|
|
void * image; // used in QtBPQAPRS
|
|
char LastWXPacket[256];
|
|
int LastPort;
|
|
double Lat;
|
|
double Lon;
|
|
double Course;
|
|
double Speed;
|
|
double Heading;
|
|
double LatIncr;
|
|
double LongIncr;
|
|
double LastCourse;
|
|
double LastSpeed;
|
|
double Distance;
|
|
double Bearing;
|
|
double LatTrack[TRACKPOINTS]; // Cyclic Tracklog
|
|
double LonTrack[TRACKPOINTS];
|
|
time_t TrackTime[TRACKPOINTS];
|
|
int Trackptr; // Next record in Tracklog
|
|
BOOL Moved; // Moved since last drawn
|
|
time_t TimeAdded;
|
|
time_t TimeLastUpdated;
|
|
UCHAR Symbol;
|
|
int iconRow;
|
|
int iconCol; // Symbol Pointer
|
|
char IconOverlay;
|
|
int DispX; // Position in display buffer
|
|
int DispY;
|
|
int Index; // List Box Index
|
|
BOOL NoTracks; // Suppress displaying track
|
|
COLORREF TrackColour;
|
|
char ObjState; // Live/Killed flag. If zero, not an object
|
|
char LastRXSeq[6]; // Seq from last received message (used for Reply-Ack system)
|
|
BOOL SimpleNumericSeq; // Station treats seq as a number, not a text field
|
|
struct STATIONRECORD * Object; // Set if last record from station was an object
|
|
time_t TimeLastTracked; // Time of last trackpoint
|
|
int NextSeq;
|
|
|
|
} StationRecord;
|
|
|
|
|
|
typedef struct _APRSHEARDRECORD
|
|
{
|
|
UCHAR MHCALL[10]; // Stored with space padding
|
|
time_t MHTIME; // Time last heard
|
|
time_t LASTMSG; // Time last message sent from this station (via IS)
|
|
int rfPort; // RF Port last heard on
|
|
int heardViaIS;
|
|
BOOL IGate; // Set if station is an IGate;
|
|
// BYTE MHDIGI[56]; // Not sure if we need this
|
|
struct STATIONRECORD * Station; // Info previously held by APRS Application
|
|
|
|
} APRSHEARDRECORD, *PAPRSHEARDRECORD;
|
|
|
|
|
|
|
|
struct OSMQUEUE
|
|
{
|
|
struct OSMQUEUE * Next;
|
|
int Zoom;
|
|
int x;
|
|
int y;
|
|
};
|
|
|
|
struct APRSMESSAGE
|
|
{
|
|
struct APRSMESSAGE * Next;
|
|
struct STATIONRECORD * ToStation; // Set on messages we send
|
|
char FromCall[12];
|
|
char ToCall[12];
|
|
char Text[104];
|
|
char Seq[8];
|
|
BOOL Acked;
|
|
int Retries;
|
|
int RetryTimer;
|
|
int Port;
|
|
char Time[6];
|
|
BOOL Cancelled;
|
|
};
|
|
|
|
struct APRSConnectionInfo // Used for Web Server for thread-specific stuff
|
|
{
|
|
struct STATIONRECORD * SelCall; // Station Record for individual staton display
|
|
HANDLE hPipe;
|
|
SOCKET sock;
|
|
char Callsign[12];
|
|
int WindDirn, WindSpeed, WindGust, Temp, RainLastHour, RainLastDay, RainToday, Humidity, Pressure; //WX Fields
|
|
};
|
|
|
|
// This defines the layout of the first few bytes of shared memory to simplify access
|
|
// from both node and gui application
|
|
|
|
struct SharedMem
|
|
{
|
|
// Max 32 bytes unless code is changed. Also don't change existing items
|
|
// without changing version and clients
|
|
|
|
UCHAR Version; // For compatibility check
|
|
UCHAR NeedRefresh; // Messages Have Changed
|
|
UCHAR ClearRX;
|
|
UCHAR ClearTX;
|
|
int SharedMemLen; // So Client knows size to map
|
|
|
|
struct APRSMESSAGE * Messages;
|
|
struct APRSMESSAGE * OutstandingMsgs;
|
|
|
|
int Arch; // to detect running on 64 bit system.
|
|
#pragma pack(1)
|
|
UCHAR SubVersion;
|
|
|
|
|
|
|
|
#pragma pack()
|
|
};
|
|
|
|
#define BPQBASE WM_USER
|
|
//
|
|
// Port monitoring flags use BPQBASE -> BPQBASE+16
|
|
|
|
#define BPQMTX BPQBASE+40
|
|
#define BPQMCOM BPQBASE+41
|
|
//#define BPQCOPY BPQBASE+42
|
|
|
|
#define APRSSHAREDMEMORYBASE 0x43000000 // Base of shared memory segment
|
|
|
|
#define MAXSTATIONS 5000
|
|
#define MAXMESSAGES 1000 |