This repository was archived by the owner on Sep 10, 2024. It is now read-only.
  
  
  - 
                Notifications
    You must be signed in to change notification settings 
- Fork 368
makefile release process #141
          
     Merged
      
      
    
  
     Merged
                    Changes from all commits
      Commits
    
    
            Show all changes
          
          
            13 commits
          
        
        Select commit
          Hold shift + click to select a range
      
      0ddee7e
              
                makefile release process
              
              
                gijsio 4de614d
              
                Update Makefile
              
              
                gijsio 0a9103e
              
                added missing zips
              
              
                gijsio 364c09d
              
                added pybytes example for v2
              
              
                gijsio a55be22
              
                ignore release files
              
              
                gijsio 02c81ef
              
                make each target clean up before itself
              
              
                gijsio 75dbc0c
              
                added pybytes in all examples, if available
              
              
                gijsio 2be495c
              
                updated order, removed pybytes flag
              
              
                gijsio a95e800
              
                rm pybytes examples
              
              
                gijsio aa39692
              
                added Pybytes info message
              
              
                gijsio 3f5d6fa
              
                enabled debug by default
              
              
                gijsio af93702
              
                combined pyscan examples
              
              
                gijsio 63e3071
              
                rm keys()
              
              
                gijsio File filter
Filter by extension
Conversations
          Failed to load comments.   
        
        
          
      Loading
        
  Jump to
        
          Jump to file
        
      
      
          Failed to load files.   
        
        
          
      Loading
        
  Diff view
Diff view
There are no files selected for viewing
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              | Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| release: pyscan pysense pysense2 pytrack pytrack2 | ||
|  | ||
|  | ||
| pyscan: | ||
| rm -rf pyscan | ||
| rm -f pyscan.zip | ||
| @echo "Making Pyscan" | ||
| mkdir pyscan | ||
| mkdir pyscan/lib | ||
| #sensors | ||
| cp shields/lib/LIS2HH12.py pyscan/lib/ | ||
| cp shields/lib/MFRC630.py pyscan/lib/ | ||
| cp shields/lib/SI7006A20.py pyscan/lib/ | ||
| cp shields/lib/LTR329ALS01.py pyscan/lib/ | ||
| #pycoproc | ||
| cp shields/lib/pycoproc_1.py pyscan/lib/ | ||
| #example | ||
| cp shields/pyscan_1.py pyscan/main.py | ||
|  | ||
| zip -r pyscan.zip pyscan | ||
|  | ||
| pysense: | ||
| rm -rf pysense | ||
| rm -f pysense.zip | ||
| @echo "Making Pysense" | ||
| mkdir pysense | ||
| mkdir pysense/lib | ||
| # sensors | ||
| cp shields/lib/LIS2HH12.py pysense/lib/ | ||
| cp shields/lib/LTR329ALS01.py pysense/lib/ | ||
| cp shields/lib/MPL3115A2.py pysense/lib/ | ||
| cp shields/lib/SI7006A20.py pysense/lib/ | ||
| # pycoproc | ||
| cp shields/lib/pycoproc_1.py pysense/lib/ | ||
| # example | ||
| cp shields/pysense_1.py pysense/main.py | ||
|  | ||
| zip -r pysense.zip pysense | ||
|  | ||
| pysense2: | ||
| rm -rf pysense2 | ||
| rm -f pysense2.zip | ||
| @echo "Making Pysense 2" | ||
| mkdir pysense2 | ||
| mkdir pysense2/lib | ||
| # sensors | ||
| cp shields/lib/LIS2HH12.py pysense2/lib/ | ||
| cp shields/lib/LTR329ALS01.py pysense2/lib/ | ||
| cp shields/lib/MPL3115A2.py pysense2/lib/ | ||
| cp shields/lib/SI7006A20.py pysense2/lib/ | ||
| # pycoproc | ||
| cp shields/lib/pycoproc_2.py pysense2/lib/ | ||
| # example | ||
| cp shields/pysense_2.py pysense2/main.py | ||
|  | ||
| zip -r pysense2.zip pysense2 | ||
|  | ||
| pytrack: | ||
| rm -rf pytrack | ||
| rm -f pytrack.zip | ||
| @echo "Making Pytrack" | ||
| mkdir pytrack | ||
| mkdir pytrack/lib | ||
| #sensors | ||
| cp shields/lib/L76GNSS.py pytrack/lib/ | ||
| cp shields/lib/LIS2HH12.py pytrack/lib/ | ||
| #pycoproc | ||
| cp shields/lib/pycoproc_1.py pytrack/lib/ | ||
| #example | ||
| cp shields/pytrack_1.py pytrack/main.py | ||
|  | ||
| zip -r pytrack.zip pytrack | ||
|  | ||
| pytrack2: | ||
| rm -rf pytrack2 | ||
| rm -f pytrack2.zip | ||
| @echo "Making Pytrack2" | ||
| mkdir pytrack2 | ||
| mkdir pytrack2/lib | ||
| #sensors | ||
| cp shields/lib/L76GNSS.py pytrack2/lib/ | ||
| cp shields/lib/LIS2HH12.py pytrack2/lib/ | ||
| #pycoproc | ||
| cp shields/lib/pycoproc_2.py pytrack2/lib/ | ||
| #example | ||
| cp shields/pytrack_2.py pytrack2/main.py | ||
|  | ||
| zip -r pytrack2.zip pytrack2 | ||
|  | ||
| clean: | ||
| @echo "Cleaning up files" | ||
|         
                  gijsio marked this conversation as resolved.
              Show resolved
            Hide resolved | ||
