Metadata-Version: 2.1
Name: nsrt-mk3-dev
Version: 0.2.0
Summary: NX Solutions Work Log
Home-page: https://xanderhendriks.github.io/nsrt-mk3-dev
Author: Xander Hendriks
Author-email: xander.hendriks@nx-solutions.com
License: UNKNOWN
Project-URL: Bug Reports, https://github.com/xanderhendriks/nsrt-mk3-dev/issues
Project-URL: Source, https://github.com/xanderhendriks/nsrt-mk3-dev
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Requires-Dist: pyserial
Provides-Extra: dev
Requires-Dist: check-manifest ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Provides-Extra: doc
Requires-Dist: sphinx ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'

nsrt-mk3-dev
============

Introduction
------------
The NSRT_mk3_Dev is a new variant of the NSRT_mk3 series that introduces an open virtual Com port
communication protocol. That means that the instrument can be used on any platform that has a generic
driver to support the CDC (Communication) USB class. Nowadays most platforms support that class,
including Windows, Mac and Linux.
That instrument is targeted at developers. Because its communication protocol is open, developers can
design their own application supporting the instrument.
In addition to the Com port, the NSRT_mk3_Dev can have an optional USB Audio interface to stream
the actual Audio signal captured by the microphone.

Usage
-----
1. Connect the NSRT mk3 dev to the computer

2. Check the virtual Com port under which it was enumerated:

    a. Windows: WIN + type: Device Manager

       Look for the extra device::

           USB Serial Device (COM20)

       Indicating the device can be found on COM20

    b. Linux: type:: 

            dmesg | grep -i usb

       and look for::

           [22339.508035] usb 1-1.2: Product: NSRT_mk3_Dev
           [22339.508044] usb 1-1.2: Manufacturer: Convergence Instruments
           [22339.520711] cdc_acm 1-1.2:1.1: ttyACM0: USB ACM device

       Indicating that the device can be found on /dev/ttyACM0

3. Install the package::

       pip install nsrt-mk3-dev

4. Create a script to access the device::

       import nsrt_mk3_dev

       nsrt = nsrt_mk3_dev.NsrtMk3Dev('COM20')
       model = nsrt.read_model()

       serial_number  = nsrt.read_sn()
       firmware_revision = nsrt.read_fw_rev()
       date_of_birth = nsrt.read_dob()
       date_of_calibration = nsrt.read_doc()
       print(f'Sound level meter model: {model}\n'
             f'serial number: {serial_number}, firmware revision number: {firmware_revision}\n'
             f'manufactured on: {date_of_birth}, calibrated on: {date_of_calibration}')

       leq_level = nsrt.read_leq()
       weighting = nsrt.read_weighting()
       weighted_level = nsrt.read_level()
       print(f'current leq level: {leq_level:0.2f} dB, {weighting} value: {weighted_level:0.2f}')

Test
----
The GIT repo contains a pytest which tests all the API functions. The test_device_parameters testcase will need to be 
updated to the device under test as it reads out device specific data. To execute the test run the following command 
in the GIT repo's root directory::

    pytest tests

