/usr/share/doc/hamlib-doc/html/PLAN.html is in libhamlib-doc 3.0.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Hamlib: PLAN</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="hamlib.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Hamlib
 <span id="projectnumber">3.0.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="index.html">Hamlib API Reference</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">PLAN </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><pre class="fragment">
Here is a non-exhaustive list of things IMO to keep in mind while
developping the Hamlib library.
Plan:
----
o Hamlib is intended to provide the means to control any capable rig
o develop the library as a shared/static library
o portable (not only Linux, but UN*X, Win32 using cygwin, etc. -> autoconf?)
o be good, be generic (any rig made, any model)
o uniform data types/units (eg. for power, use Watts, not rig specific val)
o wrappable (Java, C++, perl module, Python module, etc.)
o support serial ports, IrDA ports, USB ports, network ports (w/ a daemon)
o thread safe (reentrant) would be a must
o support preference file (eg. /etc/hamlibrc, ~/.hamlibrc )
o written in C (C++ would have been much more appropriate, but C is okay)
o support more than one rig per application (ie. generic code)
o support more than one rig per serial port (ie. Icoms)
o handle nicely serial retransmission and timeouts
o i18n support if applicable
o software compensation for the actual radio oscillator frequency errors(mode?)
o if avail., support events sent by the rig (eg. main freq has been changed,..)
o maybe add some misc functions like PTT signaling (through serial/parallel..)
o Well documented API, and Howto write a new rig backend
o ...
Good inspiration:
----------------
o SANE, with frontend/backend scheme, dynamic loading, autoconf, etc.
o struct net_device (Linux kernel) for the "void *priv" idea
o any rigctrl sources out there ?
Applications:
------------
o control your rig from your computer, can be handy if you've relocated
your UHF transceiver in the attic, to reduce cable loss.
o edit/backup/restore/extend the memory capacity of your rig
o software scanning (and huristics)
o s/w squelch
o real time spectral analysis and digital modes ( Frank has written some
working code for this) it does 40 frames / sec and no load,
really cool to see time and spectral info !!
He has based it on generic data engine and plugins !! output also to
small gtk window.
o doppler compensation in tracking mode (using mtrack satellite tracker?)
o let real time signal analysis drive freq/modes/etc.... (eg. PSK31 tuning)
o networked rigs, provides realtime (global) spectral analysis to
find (a common) quiet part of the band for a qso between 2 parties
o software controlled hopping (poor mans GSM frequency hopping)
also, must output hopping sequence to other rig to be useful
o computer assisted scanner
o <add here the application you thought it'd be impossible>
Capabilities:
------------
We have to find a way to code capabilities in the hamlib in order
to let the application know what this rig is able to do (before
attempting to do it and crash :).
I think some features can be coded using bit fields and masking.
Maybe we can distinguish between 3 states :
- Don't have this feature,
- Have it,
- Have it and can control (r/w) it remotly using the backend in hamlib
o freq ranges supported: rx/mode, tx/modes/power
o number of VFO, operations (set VFO separately, VFO A=B, switch, ..)
o freq granularity, tuning steps (-> array)
o SCAN functions (start, stop, ..)
o Split (cross band, duplex, ...)
o RIT (+- KHz)
o Memory scheme, what is stored in, quantity, call channels, scan edges
o ATT, P.AMP, AGC, NB, TONE, TSQL, COMP, VOX, BK-IN, ...
o Tuner control (internal, external, can control)
o Meter indication: Squelch condition, S-meter level, ALC, SWR
o Number of antennas (which band ?) and selection
o available "set mode" items (ie. rig setup), and provide a way to modify them
o DSP ?
o max memory channel
o per rig timeout/retry (can be overriden)
o Write some memory channel handling (name, mode, freq/vfo, duplex, split, ..)
Any other ideas?
Frank Singleton
Stephane Fillod
</pre> </div></div><!-- contents -->
<!-- Footer for Doxygen HTML files -->
<hr>
<div class="doxy">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11</small></address></div>
<p style="font-size: 75%">Hamlib documentation for version 3.0.1 <br />
Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br />
</p>
</body>
</html>
|