Factor out sendBeastSettings(), use it in view1090.

This commit is contained in:
Oliver Jowett 2016-12-29 17:53:04 +00:00
parent 11b6cdba06
commit 0526388bdc
4 changed files with 24 additions and 16 deletions

View file

@ -139,22 +139,6 @@ static void backgroundTasks(void) {
modesNetPeriodicWork(); modesNetPeriodicWork();
} }
static void sendBeastSettings(struct client *c, const char *settings) {
int len;
char *buf, *p;
len = strlen(settings) * 3;
buf = p = alloca(len);
while (*settings) {
*p++ = 0x1a;
*p++ = '1';
*p++ = *settings++;
}
anetWrite(c->fd, buf, len);
}
// //
//========================================================================= //=========================================================================
// //

View file

@ -784,6 +784,24 @@ static void handle_radarcape_position(float lat, float lon, float alt)
} }
} }
// Send some Beast settings commands to a client
void sendBeastSettings(struct client *c, const char *settings)
{
int len;
char *buf, *p;
len = strlen(settings) * 3;
buf = p = alloca(len);
while (*settings) {
*p++ = 0x1a;
*p++ = '1';
*p++ = *settings++;
}
anetWrite(c->fd, buf, len);
}
// //
//========================================================================= //=========================================================================
// //

View file

@ -72,6 +72,8 @@ struct client *createGenericClient(struct net_service *service, int fd);
struct net_service *makeBeastInputService(void); struct net_service *makeBeastInputService(void);
struct net_service *makeFatsvOutputService(void); struct net_service *makeFatsvOutputService(void);
void sendBeastSettings(struct client *c, const char *settings);
void modesInitNet(void); void modesInitNet(void);
void modesQueueOutput(struct modesMessage *mm, struct aircraft *a); void modesQueueOutput(struct modesMessage *mm, struct aircraft *a);
void modesNetPeriodicWork(void); void modesNetPeriodicWork(void);

View file

@ -206,6 +206,10 @@ int main(int argc, char **argv) {
exit(1); exit(1);
} }
sendBeastSettings(c, "Cd"); // Beast binary format, no filters
sendBeastSettings(c, Modes.mode_ac ? "J" : "j"); // Mode A/C on or off
sendBeastSettings(c, Modes.check_crc ? "f" : "F"); // CRC checks on or off
// Keep going till the user does something that stops us // Keep going till the user does something that stops us
while (!Modes.exit) { while (!Modes.exit) {
icaoFilterExpire(); icaoFilterExpire();