Skip to content

Commit 497c879

Browse files
Updated
1 parent 71e588a commit 497c879

File tree

4 files changed

+54
-15
lines changed

4 files changed

+54
-15
lines changed

src/dzcb/gb3gf.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ def Codeplug_to_gb3gf_opengd77_csv(cp, output_dir):
5959
"Timeslot",
6060
"Contact",
6161
"TG List",
62-
"DMR ID", # New entry
63-
"TS1_TA_Tx", # New entry
64-
"TS2_TA_Tx ID", # New entry
62+
"DMR ID",
63+
"TS1_TA_Tx",
64+
"TS2_TA_Tx ID",
6565
"RX Tone",
6666
"TX Tone",
6767
"Squelch",
@@ -71,15 +71,15 @@ def Codeplug_to_gb3gf_opengd77_csv(cp, output_dir):
7171
"All Skip",
7272
"TOT",
7373
"VOX",
74-
"No Beep", # New entry
75-
"No Eco", # New entry
76-
"APRS", # New entry
77-
"Latitude", # New entry
78-
"Longitude", # New entry
79-
"Use Location" # New entry
74+
"No Beep",
75+
"No Eco",
76+
"APRS",
77+
"Latitude",
78+
"Longitude",
79+
"Use Location"
8080
]
8181
with open("{}/Channels.csv".format(output_dir), "w", newline="") as f:
82-
csvw = csv.DictWriter(f, channel_fields, delimiter=";")
82+
csvw = csv.DictWriter(f, channel_fields, delimiter=",")
8383
csvw.writeheader()
8484
for ix, channel in enumerate(cp.channels):
8585
if isinstance(channel, AnalogChannel):
@@ -124,15 +124,15 @@ def Codeplug_to_gb3gf_opengd77_csv(cp, output_dir):
124124
"No Beep": "Yes",
125125
"No Eco": "No",
126126
"APRS": "None",
127-
"Latitude": "None",
128-
"Longitude": "None",
127+
"Latitude": channel.latitude,
128+
"Longitude": channel.longitude,
129129
"Use Location": "Yes"
130130
}
131131
)
132132
csvw.writerow(d)
133133
tg_fields = ["TG List Name"] + ["Contact {}".format(x) for x in range(1, 33)]
134134
with open("{}/TG_Lists.csv".format(output_dir), "w", newline="") as f:
135-
csvw = csv.DictWriter(f, tg_fields, delimiter=";")
135+
csvw = csv.DictWriter(f, tg_fields, delimiter=",")
136136
csvw.writeheader()
137137
n_grouplists = len(cp.grouplists)
138138
for gl in cp.grouplists:
@@ -154,7 +154,7 @@ def Codeplug_to_gb3gf_opengd77_csv(cp, output_dir):
154154
csvw.writerow(tg_list)
155155
zone_fields = ["Zone Name"] + ["Channel {}".format(x) for x in range(1, 81)]
156156
with open("{}/Zones.csv".format(output_dir), "w", newline="") as f:
157-
csvw = csv.DictWriter(f, zone_fields, delimiter=";")
157+
csvw = csv.DictWriter(f, zone_fields, delimiter=",")
158158
csvw.writeheader()
159159
zone_names = [z.name for z in cp.zones]
160160
# OpenGD77 doesn't have scanlist, so simulate it with separate zones
@@ -170,7 +170,7 @@ def Codeplug_to_gb3gf_opengd77_csv(cp, output_dir):
170170
csvw.writerow(row)
171171
with open("{}/Contacts.csv".format(output_dir), "w", newline="") as f:
172172
csvw = csv.DictWriter(
173-
f, ["Contact Name", "ID", "ID Type", "TS Override"], delimiter=";"
173+
f, ["Contact Name", "ID", "ID Type", "TS Override"], delimiter=","
174174
)
175175
csvw.writeheader()
176176
for tg in sorted(contacts, key=lambda c: c.name_with_timeslot):

src/dzcb/k7abd.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
CTCSS_DECODE = "CTCSS Decode"
5555
CTCSS_ENCODE = "CTCSS Encode"
5656
TX_PROHIBIT = "TX Prohibit"
57+
LATITUDE = "Latitude"
58+
LONGITUDE = "Longitude"
5759
ANALOG_CSV_FIELDS = [
5860
ZONE,
5961
CHANNEL_NAME,
@@ -64,6 +66,8 @@
6466
CTCSS_DECODE,
6567
CTCSS_ENCODE,
6668
TX_PROHIBIT,
69+
LATITUDE,
70+
LONGITUDE,
6771
]
6872

6973

