Looking for the latest version? Download Stable 3.1.0 (1.3 MB)
Name Modified Size Downloads / Week Status
Totals: 3 Items   2.6 MB 3
README 2015-03-02 6.0 kB 11 weekly downloads
g7ctrl-3.1.0.tar.xz 2015-03-02 1.3 MB 11 weekly downloads
g7ctrl-3.0.0.tar.xz 2015-01-11 1.3 MB 11 weekly downloads
g7ctrl v3.1.0 (march 2015) =========================== **General notes for this release** ----------------------------------- This release bring some notable new features: 1. Each connected client can now independently have different connected devices. In previous releases all clients talked to the same device when issuing commands and if one client changed the target the other clients were also changed since the target device was a server setting. 2. The server can now manage several connected devices over USB and the client can select which of the connected USB devices to talk to. In addition when a USB device is connected the ID of the device is read and first after the ID has been successfully read is the device available for commands. 3. The last feature that will allow the user to specify a proximity range for when the location lookup should match an existing address. The proximity is specified as a new value (in meters) in the config file. Since the accuracy of the GPS is rarely better than 15 meters it is un-necessary to send a request to Google if the location is only different in the last digit or so in the received coordinates. The distance calculation uses the "Haversine" method (Great circle) to calculate the distance between two locations. 4. Summary of new/modified commands introduced in this release Server commands: * .target - List/Set device target connected over GPRS * .usb - List/Set device target connected on a USB port * .ld - List all connected devices * -lc - List all connected command clients Device commands: * get address - Return approx. street address for current location * @@CMD(arg1,arg2, ...) New syntax to give non-interactive commands User visible changes: --------------------- - Manual updated to RA13 to cover all new additions in 3.1.0 - A new command "get address" was introduced which will get the latest location from the device as a street address. - It is now possible to enter non-interactive commands with the syntax @@CMD(arg1,arg2,...) Example: @@LED(1) The syntax is the exact same as how presets are specified. This makes it faster to enter more complex command for experienced user by bypassing the question/answer process when using the ordinary command entering process. This is further documented in the manual. . The new command ".target" replaces the old ".use" to specify which device should receive the commands. This targets a device connected over GPRS - The new server command ".usb" is used to specify which USB port to talk to in case multiple devices are connected. It is also used to list devices currently connected on USB - The ".lc" behavior is modified to only list command connections - The new server command ".ld" is used to list connected devices over both USB and GPRS - Each command client now have an individual connection state so each connected client can talk to a different device - Multiple USB devices can be connected and managed - The device ID of connected devices over USB is read upon connection. NOTE this also introduces a slight delay which also better indicates the time it tales for the device to establish a USB serial simulation so the device ID can be read back. It takes about 20s for the device to set up . - Added "address_lookup_proximity" config setting to allow setting how close a cache match must be in order to be considered a match for a cached street address. - Allow multiple commands in the same string for batch shell processing with "g7sh -e". Commands are separated with a ";" character For example: g7sh -e ".ver;db size;db mailcsv;" Commands with arguments are not yet supported. - Updated documentation to reflect changes in 3.1.0. Updated troubleshooting guide and some more code statistics in the technical appendix. - Some minor esthetic updates: - Extra blank line in reply after listing preset removed - Extra blank line in reply after sending mail with exported db removed - Title in mails sent on on new device connection and events harmonized - Some minor updates of default values in the config file - The timeout value for receiving command replies over GPRS was increased since it sometimes take up to 30s to receive a reply. Bugs fixed: ----------- - A number of theoretical buffer overruns was fixed (detected by Coverity scan) - The translation to human readable text would always show "Off" for binary commands. - The translation of the device error code to human text was incorrect for the case when the command name was not included in the reply (as the protocol specification wrongly states it always should be.) - On some occasions the assumption was made that basename() does not change its argument (glibc - style since the code is built with _GNU_SOURCE defined). Unfortunately this is an incorrect assumption if both libgen.h and string.h is included in the same *.c file even if _GNU_SOURCE is defined! - If the g7shell was terminated with Ctrl-C then the terminal could be left in a confused state and require a "reset" due to readline() signal handling not being properly cleaned up. - A few minor spelling errors in comments and docs was fixed Internal changes (visible for developers and packagers): -------------------------------------------------------- - The xstrsplitfields() function has changed behavior so that it will preserve spaces in the split strings. - Added buffer overrun checks in xstrsplitfields() for extra safety - The signature for the geodetic distance calculations functions have been updated to reflect there const'ness - Renamed worker.[ch] -> socklistener.[ch] - Some major refactoring in all command methods due to the need to include the client context which is unique for each command thread. - A new structure usb_conn_status have ben introduced to keep track of multiple USB devices.
Source: README, updated 2015-03-02