mirror of
https://github.com/craigerl/aprsd.git
synced 2025-07-30 20:32:27 -04:00
Added --raw format for sending messages
aprsd send-message --raw "RAW APRS MESSAGE HERE"
This commit is contained in:
parent
f022a3e421
commit
54072a2103
@ -234,8 +234,9 @@ def sample_config():
|
|||||||
default=False,
|
default=False,
|
||||||
help="Don't wait for an ack, just sent it to APRS-IS and bail.",
|
help="Don't wait for an ack, just sent it to APRS-IS and bail.",
|
||||||
)
|
)
|
||||||
@click.argument("tocallsign")
|
@click.option("--raw", default=None, help="Send a raw message. Implies --no-ack")
|
||||||
@click.argument("command", nargs=-1)
|
@click.argument("tocallsign", required=False)
|
||||||
|
@click.argument("command", nargs=-1, required=False)
|
||||||
def send_message(
|
def send_message(
|
||||||
loglevel,
|
loglevel,
|
||||||
quiet,
|
quiet,
|
||||||
@ -243,15 +244,13 @@ def send_message(
|
|||||||
aprs_login,
|
aprs_login,
|
||||||
aprs_password,
|
aprs_password,
|
||||||
no_ack,
|
no_ack,
|
||||||
|
raw,
|
||||||
tocallsign,
|
tocallsign,
|
||||||
command,
|
command,
|
||||||
):
|
):
|
||||||
"""Send a message to a callsign via APRS_IS."""
|
"""Send a message to a callsign via APRS_IS."""
|
||||||
global got_ack, got_response
|
global got_ack, got_response
|
||||||
|
|
||||||
if not quiet:
|
|
||||||
click.echo("{} {} {} {}".format(aprs_login, aprs_password, tocallsign, command))
|
|
||||||
click.echo("Load config")
|
|
||||||
config = utils.parse_config(config_file)
|
config = utils.parse_config(config_file)
|
||||||
if not aprs_login:
|
if not aprs_login:
|
||||||
click.echo("Must set --aprs_login or APRS_LOGIN")
|
click.echo("Must set --aprs_login or APRS_LOGIN")
|
||||||
@ -269,7 +268,11 @@ def send_message(
|
|||||||
LOG.info("APRSD Started version: {}".format(aprsd.__version__))
|
LOG.info("APRSD Started version: {}".format(aprsd.__version__))
|
||||||
if type(command) is tuple:
|
if type(command) is tuple:
|
||||||
command = " ".join(command)
|
command = " ".join(command)
|
||||||
LOG.info("Sending Command '{}'".format(command))
|
if not quiet:
|
||||||
|
if raw:
|
||||||
|
LOG.info("L'{}' R'{}'".format(aprs_login, raw))
|
||||||
|
else:
|
||||||
|
LOG.info("L'{}' To'{}' C'{}'".format(aprs_login, tocallsign, command))
|
||||||
|
|
||||||
got_ack = False
|
got_ack = False
|
||||||
got_response = False
|
got_response = False
|
||||||
@ -317,7 +320,12 @@ def send_message(
|
|||||||
# We should get an ack back as well as a new message
|
# We should get an ack back as well as a new message
|
||||||
# we should bail after we get the ack and send an ack back for the
|
# we should bail after we get the ack and send an ack back for the
|
||||||
# message
|
# message
|
||||||
msg = messaging.TextMessage(aprs_login, tocallsign, command)
|
if raw:
|
||||||
|
msg = messaging.RawMessage(raw)
|
||||||
|
msg.send_direct()
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
msg = messaging.TextMessage(aprs_login, tocallsign, command)
|
||||||
msg.send_direct()
|
msg.send_direct()
|
||||||
|
|
||||||
if no_ack:
|
if no_ack:
|
||||||
|
@ -212,6 +212,46 @@ class Message(metaclass=abc.ABCMeta):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class RawMessage(Message):
|
||||||
|
"""Send a raw message.
|
||||||
|
|
||||||
|
This class is used for custom messages that contain the entire
|
||||||
|
contents of an APRS message in the message field.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
message = None
|
||||||
|
|
||||||
|
def __init__(self, message):
|
||||||
|
super().__init__(None, None, msg_id=None)
|
||||||
|
self.message = message
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return self.message
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.message
|
||||||
|
|
||||||
|
def send(self):
|
||||||
|
tracker = MsgTrack()
|
||||||
|
tracker.add(self)
|
||||||
|
LOG.debug("Length of MsgTrack is {}".format(len(tracker)))
|
||||||
|
thread = SendMessageThread(message=self)
|
||||||
|
thread.start()
|
||||||
|
|
||||||
|
def send_direct(self):
|
||||||
|
"""Send a message without a separate thread."""
|
||||||
|
cl = client.get_client()
|
||||||
|
log_message(
|
||||||
|
"Sending Message Direct",
|
||||||
|
repr(self).rstrip("\n"),
|
||||||
|
self.message,
|
||||||
|
tocall=self.tocall,
|
||||||
|
fromcall=self.fromcall,
|
||||||
|
)
|
||||||
|
cl.sendall(repr(self))
|
||||||
|
|
||||||
|
|
||||||
class TextMessage(Message):
|
class TextMessage(Message):
|
||||||
"""Send regular ARPS text/command messages/replies."""
|
"""Send regular ARPS text/command messages/replies."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user