<div dir="ltr">&quot;<span style="font-family:arial,sans-serif;font-size:13px">Another thing that might help is the &#39;Edit Multiple Memories&#39; dialog. &quot;</span><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">That was extremely helpful. Thank you.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">&quot;</span><span style="font-family:arial,sans-serif;font-size:13px">Don&#39;t use .CSV files. Use .IMG files.&quot;</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font face="arial, sans-serif">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.</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">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&#39;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.</font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 8, 2014 at 9:12 PM, Jim Unroe <span dir="ltr">&lt;<a href="mailto:rock.unroe@gmail.com" target="_blank">rock.unroe@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Eric,<br><br></div>Don&#39;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.<br><br></div>Another thing that might help is the &quot;Edit Multiple Memories&quot; 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.<br><br></div>Jim KC9HI<br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Oct 8, 2014 at 9:39 PM, Eric Vought <span dir="ltr">&lt;<a href="mailto:evought@pobox.com" target="_blank">evought@pobox.com</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13px">If this ends up being a duplicate post, I apologize: I never got a copy back from the list server.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Here is what I am trying to do:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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).</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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):</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.import(&quot;ZoneA.csv&quot;, 0);</div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.import(&quot;ZoneB.csv&quot;, 30, monitor);</div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.import(&quot;ZoneF.csv&quot;, 100, monitor);</div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.import(&quot;ZoneN.csv&quot;, 190, monitor);</div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.set(&quot;startup_message&quot;, callsign);</div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.set(&quot;lock_pin&quot;, pin);<br></div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.set(&quot;primary_channel&quot;, primaryChannel);<br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"># ...etc...</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">newWouxunLaydown.write(outputFile);</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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).</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Is this a fantasy?</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Somehow going from there to pretty-printing quick-reference cards for each user would be nice, too... :-)</div></div>
<br></div></div>_______________________________________________<br>
chirp_users mailing list<br>
<a href="mailto:chirp_users@intrepid.danplanet.com" target="_blank">chirp_users@intrepid.danplanet.com</a><br>
<a href="http://intrepid.danplanet.com/mailman/listinfo/chirp_users" target="_blank">http://intrepid.danplanet.com/mailman/listinfo/chirp_users</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
chirp_users mailing list<br>
<a href="mailto:chirp_users@intrepid.danplanet.com">chirp_users@intrepid.danplanet.com</a><br>
<a href="http://intrepid.danplanet.com/mailman/listinfo/chirp_users" target="_blank">http://intrepid.danplanet.com/mailman/listinfo/chirp_users</a><br>
<br></blockquote></div><br></div>