mirror of
https://github.com/peterantypas/maiana.git
synced 2025-05-18 00:10:08 -07:00
Cleanup
This commit is contained in:
parent
4e00dfa159
commit
693874feef
@ -19,15 +19,30 @@
|
|||||||
|
|
||||||
AISMessage::AISMessage ()
|
AISMessage::AISMessage ()
|
||||||
{
|
{
|
||||||
mmsi = STATION_MMSI;
|
mMMSI = 0;
|
||||||
repeatIndicator = 0;
|
mRI = 0;
|
||||||
messageType = 0;
|
mType = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
AISMessage::~AISMessage ()
|
AISMessage::~AISMessage ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t AISMessage::type() const
|
||||||
|
{
|
||||||
|
return mType;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t AISMessage::repeatIndicator() const
|
||||||
|
{
|
||||||
|
return mRI;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t AISMessage::mmsi() const
|
||||||
|
{
|
||||||
|
return mMMSI;
|
||||||
|
}
|
||||||
|
|
||||||
bool AISMessage::decode(RXPacket &)
|
bool AISMessage::decode(RXPacket &)
|
||||||
{
|
{
|
||||||
// The base class method should never be called
|
// The base class method should never be called
|
||||||
@ -37,10 +52,9 @@ bool AISMessage::decode(RXPacket &)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AISMessage::encode(TXPacket &)
|
void AISMessage::encode(const StationData &station, TXPacket &)
|
||||||
{
|
{
|
||||||
// The base class method should never be called
|
mMMSI = station.mmsi;
|
||||||
ASSERT(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AISMessage::addBits(uint8_t *bitVector, uint16_t &size, uint32_t value, uint8_t numBits)
|
void AISMessage::addBits(uint8_t *bitVector, uint16_t &size, uint32_t value, uint8_t numBits)
|
||||||
@ -199,9 +213,9 @@ AISMessage123::AISMessage123()
|
|||||||
|
|
||||||
bool AISMessage123::decode(RXPacket &packet)
|
bool AISMessage123::decode(RXPacket &packet)
|
||||||
{
|
{
|
||||||
messageType = packet.messageType();
|
mType = packet.messageType();
|
||||||
repeatIndicator = packet.repeatIndicator();
|
mRI = packet.repeatIndicator();
|
||||||
mmsi = packet.mmsi();
|
mMMSI = packet.mmsi();
|
||||||
sog = packet.bits(50, 10) / 10.0f;
|
sog = packet.bits(50, 10) / 10.0f;
|
||||||
longitude = Utils::coordinateFromUINT32(packet.bits(61, 28), 28);
|
longitude = Utils::coordinateFromUINT32(packet.bits(61, 28), 28);
|
||||||
latitude = Utils::coordinateFromUINT32(packet.bits(89, 27), 27);
|
latitude = Utils::coordinateFromUINT32(packet.bits(89, 27), 27);
|
||||||
@ -216,23 +230,25 @@ bool AISMessage123::decode(RXPacket &packet)
|
|||||||
|
|
||||||
AISMessage18::AISMessage18()
|
AISMessage18::AISMessage18()
|
||||||
{
|
{
|
||||||
messageType = 18;
|
mType = 18;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AISMessage18::encode(TXPacket &packet)
|
void AISMessage18::encode(const StationData &station, TXPacket &packet)
|
||||||
{
|
{
|
||||||
|
AISMessage::encode(station, packet);
|
||||||
|
|
||||||
// TODO: Perhaps this shouldn't live on the stack?
|
// TODO: Perhaps this shouldn't live on the stack?
|
||||||
uint8_t payload[MAX_AIS_TX_PACKET_SIZE];
|
uint8_t payload[MAX_AIS_TX_PACKET_SIZE];
|
||||||
uint16_t size = 0;
|
uint16_t size = 0;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
|
||||||
value = messageType;
|
value = mType;
|
||||||
addBits(payload, size, value, 6); // Message type
|
addBits(payload, size, value, 6); // Message type
|
||||||
|
|
||||||
value = repeatIndicator;
|
value = mRI;
|
||||||
addBits(payload, size, value, 2); // Repeat Indicator
|
addBits(payload, size, value, 2); // Repeat Indicator
|
||||||
|
|
||||||
value = mmsi;
|
value = mMMSI;
|
||||||
addBits(payload, size, value, 30); // MMSI
|
addBits(payload, size, value, 30); // MMSI
|
||||||
|
|
||||||
value = 0;
|
value = 0;
|
||||||
@ -298,9 +314,9 @@ void AISMessage18::encode(TXPacket &packet)
|
|||||||
|
|
||||||
bool AISMessage18::decode(RXPacket &packet)
|
bool AISMessage18::decode(RXPacket &packet)
|
||||||
{
|
{
|
||||||
messageType = packet.messageType();
|
mType = packet.messageType();
|
||||||
repeatIndicator = packet.repeatIndicator();
|
mRI = packet.repeatIndicator();
|
||||||
mmsi = packet.mmsi();
|
mMMSI = packet.mmsi();
|
||||||
|
|
||||||
sog = packet.bits(46, 10) / 10.0f;
|
sog = packet.bits(46, 10) / 10.0f;
|
||||||
longitude = Utils::coordinateFromUINT32(packet.bits(57, 28), 28);
|
longitude = Utils::coordinateFromUINT32(packet.bits(57, 28), 28);
|
||||||
@ -315,28 +331,29 @@ bool AISMessage18::decode(RXPacket &packet)
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
AISMessage24A::AISMessage24A()
|
AISMessage24A::AISMessage24A()
|
||||||
{
|
{
|
||||||
messageType = 24;
|
mType = 24;
|
||||||
name = STATION_NAME;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AISMessage24A::encode(TXPacket &packet)
|
void AISMessage24A::encode(const StationData &station, TXPacket &packet)
|
||||||
{
|
{
|
||||||
|
AISMessage::encode(station, packet);
|
||||||
|
|
||||||
uint8_t payload[MAX_AIS_TX_PACKET_SIZE];
|
uint8_t payload[MAX_AIS_TX_PACKET_SIZE];
|
||||||
uint16_t size = 0;
|
uint16_t size = 0;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
|
||||||
value = messageType;
|
value = mType;
|
||||||
addBits(payload, size, value, 6); // Message type
|
addBits(payload, size, value, 6); // Message type
|
||||||
|
|
||||||
value = repeatIndicator;
|
value = mRI;
|
||||||
addBits(payload, size, value, 2); // Repeat Indicator
|
addBits(payload, size, value, 2); // Repeat Indicator
|
||||||
|
|
||||||
value = mmsi;
|
value = mMMSI;
|
||||||
addBits(payload, size, value, 30); // MMSI
|
addBits(payload, size, value, 30); // MMSI
|
||||||
|
|
||||||
value = 0;
|
value = 0;
|
||||||
addBits(payload, size, value, 2); // Part number (0 for 24A)
|
addBits(payload, size, value, 2); // Part number (0 for 24A)
|
||||||
addString(payload, size, name, 20); // Station name
|
addString(payload, size, station.name, 20); // Station name
|
||||||
|
|
||||||
finalize(payload, size, packet);
|
finalize(payload, size, packet);
|
||||||
}
|
}
|
||||||
@ -348,24 +365,24 @@ void AISMessage24A::encode(TXPacket &packet)
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
AISMessage24B::AISMessage24B()
|
AISMessage24B::AISMessage24B()
|
||||||
{
|
{
|
||||||
messageType = 24;
|
mType = 24;
|
||||||
vendorId = "";
|
|
||||||
callSign = "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AISMessage24B::encode(TXPacket &packet)
|
void AISMessage24B::encode(const StationData &station, TXPacket &packet)
|
||||||
{
|
{
|
||||||
|
AISMessage::encode(station, packet);
|
||||||
|
|
||||||
uint8_t payload[MAX_AIS_TX_PACKET_SIZE];
|
uint8_t payload[MAX_AIS_TX_PACKET_SIZE];
|
||||||
uint16_t size = 0;
|
uint16_t size = 0;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
|
||||||
value = messageType;
|
value = mType;
|
||||||
addBits(payload, size, value, 6); // Message type
|
addBits(payload, size, value, 6); // Message type
|
||||||
|
|
||||||
value = repeatIndicator;
|
value = mRI;
|
||||||
addBits(payload, size, value, 2); // Repeat Indicator
|
addBits(payload, size, value, 2); // Repeat Indicator
|
||||||
|
|
||||||
value = mmsi;
|
value = mMMSI;
|
||||||
addBits(payload, size, value, 30); // MMSI
|
addBits(payload, size, value, 30); // MMSI
|
||||||
|
|
||||||
value = 1;
|
value = 1;
|
||||||
@ -374,8 +391,8 @@ void AISMessage24B::encode(TXPacket &packet)
|
|||||||
value = 0;
|
value = 0;
|
||||||
addBits(payload, size, value, 8); // Type of ship unknown
|
addBits(payload, size, value, 8); // Type of ship unknown
|
||||||
|
|
||||||
addString(payload, size, vendorId, 7);
|
addString(payload, size, "", 7);
|
||||||
addString(payload, size, callSign, 7);
|
addString(payload, size, station.callsign, 7);
|
||||||
|
|
||||||
value = 0;
|
value = 0;
|
||||||
addBits(payload, size, value, 30); // No dimension information
|
addBits(payload, size, value, 30); // No dimension information
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
#include "RXPacket.hpp"
|
#include "RXPacket.hpp"
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "globals.h"
|
#include "StationData.h"
|
||||||
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -29,12 +30,18 @@ public:
|
|||||||
virtual ~AISMessage ();
|
virtual ~AISMessage ();
|
||||||
|
|
||||||
virtual bool decode(RXPacket &packet);
|
virtual bool decode(RXPacket &packet);
|
||||||
virtual void encode(TXPacket &packet);
|
virtual void encode(const StationData &station, TXPacket &packet);
|
||||||
|
|
||||||
uint8_t messageType;
|
uint8_t type() const;
|
||||||
uint8_t repeatIndicator;
|
uint8_t repeatIndicator() const;
|
||||||
uint32_t mmsi;
|
uint32_t mmsi() const;
|
||||||
protected:
|
protected:
|
||||||
|
// Every AIS message has these attributes at a minimum
|
||||||
|
uint8_t mType;
|
||||||
|
uint8_t mRI;
|
||||||
|
uint32_t mMMSI;
|
||||||
|
protected:
|
||||||
|
|
||||||
void appendCRC(uint8_t *buff, uint16_t &size);
|
void appendCRC(uint8_t *buff, uint16_t &size);
|
||||||
void addBits(uint8_t *buff, uint16_t &size, uint32_t value, uint8_t numBits);
|
void addBits(uint8_t *buff, uint16_t &size, uint32_t value, uint8_t numBits);
|
||||||
void putBits(uint8_t *buff, uint32_t value, uint8_t numBits);
|
void putBits(uint8_t *buff, uint32_t value, uint8_t numBits);
|
||||||
@ -73,16 +80,16 @@ public:
|
|||||||
AISMessage18();
|
AISMessage18();
|
||||||
|
|
||||||
bool decode(RXPacket &packet);
|
bool decode(RXPacket &packet);
|
||||||
void encode(TXPacket &packet);
|
void encode(const StationData &data, TXPacket &packet);
|
||||||
};
|
};
|
||||||
|
|
||||||
class AISMessage24A : public AISMessage
|
class AISMessage24A : public AISMessage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
string name;
|
//string name;
|
||||||
AISMessage24A();
|
AISMessage24A();
|
||||||
|
|
||||||
void encode(TXPacket &packet);
|
void encode(const StationData &data, TXPacket &packet);
|
||||||
};
|
};
|
||||||
|
|
||||||
class AISMessage24B : public AISMessage
|
class AISMessage24B : public AISMessage
|
||||||
@ -90,10 +97,10 @@ class AISMessage24B : public AISMessage
|
|||||||
public:
|
public:
|
||||||
AISMessage24B();
|
AISMessage24B();
|
||||||
|
|
||||||
string vendorId;
|
//string vendorId;
|
||||||
string callSign;
|
//string callSign;
|
||||||
|
|
||||||
void encode(TXPacket &packet);
|
void encode(const StationData &data, TXPacket &packet);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -147,13 +147,14 @@ void DataTerminal::showScreen(MenuScreen screen)
|
|||||||
_write(buff);
|
_write(buff);
|
||||||
sprintf(buff, "Software revision: %s\r\n", REVISION);
|
sprintf(buff, "Software revision: %s\r\n", REVISION);
|
||||||
_write(buff);
|
_write(buff);
|
||||||
|
#if 0
|
||||||
sprintf(buff, "MMSI: %d\r\n", STATION_MMSI);
|
sprintf(buff, "MMSI: %d\r\n", STATION_MMSI);
|
||||||
_write(buff);
|
_write(buff);
|
||||||
sprintf(buff, "Name: %s\r\n", STATION_NAME);
|
sprintf(buff, "Name: %s\r\n", STATION_NAME);
|
||||||
_write(buff);
|
_write(buff);
|
||||||
sprintf(buff, "Call sign: %s\r\n", STATION_CALLSIGN);
|
sprintf(buff, "Call sign: %s\r\n", STATION_CALLSIGN);
|
||||||
_write(buff);
|
_write(buff);
|
||||||
|
#endif
|
||||||
_write("\r\n");
|
_write("\r\n");
|
||||||
_write("****************************** AIS Transponder Menu ******************************\r\n\r\n");
|
_write("****************************** AIS Transponder Menu ******************************\r\n\r\n");
|
||||||
_write("\t\033[1mP\033[0m\tProgram MMSI, station name and call sign \r\n");
|
_write("\t\033[1mP\033[0m\tProgram MMSI, station name and call sign \r\n");
|
||||||
|
@ -10,6 +10,11 @@
|
|||||||
#include <stm32f30x_i2c.h>
|
#include <stm32f30x_i2c.h>
|
||||||
#include "Utils.hpp"
|
#include "Utils.hpp"
|
||||||
|
|
||||||
|
#define EEPROM_STATION_ADDR 0x00 // A StationData structure starts here
|
||||||
|
#define EEPROM_REGION_CNT_ADDR 0x24 // Number of active special regions goes here (single byte)
|
||||||
|
#define EEPROM_REGION_ADDR 0x25 // Special region data array starts here
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The Microchip EEPROM doesn't really expect to share the I2C bus with any other EEPROM.
|
* The Microchip EEPROM doesn't really expect to share the I2C bus with any other EEPROM.
|
||||||
* So the four high bits of the address are 1010 (same for most EEPROMs) and the lower 3 don't matter.
|
* So the four high bits of the address are 1010 (same for most EEPROMs) and the lower 3 don't matter.
|
||||||
|
@ -8,48 +8,9 @@
|
|||||||
#ifndef EEPROM_HPP_
|
#ifndef EEPROM_HPP_
|
||||||
#define EEPROM_HPP_
|
#define EEPROM_HPP_
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include "StationData.h"
|
||||||
#include <time.h>
|
|
||||||
#include "AISChannels.h"
|
|
||||||
|
|
||||||
|
|
||||||
struct StationData {
|
|
||||||
uint32_t mmsi; // Vessel MMSI (should be 30 bit)
|
|
||||||
char name[21]; // Vessel name (all caps)
|
|
||||||
char callsign[8]; // Radio station call sign assigned with MMSI
|
|
||||||
uint8_t len; // Length in meters (default: 0)
|
|
||||||
uint8_t beam; // Beam in meters (default: 0)
|
|
||||||
uint8_t flags; // Reserved - 0 for now
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
static struct StationData __default_station_data = {
|
|
||||||
987654321UL,
|
|
||||||
"TEST STATION 01",
|
|
||||||
"0N0000",
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
float swLat;
|
|
||||||
float swLng;
|
|
||||||
float neLat;
|
|
||||||
float neLng;
|
|
||||||
VHFChannel channA;
|
|
||||||
VHFChannel channB;
|
|
||||||
time_t expiration;
|
|
||||||
} SpecialRegion;
|
|
||||||
|
|
||||||
#define EEPROM_STATION_ADDR 0x00 // A StationData structure starts here
|
|
||||||
#define EEPROM_REGION_CNT_ADDR 0x24 // Number of active special regions goes here (single byte)
|
|
||||||
#define EEPROM_REGION_ADDR 0x25 // Special region data array starts here
|
|
||||||
|
|
||||||
//static SpecialRegion* __special_regions = new SpecialRegion[3];
|
|
||||||
|
|
||||||
class EEPROM
|
class EEPROM
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -84,7 +84,7 @@ void RXPacketProcessor::processEvent(Event *e)
|
|||||||
"RSSI: %.2x, Ch: %c, Type: %d, MMSI: %d, Speed: %.1f kts, Pos: %.5f,%.5f, Dist: %.1f NM\r\n",
|
"RSSI: %.2x, Ch: %c, Type: %d, MMSI: %d, Speed: %.1f kts, Pos: %.5f,%.5f, Dist: %.1f NM\r\n",
|
||||||
pe->mPacket->rssi (),
|
pe->mPacket->rssi (),
|
||||||
AIS_CHANNELS[pe->mPacket->channel ()].designation,
|
AIS_CHANNELS[pe->mPacket->channel ()].designation,
|
||||||
msg.messageType, msg.mmsi, msg.sog,
|
msg.type(), msg.mmsi(), msg.sog,
|
||||||
msg.latitude, msg.longitude, miles);
|
msg.latitude, msg.longitude, miles);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -97,11 +97,10 @@ void RXPacketProcessor::processEvent(Event *e)
|
|||||||
mLat, mLng, msg.latitude, msg.longitude);
|
mLat, mLng, msg.latitude, msg.longitude);
|
||||||
double miles = distance / METERS_PER_NAUTICAL_MILE;
|
double miles = distance / METERS_PER_NAUTICAL_MILE;
|
||||||
|
|
||||||
printf2 (
|
printf2 ("RSSI: %.2x, Ch: %c, Type: %d, MMSI: %d, Speed: %.1f kts, Pos: %.5f,%.5f, Dist: %.1f NM\r\n",
|
||||||
"RSSI: %.2x, Ch: %c, Type: %d, MMSI: %d, Speed: %.1f kts, Pos: %.5f,%.5f, Dist: %.1f NM\r\n",
|
|
||||||
pe->mPacket->rssi (),
|
pe->mPacket->rssi (),
|
||||||
AIS_CHANNELS[pe->mPacket->channel ()].designation,
|
AIS_CHANNELS[pe->mPacket->channel ()].designation,
|
||||||
msg.messageType, msg.mmsi, msg.sog,
|
msg.type(), msg.mmsi(), msg.sog,
|
||||||
msg.latitude, msg.longitude, miles);
|
msg.latitude, msg.longitude, miles);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
39
src/StationData.h
Normal file
39
src/StationData.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* StationData.h
|
||||||
|
*
|
||||||
|
* Created on: May 30, 2016
|
||||||
|
* Author: peter
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef STATIONDATA_H_
|
||||||
|
#define STATIONDATA_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include "AISChannels.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct StationData {
|
||||||
|
uint32_t mmsi; // Vessel MMSI (should be 30 bit)
|
||||||
|
char name[21]; // Vessel name (all caps)
|
||||||
|
char callsign[8]; // Radio station call sign assigned with MMSI
|
||||||
|
uint8_t len; // Length in meters (default: 0)
|
||||||
|
uint8_t beam; // Beam in meters (default: 0)
|
||||||
|
uint8_t flags; // Reserved - 0 for now
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
float swLat;
|
||||||
|
float swLng;
|
||||||
|
float neLat;
|
||||||
|
float neLng;
|
||||||
|
VHFChannel channA;
|
||||||
|
VHFChannel channB;
|
||||||
|
time_t expiration;
|
||||||
|
} SpecialRegion;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* STATIONDATA_H_ */
|
@ -12,7 +12,6 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
//#include <diag/Trace.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "RadioManager.hpp"
|
#include "RadioManager.hpp"
|
||||||
#include "ChannelManager.hpp"
|
#include "ChannelManager.hpp"
|
||||||
@ -85,7 +84,7 @@ void TXScheduler::processEvent(Event *event)
|
|||||||
msg.cog = gfe->mCOG;
|
msg.cog = gfe->mCOG;
|
||||||
msg.utc = gfe->mUTC;
|
msg.utc = gfe->mUTC;
|
||||||
|
|
||||||
msg.encode (*p1);
|
msg.encode (mStationData, *p1);
|
||||||
RadioManager::instance ().scheduleTransmission (p1);
|
RadioManager::instance ().scheduleTransmission (p1);
|
||||||
|
|
||||||
// Our next position report should be on the other channel
|
// Our next position report should be on the other channel
|
||||||
@ -100,7 +99,7 @@ void TXScheduler::processEvent(Event *event)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
AISMessage24A msg2;
|
AISMessage24A msg2;
|
||||||
msg2.encode(*p2);
|
msg2.encode(mStationData, *p2);
|
||||||
RadioManager::instance().scheduleTransmission(p2);
|
RadioManager::instance().scheduleTransmission(p2);
|
||||||
|
|
||||||
TXPacket *p3 = TXPacketPool::instance().newTXPacket(mStaticDataChannel, mUTC+7);
|
TXPacket *p3 = TXPacketPool::instance().newTXPacket(mStaticDataChannel, mUTC+7);
|
||||||
@ -110,7 +109,7 @@ void TXScheduler::processEvent(Event *event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
AISMessage24B msg3;
|
AISMessage24B msg3;
|
||||||
msg3.encode(*p3);
|
msg3.encode(mStationData, *p3);
|
||||||
RadioManager::instance().scheduleTransmission(p3);
|
RadioManager::instance().scheduleTransmission(p3);
|
||||||
|
|
||||||
// Our next static data report should be on the other channel
|
// Our next static data report should be on the other channel
|
||||||
|
@ -92,9 +92,9 @@
|
|||||||
* an open-source fashion, so they are (as usual) at least a decade behind the technology curve.
|
* an open-source fashion, so they are (as usual) at least a decade behind the technology curve.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define STATION_MMSI 987654321
|
//#define STATION_MMSI 987654321
|
||||||
#define STATION_NAME "TEST STATION 01"
|
//#define STATION_NAME "TEST STATION 01"
|
||||||
#define STATION_CALLSIGN "N0NNNN"
|
//#define STATION_CALLSIGN "N0NNNN"
|
||||||
|
|
||||||
|
|
||||||
#endif /* GLOBALS_H_ */
|
#endif /* GLOBALS_H_ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user