"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@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@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@intrepid.danplanet.com
http://intrepid.danplanet.com/mailman/listinfo/chirp_users



_______________________________________________
chirp_users mailing list
chirp_users@intrepid.danplanet.com
http://intrepid.danplanet.com/mailman/listinfo/chirp_users