[chirp_users] Scripting CHIRP or manipulating Duplex settings

Eric Vought
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
CSVs.

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.html 


More information about the chirp_users mailing list