From 6d3519820154a546af524dd4df9e8e4b9afaea4d Mon Sep 17 00:00:00 2001 From: nzkarit Date: Sun, 15 Sep 2019 15:07:25 +1200 Subject: [PATCH] Callsign from command line --- ADSB_Encoder.py | 3 ++- ModeS.py | 4 +++- config.cfg | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ADSB_Encoder.py b/ADSB_Encoder.py index df564aa..7e6f40d 100755 --- a/ADSB_Encoder.py +++ b/ADSB_Encoder.py @@ -63,6 +63,7 @@ def argParser(): parser.add_argument('--csv', '--csvfile', '--in', '--input', action='store', type=str, default=cfg.get('general', 'csvfile'), dest='csvfile', help='Import a CSV file with the plane data in it. Default: %(default)s') parser.add_argument('--intermessagegap', action='store', type=int, default=cfg.get('general', 'intermessagegap'), dest='intermessagegap', help='When repeating or reading a CSV the number of microseconds between messages. Default: %(default)s') parser.add_argument('--realtime', action='store', default=cfg.getboolean('general', 'realtime'), type=auto_bool, dest='realtime', help='When running a CSV which has a timestamp column whether to run in realtime following the timestamp or if just follow intermessagegap. If realtime is set it will override intermessagegap. Default: %(default)s') + parser.add_argument('--callsign', action='store', default=cfg.get('plane', 'callsign'), type=str, dest='callsign', help='The callsign of the aircraft. Default: %(default)s') # TODO Make it so it can do a static checksum or one/two bit error # TODO Velocity, Heading and vertical speed as argument # TODO Callsign @@ -78,7 +79,7 @@ def singlePlane(arguments): df17_velocity = modes.vel_heading_encode(arguments.capability, arguments.icao, 450, 200, -1000) - df17_callsign = modes.callsign_encode(arguments.capability, arguments.icao, 'karit___') + df17_callsign = modes.callsign_encode(arguments.capability, arguments.icao, arguments.callsign) ppm = PPM() df17_array_position = ppm.frame_1090es_ppm_modulate(df17_pos_even, df17_pos_odd) diff --git a/ModeS.py b/ModeS.py index 440eb3e..b09b93c 100644 --- a/ModeS.py +++ b/ModeS.py @@ -155,8 +155,10 @@ class ModeS: return dfvel #From https://github.com/jaywilhelm/ADSB-Out_Python on 2019-08-25 - # TODO the callsign must be 8 + # TODO the callsign must be 8 def callsign_encode(self, ca, icao, csname): + #Pad the callsign to be 8 characters + csname = csname.ljust(8, '_') if len(csname) > 8 or len(csname) <= 0: print ("Name length error") return null diff --git a/config.cfg b/config.cfg index d9fdce0..7e84d35 100644 --- a/config.cfg +++ b/config.cfg @@ -19,3 +19,4 @@ surveillancestatus = 0 nicsupplementb = 0 time = 0 surface = false +callsign = karit \ No newline at end of file