123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import argparse
- import logging
- import sys
- import cc1101
- import cc1101.options
- _LOGGER = logging.getLogger(__name__)
- def _transmit():
- argparser = argparse.ArgumentParser(
- description="Transmits the payload provided via standard input (stdin)"
- " OOK-modulated in big-endian bit order.",
- allow_abbrev=False,
- )
- argparser.add_argument("-f", "--base-frequency-hertz", type=int)
- argparser.add_argument("-r", "--symbol-rate-baud", type=int)
- argparser.add_argument(
- "-s",
- "--sync-mode",
- type=str,
- choices=[m.name.lower().replace("_", "-") for m in cc1101.options.SyncMode],
- )
- argparser.add_argument(
- "-l",
- "--packet-length-mode",
- type=str,
- choices=[m.name.lower() for m in cc1101.options.PacketLengthMode],
- )
- argparser.add_argument("--disable-checksum", action="store_true")
- argparser.add_argument("-d", "--debug", action="store_true")
- args = argparser.parse_args()
- logging.basicConfig(
- level=logging.DEBUG if args.debug else logging.INFO,
- format="%(asctime)s:%(levelname)s:%(name)s:%(funcName)s:%(message)s"
- if args.debug
- else "%(message)s",
- datefmt="%Y-%m-%dT%H:%M:%S%z",
- )
- _LOGGER.debug("args=%r", args)
- with cc1101.CC1101() as transceiver:
- if args.base_frequency_hertz:
- transceiver.set_base_frequency_hertz(args.base_frequency_hertz)
- if args.symbol_rate_baud:
- transceiver.set_symbol_rate_baud(args.symbol_rate_baud)
- if args.sync_mode:
- transceiver.set_sync_mode(
- cc1101.options.SyncMode[args.sync_mode.upper().replace("-", "_")]
- )
- payload = sys.stdin.buffer.read()
- if args.packet_length_mode:
- packet_length_mode = cc1101.options.PacketLengthMode[
- args.packet_length_mode.upper()
- ]
-
- transceiver.set_packet_length_mode(packet_length_mode)
-
- if packet_length_mode == cc1101.options.PacketLengthMode.FIXED:
- transceiver.set_packet_length_bytes(len(payload))
- if args.disable_checksum:
- transceiver.disable_checksum()
- _LOGGER.info("%s", transceiver)
- transceiver.transmit(payload)
|