[chirp_users] Scripting CHIRP or manipulating Duplex settings

Eric Vought evought at pobox.com
Wed Oct 8 19:34:16 PDT 2014

"Another thing that might help is the 'Edit Multiple Memories' dialog. "

That was extremely helpful. Thank you.

"Don't use .CSV files. Use .IMG files."

One of the reasons I use .CSVs for my base files is that I can keep
comments and other meta data in the files which I lose when writing .IMGs.
Given that I am limited to 6-character channel names on most of my
equipment, that commentary makes maintenance *much* easier. In particular,
I can add page references directly to whatever document I got the
programming info from. I also suck the CSVs into Open Office to build
printable reference materials and to keep them synced with the NIFOG or EOP

You just gave me an interesting thought, however: given that the files are
just regular comma-separated value spreadsheets, I can manipulate the
fields directly with either Python or Perl, Javascript in Open Office, or
even UNIX shell script (very ugly). I'll have to experiment next time I get
a round-tuit and, if it works, I will share. It would be nowhere near as
neat as an internal CHIRP API as I would have to use absolute references to
columns, values, and so forth which would not be maintenance friendly...
but it might work.

On Wed, Oct 8, 2014 at 9:12 PM, Jim Unroe <rock.unroe at gmail.com> wrote:

> Eric,
> Don't use .CSV files. Use .IMG files. You can import .IMG files just like
> .CSV files and your power levels, duplex settings, etc will be retained.
> Another thing that might help is the "Edit Multiple Memories" dialog. Say
> you have a zone with 20 channels that need TX locked out. Highlight all 20
> of those rows (use ctrl-click, shift-click, etc.) then right-click one of
> them. Choose Edit at the dialog box that appears. Now with the Edit
> Multiple Memories editor showing, you can set Duplex=off on all 20 rows at
> once.
> Jim KC9HI
> On Wed, Oct 8, 2014 at 9:39 PM, Eric Vought <evought at pobox.com> wrote:
>> If this ends up being a duplicate post, I apologize: I never got a copy
>> back from the list server.
>> I would like to programatically combine multiple stock configs,
>> potentially manipulating them as I go. Failing that, I need to be able to
>> at least modify duplex settings across an entire config at one go rather
>> than having to toggle the settings for each channel entry.
>> Here is what I am trying to do:
>> I have a number of .csv files defining different zones for channel
>> settings. For example, I have, a zone for regional interoperability, a zone
>> for local law enforcement, local fire, etc., a zone for NIFOG
>> Interoperability channels, a zone for GMRS, a zone for regional
>> ARES/Skywarn channels, one for channels used by CERT and other local
>> groups, etc. I store those zone files as stock configs for building a
>> laydown for a specific radio and specific user.
>> Specific users will need some zones in their laydown and not others. More
>> problematically, different users may be *licensed* for some services and
>> not others. Generally it is not a problem to monitor the channels they are
>> not licensed for, but I have to lock out transmit. For example, a user is
>> licensed for local Part 90 public service but not amateur radio or
>> vice-versa. So, when I build their laydown, I bring in the zones they need
>> from stock configs but I either need to build two files for each zone (and
>> worry that they will lose sync over time) or I have to manually toggle
>> Duplex=off in each channel in every service they do not have access to.
>> This gets to be a bit of a pain. I also need to make some individualized
>> settings for each user (e.g. call-sign to come up at startup).
>> As Chirp is written in Python, is there an internal API available to do
>> this kind of manipulation? Is that API at all documented or stable?
>> Ideally, I would like to write a script which will do something like
>> (pseudocode):
>> newWouxunLaydown.import("ZoneA.csv", 0);
>> newWouxunLaydown.import("ZoneB.csv", 30, monitor);
>> newWouxunLaydown.import("ZoneF.csv", 100, monitor);
>> newWouxunLaydown.import("ZoneN.csv", 190, monitor);
>> newWouxunLaydown.set("startup_message", callsign);
>> newWouxunLaydown.set("lock_pin", pin);
>> newWouxunLaydown.set("primary_channel", primaryChannel);
>> # ...etc...
>> newWouxunLaydown.write(outputFile);
>> I can then create a script for each common configuration and when, for
>> instance, ZoneB gets updated, just run the scripts to rebuild the laydowns.
>> In theory I could even version control the .csv s for the zones and the
>> scripts, stick them on a server, and then reuse them between local agencies
>> (the end goal).
>> Is this a fantasy?
>> Somehow going from there to pretty-printing quick-reference cards for
>> each user would be nice, too... :-)
>> _______________________________________________
>> chirp_users mailing list
>> chirp_users at intrepid.danplanet.com
>> http://intrepid.danplanet.com/mailman/listinfo/chirp_users
> _______________________________________________
> chirp_users mailing list
> chirp_users at intrepid.danplanet.com
> http://intrepid.danplanet.com/mailman/listinfo/chirp_users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://intrepid.danplanet.com/pipermail/chirp_users/attachments/20141008/9b8d32f3/attachment-0002.html 

More information about the chirp_users mailing list