Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit f80eefc0873a0016f9f3ff73f9347741747968ef
Author: bot-edgepi <[email protected]>
Date:   Fri Dec 30 00:14:58 2022 +0000

    Bump version: 1.1.16 → 1.1.17

commit f81e27eb686b2951df3c96876ec86386f258fa67
Merge: bff88db bf8304c
Author: sjpark608 <[email protected]>
Date:   Thu Dec 29 16:14:08 2022 -0800

    Merge branch 'dev' into staging

commit bf8304c7b1b7c6e9256bff2c01dc18040b80fe60
Author: sjpark608 <[email protected]>
Date:   Thu Dec 29 16:13:17 2022 -0800

    Digital out integration test (#228)

    * creating integration test

    * Update test_digital_out.py

    want to test state not direction

    * Update test_digital_out.py

    lint fix

commit bff88db446af57362bbca761ca737d1f64e80886
Merge: ac309d8 d51186d
Author: sjpark608 <[email protected]>
Date:   Thu Dec 29 15:54:53 2022 -0800

    Merge branch 'dev' into staging

commit d51186da8e7be63a0fa23012b1619e376da59560
Author: sjpark608 <[email protected]>
Date:   Thu Dec 29 15:53:43 2022 -0800

    Update .bumpversion.cfg (#227)

    bump version config with quotation causes an issue when fetching the updated version of dev after the staging is merged. The config file is changed to remove the quotation.

commit feae067061d5497f4f9ed4f766220a5b19e19f10
Author: bot-edgepi <[email protected]>
Date:   Thu Dec 29 23:33:29 2022 +0000

    Bump version: 1.1.15 → 1.1.16

commit ac309d8840188fab8b643f5fe11c511172d26929
Author: bot-edgepi <[email protected]>
Date:   Thu Dec 29 23:33:29 2022 +0000

    Bump version: 1.1.15 → 1.1.16

commit 7586072dfede6203f9478303074eac9a96f82bf2
Merge: d504342 f777fca
Author: sjpark608 <[email protected]>
Date:   Thu Dec 29 15:31:58 2022 -0800

    Merge branch 'dev' into staging

commit f777fca324989be696245333faffd0745efcd7d9
Author: sjpark608 <[email protected]>
Date:   Thu Dec 29 15:22:56 2022 -0800

    Digital_output module issue fix (#225)

    * Update edgepi_gpio_expander.py

    print statement

    * re-name gpio close function

    * Update gpio_configs.py

    #224

    * Readme edit

    #222

commit e79fa2d7e65725ad4b84201427b858b2ca0c7802
Author: sjpark608 <[email protected]>
Date:   Thu Dec 22 10:45:34 2022 -0800

    Eeprom todo added (#208)

    * todos

    * handling todos

    * Protobuf mapping class created to convert the data class into a regular class

    * Update test_edgepi_dac.py

    DAC unittest passing

    * added updated pb file

    - added serialized pb for testing
    - added hw component in tc and rtd
    - added diff calib for adc
    - changed pb mapping dataclass to a standalone class
    - modified edgepi_dac to accommodate the importing
    - edgepi_adc to accommodate the importing

    * fixed no-name-in-module

    * added link to the issue related to protobuf and pylint, added more logging

    * fix linting

    * Update edgepi_eeprom.py

    linting fix

commit 1adb982afc5b61ffa44459ffb2f3efc3f8cf7bb5
Author: bot-edgepi <[email protected]>
Date:   Sat Dec 17 01:51:58 2022 +0000

    Bump version: 1.1.14 → 1.1.15

commit d5043423902ad84f50d4d14434b5460c7a24ec10
Author: bot-edgepi <[email protected]>
Date:   Sat Dec 17 01:51:58 2022 +0000

    Bump version: 1.1.14 → 1.1.15

commit 473d6f613a679977b7cd5c41e35ecbadb0c39a06
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:51:16 2022 -0800

    Single Staging Job (#218)

    * Update Dev Package Version (#201)

    * enable workflow

    * bump version for next staging run

    * Update README.md (#203)

    * refactor merge to dev workflow (#205)

    * Cherry Pick Bump Commit (#210)

    * add test cherry pick workflow

    * re-remove merge action (#212)

    * refactor staging workflow (#213)

    * fix syntax error (#215)

    * Bump version: 1.1.13 → 1.1.14

    * refactor to single job (#217)

    * refactor to single job

    * rename job

    Co-authored-by: bot-edgepi <[email protected]>

commit f162a17063f714942f210fcd39f033a97038c9c5
Merge: 8545e00 231b313
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:50:09 2022 -0800

    Merge branch 'staging' into dev

commit 8545e009def9a952c3e016aae79ec7a987b87177
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:46:22 2022 -0800

    refactor to single job (#217)

    * refactor to single job

    * rename job

commit 2520c06b0fb2c704c9252316091fd812be6f85b1
Author: bot-edgepi <[email protected]>
Date:   Sat Dec 17 01:23:55 2022 +0000

    Bump version: 1.1.13 → 1.1.14

commit 231b313b7eb7bcf0198aff74cd06420bb4f3a2a2
Author: bot-edgepi <[email protected]>
Date:   Sat Dec 17 01:23:55 2022 +0000

    Bump version: 1.1.13 → 1.1.14

commit 07ecf0d9fa64c49db12b349165397395dddd0831
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:23:35 2022 -0800

    Fix Workflow Syntax (#216)

    * Update Dev Package Version (#201)

    * enable workflow

    * bump version for next staging run

    * Update README.md (#203)

    * refactor merge to dev workflow (#205)

    * Cherry Pick Bump Commit (#210)

    * add test cherry pick workflow

    * re-remove merge action (#212)

    * refactor staging workflow (#213)

    * fix syntax error (#215)

commit 3b4fca9c06486f3708fb623a3464e5613fad8903
Merge: 620ba08 355b9f5
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:22:00 2022 -0800

    Merge branch 'staging' into dev

commit 620ba084c27752ff468b2c81a0ac66f0a472f0db
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:19:14 2022 -0800

    fix syntax error (#215)

commit 355b9f5008bca1bfcdbd5b18d25b12375aa97efe
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 17:00:15 2022 -0800

    Refactor Staging Workflow (#214)

    * Update Dev Package Version (#201)

    * enable workflow

    * bump version for next staging run

    * Update README.md (#203)

    * refactor merge to dev workflow (#205)

    * Cherry Pick Bump Commit (#210)

    * add test cherry pick workflow

    * re-remove merge action (#212)

    * refactor staging workflow (#213)

commit 89c4f1429eee51764e97c76317ab094ae83a7131
Merge: cb2dc70 0c9d509
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 16:58:30 2022 -0800

    Merge branch 'staging' into dev

commit cb2dc7056e2fb7f7298471ae3661728b06b2641a
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 16:55:28 2022 -0800

    refactor staging workflow (#213)

commit 0c9d5094250b4d367a5ff113e1fe518251f82e82
Author: bot-edgepi <[email protected]>
Date:   Sat Dec 17 00:19:02 2022 +0000

    Bump version: 1.1.12 → 1.1.13

commit 0c7a0d364dc40078a58fcef8440979c58de2933e
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 16:18:08 2022 -0800

    Cherry Pick Bump Commit (#211)

    * Cherry Pick Bump Commit (#210)

commit 475eb5dbb40628fcff74a093f6a62e6ff6655134
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 16:16:25 2022 -0800

    re-remove merge action (#212)

commit 197a29fe3a13604565e5c4bdaab35212274e197c
Merge: 6080e59 157cf13
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 16:04:39 2022 -0800

    Merge branch 'staging' into dev

commit 6080e59fddaafc95beed0f857b7d77b8969d339a
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 16:02:41 2022 -0800

    Cherry Pick Bump Commit (#210)

    * add test cherry pick workflow

commit 157cf130fc80f52bd0f6169563394055b8a3790e
Author: bot-edgepi <[email protected]>
Date:   Fri Dec 16 20:40:57 2022 +0000

    Bump version: 1.1.11 → 1.1.12

commit 68fa696b957f14bd268a0c4ce2b5db9d99dd276b
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 12:40:07 2022 -0800

    Refactor Merge to Dev Workflow (#206)

    * refactor merge to dev workflow (#205)

commit f36d91a5eccc80ef080f31f23c099158c6be29b0
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 12:37:29 2022 -0800

    refactor merge to dev workflow (#205)

commit 812fb04e178b5ce4f72d1e40461db9844ee5c628
Author: bot-edgepi <[email protected]>
Date:   Fri Dec 16 19:48:26 2022 +0000

    Bump version: 1.1.10 → 1.1.11

commit 2e8e22a5f24293ec4f24e7f232b800479afb037c
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 11:47:44 2022 -0800

    Merge Staging to Dev Workflow (#204)

    * Update Dev Package Version (#201)

    * enable workflow

    * bump version for next staging run

    * Update README.md (#203)

commit 653782b023a78afb19451fd472690280cd1ee5ba
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 11:17:21 2022 -0800

    Update README.md (#203)

commit 3ca3dadf2630e63eb69e2e78a86f4dd27547e957
Author: flavius-t <[email protected]>
Date:   Fri Dec 16 10:42:02 2022 -0800

    Update Dev Package Version (#201)

    * enable workflow

    * bump version for next staging run

commit 8f13aef6680180cef8afa2b80859061e56127726
Author: bot-edgepi <[email protected]>
Date:   Thu Dec 15 23:22:09 2022 +0000

    Bump version: 1.1.9 → 1.1.10

commit 1ba5f5606e07db62c53bcd4b46cc914be97a479a
Merge: b9f816e 9700835
Author: flavius <[email protected]>
Date:   Thu Dec 15 15:20:47 2022 -0800

    Merge branch 'dev' into staging

commit 970083563304a1b444aaa2dbf9b058c55f3275dd
Author: flavius-t <[email protected]>
Date:   Thu Dec 15 15:17:57 2022 -0800

    remove integration test workflow (#197)

    * remove integration test workflow

    * bump versions due to failed staging run

commit b9f816e831225f36bc9015e90fe4b285e3b8ec88
Author: bot-edgepi <[email protected]>
Date:   Thu Dec 15 23:08:00 2022 +0000

    Bump version: 1.1.8 → 1.1.9

commit d4f9b30c5ebc7b89669a34d24bdb54f332ef16a6
Author: flavius-t <[email protected]>
Date:   Thu Dec 15 15:07:06 2022 -0800

    Publishing Workflow Fixes (#196)

    * Fix Publishing Workflows (#192)

    * new auto bump method

    * add release workflow

    * re-add package build dependencies (#193)

    * Disable Integration Test Workflow (#195)

    * change python to python3

    * update test path

    * disable integration test workflow

    Co-authored-by: bot-edgepi <[email protected]>

commit 7a444d8993e276356e0f51e00a45e175df5fd2de
Author: flavius-t <[email protected]>
Date:   Thu Dec 15 15:01:36 2022 -0800

    Disable Integration Test Workflow (#195)

    * change python to python3

    * update test path

    * disable integration test workflow

commit 8e3307220f6472f0ac1f970ae198917b2dc7acaf
Author: flavius-t <[email protected]>
Date:   Thu Dec 15 15:00:03 2022 -0800

    re-add package build dependencies (#193)

commit 5112119c88cc64e16ac3b36cc977c0e65d84ab2d
Author: flavius-t <[email protected]>
Date:   Thu Dec 15 14:12:49 2022 -0800

    Fix Publishing Workflows (#192)

    * new auto bump method

    * add release workflow

    Co-authored-by: bot-edgepi <[email protected]>

commit 823931c1efdaa942c28ff67fcdcacea42db9f1eb
Merge: 79b70d3 6fc38f4
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 18:10:55 2022 -0800

    Merge branch 'main' into staging

commit 79b70d301f92338aed4c5484ace96725350fccc9
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 18:08:49 2022 -0800

    Fix README (#187)

    * update README

    * remove install info from tc readme

    * TC merge for housekeeping (#44)

    * add fault status reading

    * add fault mask configuration

    * tc module restructuring

    * update documentation

    * update decimal bit constants

    * Tc dev fixes (#36)

    * refactor fault reading

    * add human readable Fault printing

    * add option for less verbose fault reading

    * filter out normal status Faults

    * refactor fault masking to set individual masks

    * Gpio merge for house keeping (#42)

    * gpio periphery being added

    * gpio periphery being added

    * rebase gpio branch

    * created gpio folder and files and tests

    * Feature branch git action added, gpio command and constants are added

    * github action yml changed

    * testing GPIO

    * gpio bias keyword takenout

    * path typeError troubleshooting

    * gpio in progress #20

    * disable push test until fixing the bug

    * Update gpio.py

    add all keyword args

    * Update gpio.py

    passing arguments without keyword

    * Update gpio.py

    * gpio test issue resolved #20

    * working on constants

    * Adc rebased and merge to dev (#43)

    * added constants #17

    * adding Methods to ADCCommand class #17

    * added write_register method, testing exception as well #17

    * added dataclasses for register configurations, tests are added for testing immutable class #17

    * added more registers and tests, #17

    * added workflow for CI, #17

    * modifying linting requirements

    * testing

    * changed global user and email

    * user name testing

    * added constants #17

    * adding Methods to ADCCommand class #17

    * added write_register method, testing exception as well #17

    * added dataclasses for register configurations, tests are added for testing immutable class #17

    * added more registers and tests, #17

    * modifying linting requirements

    * testing

    * changed global user and email

    * user name testing

    * modified readme back to original state

    Co-authored-by: SJ Park <[email protected]>

    * Update README module links (#45)

    Adding module link to ADC now that it is merged to dev, and updating other links to use relative link (so it links to folders on the same branch as top-level readme they're being accessed from)

    * refactor utilities to support non Enum set_config args (#47)

    * refactor utilities to support non Enum set_config args

    * added gpio_cofings.py to add configuration data class for dac #40 (#46)

    * added gpio_cofings.py to add configuration data class for dac #40

    * changed function description

    * PR #46  fixes

    * steven can't write :(

    * filter_dict by value (#53)

    * add names to test and lint workflows (#56)

    * add names to test and lint workflows

    * remove pytest-gpio workflow

    * Pytest fix (#57)

    * Update adc_commands.py

    updated adc_command to fix the pytest issue

    * Update adc_commands.py

    updated adc_command to fix the pytest issue

    * Edgepi gpio dac config (#55)

    * gpio-dac-config being implemented

    #20,  #48, #49, #51, #16

    * testing I2C

    * 1. Added gpio config #48
    2. edgepi_gpio init method: instantiate super class when I2C gpio group selected and generate pin list #48 #51 #52
    3. I2C mocking class for window and Linux environment, #16

    * gpio module configurations packed as enum

    using enum to check configuration by iterating through the enum class

    * filter_dict by value (#53)

    * add names to test and lint workflows (#56)

    * add names to test and lint workflows

    * remove pytest-gpio workflow

    * added mock for testing I2C

    * gpio-dac-config being implemented

    #20,  #48, #49, #51, #16

    * testing I2C

    * 1. Added gpio config #48
    2. edgepi_gpio init method: instantiate super class when I2C gpio group selected and generate pin list #48 #51 #52
    3. I2C mocking class for window and Linux environment, #16

    * gpio module configurations packed as enum

    using enum to check configuration by iterating through the enum class

    * added mock for testing I2C

    * combined repetitive dataclass

    fixed a problem with circular dependency

    * fixing pytest failures

    Co-authored-by: flavius-t <[email protected]>
    Co-authored-by: flavius-t <[email protected]>

    * TC Open Circuit (#59)

    * add open fault detection mode config

    * Fix Linting (#65)

    * Fix TestPyPi (#66)

    * TC Compute Conversion Time (#63)

    * add compute conversion time

    * refactor single_sample for time delay computation

    * update time conv docstrings

    * inflate time delays

    * TC Set Temperatures (#60)

    * add temperature setting to set_config

    * add cold junction temp override method

    * add temperature input validation

    * add update_registers_from_dict and test

    * add temperature range validation by tc type

    * add custom exceptions, expand tempcode testing

    * add convert from DecBits to float

    * add cold-junction overwrite error

    * TC Integration Tests (#70)

    * separate tests to unit and integration

    * add thermocouple integration tests

    * refactoring to support tc integration testing

    * Edgepi gpio transfer (#62)

    * fixed I2C.Message Mocking

    * tested transfer function and it is working

    * set default in progress

    #51, #52, #50, #48

    * more commands being added

    added more gpio state parameter in I2C info dataclass

    * Update edgepi_gpio.py

    added todo notes

    * set default in progress

    * Set default in progress

    another GPIO config added to I2CpinInfo dataclass
    adding helper methods
    read register
    and map register to dictionary

    * added reg helper class to generate the register dictionary. added another function to split pin list into two separate lists to check whether the gpio group uses two separate I2C expander

    * set-default need testing

    * set default tested

    * fixed I2C.Message Mocking

    * tested transfer function and it is working

    * set default in progress

    #51, #52, #50, #48

    * more commands being added

    added more gpio state parameter in I2C info dataclass

    * Update edgepi_gpio.py

    added todo notes

    * set default in progress

    * Set default in progress

    another GPIO config added to I2CpinInfo dataclass
    adding helper methods
    read register
    and map register to dictionary

    * added reg helper class to generate the register dictionary. added another function to split pin list into two separate lists to check whether the gpio group uses two separate I2C expander

    * set-default need testing

    * set default tested

    * Update edgepi_tc.py

    the __ was deleted by accident

    * tests not passing

    * testing fixed

    * Update test_edgepi_gpio.py

    fixed tests

    * requested changed from Farzad

    * Todos added

    * working on todos, changed pin list to be self-explanatory, need to work on __generate_default_reg_dict to be more intuitie

    * changed naming conventions and using dictionary instead of list for describing pins

    * fixing pylint

    * fixing linting issue

    * fix I2C test and pylint on linux

    * disabled E1101 to go work around the error from mock class

    * fixed lint and testing mock

    * Unit Test Fixes (#74)

    * separate peripherals testing to unit/integration

    * testing workflow changes

    * Edgepi gpio toggle (#75)

    * adding set_gpio function

    modified set_default and dgenerate default reg dict
    -instead of using list of dictionary, using dictionary format
    - set expander pin uses pin_name to set corresponding gpio
    #49

    * clear expander pin

    * Toggle gpio pin added

    #49

    * pylint passed"

    * adding set_gpio function

    modified set_default and dgenerate default reg dict
    -instead of using list of dictionary, using dictionary format
    - set expander pin uses pin_name to set corresponding gpio
    #49

    * clear expander pin

    * Toggle gpio pin added

    #49

    * pylint passed"

    * refactored for-loop

    test for __write_changed_values is not added since the function doesn't return any value and only execute the transaction

    * Readme added

    while working on the readme, i realized the order of AO_ENx pins were reversed. the order is fixed now

    * Update edgepi_gpio.py

    for loop replaced with a write change value method

    * Add Test Coverage (#79)

    * add code coverage to unit test workflow

    * add workflow status badges

    * DAC Interface (#77)

    * add set channel power mode

    * add set_gain_mode

    * add software reset

    * add readback

    * add code to voltage

    * integrate with gpio module

    * Dac calibration (#84)

    * refactoring calibration parameter dataclass #9

    * changed test fixture for dac_command

    * calibration parameter refactored

    * dac calibration refactored

    * Update test_edgepi_dac.py

    linter fix

    * added and edited suggested comments

    * Calibration module (#92)

    * #83 creating files

    * adding unittest

    * Update test_access_eeprom.py

    * added unittest & i2c transfer return change

    * adding calibration mapping and class

    * Update edgepi_calibration.py

    todo notes added

    * pylint fix

    * code review suggestions

    * Requested PR fixes

    - Nomenclature files
    - Reg address name change -> mem_addr
    - Device address is a constant now
    - EEPROM class

    * ADC Interface (#97)

    * Adding functions to calibration class (#98)

    * adding helper class for calibration process

    * adding functions to generate necessary dictionaries

    * pylint fixes

    * Update test_adc_state.py (#100)

    #99

    * Get/Set Individual Pin States (#105)

    * LED Module (#106)

    * Individual channel modification (#108)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * fixed voltage_to_code and code_to_voltage calculation

    * applying suggested fix

    * Issue102 dac (#109)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * adding get_state() dac

    #102 dac get_state is being added

    * fixed voltage_to_code and code_to_voltage calculation

    * passing pytest

    * changed the key from string name to number

    * changed get_state function #102 osensa/edgepi-device-manager/issues/3

    * pylint fix

    * Issue103 adc (#110)

    * adc testing being added

    * added test

    * Individual channel modification (#108)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * fixed voltage_to_code and code_to_voltage calculation

    * applying suggested fix

    * added todo and fixed pylint

    * used enums for pin names

    * Update edgepi_adc.py

    removed clear exapnder to avoid resetting of Ground reference when a new object is instantiated

    * Update edgepi_adc.py (#115)

    * Update edgepi_adc.py

    To Do added

    * Update edgepi_adc.py

    have a ruler set for pylint, and still fails on line-too-long :(

    * Gpio delete set default (#116)

    * deleting obsolete function

    * added unit tests for functions

    changed gpio pin ordering of DAC module

    * Loading DAC related Calibration parameter from the EEPROM (#114)

    * dummy functions added for calibration

    added logger
    added generate calib dictionary functions , logics to be implemented

    * unpacking packing added

    unpacking: from list of parameter that read from eeprom to a single value
    packing : from a value to a list of bytes to load to the eeprom

    * calib dictionary generation for dac

    * loading calib param added and tested

    * Update test_edgepi_calibration.py

    updated the unit test for get_calibration_dict. Other module test cases are deleted for now

    * PR#114 fix

    - added a dictionary of functions
    - added more description to the address constants

    * Remove ADC Init Configs (#119)

    * remove configs from adc init

    * rename to private method

    * Calibration dac (#120)

    * Update edgepi_dac.py

    adding calibration classes, need to check dictionary structure. implement DAC_GAIN parameter maybe needed

    * DAC calibration updated

    #111
    - loading of calibration parameter from eeprom
    - generation and get calibration dictionary
    - check dac_gain state before code2voltage or voltage 2code conversion
    - conversion formula edited to accommodate the calibration param and dac gain state

    * set/clear internal DAC gain

    #76

    * Update edgepi_dac.py

    PR #120  suggested fix

    * constant name change

    PR #120  suggested fix

    * ADC Differential Reads, RTD Mode (#118)

    * remove unused duplicate channel assignment code

    * fix pytest discovery error

    * add SPI debugging logs

    * change rtd_enabled check logic

    * diff read constants

    * rtd property check, set diff mode

    * unit test validate_no_rtd_conflict

    * unit test select_differential

    * ignore local test scripts

    * documentation additions

    * opcodes for RTD mode

    * doc updates, pytest config

    * unit test IDACMUX opcodes

    * unit test IDACMAG opcodes

    * fix IDACMAG opcode bug

    * fix REFMUX opcode bug

    * expand REFMUX opcode unit tests, renaming

    * uncomment adc config integration tests

    * integration test IDACMUX opcodes

    * integration test IDACMAG opcodes

    * integration test REFMUX opcodes

    * integration test select_differential

    * add idac channel 9

    * fix opcode name, failing unit test

    * add rtd mode enums

    * add rtd_mode, todos for get_state with caching

    * rename __get_rtd_en_status

    * fix rtd_mode logic, unit test

    * integration test rtd_mode, fix bug

    * Remap ADC Multiplexers (#122)

    * mux mapping set mux_n to AINCOM

    * refactor mux arg handling in __config

    * refactor None checking, update docstring

    * remove temporary test fix

    * remove unnecessary test cases

    * I2C set_msg function takes list of addresses (#128)

    * #127 added another type for addr parameter of set_read_msg and set_write_msg to accomodate a list of addresses

    * | was introduced in python 3.10 but the test automation is using python 3.9

    * Calibration suggestion (#129)

    * Nov1 code review suggestions

    * refactoring eeprom access module to accomodate the hardware change

    * EEPROM class is refactored to accomodate the larger memory size #125

    * pylint fix

    * Eeprom protobuf (#131)

    * protobuf implementation

    #126 #124

    * test added

    * pylint fix and update dependencies

    * Update requirements_test.txt

    * delete Todos

    * suggested fixes

    * suggested name fix

    * generate_calib_param dictionary added (#134)

    * generate_calib_param dictionary added

    * pytest fix

    * suggested fix

    - calib_params nomenclature
    - better description for docstring

    * suggest fix

    - calib param dataclass formation done in eeprom class
    - removed redundant methods and tests

    * ADC Get State (#132)

    * refactor get_state to EdgePiADC

    * refactor ADCModes

    * add get_register_map

    * use get_register_map for internal register reads

    * refactor ADCState

    * use new ADCState for getting state internally

    * add get mux states

    * refactor state query constants to module

    * ADC Calibration (#138)

    * added eeprom reading to load calibration parameter

    * diff/individual voltage read calibration handling #133

    Co-authored-by: sjpark608 <[email protected]>

    * fixed typing issue (#136)

    #135
    added test cases for checking the type

    * Add ADC2  (#139)

    * add adc-2 to voltage reads, set_config

    * dac conversion formula change (#146)

    * dac conversion formula change

    #143  #144
    - added updated serialized file for testing
    - updated formula for voltage2code code2voltage
    - updated unittest
    - added serialized read helper file
    - deleted outdated dac_calibration files

    * pylint fix

    * DAC Enum Args (#152)

    * refactor user interface to enum channel args

    * GPIO refactoring in progress (#156)

    * gpio module refactored

    #153

    * adding test cases fixing typos

    * gpio module refactor

    adding edgpi gpio test

    * fix suggestions

    * RTD Sampling (#160)

    * Hardware Tests (#162)

    * voltage read-write test

    * add test report to gitignore

    * custom approx comparator

    * move adc conversion time tests

    * update hardware test instructions

    * move integration tests to new folder

    * diff voltage tests

    * add adc_2 diff test

    * add rtd tests

    * bypass rtd validation in mux mapping

    * fix rtd temp calculation bug

    * GPIO module refactoring intermediate PR (#161)

    * refactoring generating pin dictionary to have generic dictionary #154 #155

    * generic object instantiation #154 #155

    * Update test_dac.py

    dict_pin changed to expander_pin_dict after refactor

    * lint fix

    * Gpio refactor 154 (#167)

    * added gpio exception, gpio write, need some testing on the hardware #166 #154 #155

    * added set direction in out function, get direction function

    * edgepi gpio methods gets enum values typed string

    * changed function name used in different modules

    * fixed pytest and pylint issues

    * added toggle pin

    * deleted unused module

    * PR #167 suggested fix

    - added __pin_name_check()
    - added more tests

    * GPIO DOUT pin list re-order (#169)

    * Update gpio_configs.py

    Forgotten change

    * fixed LED integration test

    * Get State Override Cache (#175)

    * add override cache to get state

    * Fix Read Voltage Validation (#176)

    * fix conv mode validation in read_voltage

    * Digital input module (#173)

    * adding din module and tests

    * Digital input reading #170

    * Added test parameters

    * added exception and testing

    * digital out module #171 (#172)

    * Main README Update (#181)

    * Update README.md

    * update sdk package naming

    * update version num

    * added README and re-naming module (#182)

    * LED Module README (#183)

    * Create README.md

    * Update README.md

    * Fix README (#186)

    Co-authored-by: sjpark608 <[email protected]>
    Co-authored-by: SJ Park <[email protected]>
    Co-authored-by: sjpark608 <[email protected]>

commit dcce9d8a95f9a8d14ad7894c7f38c72aee460e24
Merge: f64498e 00b0630
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 18:07:36 2022 -0800

    Merge branch 'staging' into dev

commit f64498ee080cdb2c25bd9c280ec6a1b5f2832f02
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 18:05:29 2022 -0800

    Fix README (#186)

commit 00b063000ef39950df224b770117a2f42fa80d16
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 17:43:12 2022 -0800

    Publish SDK (#184)

    * update README

    * remove install info from tc readme

    * TC merge for housekeeping (#44)

    * add fault status reading

    * add fault mask configuration

    * tc module restructuring

    * update documentation

    * update decimal bit constants

    * Tc dev fixes (#36)

    * refactor fault reading

    * add human readable Fault printing

    * add option for less verbose fault reading

    * filter out normal status Faults

    * refactor fault masking to set individual masks

    * Gpio merge for house keeping (#42)

    * gpio periphery being added

    * gpio periphery being added

    * rebase gpio branch

    * created gpio folder and files and tests

    * Feature branch git action added, gpio command and constants are added

    * github action yml changed

    * testing GPIO

    * gpio bias keyword takenout

    * path typeError troubleshooting

    * gpio in progress #20

    * disable push test until fixing the bug

    * Update gpio.py

    add all keyword args

    * Update gpio.py

    passing arguments without keyword

    * Update gpio.py

    * gpio test issue resolved #20

    * working on constants

    * Adc rebased and merge to dev (#43)

    * added constants #17

    * adding Methods to ADCCommand class #17

    * added write_register method, testing exception as well #17

    * added dataclasses for register configurations, tests are added for testing immutable class #17

    * added more registers and tests, #17

    * added workflow for CI, #17

    * modifying linting requirements

    * testing

    * changed global user and email

    * user name testing

    * added constants #17

    * adding Methods to ADCCommand class #17

    * added write_register method, testing exception as well #17

    * added dataclasses for register configurations, tests are added for testing immutable class #17

    * added more registers and tests, #17

    * modifying linting requirements

    * testing

    * changed global user and email

    * user name testing

    * modified readme back to original state

    Co-authored-by: SJ Park <[email protected]>

    * Update README module links (#45)

    Adding module link to ADC now that it is merged to dev, and updating other links to use relative link (so it links to folders on the same branch as top-level readme they're being accessed from)

    * refactor utilities to support non Enum set_config args (#47)

    * refactor utilities to support non Enum set_config args

    * added gpio_cofings.py to add configuration data class for dac #40 (#46)

    * added gpio_cofings.py to add configuration data class for dac #40

    * changed function description

    * PR #46  fixes

    * steven can't write :(

    * filter_dict by value (#53)

    * add names to test and lint workflows (#56)

    * add names to test and lint workflows

    * remove pytest-gpio workflow

    * Pytest fix (#57)

    * Update adc_commands.py

    updated adc_command to fix the pytest issue

    * Update adc_commands.py

    updated adc_command to fix the pytest issue

    * Edgepi gpio dac config (#55)

    * gpio-dac-config being implemented

    #20,  #48, #49, #51, #16

    * testing I2C

    * 1. Added gpio config #48
    2. edgepi_gpio init method: instantiate super class when I2C gpio group selected and generate pin list #48 #51 #52
    3. I2C mocking class for window and Linux environment, #16

    * gpio module configurations packed as enum

    using enum to check configuration by iterating through the enum class

    * filter_dict by value (#53)

    * add names to test and lint workflows (#56)

    * add names to test and lint workflows

    * remove pytest-gpio workflow

    * added mock for testing I2C

    * gpio-dac-config being implemented

    #20,  #48, #49, #51, #16

    * testing I2C

    * 1. Added gpio config #48
    2. edgepi_gpio init method: instantiate super class when I2C gpio group selected and generate pin list #48 #51 #52
    3. I2C mocking class for window and Linux environment, #16

    * gpio module configurations packed as enum

    using enum to check configuration by iterating through the enum class

    * added mock for testing I2C

    * combined repetitive dataclass

    fixed a problem with circular dependency

    * fixing pytest failures

    Co-authored-by: flavius-t <[email protected]>
    Co-authored-by: flavius-t <[email protected]>

    * TC Open Circuit (#59)

    * add open fault detection mode config

    * Fix Linting (#65)

    * Fix TestPyPi (#66)

    * TC Compute Conversion Time (#63)

    * add compute conversion time

    * refactor single_sample for time delay computation

    * update time conv docstrings

    * inflate time delays

    * TC Set Temperatures (#60)

    * add temperature setting to set_config

    * add cold junction temp override method

    * add temperature input validation

    * add update_registers_from_dict and test

    * add temperature range validation by tc type

    * add custom exceptions, expand tempcode testing

    * add convert from DecBits to float

    * add cold-junction overwrite error

    * TC Integration Tests (#70)

    * separate tests to unit and integration

    * add thermocouple integration tests

    * refactoring to support tc integration testing

    * Edgepi gpio transfer (#62)

    * fixed I2C.Message Mocking

    * tested transfer function and it is working

    * set default in progress

    #51, #52, #50, #48

    * more commands being added

    added more gpio state parameter in I2C info dataclass

    * Update edgepi_gpio.py

    added todo notes

    * set default in progress

    * Set default in progress

    another GPIO config added to I2CpinInfo dataclass
    adding helper methods
    read register
    and map register to dictionary

    * added reg helper class to generate the register dictionary. added another function to split pin list into two separate lists to check whether the gpio group uses two separate I2C expander

    * set-default need testing

    * set default tested

    * fixed I2C.Message Mocking

    * tested transfer function and it is working

    * set default in progress

    #51, #52, #50, #48

    * more commands being added

    added more gpio state parameter in I2C info dataclass

    * Update edgepi_gpio.py

    added todo notes

    * set default in progress

    * Set default in progress

    another GPIO config added to I2CpinInfo dataclass
    adding helper methods
    read register
    and map register to dictionary

    * added reg helper class to generate the register dictionary. added another function to split pin list into two separate lists to check whether the gpio group uses two separate I2C expander

    * set-default need testing

    * set default tested

    * Update edgepi_tc.py

    the __ was deleted by accident

    * tests not passing

    * testing fixed

    * Update test_edgepi_gpio.py

    fixed tests

    * requested changed from Farzad

    * Todos added

    * working on todos, changed pin list to be self-explanatory, need to work on __generate_default_reg_dict to be more intuitie

    * changed naming conventions and using dictionary instead of list for describing pins

    * fixing pylint

    * fixing linting issue

    * fix I2C test and pylint on linux

    * disabled E1101 to go work around the error from mock class

    * fixed lint and testing mock

    * Unit Test Fixes (#74)

    * separate peripherals testing to unit/integration

    * testing workflow changes

    * Edgepi gpio toggle (#75)

    * adding set_gpio function

    modified set_default and dgenerate default reg dict
    -instead of using list of dictionary, using dictionary format
    - set expander pin uses pin_name to set corresponding gpio
    #49

    * clear expander pin

    * Toggle gpio pin added

    #49

    * pylint passed"

    * adding set_gpio function

    modified set_default and dgenerate default reg dict
    -instead of using list of dictionary, using dictionary format
    - set expander pin uses pin_name to set corresponding gpio
    #49

    * clear expander pin

    * Toggle gpio pin added

    #49

    * pylint passed"

    * refactored for-loop

    test for __write_changed_values is not added since the function doesn't return any value and only execute the transaction

    * Readme added

    while working on the readme, i realized the order of AO_ENx pins were reversed. the order is fixed now

    * Update edgepi_gpio.py

    for loop replaced with a write change value method

    * Add Test Coverage (#79)

    * add code coverage to unit test workflow

    * add workflow status badges

    * DAC Interface (#77)

    * add set channel power mode

    * add set_gain_mode

    * add software reset

    * add readback

    * add code to voltage

    * integrate with gpio module

    * Dac calibration (#84)

    * refactoring calibration parameter dataclass #9

    * changed test fixture for dac_command

    * calibration parameter refactored

    * dac calibration refactored

    * Update test_edgepi_dac.py

    linter fix

    * added and edited suggested comments

    * Calibration module (#92)

    * #83 creating files

    * adding unittest

    * Update test_access_eeprom.py

    * added unittest & i2c transfer return change

    * adding calibration mapping and class

    * Update edgepi_calibration.py

    todo notes added

    * pylint fix

    * code review suggestions

    * Requested PR fixes

    - Nomenclature files
    - Reg address name change -> mem_addr
    - Device address is a constant now
    - EEPROM class

    * ADC Interface (#97)

    * Adding functions to calibration class (#98)

    * adding helper class for calibration process

    * adding functions to generate necessary dictionaries

    * pylint fixes

    * Update test_adc_state.py (#100)

    #99

    * Get/Set Individual Pin States (#105)

    * LED Module (#106)

    * Individual channel modification (#108)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * fixed voltage_to_code and code_to_voltage calculation

    * applying suggested fix

    * Issue102 dac (#109)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * adding get_state() dac

    #102 dac get_state is being added

    * fixed voltage_to_code and code_to_voltage calculation

    * passing pytest

    * changed the key from string name to number

    * changed get_state function #102 osensa/edgepi-device-manager/issues/3

    * pylint fix

    * Issue103 adc (#110)

    * adc testing being added

    * added test

    * Individual channel modification (#108)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * fixed voltage_to_code and code_to_voltage calculation

    * applying suggested fix

    * added todo and fixed pylint

    * used enums for pin names

    * Update edgepi_adc.py

    removed clear exapnder to avoid resetting of Ground reference when a new object is instantiated

    * Update edgepi_adc.py (#115)

    * Update edgepi_adc.py

    To Do added

    * Update edgepi_adc.py

    have a ruler set for pylint, and still fails on line-too-long :(

    * Gpio delete set default (#116)

    * deleting obsolete function

    * added unit tests for functions

    changed gpio pin ordering of DAC module

    * Loading DAC related Calibration parameter from the EEPROM (#114)

    * dummy functions added for calibration

    added logger
    added generate calib dictionary functions , logics to be implemented

    * unpacking packing added

    unpacking: from list of parameter that read from eeprom to a single value
    packing : from a value to a list of bytes to load to the eeprom

    * calib dictionary generation for dac

    * loading calib param added and tested

    * Update test_edgepi_calibration.py

    updated the unit test for get_calibration_dict. Other module test cases are deleted for now

    * PR#114 fix

    - added a dictionary of functions
    - added more description to the address constants

    * Remove ADC Init Configs (#119)

    * remove configs from adc init

    * rename to private method

    * Calibration dac (#120)

    * Update edgepi_dac.py

    adding calibration classes, need to check dictionary structure. implement DAC_GAIN parameter maybe needed

    * DAC calibration updated

    #111
    - loading of calibration parameter from eeprom
    - generation and get calibration dictionary
    - check dac_gain state before code2voltage or voltage 2code conversion
    - conversion formula edited to accommodate the calibration param and dac gain state

    * set/clear internal DAC gain

    #76

    * Update edgepi_dac.py

    PR #120  suggested fix

    * constant name change

    PR #120  suggested fix

    * ADC Differential Reads, RTD Mode (#118)

    * remove unused duplicate channel assignment code

    * fix pytest discovery error

    * add SPI debugging logs

    * change rtd_enabled check logic

    * diff read constants

    * rtd property check, set diff mode

    * unit test validate_no_rtd_conflict

    * unit test select_differential

    * ignore local test scripts

    * documentation additions

    * opcodes for RTD mode

    * doc updates, pytest config

    * unit test IDACMUX opcodes

    * unit test IDACMAG opcodes

    * fix IDACMAG opcode bug

    * fix REFMUX opcode bug

    * expand REFMUX opcode unit tests, renaming

    * uncomment adc config integration tests

    * integration test IDACMUX opcodes

    * integration test IDACMAG opcodes

    * integration test REFMUX opcodes

    * integration test select_differential

    * add idac channel 9

    * fix opcode name, failing unit test

    * add rtd mode enums

    * add rtd_mode, todos for get_state with caching

    * rename __get_rtd_en_status

    * fix rtd_mode logic, unit test

    * integration test rtd_mode, fix bug

    * Remap ADC Multiplexers (#122)

    * mux mapping set mux_n to AINCOM

    * refactor mux arg handling in __config

    * refactor None checking, update docstring

    * remove temporary test fix

    * remove unnecessary test cases

    * I2C set_msg function takes list of addresses (#128)

    * #127 added another type for addr parameter of set_read_msg and set_write_msg to accomodate a list of addresses

    * | was introduced in python 3.10 but the test automation is using python 3.9

    * Calibration suggestion (#129)

    * Nov1 code review suggestions

    * refactoring eeprom access module to accomodate the hardware change

    * EEPROM class is refactored to accomodate the larger memory size #125

    * pylint fix

    * Eeprom protobuf (#131)

    * protobuf implementation

    #126 #124

    * test added

    * pylint fix and update dependencies

    * Update requirements_test.txt

    * delete Todos

    * suggested fixes

    * suggested name fix

    * generate_calib_param dictionary added (#134)

    * generate_calib_param dictionary added

    * pytest fix

    * suggested fix

    - calib_params nomenclature
    - better description for docstring

    * suggest fix

    - calib param dataclass formation done in eeprom class
    - removed redundant methods and tests

    * ADC Get State (#132)

    * refactor get_state to EdgePiADC

    * refactor ADCModes

    * add get_register_map

    * use get_register_map for internal register reads

    * refactor ADCState

    * use new ADCState for getting state internally

    * add get mux states

    * refactor state query constants to module

    * ADC Calibration (#138)

    * added eeprom reading to load calibration parameter

    * diff/individual voltage read calibration handling #133

    Co-authored-by: sjpark608 <[email protected]>

    * fixed typing issue (#136)

    #135
    added test cases for checking the type

    * Add ADC2  (#139)

    * add adc-2 to voltage reads, set_config

    * dac conversion formula change (#146)

    * dac conversion formula change

    #143  #144
    - added updated serialized file for testing
    - updated formula for voltage2code code2voltage
    - updated unittest
    - added serialized read helper file
    - deleted outdated dac_calibration files

    * pylint fix

    * DAC Enum Args (#152)

    * refactor user interface to enum channel args

    * GPIO refactoring in progress (#156)

    * gpio module refactored

    #153

    * adding test cases fixing typos

    * gpio module refactor

    adding edgpi gpio test

    * fix suggestions

    * RTD Sampling (#160)

    * Hardware Tests (#162)

    * voltage read-write test

    * add test report to gitignore

    * custom approx comparator

    * move adc conversion time tests

    * update hardware test instructions

    * move integration tests to new folder

    * diff voltage tests

    * add adc_2 diff test

    * add rtd tests

    * bypass rtd validation in mux mapping

    * fix rtd temp calculation bug

    * GPIO module refactoring intermediate PR (#161)

    * refactoring generating pin dictionary to have generic dictionary #154 #155

    * generic object instantiation #154 #155

    * Update test_dac.py

    dict_pin changed to expander_pin_dict after refactor

    * lint fix

    * Gpio refactor 154 (#167)

    * added gpio exception, gpio write, need some testing on the hardware #166 #154 #155

    * added set direction in out function, get direction function

    * edgepi gpio methods gets enum values typed string

    * changed function name used in different modules

    * fixed pytest and pylint issues

    * added toggle pin

    * deleted unused module

    * PR #167 suggested fix

    - added __pin_name_check()
    - added more tests

    * GPIO DOUT pin list re-order (#169)

    * Update gpio_configs.py

    Forgotten change

    * fixed LED integration test

    * Get State Override Cache (#175)

    * add override cache to get state

    * Fix Read Voltage Validation (#176)

    * fix conv mode validation in read_voltage

    * Digital input module (#173)

    * adding din module and tests

    * Digital input reading #170

    * Added test parameters

    * added exception and testing

    * digital out module #171 (#172)

    * Main README Update (#181)

    * Update README.md

    * update sdk package naming

    * update version num

    * added README and re-naming module (#182)

    * LED Module README (#183)

    * Create README.md

    * Update README.md

    Co-authored-by: sjpark608 <[email protected]>
    Co-authored-by: SJ Park <[email protected]>
    Co-authored-by: sjpark608 <[email protected]>

commit 8e28a18f2475c2c60b198f3868f7b5b44a342e30
Merge: 521ab5a 5e10ef2
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 17:39:10 2022 -0800

    Merge branch 'staging' into dev

commit 521ab5aa8195db27f9abfa4bde059fcab4c0f82c
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 17:32:54 2022 -0800

    LED Module README (#183)

    * Create README.md

    * Update README.md

commit 5c4521b6b018e3381ca081e011adef229a09659d
Author: sjpark608 <[email protected]>
Date:   Tue Dec 13 17:31:54 2022 -0800

    added README and re-naming module (#182)

commit d569548bcf4d7f0c96a1929f8a94a395b70ab520
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 15:48:29 2022 -0800

    Main README Update (#181)

    * Update README.md

    * update sdk package naming

    * update version num

commit 8abe121ec609643d52ad47739d1608f27c520edb
Author: sjpark608 <[email protected]>
Date:   Tue Dec 13 15:14:57 2022 -0800

    digital out module #171 (#172)

commit 7d41626b475cf37fab374819370ce885a12b0a84
Author: sjpark608 <[email protected]>
Date:   Tue Dec 13 15:14:34 2022 -0800

    Digital input module (#173)

    * adding din module and tests

    * Digital input reading #170

    * Added test parameters

    * added exception and testing

commit 903d86cf40d94c633c58c04ea0d25e71d5fd1255
Author: flavius-t <[email protected]>
Date:   Tue Dec 13 14:50:37 2022 -0800

    Fix Read Voltage Validation (#176)

    * fix conv mode validation in read_voltage

commit 7992c80f507878b662ecabd1f71de0fbc18bbe7c
Author: flavius-t <[email protected]>
Date:   Mon Dec 12 13:01:38 2022 -0800

    Get State Override Cache (#175)

    * add override cache to get state

commit be9ed27582c5865240410bb3c51f207ac81b5bf7
Author: sjpark608 <[email protected]>
Date:   Thu Dec 8 14:50:43 2022 -0800

    GPIO DOUT pin list re-order (#169)

    * Update gpio_configs.py

    Forgotten change

    * fixed LED integration test

commit 7c5cd6a6e7ed91a2c4525ae93727f2433c5c4576
Author: sjpark608 <[email protected]>
Date:   Thu Dec 8 11:34:25 2022 -0800

    Gpio refactor 154 (#167)

    * added gpio exception, gpio write, need some testing on the hardware #166 #154 #155

    * added set direction in out function, get direction function

    * edgepi gpio methods gets enum values typed string

    * changed function name used in different modules

    * fixed pytest and pylint issues

    * added toggle pin

    * deleted unused module

    * PR #167 suggested fix

    - added __pin_name_check()
    - added more tests

commit c18b9630a78a1a11e611ad406a53c2b3ced1c759
Author: sjpark608 <[email protected]>
Date:   Fri Dec 2 17:20:40 2022 -0800

    GPIO module refactoring intermediate PR (#161)

    * refactoring generating pin dictionary to have generic dictionary #154 #155

    * generic object instantiation #154 #155

    * Update test_dac.py

    dict_pin changed to expander_pin_dict after refactor

    * lint fix

commit 4ac13b02a2db24b5336c3e7dc32ce9a08ae6c7a0
Author: flavius-t <[email protected]>
Date:   Fri Dec 2 11:29:13 2022 -0800

    Hardware Tests (#162)

    * voltage read-write test

    * add test report to gitignore

    * custom approx comparator

    * move adc conversion time tests

    * update hardware test instructions

    * move integration tests to new folder

    * diff voltage tests

    * add adc_2 diff test

    * add rtd tests

    * bypass rtd validation in mux mapping

    * fix rtd temp calculation bug

commit e2538aa44c17d931a5d30a3b4266c3c2209d3b11
Author: flavius-t <[email protected]>
Date:   Thu Dec 1 10:32:43 2022 -0800

    RTD Sampling (#160)

commit 199f8442fa76303968857737fce5e9aedee27398
Author: sjpark608 <[email protected]>
Date:   Mon Nov 28 21:14:23 2022 -0800

    GPIO refactoring in progress (#156)

    * gpio module refactored

    #153

    * adding test cases fixing typos

    * gpio module refactor

    adding edgpi gpio test

    * fix suggestions

commit 7530956e70b92b6f610145f2b5226f5e165adf60
Author: flavius-t <[email protected]>
Date:   Wed Nov 23 11:18:18 2022 -0800

    DAC Enum Args (#152)

    * refactor user interface to enum channel args

commit 96a98f8812056e94e9aa40873a0b2193b3a885af
Author: sjpark608 <[email protected]>
Date:   Wed Nov 23 09:51:14 2022 -0800

    dac conversion formula change (#146)

    * dac conversion formula change

    #143  #144
    - added updated serialized file for testing
    - updated formula for voltage2code code2voltage
    - updated unittest
    - added serialized read helper file
    - deleted outdated dac_calibration files

    * pylint fix

commit 5404dc25082f111b4dabfeb6ea7d3b5435290918
Author: flavius-t <[email protected]>
Date:   Tue Nov 22 12:58:14 2022 -0800

    Add ADC2  (#139)

    * add adc-2 to voltage reads, set_config

commit 6ae2a20aced1cf99401e5af27cbf09bd5ad04ebc
Author: sjpark608 <[email protected]>
Date:   Tue Nov 22 11:26:58 2022 -0800

    fixed typing issue (#136)

    #135
    added test cases for checking the type

commit 880165345a7a409a03db4a53cce9194897c6461d
Author: flavius-t <[email protected]>
Date:   Tue Nov 22 11:25:02 2022 -0800

    ADC Calibration (#138)

    * added eeprom reading to load calibration parameter

    * diff/individual voltage read calibration handling #133

    Co-authored-by: sjpark608 <[email protected]>

commit ce617cadc6f599b6e707d13a9f2e34c8b8278092
Author: flavius-t <[email protected]>
Date:   Fri Nov 18 16:50:12 2022 -0800

    ADC Get State (#132)

    * refactor get_state to EdgePiADC

    * refactor ADCModes

    * add get_register_map

    * use get_register_map for internal register reads

    * refactor ADCState

    * use new ADCState for getting state internally

    * add get mux states

    * refactor state query constants to module

commit 84e38fff33996933cd65c215b97d3b93924ac9a7
Author: sjpark608 <[email protected]>
Date:   Thu Nov 17 18:13:58 2022 -0800

    generate_calib_param dictionary added (#134)

    * generate_calib_param dictionary added

    * pytest fix

    * suggested fix

    - calib_params nomenclature
    - better description for docstring

    * suggest fix

    - calib param dataclass formation done in eeprom class
    - removed redundant methods and tests

commit 0cd8d59de2de19def005b57a2554d89acf314e48
Author: sjpark608 <[email protected]>
Date:   Wed Nov 16 15:21:10 2022 -0800

    Eeprom protobuf (#131)

    * protobuf implementation

    #126 #124

    * test added

    * pylint fix and update dependencies

    * Update requirements_test.txt

    * delete Todos

    * suggested fixes

    * suggested name fix

commit 1864d83e6b9d5ae7d27f068481fa21ffdb69af34
Author: sjpark608 <[email protected]>
Date:   Thu Nov 10 14:42:02 2022 -0800

    Calibration suggestion (#129)

    * Nov1 code review suggestions

    * refactoring eeprom access module to accomodate the hardware change

    * EEPROM class is refactored to accomodate the larger memory size #125

    * pylint fix

commit 029d8e05e743f0dad45212e1295983314c20628a
Author: sjpark608 <[email protected]>
Date:   Thu Nov 10 10:42:44 2022 -0800

    I2C set_msg function takes list of addresses (#128)

    * #127 added another type for addr parameter of set_read_msg and set_write_msg to accomodate a list of addresses

    * | was introduced in python 3.10 but the test automation is using python 3.9

commit 53bc029d9bc49d08691fb6a2a7c9e25672912176
Author: flavius-t <[email protected]>
Date:   Tue Nov 8 15:44:26 2022 -0800

    Remap ADC Multiplexers (#122)

    * mux mapping set mux_n to AINCOM

    * refactor mux arg handling in __config

    * refactor None checking, update docstring

    * remove temporary test fix

    * remove unnecessary test cases

commit b494d979b77c81aeb0cff82cea7c53519dfc08ba
Author: flavius-t <[email protected]>
Date:   Mon Nov 7 10:05:28 2022 -0800

    ADC Differential Reads, RTD Mode (#118)

    * remove unused duplicate channel assignment code

    * fix pytest discovery error

    * add SPI debugging logs

    * change rtd_enabled check logic

    * diff read constants

    * rtd property check, set diff mode

    * unit test validate_no_rtd_conflict

    * unit test select_differential

    * ignore local test scripts

    * documentation additions

    * opcodes for RTD mode

    * doc updates, pytest config

    * unit test IDACMUX opcodes

    * unit test IDACMAG opcodes

    * fix IDACMAG opcode bug

    * fix REFMUX opcode bug

    * expand REFMUX opcode unit tests, renaming

    * uncomment adc config integration tests

    * integration test IDACMUX opcodes

    * integration test IDACMAG opcodes

    * integration test REFMUX opcodes

    * integration test select_differential

    * add idac channel 9

    * fix opcode name, failing unit test

    * add rtd mode enums

    * add rtd_mode, todos for get_state with caching

    * rename __get_rtd_en_status

    * fix rtd_mode logic, unit test

    * integration test rtd_mode, fix bug

commit 3b7bd1425bb7e5c4a4c3af63d7e69db44f5df22a
Author: sjpark608 <[email protected]>
Date:   Fri Nov 4 13:48:04 2022 -0700

    Calibration dac (#120)

    * Update edgepi_dac.py

    adding calibration classes, need to check dictionary structure. implement DAC_GAIN parameter maybe needed

    * DAC calibration updated

    #111
    - loading of calibration parameter from eeprom
    - generation and get calibration dictionary
    - check dac_gain state before code2voltage or voltage 2code conversion
    - conversion formula edited to accommodate the calibration param and dac gain state

    * set/clear internal DAC gain

    #76

    * Update edgepi_dac.py

    PR #120  suggested fix

    * constant name change

    PR #120  suggested fix

commit 9307713e49986d25835126c7da162d9ee10b7c29
Author: flavius-t <[email protected]>
Date:   Fri Nov 4 11:27:30 2022 -0700

    Remove ADC Init Configs (#119)

    * remove configs from adc init

    * rename to private method

commit 574f7ae7ab42b0fd83cec32559f3b6c7846ffb53
Author: sjpark608 <[email protected]>
Date:   Mon Oct 31 12:50:12 2022 -0700

    Loading DAC related Calibration parameter from the EEPROM (#114)

    * dummy functions added for calibration

    added logger
    added generate calib dictionary functions , logics to be implemented

    * unpacking packing added

    unpacking: from list of parameter that read from eeprom to a single value
    packing : from a value to a list of bytes to load to the eeprom

    * calib dictionary generation for dac

    * loading calib param added and tested

    * Update test_edgepi_calibration.py

    updated the unit test for get_calibration_dict. Other module test cases are deleted for now

    * PR#114 fix

    - added a dictionary of functions
    - added more description to the address constants

commit c8c02d7277c87746b00d86035416e02963af5ded
Author: sjpark608 <[email protected]>
Date:   Mon Oct 31 10:48:12 2022 -0700

    Gpio delete set default (#116)

    * deleting obsolete function

    * added unit tests for functions

    changed gpio pin ordering of DAC module

commit 620ff9b5bfa783e28cdd6e11ae47e6d74d4bcfb7
Author: sjpark608 <[email protected]>
Date:   Fri Oct 28 15:46:39 2022 -0700

    Update edgepi_adc.py (#115)

    * Update edgepi_adc.py

    To Do added

    * Update edgepi_adc.py

    have a ruler set for pylint, and still fails on line-too-long :(

commit ec507bf1d544dcd68ced027a7ca6819fd2ccb4d9
Author: sjpark608 <[email protected]>
Date:   Fri Oct 28 11:57:00 2022 -0700

    Issue103 adc (#110)

    * adc testing being added

    * added test

    * Individual channel modification (#108)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * fixed voltage_to_code and code_to_voltage calculation

    * applying suggested fix

    * added todo and fixed pylint

    * used enums for pin names

    * Update edgepi_adc.py

    removed clear exapnder to avoid resetting of Ground reference when a new object is instantiated

commit 12b6d7948b2f0049dcbabd9731bbd9d952a44547
Author: sjpark608 <[email protected]>
Date:   Thu Oct 27 11:08:43 2022 -0700

    Issue102 dac (#109)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * adding get_state() dac

    #102 dac get_state is being added

    * fixed voltage_to_code and code_to_voltage calculation

    * passing pytest

    * changed the key from string name to number

    * changed get_state function #102 osensa/edgepi-device-manager/issues/3

    * pylint fix

commit 05e4f6f7184a42208bc8c436254d5770f8c40dc4
Author: sjpark608 <[email protected]>
Date:   Wed Oct 26 10:37:18 2022 -0700

    Individual channel modification (#108)

    * Individual channel modification

    #103
    - Only single pins gets accessed
    - simplified code calculate for now, calibration to be added

    * fixed voltage_to_code and code_to_voltage calculation

    * applying suggested fix

commit bde0f95539ded9c794f3015eaa88432e2f2b7f8f
Author: flavius-t <[email protected]>
Date:   Wed Oct 19 15:46:01 2022 -0700

    LED Module (#106)

commit f3efa759f6dee78689a74a99f11b1f96656b3709
Author: flavius-t <[email protected]>
Date:   Wed Oct 19 12:41:47 2022 -0700

    Get/Set Individual Pin States (#105)

commit 0f01e33167fcee27958159190c55428c683fbf10
Author: sjpark608 <[email protected]>
Date:   Wed Oct 5 15:38:37 2022 -0700

    Update test_adc_state.py (#100)

    #99

commit ab02437422b6341932cdb9b778190f8b86c3e834
Author: sjpark608 <[email protected]>
Date:   Wed Oct 5 11:41:11 2022 -0700

    Adding functions to calibration class (#98)

    * adding helper class for calibration process

    * adding functions to generate necessary dictionaries

    * pylint fixes

commit 5c60766fe8d1f105d91fc00ccf800fb911425ba6
Author: flavius-t <[email protected]>
Date:   Mon Oct 3 14:18:03 2022 -0700

    ADC Interface (#97)

commit be0834dbc1d9e33ebe644e70f5d7bb87e4229796
Author: sjpark608 <[email protected]>
Date:   Fri Sep 30 16:05:41 2022 -0700

    Calibration module (#92)

    * #83 creating files

    * adding unittest

    * Update test_access_eeprom.py

    * added unittest & i2c transfer return change

    * adding calibration mapping and class

    * Update edgepi_calibration.py

    tod…
  • Loading branch information
sjpark608 committed Dec 30, 2022
1 parent f0a5155 commit cf93a59
Show file tree
Hide file tree
Showing 23 changed files with 415 additions and 450 deletions.
4 changes: 2 additions & 2 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[bumpversion]
tag_name = "rc/v{new_version}"
current_version = 1.1.15
tag_name = rc/v{new_version}
current_version = 1.1.17
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

setuptools.setup(
name="edgepi-python-sdk",
version="1.1.15",
version="1.1.17",
author="S.Park",
author_email="[email protected]",
description="EdgePi Python SDK package",
Expand Down
2 changes: 1 addition & 1 deletion src/edgepi/adc/edgepi_adc.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ def __init__(
# Load eeprom data and generate dictionary of calibration dataclass
eeprom = EdgePiEEPROM()
eeprom_data = eeprom.get_edgepi_reserved_data()
self.adc_calib_params = eeprom_data.adc_calib_parms
self.adc_calib_params = eeprom_data.adc_calib_params

self.adc_ops = ADCCommands()
self.gpio = EdgePiGPIO()
Expand Down
24 changes: 10 additions & 14 deletions src/edgepi/calibration/edgepi_eeprom.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
'''Helper class to access on board eeprom'''

# pylint: disable=no-name-in-module
# https://github.com/protocolbuffers/protobuf/issues/10372

import logging
import math

from edgepi.calibration.eeprom_constants import (
EEPROMInfo,
EdgePiMemoryInfo,
MessageFieldNumber,
EdgePiEEPROMData)
MessageFieldNumber
)
from edgepi.calibration.protobuf_mapping import EdgePiEEPROMData
from edgepi.calibration.eeprom_mapping_pb2 import EepromLayout
from edgepi.peripherals.i2c import I2CDevice

Expand All @@ -20,6 +24,7 @@ class EdgePiEEPROM(I2CDevice):

def __init__(self):
self.log = logging.getLogger(__name__)
self.log.info("Initializing EEPROM Access")
self.eeprom_layout = EepromLayout()
super().__init__(self.__dev_path)

Expand Down Expand Up @@ -98,16 +103,7 @@ def get_edgepi_reserved_data(self):
"""
# pylint: disable=no-member
self.eeprom_layout.ParseFromString(self.__read_edgepi_reserved_memory())
eeprom_data = EdgePiEEPROMData()
eeprom_data.dac_calib_parms=eeprom_data.message_to_dict(self.eeprom_layout.dac)
eeprom_data.adc_calib_parms=eeprom_data.message_to_dict(self.eeprom_layout.adc)
eeprom_data.rtd_calib_parms=eeprom_data.message_to_dict(self.eeprom_layout.rtd)
eeprom_data.tc_calib_parms=eeprom_data.message_to_dict(self.eeprom_layout.tc)
eeprom_data.config_key=eeprom_data.keys_to_str(self.eeprom_layout.config_key)
eeprom_data.data_key=eeprom_data.keys_to_str(self.eeprom_layout.data_key)
eeprom_data.serial= self.eeprom_layout.serial_number
eeprom_data.model= self.eeprom_layout.model
eeprom_data.client_id= self.eeprom_layout.client_id
eeprom_data = EdgePiEEPROMData(self.eeprom_layout)
return eeprom_data

def sequential_read(self, mem_addr: int = None, length: int = None):
Expand All @@ -124,9 +120,9 @@ def sequential_read(self, mem_addr: int = None, length: int = None):
page_addr, byte_addr = self.__byte_address_generation(mem_addr)
mem_addr_list = self.__pack_mem_address(page_addr, byte_addr)
msg = self.set_read_msg(mem_addr_list, [0x00]*length)
self.log.debug(f'Reading Address {mem_addr}, {length} bytes, {msg[1].data}')
self.log.debug(f'Reading Address {mem_addr}, {length} bytes')
read_result = self.transfer(EEPROMInfo.DEV_ADDR.value, msg)
self.log.debug(f'Read data: {msg[1].data}')
self.log.debug(f'Read data: {len(msg[1].data)}')
return read_result


Expand Down
62 changes: 2 additions & 60 deletions src/edgepi/calibration/eeprom_constants.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
'''Address map of eeprom'''

from enum import Enum
from dataclasses import dataclass
from edgepi.calibration.eeprom_mapping_pb2 import EepromLayout
from edgepi.calibration.calibration_constants import CalibParam

class EEPROMInfo(Enum):
"""
Expand All @@ -28,6 +25,8 @@ class EdgePiMemoryInfo(Enum):
"""
USED_SPACE = 0x00
BUFF_START = 0x02
USER_SPACE_START = 0x100
USER_SPACE_END = 0x1FF

class MessageFieldNumber(Enum):
"""
Expand All @@ -43,60 +42,3 @@ class MessageFieldNumber(Enum):
SERIAL=7
MODEL=8
CLIENT_ID=9

@dataclass
class Keys:
"""
Dataclass to store key strings
"""
certificate: str = None
private: str = None

@dataclass
class EdgePiEEPROMData:
# pylint: disable=too-many-instance-attributes
"""
Dataclass to store edgepi reserved values
dac_calib_parms (dict): list of calibration parameters
adc_calib_parms (dict): list of calibration parameters
rtd_calib_parms (dict): list of calibration parameters
tc_calib_parms (dict): list of calibration parameters
config_key (Keys): dataclass
data_key (Keys): dataclass
serial (str)
model (str)
client_id (str)
"""
dac_calib_parms: dict = None
adc_calib_parms: dict = None
rtd_calib_parms: dict = None
tc_calib_parms: dict = None
config_key: Keys = None
data_key: Keys = None
serial: str = None
model: str = None
client_id: str = None

def message_to_dict(self, data_to_unpack: EepromLayout = None):
"""
Function to unpack message to list
Args:
data_to_unpack: EepromLayout message modules
Returns:
calib_list: 1-D array
"""
calib_dict={}
for indx, ch in enumerate(data_to_unpack.calibs):
calib_dict[indx] = CalibParam(gain=ch.gain,
offset=ch.offset)
return calib_dict

def keys_to_str(self, data_to_unpack: EepromLayout = None):
"""
Function to unpack message to string
Args:
data_to_unpack: EepromLayout message keys
Returns:
Keys (dataclass): keys values
"""
return Keys(certificate = data_to_unpack.certificate, private = data_to_unpack.private_key)
6 changes: 5 additions & 1 deletion src/edgepi/calibration/eeprom_mapping.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@ syntax = "proto3";

message EepromLayout{
message ModuleCalibParams{
message ChannelCalib {
message ChannelCalib{
optional float gain = 1;
optional float offset = 2;
}
message HardwareValue{
optional float ref_resistor = 1;
}
repeated ChannelCalib calibs = 1;
repeated HardwareValue hw_val = 2;
}
message AwsKey{
string private_key = 1;
Expand Down
Loading

0 comments on commit cf93a59

Please sign in to comment.