@@ -156,6 +160,8 @@ def Analog_from_csv(analog_repeaters_csv):
156160
frequency = float(r[RX_FREQ])
157161
offset = round(float(r[TX_FREQ]) - frequency, 1)
158162
power = r[POWER]
163+
latitude = float(r[LATITUDE])
164+
longitude = float(r[LONGITUDE])
159165
bandwidth = r[BANDWIDTH].rstrip("K")
160166
tone_encode = (
161167
r[CTCSS_ENCODE] if r[CTCSS_ENCODE].lower() not in ("off", "") else None
@@ -173,6 +179,8 @@ def Analog_from_csv(analog_repeaters_csv):
173179
tone_decode=tone_decode,
174180
power=power,
175181
bandwidth=bandwidth,
182+
latitude=latitude,
183+
longitude=longitude,
176184
)
177185
)
178186
except ValueError as ve:
@@ -204,6 +212,8 @@ def DigitalRepeaters_from_k7abd_csv(digital_repeaters_csv, talkgroups_by_name):
204212
offset = round(float(r.pop("TX Freq")) - frequency, 1)
205213
color_code = r.pop("Color Code")
206214
power = r.pop("Power")
215+
latitude = float(r.pop("Latitude"))
216+
longitude = float(r.pop("Longitude"))
207217
talkgroups = []
208218
for tg_name, timeslot in r.items():
209219
if timeslot.strip() == "-":
@@ -235,6 +245,8 @@ def DigitalRepeaters_from_k7abd_csv(digital_repeaters_csv, talkgroups_by_name):
235245
offset=offset,
236246
color_code=color_code,
237247
power=power,
248+
latitude=latitude,
249+
longitude=longitude,
238250
static_talkgroups=sorted(talkgroups, key=lambda tg: tg.name),
239251
)
240252
yield repeater
@@ -258,6 +270,8 @@ def DigitalChannels_from_k7abd_csv(digital_others_csv, talkgroups_by_name):
258270
offset = round(float(r.pop("TX Freq")) - frequency, 1)
259271
color_code = r.pop("Color Code")
260272
power = r.pop("Power")
273+
latitude = float(r.pop("Latitude"))
274+
longitude = float(r.pop("Longitude"))
261275
tg_name = r.pop("Talk Group")
262276
try:
263277
talkgroup = Talkgroup.from_contact(
@@ -280,6 +294,8 @@ def DigitalChannels_from_k7abd_csv(digital_others_csv, talkgroups_by_name):
280294
offset=offset,
281295
color_code=color_code,
282296
power=power,
297+
latitude=latitude,
298+
longitude=longitude,
283299
talkgroup=talkgroup,
284300
)
285301
)

src/dzcb/model.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,24 @@ class Channel:
211211
rx_only = attr.ib(
212212
default=False, validator=attr.validators.instance_of(bool), converter=bool
213213
)
214+
no_beep = attr.ib(
215+
default=True, validator=attr.validators.instance_of(bool), converter=bool
216+
)
217+
no_eco = attr.ib(
218+
default=False, validator=attr.validators.instance_of(bool), converter=bool
219+
)
220+
arps = attr.ib(
221+
default=False, validator=attr.validators.instance_of(bool), converter=bool
222+
)
223+
latitude = attr.ib(
224+
default=None, validator=attr.validators.instance_of(float), converter=float
225+
)
226+
longitude = attr.ib(
227+
default=None, validator=attr.validators.instance_of(float), converter=float
228+
)
229+
use_location = attr.ib(
230+
default=True, validator=attr.validators.instance_of(bool), converter=bool
231+
)
214232
scanlist = attr.ib(
215233
eq=False,
216234
default=None,
@@ -293,6 +311,9 @@ class DigitalChannel(Channel):
293311
bandwidth = Bandwidth._125
294312
squelch = 0
295313
color_code = attr.ib(default=1)
314+
dmr_id = attr.ib(default=None)
315+
ts1_ta_tx = attr.ib(default=None)
316+
ts2_ta_tx_id = attr.ib(default=None)
296317
grouplist = attr.ib(
297318
default=None,
298319
validator=attr.validators.optional(attr.validators.instance_of(uuid.UUID)),

src/dzcb/repeaterbook.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ def repeater_to_k7abd_row(repeater, zone_name, name_format=None):
182182
k7abd.CTCSS_DECODE: normalize_tone(repeater["TSQ"]),
183183
k7abd.CTCSS_ENCODE: normalize_tone(repeater["PL"]),
184184
k7abd.TX_PROHIBIT: k7abd.OFF,
185+
k7abd.LATITUDE: repeater["Lat"],
186+
k7abd.LONGITUDE: repeater["Long"],
185187
}
186188

187189

0 commit comments

Comments
 (0)