[chirp_devel] [PATCH][ft2900] Support Euro version of FT-2900/FT-1900 (#2501)
Richard Cochran
Tue Apr 7 21:30:03 PDT 2015
# HG changeset patch
# User Richard Cochran <ag6qr at sonic.net>
# Date 1428466831 25200
# Tue Apr 07 21:20:31 2015 -0700
# Node ID 673eef6f99ad71ba4efc1a3a067068d91210b2d4
# Parent 135494ac7732f1de094fea16268a7bd72d824253
[ft2900] Support Euro version of FT-2900/FT-1900 (#2501)
This patch adds support for the Euro version of the FT-2900/FT-1900
radio, which uses a different header IDBLOCK than the US version. We
make the IDBLOCK a class variable, and then create a subclass for the
Euro version, with an override to the IDBLOCK.
diff -r 135494ac7732 -r 673eef6f99ad chirp/drivers/ft2900.py
--- a/chirp/drivers/ft2900.py Mon Apr 06 22:03:33 2015 -0700
+++ b/chirp/drivers/ft2900.py Tue Apr 07 21:20:31 2015 -0700
@@ -34,7 +34,6 @@
raise Exception("Failed to read echo")
LOG.debug("got echo\n%s\n" % util.hexprint(echo))
-IDBLOCK = "\x56\x43\x32\x33\x00\x02\x46\x01\x01\x01"
ACK = "\x06"
INITIAL_CHECKSUM = 73
@@ -53,10 +52,10 @@
LOG.debug("Header:\n%s" % util.hexprint(data))
LOG.debug("len(header) = %s\n" % len(data))
- if data == IDBLOCK:
+ if data == radio.IDBLOCK:
break
- if data != IDBLOCK:
+ if data != radio.IDBLOCK:
raise Exception("Failed to read header")
_send(radio.pipe, ACK)
@@ -125,7 +124,7 @@
LOG.debug("What is this garbage?\n%s" % util.hexprint(data))
raise Exception("Radio sent unrecognized data")
- _send(radio.pipe, IDBLOCK)
+ _send(radio.pipe, radio.IDBLOCK)
time.sleep(.2)
ack = radio.pipe.read(300)
LOG.debug("Ack was (%i):\n%s" % (len(ack), util.hexprint(ack)))
@@ -399,6 +398,7 @@
"""Yaesu FT-2900"""
VENDOR = "Yaesu"
MODEL = "FT-2900R/1900R"
+ IDBLOCK = "\x56\x43\x32\x33\x00\x02\x46\x01\x01\x01"
BAUD_RATE = 19200
_memsize = 8000
@@ -634,3 +634,14 @@
4. Press "MW D/MR" to receive image.
5. Click OK to dismiss this dialog and start transfer."""))
return rp
+
+
+# the FT2900E is the European version of the radio, almost identical
+# to the R (USA) version, except for the model number and ID Block. We
+# create and register a class for it, with only the needed overrides
+ at directory.register
+class FT2900ERadio(FT2900Radio):
+ """Yaesu FT-2900E"""
+ MODEL = "FT-2900E/1900E"
+ VARIANT = "E"
+ IDBLOCK = "\x56\x43\x32\x33\x00\x02\x41\x02\x01\x01"
More information about the chirp_devel
mailing list