kopia lustrzana https://github.com/projecthorus/wenet
user configurable baudrate
rodzic
3fb5cb361c
commit
f8753f77ec
|
@ -600,12 +600,18 @@ if __name__ == "__main__":
|
|||
parser.add_argument("--rfm98w-i2s", default=None, type=int, help="If set, configure a RFM98W on this SPI device number. Using I2S")
|
||||
parser.add_argument("--audio-device", default="hw:CARD=i2smaster,DEV=0", type=str, help="Alsa device string. Sets the audio device for rfm98w-i2s mode. (Default: hw:CARD=i2smaster,DEV=0)")
|
||||
parser.add_argument("--frequency", default=443.500, type=float, help="Transmit Frequency (MHz). (Default: 443.500 MHz)")
|
||||
parser.add_argument("--baudrate", default=115200, type=int, help="Wenet TX baud rate. (Default: 115200).")
|
||||
parser.add_argument("--baudrate", default=None, type=int, help="Wenet TX baud rate. (Default: 115200 for uart and 96000 for I2S).")
|
||||
parser.add_argument("--serial_port", default="/dev/ttyAMA0", type=str, help="Serial Port for modulation.")
|
||||
parser.add_argument("--tx_power", default=17, type=int, help="Transmit power in dBm (Default: 17 dBm, 50mW. Allowed values: 2-17)")
|
||||
parser.add_argument("-v", "--verbose", action='store_true', default=False, help="Show additional debug info.")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.baudrate == None:
|
||||
if args.rfm98w:
|
||||
args.baudrate = 115200
|
||||
elif args.rfm98w_i2s:
|
||||
args.baudrate = 96000
|
||||
|
||||
if args.verbose:
|
||||
logging_level = logging.DEBUG
|
||||
else:
|
||||
|
@ -627,6 +633,7 @@ if __name__ == "__main__":
|
|||
elif args.rfm98w_i2s is not None:
|
||||
radio = RFM98W_I2S(
|
||||
spidevice = args.rfm98w_i2s,
|
||||
baudrate = args.baudrate,
|
||||
frequency = args.frequency,
|
||||
audio_device= args.audio_device,
|
||||
tx_power_dbm = args.tx_power
|
||||
|
|
|
@ -283,19 +283,44 @@ class RFM98W_I2S(RFM98W):
|
|||
def __init__(
|
||||
self,
|
||||
spidevice=0,
|
||||
baudrate=96000,
|
||||
frequency=443.500,
|
||||
audio_device="hw:CARD=i2smaster,DEV=0",
|
||||
tx_power_dbm=17,
|
||||
reinit_count=5000
|
||||
):
|
||||
# fixed baudrate for the moment
|
||||
super().__init__(spidevice,frequency,96000,tx_power_dbm,reinit_count,led=5) # can't use 21 for LED as I2S is there
|
||||
|
||||
|
||||
self.channels = 2
|
||||
|
||||
self.audio_width = 2 # bytes
|
||||
self.audio_rate = 48000
|
||||
self.bytes_per_bit = ((self.audio_rate * self.channels * self.audio_width) // self.baudrate)
|
||||
self.channels = 2
|
||||
|
||||
audio_rates = [8000,16000,22050,44100,48000,96000,176400,192000]
|
||||
logging.debug(f"Searching - {baudrate}")
|
||||
for self.audio_rate in audio_rates:
|
||||
self.audio_bit_rate = self.audio_rate * self.channels * (self.audio_width*8)
|
||||
self.bytes_per_bit = self.audio_bit_rate//baudrate//8
|
||||
try:
|
||||
actual_rf_bitrate = self.audio_bit_rate/(self.bytes_per_bit*8)
|
||||
except ZeroDivisionError:
|
||||
logging.debug(f"NO - {self.audio_rate}")
|
||||
continue
|
||||
if (self.audio_bit_rate/baudrate)%8 != 0:
|
||||
logging.debug(f"NO - {self.audio_rate} RF bitrate = {actual_rf_bitrate}")
|
||||
else:
|
||||
logging.debug(f"RF bitrate = {actual_rf_bitrate}")
|
||||
logging.debug(self.audio_rate)
|
||||
logging.debug(self.bytes_per_bit)
|
||||
break
|
||||
else:
|
||||
raise ValueError("Baudrate not suitable for soundcard.")
|
||||
|
||||
|
||||
# fixed baudrate for the moment
|
||||
super().__init__(spidevice,frequency,baudrate,tx_power_dbm,reinit_count,led=5) # can't use 21 for LED as I2S is there
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (
|
||||
((self.audio_rate * self.channels * self.audio_width * 8) / self.baudrate)%8 !=0
|
||||
|
@ -504,7 +529,7 @@ if __name__ == '__main__':
|
|||
parser.add_argument("--rfm98w-i2s", default=None, type=int, help="If set, configure a RFM98W on this SPI device number. Using I2S")
|
||||
parser.add_argument("--audio-device", default="hw:CARD=i2smaster,DEV=0", type=str, help="Sets the audio device for rfm98w-i2s mode.")
|
||||
parser.add_argument("--frequency", default=443.500, type=float, help="Transmit Frequency (MHz). (Default: 443.500 MHz)")
|
||||
parser.add_argument("--baudrate", default=115200, type=int, help="Wenet TX baud rate. (Default: 115200).")
|
||||
parser.add_argument("--baudrate", default=None, type=int, help="Wenet TX baud rate. (Default: 115200 for uart and 96000 for I2S).")
|
||||
parser.add_argument("--serial_port", default="/dev/ttyAMA0", type=str, help="Serial Port for modulation.")
|
||||
parser.add_argument("--tx_power", default=17, type=int, help="Transmit power in dBm (Default: 17 dBm, 50mW. Allowed values: 2-17)")
|
||||
parser.add_argument("--shutdown", default=False, action="store_true", help="Shutdown Transmitter after configuration.")
|
||||
|
@ -512,6 +537,12 @@ if __name__ == '__main__':
|
|||
parser.add_argument("-v", "--verbose", action='store_true', default=False, help="Show additional debug info.")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.baudrate == None:
|
||||
if args.rfm98w:
|
||||
args.baudrate = 115200
|
||||
elif args.rfm98w_i2s:
|
||||
args.baudrate = 96000
|
||||
|
||||
if args.verbose:
|
||||
logging_level = logging.DEBUG
|
||||
else:
|
||||
|
@ -533,6 +564,7 @@ if __name__ == '__main__':
|
|||
elif args.rfm98w_i2s is not None:
|
||||
radio = RFM98W_I2S(
|
||||
spidevice = args.rfm98w,
|
||||
baudrate = args.baudrate,
|
||||
frequency = args.frequency,
|
||||
audio_device= args.audio_device,
|
||||
tx_power_dbm = args.tx_power
|
||||
|
|
|
@ -28,7 +28,7 @@ parser.add_argument("--rfm98w", default=0, type=int, help="If set, configure a R
|
|||
parser.add_argument("--rfm98w-i2s", default=None, type=int, help="If set, configure a RFM98W on this SPI device number. Using I2S")
|
||||
parser.add_argument("--audio-device", default="hw:CARD=i2smaster,DEV=0", type=str, help="Alsa device string. Sets the audio device for rfm98w-i2s mode. (Default: hw:CARD=i2smaster,DEV=0)")
|
||||
parser.add_argument("--frequency", default=443.500, type=float, help="Transmit Frequency (MHz). (Default: 443.500 MHz)")
|
||||
parser.add_argument("--baudrate", default=115200, type=int, help="Wenet TX baud rate. (Default: 115200).")
|
||||
parser.add_argument("--baudrate", default=None, type=int, help="Wenet TX baud rate. (Default: 115200 for uart and 96000 for I2S).")
|
||||
parser.add_argument("--serial_port", default="/dev/ttyAMA0", type=str, help="Serial Port for modulation.")
|
||||
parser.add_argument("--tx_power", default=17, type=int, help="Transmit power in dBm (Default: 17 dBm, 50mW. Allowed values: 2-17)")
|
||||
parser.add_argument("--vflip", action='store_true', default=False, help="Flip captured image vertically.")
|
||||
|
@ -45,6 +45,12 @@ parser.add_argument("--image_delay", type=float, default=1.0, help="Delay time b
|
|||
parser.add_argument("-v", "--verbose", action='store_true', default=False, help="Show additional debug info.")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.baudrate == None:
|
||||
if args.rfm98w:
|
||||
args.baudrate = 115200
|
||||
elif args.rfm98w_i2s:
|
||||
args.baudrate = 96000
|
||||
|
||||
if args.verbose:
|
||||
logging_level = logging.DEBUG
|
||||
else:
|
||||
|
@ -72,6 +78,7 @@ if args.rfm98w is not None:
|
|||
elif args.rfm98w_i2s is not None:
|
||||
radio = RFM98W_I2S(
|
||||
spidevice = args.rfm98w_i2s,
|
||||
baudrate = args.baudrate,
|
||||
frequency = args.frequency,
|
||||
audio_device= args.audio_device,
|
||||
tx_power_dbm = args.tx_power
|
||||
|
|
|
@ -43,12 +43,18 @@ parser.add_argument("--rfm98w", default=None, type=int, help="If set, configure
|
|||
parser.add_argument("--rfm98w-i2s", default=None, type=int, help="If set, configure a RFM98W on this SPI device number. Using I2S")
|
||||
parser.add_argument("--audio-device", default="hw:CARD=i2smaster,DEV=0", type=str, help="Alsa device string. Sets the audio device for rfm98w-i2s mode. (Default: hw:CARD=i2smaster,DEV=0)")
|
||||
parser.add_argument("--frequency", default=443.500, type=float, help="Transmit Frequency (MHz). (Default: 443.500 MHz)")
|
||||
parser.add_argument("--baudrate", default=115200, type=int, help="Wenet TX baud rate. (Default: 115200).")
|
||||
parser.add_argument("--baudrate", default=None, type=int, help="Wenet TX baud rate. (Default: 115200 for uart and 96000 for I2S).")
|
||||
parser.add_argument("--serial_port", default="/dev/ttyAMA0", type=str, help="Serial Port for modulation.")
|
||||
parser.add_argument("--tx_power", default=17, type=int, help="Transmit power in dBm (Default: 17 dBm, 50mW. Allowed values: 2-17)")
|
||||
parser.add_argument("-v", "--verbose", action='store_true', default=False, help="Show additional debug info.")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.baudrate == None:
|
||||
if args.rfm98w:
|
||||
args.baudrate = 115200
|
||||
elif args.rfm98w_i2s:
|
||||
args.baudrate = 96000
|
||||
|
||||
if args.verbose:
|
||||
logging_level = logging.DEBUG
|
||||
else:
|
||||
|
@ -71,6 +77,7 @@ elif args.rfm98w_i2s is not None:
|
|||
radio = RFM98W_I2S(
|
||||
spidevice = args.rfm98w_i2s,
|
||||
frequency = args.frequency,
|
||||
baudrate = args.baudrate,
|
||||
audio_device= args.audio_device,
|
||||
tx_power_dbm = args.tx_power
|
||||
)
|
||||
|
|
Ładowanie…
Reference in New Issue