syphon --------------------------------------------------------------------- # ... "Still learnin how to pray, tryin hard not to stray. Try to # see things your way; still learnin how to pray. Still # learnin how to trust; it's so hard to open up. But I'd do # anything for a Penguin, still learnin how to trust. # Still learnin how to bend, and how to let you in. # In a world fulla tears, we'll conquer all our fears. # Still learnin how to fly, I wanna take you high. # I'll be there till the end, I'll be your Programmer # and your friend... just learnin how to bend..." # -- on the topic of this recent 'all things must run in # Windows' directive. --------------------------------------------------------------------- # ... syphon is a telnet capture utility. it is specifically # designed to read a 'line at a time' from devices such as # barcode readers or scales, which will output a EOL terminated # string upon event occurance. --------------------------------------------------------------------- # ... syphon functions over ethernet, relying upon 'serial over eth' # devices, which are becoming more and more comon. syphon # will auto-reconnect at a specified interval if no data is # gathered, ensuring that you have reliability after events such # as device failure / power loss / etc. --------------------------------------------------------------------- # ... syphon is based on blips. that is to say that blips was a # proof of concept, proving that 'it could be done', but was # also very limited and had absolutely no fault recovery. # syphon seeks to perform all the functions of blips, but with # automated fault recovery and much greater speed / efficiency. --------------------------------------------------------------------- COPYRIGHT # THE FOLLOWING 10 LINES MAY NOT BE REMOVED, but may be # appended with additional contributor info. syphon Copyright (C) 2008-2011 V. Spinelli for Sorrento Lactalis American Group This program comes with ABSOLUTELY NO WARRANTY; As this program is based on [and has dependancies] the content of GPL and LGPL works, GPL is preserved. This is open software, released under GNU GPL v3, and you are welcome to redistribute it, with this tag in tact. ... http://www.sorrentolactalis.com/ ... http://www.spinellicreations.com/ A copy of the GPL should be included with this work. If you did not receive a copy, see... http://www.gnu.org/licenses/gpl-3.0.txt --------------------------------------------------------------------- --------------------------------------------------------------------- CONTACT Author V. Spinelli Email: Vince@SpinelliCreations.com Site: http://spinellicreations.com Handle: PoweredByDodgeV8 Copyright Holder Sorrento Lactalis American Group Email: http://www.sorrentocheese.com/about/contact.html Site: http://www.sorrentolactalis.com --------------------------------------------------------------------- REVISION HISTORY... --------------------------------------------------------------------- --------------------------------------------------------------------- ENTRY NAME V REV NOTES ----- ---- - --- ----- 0 blips 0.0-0-a n/a none, just getting started 1 blips 0.0-1-a n/a restructured to export opc data to mod_openopc_2 daemon write service, cleaned up some errors and problems, successfully ran for a few hours, but telnet will blow itself up if there is a connection loss. 2 syphon 0.1-0-a n/a ported to python, added 'timeout' interval for no-data-received and auto-reconnect, cleaned up export function to mod_openopc_2, passed 30 day run test, although this is still an 'alpha' build, it is stable. 3 syphon 0.1-1-a n/a the port is cleaned up to allow full cross platform compatability, and syphon runs as 'platform agnostic'. 4 syphon 0.1-1-b 1 added time echo to several system feedback strings. 5 syphon 0.1-1-c 2 removed requirement to hardcode global options file. syphon now auto-declares its directory structure based on OS type. 6 syphon 0.1-2 n/a deprecated procname in favor of setproctitle library 7 syphon 0.1-3 n/a added integration with S.E.E.R. CheckWeigher Model in the form of RUN_SEER_CHECKWEIGHERMODEL_V1, which is compatiable with version 1 (Eudamidas), and should be with future versions as well. added requirement (optional if using this feature) for MySQL-python. 8 syphon 0.1-4 n/a enhancement of v 0.1-3, where a 'cheat' is now permitted for unknown or variable length terminal server data / input data. if you have a device that outputs a variable length string, but always ends with the same 'YOURENDOFLINE' characters, then you can simply start where you like and end at some ridiculously high character number, like 1000 or 99. The string (or number) will auto-truncate. 9 syphon 0.1-4 a added variable declaration to helper script in order to shorten up the quick-start command line length and also added requirement of nohup to properly fork into background and remain persistent. added bit bucket dump to clean up the screen. 10 syphon 0.1-4 b removed variable declaration from helper script, was posing problems... but the 'long form' for forking works wonderfully. 11 syphon 0.1-5 n/a cleaned up readme file. eliminated all helpers, such that an AUTO_LAUNCH routine was added. 12 syphon 0.1-5 a bugfix - parsing strings based upon stand and end character would return whole original string which was a variable naming error. fixed. 13 syphon 0.1-6 n/a added compatability with SEER_CHECKWEIGHERMODEL_V2 which logs the operator (person in control) of each production line (scale / checkweigher) 14 syphon 0.1-6 a bugfix - mysql keepalive instruction was unsuccessful, or at least that is why we believe that after long periods of inactivity syphon will fail to resume data logging after activity starts up again (mysql socket timeout). The syphon_fault_unk() function is deprecated by syphon_fault_recycle() function, which recycles both the telnet connection and the mysql db socket connection every 5 minutes during periods of inactivity. It also handles faulted instructions by dumping and then re-establishing telnet and db comm. 15 syphon 0.1-7 n/a added compatability with SEER_WARRIOR module when utilizing the LaBLS ('lactalis_bartender_labeling_system') proprietary plugin. Routine called 'RUN_SEER_WARRIOR_ EOR_ACQUIRE' and 'RUN_SEER_WARRIOR_EOR_EXECUTE'. Compatiable with WARRIOR v.2 and SEER v.1.43 (release). ---------------------------------------------------------------------