wiliot 3.10.14
A library for interacting with Wiliot's private API
License: MIT
Requires Python: >=3.6

# PyWiliot #

PyWiliot is a python library for accessing Wiliot's tools including:
* Wiliot's cloud services from Python
* Wiliot's Gateway control
* Wiliot's tester utilities
In addition, examples and scripts for Wiliot testers are provided

## Public Library

### MAC Installation
#### Getting around SSL issue on Mac with Python 3.7 and later versions

Python version 3.7 on Mac OS has stopped using the OS's version of SSL and started using Python's implementation instead. As a result, the CA
certificates included in the OS are no longer usable. To avoid getting SSL related errors from the code when running under this setup you need
to execute Install Certificates.command Python script. Typically you will find it under
~~~~
/Applications/Python\ 3.7/Install\ Certificates.command
~~~~

#### Python 3 on Mac
The default Python version on mac is 2.x. Since Wiliot package requires Python 3.x you should download Python3 
(e.g.  Python3.7) and make python 3 your default.
There are many ways how to do it such as add python3 to your PATH (one possible solution https://www.educative.io/edpresso/how-to-add-python-to-the-path-variable-in-mac) 

#### Git is not working after Mac update
please check the following solution:
https://stackoverflow.com/questions/52522565/git-is-not-working-after-macos-update-xcrun-error-invalid-active-developer-pa


### Installing pyWiliot
````commandline
pip install wiliot
````
for advance usage such as Wiliot's Gateway control and Wiliot's tester utilities please install the full dependencies list
````commandline
pip install wiliot[advance]
````

### Linux Installation for advance users
Due to incompatibility of some libraries in the advanced Wiliot package's dependencies list, please install first the following:
````commandline
pip install pc-ble-driver-py
pip install libusb1
pip install --no-deps nrfutil 
````

### Using pyWiliot
Wiliot package location can be found, by typing in the command line:
````commandline
pip show wiliot
````
please check out our examples including:
* cloud services (under ../wiliot/cloud_apis/management/examples)
* gateway (under ../wiliot/gateway_api/examples)
* testers (under ../wiliot/wiliot_testers)

For more documentation and instructions, please contact us: support@wiliot.com


## Release Notes:

####################################
Version 3.10.14:
-----------------
* wiliot-core
  * add continuous listener for GW as a multi process
* wiliot - testers:
  * offline tester - 
    * improve calculation of responding tags
    * add dual gw support
    * new test suites and new inlays
    * Reel name verification
  * sample test - 
    * add support for temperature sensing
    *  add HW version
    *  allow working without scanner and/or pneumatic chambers 
    * add support to sgtin
  * new yield tester script
  
####################################
Version 3.10.13:
-----------------
* wiliot-cloud:
  * Changed the functions to manage assets in the new platform.
  * last version of wiliot cloud - move to wiliot-api package
* wiliot-core
  * add custom energy pattern bundle
  * add support to dual gw
  * improve support of tcp/ip communication
* wiliot - testers:
  * offline tester - improve calculation of responding tags + add dual gw support + robust connection with arduino
  * sample test - fix bug for new setup
  * improve harvester test
* wiliot-tools:
  * add live plotting
  * improve logging
  

####################################
Version 3.10.9:
-----------------
change naming and rearrange folders
* wiliot-cloud:
  ** support new authentication method and fix bugs
 * offline tester:
   ** support external attenuator
   ** fix general bugs
   ** remove serialization from tester
   ** add pop-screen for duplication handling
* sample test:
  ** add control limits to the test for pass/fail indication
  ** allow manual upload same as offline tester
  ** fix default sub1g power
* system test:
  ** add harvester test
 * post-process:
  ** add more data to tables
  ** round float numnber to two digit
* local gateway:
  ** support the combined configuration method (to reduce time)
 * packet data: support the new tag type.

####################################
Version 3.10.7:
-----------------
* cloud api:
  ** Made required changes to allow calling APIs either with username and password (existing users - for now)
  or with API keys (new users and existing users in November 2022)
 * offline tester:
   ** if exception occurs both r2r and printer are shut down
   ** fix bug in station name
   ** fixed loggers after configurating HW components 
   ** fixed exception handling to avoid reel movement when exception accurs
   ** added popup screen after exception accurs with the relevant data 

############################################
Version 3.10.6:
-----------------
* gateway/radio tester:
  ** improve update version
  ** update gateway firmware

* post-process (internal):
  ** fix bug for uploading the new tables
 
* packet_data_tools:
  ** add check if packet from bridge or tag

* system_network_tools:
  ** improve packet_monitor performance
  ** support usb gateway
  ** adding logging functionality
 
* offline_tester:
  ** stable the code
  ** fix bug #of responding tag
  ** improve manual upload and add summary at the end of the run
  [Notice: does not support QR reader functionality)
  ** fixed loggers after configurating HW components 
  ** fixed exception handling to avoid reel movement when exception accurs
  ** added popup screen after exception accurs with the relevant data 
  ** fixed tester station name values when saving the run data
  
* sample_test:
  ** fix calc of rrsi mean in local file
############################################
Version 3.10.4:
--------------------
* cloud_api:
  ** support new api
  ** add more functionalities to manufacturing

* gateway:
  ** update sub1g power according to the new gw firmware
  
* packet_data_tools:
  ** support new packet and fix bug in decoding/decryption (internal)
  ** add tbc calc to decrypted packet list (internal)
  ** integrate the new tool to PixieAnalyzer and support the new packet version (internal)
  ** support new packet group id structure (internal)

* post-process (internal):
  ** support new requirement form offline and sample test and fix bug

* network_system_tools:
  ** add class to network packet list (internal)
  ** improve analysis data code (internal)
  ** add more test and deployment scripts (internal)
  ** add tool for packet monitor
  
* offline_tester:
  ** improve the GUI
  ** add stop condition options
  ** improve test suites
  ** improve the script of multiple run using rewind (internal)
  ** removing old code
  ** add the option to run long tests
  ** add temp sensor
  ** add summary for uploading and serialization
  
* sample_test:
  ** support the new firmware
  ** add more data to the local files
  
* testers:
  ** add example on how to user wiliot testers api
###################################################