Skip to content
Snippets Groups Projects
Select Git revision
  • old-master
  • master default protected
  • ballinvoher protected
3 results

gqgmc.hh

Blame
  • user avatar
    Phil Gillaspy authored
    32d4616d
    History
    gqgmc.hh 25.33 KiB
    // **************************************************************************
    // File: gqgmc.hh
    //
    // Author:    Phil Gillaspy
    //
    // Last Modified: 04/26/2012
    //
    // Description:
    //    Declare the class and its methods describing the capabilities
    //    of the GQ Electronics LLC Geiger-Muller Counter (GQ GMC).
    //    This code covers the GMC-300 and later models.
    //
    // INTRODUCTION:
    //
    // Detailed design documentation is embedded in the source code files.
    // The intent is to combine source code and documentation such that a
    // separate design document is unnecessary. The author's philosophy is that
    // the source code should be considered as part of the design documentation.
    // This philosophy was developed over many years of experience wherein the
    // design document replicated so much information that was in the source
    // code, that doing so generated needless opportunity for inconsistency.
    // It is widely recognized that replicating information only increases
    // the chances for human error and undue maintenance hardship.
    //
    // Since the design documentation will be embedded in the source code,
    // the organization is constrained to the C/C++ compilation requirements
    // that there exist a separate include and source body files. However,
    // the author's philosophy is that sofware engineers find the separation
    // of information between two files to be an annoyance. It would be much
    // preferred that all information were located at the point where the
    // software engineer needs to read the code to understand its operation,
    // in other words, the source body file (.c,.cc). However, the C/C++
    // convention of separate header and body files precludes that idealism.
    // It will be realized that various C/C++ constructs and objects appear
    // in both the header and source body files. So the following convention
    // is followed as to where to embed the documentation: the documentation
    // should appear where the object is defined, not where it declared.
    // For example, an enumeration which must be defined as publicly
    // visible, will be defined only in the header file and consequently
    // should be documented in the header file. As another example, a
    // class method is declared in the header file, but defined in the source
    // file. Therefore the bulk of the documentation for the method should
    // be placed in the source file.
    //
    // The documentation presented here will not cover any nuclear physics
    // technical aspects of the GQ Geiger-Muller counter.
    //
    // GQ GEIGER-MULLER FEATURES
    //
    // The discussion of the GQ LLC geiger counter is drawn principally
    // from the the GMC-300 model with firmware revision 2.15 and later.
    // The GMC-300 records high energy particles which when passing through
    // geiger-muller tube ionize the gas and create a transient current.
    // Each transient pulsed current is considered a 'count'.
    // The basic measured form of the radiation is reported in terms of
    // counts per second, counts per minute, or the counts per minute
    // averaged over an hour. The GMC-300 is also capable of recording
    // the aforementioned measures in a history buffer of 64K bytes.
    // The GMC-300 provides a USB interface which, however, is physically
    // and logically implemented as a traditional RS-232 serial interface.
    // The GMC-300 provides a variety of commands to collect data and
    // set operational parameters. The reader is referred to the GQ
    // Electronics LLC GMC-200 User Manual for a more thorough
    // discussion of the its features.
    //
    //
    // SOFTWARE LICENSE STATEMENT
    //
    // This software contained in the gqgmc.hh and gqgmc.cc files are
    // licensed to the public domain under terms of the GNU GPL