| rm -rf pyscan | ||
| rm -rf pysense | ||
| rm -rf pysense2 | ||
| rm -rf pytrack | ||
| rm -rf pytrack2 | ||
|  | ||
| rm -f pyscan.zip | ||
| rm -f pysense.zip | ||
| rm -f pysense2.zip | ||
| rm -f pytrack.zip | ||
| rm -f pytrack2.zip | ||
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              | Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -1,86 +1,114 @@ | ||
| ''' | ||
| Simple Pyscan NFC / MiFare Classic Example | ||
| Copyright (c) 2020, Pycom Limited. | ||
| Copyright (c) 2019, Pycom Limited. | ||
|  | ||
| This example runs the NFC discovery loop in a thread. | ||
| If a card is detected it will read the UID and compare it to VALID_CARDS | ||
| RGB LED is BLUE while waiting for card, | ||
| GREEN if card is valid, RED if card is invalid | ||
| This example continuously sends a REQA for ISO14443A card type | ||
| If a card is discovered, it will read the UID | ||
| If DECODE_CARD = True, will attempt to authenticate with CARDkey | ||
| If authentication succeeds will attempt to read sectors from the card | ||
| ''' | ||
|  | ||
| DEBUG = False # change to True to see debug messages | ||
|  | ||
| from pycoproc_1 import Pycoproc | ||
| from MFRC630 import MFRC630 | ||
| from LIS2HH12 import LIS2HH12 | ||
| from LTR329ALS01 import LTR329ALS01 | ||
| import binascii | ||
| import time | ||
| import pycom | ||
| import _thread | ||
|  | ||
| #add your card UID here | ||
| VALID_CARDS = [[0x43, 0x95, 0xDD, 0xF8], | ||
| [0x43, 0x95, 0xDD, 0xF9], | ||
| [0x46, 0x5A, 0xEB, 0x7D, 0x8A, 0x08, 0x04]] | ||
|  | ||
|  | ||
| # This is the default key for an unencrypted MiFare card | ||
| CARDkey = [ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ] | ||
| DECODE_CARD = False | ||
|  | ||
| py = Pycoproc(Pycoproc.PYSCAN) | ||
| nfc = MFRC630(py) | ||
| lt = LTR329ALS01(py) | ||
| li = LIS2HH12(py) | ||
|  | ||
| pybytes_enabled = False | ||
| if 'pybytes' in globals(): | ||
| if(pybytes.isconnected()): | ||
| print('Pybytes is connected, sending signals to Pybytes') | ||
| pybytes_enabled = True | ||
|  | ||
| RGB_BRIGHTNESS = 0x8 | ||
|  | ||
| RGB_RED = (RGB_BRIGHTNESS << 16) | ||
| RGB_GREEN = (RGB_BRIGHTNESS << 8) | ||
| RGB_BLUE = (RGB_BRIGHTNESS) | ||
|  | ||
| counter = 0 | ||
|  | ||
| def check_uid(uid, len): | ||
| return VALID_CARDS.count(uid[:len]) | ||
|  | ||
| def send_sensor_data(name, timeout): | ||
| if(pybytes_enabled): | ||
| while(True): | ||
| pybytes.send_signal(2, lt.light()) | ||
| pybytes.send_signal(3, li.acceleration()) | ||
| time.sleep(timeout) | ||
|  | ||
| # Make sure heartbeat is disabled before setting RGB LED | ||
| pycom.heartbeat(False) | ||
|  | ||
| # Initialise the MFRC630 with some settings | ||
| nfc.mfrc630_cmd_init() | ||
|  | ||
| def check_uid(uid, len): | ||
| return VALID_CARDS.count(uid[:len]) | ||
|  | ||
| def print_debug(msg): | ||
| if DEBUG: | ||
| print(msg) | ||
|  | ||
| def send_sensor_data(name, timeout): | ||
| while(True): | ||
| print(lt.light()) | ||
| print(li.acceleration()) | ||
| time.sleep(timeout) | ||
|  | ||
| def discovery_loop(nfc, id): | ||
| while True: | ||
| # Send REQA for ISO14443A card type | ||
| print_debug('Sending REQA for ISO14443A card type...') | ||
| atqa = nfc.mfrc630_iso14443a_WUPA_REQA(nfc.MFRC630_ISO14443_CMD_REQA) | ||
| print_debug('Response: {}'.format(atqa)) | ||
| if (atqa != 0): | ||
| # A card has been detected, read UID | ||
| print_debug('A card has been detected, read UID...') | ||
| uid = bytearray(10) | ||
| uid_len = nfc.mfrc630_iso14443a_select(uid) | ||
| print_debug('UID has length: {}'.format(uid_len)) | ||
| if (uid_len > 0): | ||
| print_debug('Checking if card with UID: [{:s}] is listed in VALID_CARDS...'.format(binascii.hexlify(uid[:uid_len],' ').upper())) | ||
| print('Scanning for cards') | ||
| while True: | ||
| # Send REQA for ISO14443A card type | ||
| atqa = nfc.mfrc630_iso14443a_WUPA_REQA(nfc.MFRC630_ISO14443_CMD_REQA) | ||
| if (atqa != 0): | ||
| # A card has been detected, read UID | ||
| print('A card has been detected, reading its UID ...') | ||
| uid = bytearray(10) | ||
| uid_len = nfc.mfrc630_iso14443a_select(uid) | ||
| print('UID has length {}'.format(uid_len)) | ||
| if (uid_len > 0): | ||
| # A valid UID has been detected, print details | ||
| counter += 1 | ||
| print("%d\tUID [%d]: %s" % (counter, uid_len, nfc.format_block(uid, uid_len))) | ||
| if DECODE_CARD: | ||
| # Try to authenticate with CARD key | ||
| nfc.mfrc630_cmd_load_key(CARDkey) | ||
| for sector in range(0, 16): | ||
| if (nfc.mfrc630_MF_auth(uid, nfc.MFRC630_MF_AUTH_KEY_A, sector * 4)): | ||
| pycom.rgbled(RGB_GREEN) | ||
| # Authentication was sucessful, read card data | ||
| readbuf = bytearray(16) | ||
| for b in range(0, 4): | ||
| f_sect = sector * 4 + b | ||
| len = nfc.mfrc630_MF_read_block(f_sect, readbuf) | ||
| print("\t\tSector %s: Block: %s: %s" % (nfc.format_block([sector], 1), nfc.format_block([b], 1), nfc.format_block(readbuf, len))) | ||
| else: | ||
| print("Authentication denied for sector %s!" % nfc.format_block([sector], 1)) | ||
| pycom.rgbled(RGB_RED) | ||
| # It is necessary to call mfrc630_MF_deauth after authentication | ||
| # Although this is also handled by the reset / init cycle | ||
| nfc.mfrc630_MF_deauth() | ||
| else: | ||
| #check if card uid is listed in VALID_CARDS | ||
| if (check_uid(list(uid), uid_len)) > 0: | ||
| print_debug('Card is listed, turn LED green') | ||
| print('Card is listed, turn LED green') | ||
| pycom.rgbled(RGB_GREEN) | ||
| if(pybytes_enabled): | ||
| pybytes.send_signal(1, ('Card is listed', uid)) | ||
| else: | ||
| print_debug('Card is not listed, turn LED red') | ||
| print('Card is not listed, turn LED red') | ||
| pycom.rgbled(RGB_RED) | ||
| else: | ||
| # No card detected | ||
| print_debug('Did not detect any card...') | ||
| pycom.rgbled(RGB_BLUE) | ||
| nfc.mfrc630_cmd_reset() | ||
| time.sleep(.5) | ||
| nfc.mfrc630_cmd_init() | ||
|  | ||
| # This is the start of our main execution... start the thread | ||
| _thread.start_new_thread(discovery_loop, (nfc, 0)) | ||
| _thread.start_new_thread(send_sensor_data, ('Thread 2', 10)) | ||
| if(pybytes_enabled): | ||
| pybytes.send_signal(1, ('Unauthorized card detected', uid)) | ||
|  | ||
| else: | ||
| pycom.rgbled(RGB_BLUE) | ||
| # We could go into power saving mode here... to be investigated | ||
| nfc.mfrc630_cmd_reset() | ||
| time.sleep(.5) | ||
| # Re-Initialise the MFRC630 with settings as these got wiped during reset | ||
| nfc.mfrc630_cmd_init() | 
This file was deleted.
      
      Oops, something went wrong.
      
    
  
      
      Oops, something went wrong.
        
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Uh oh!
There was an error while loading. Please reload this page.