Skip to content

Commit

Permalink
Merge pull request #17 from ShimmerResearch/SHIM3-298
Browse files Browse the repository at this point in the history
SHIM3-298 update scripts to Python 3.10.11 and tidy up
  • Loading branch information
marknolan authored Jul 26, 2023
2 parents efa4eb2 + 7de704c commit b23d52c
Show file tree
Hide file tree
Showing 45 changed files with 1,960 additions and 3,293 deletions.
94 changes: 47 additions & 47 deletions LogAndStream/Release/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,45 +9,45 @@ CG_TOOL_ROOT := C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-msp430_21.6.0.LTS
GEN_OPTS__FLAG :=
GEN_CMDS__FLAG :=

ORDERED_OBJS += \
"./main.obj" \
"./system_pre_init.obj" \
"./shimmer3_common_source/5xx_HAL/hal_ADC.obj" \
"./shimmer3_common_source/5xx_HAL/hal_Board.obj" \
"./shimmer3_common_source/5xx_HAL/hal_Button.obj" \
"./shimmer3_common_source/5xx_HAL/hal_CRC.obj" \
"./shimmer3_common_source/5xx_HAL/hal_DMA.obj" \
"./shimmer3_common_source/5xx_HAL/hal_I2C.obj" \
"./shimmer3_common_source/5xx_HAL/hal_InfoMem.obj" \
"./shimmer3_common_source/5xx_HAL/hal_RTC.obj" \
"./shimmer3_common_source/5xx_HAL/hal_SDCard.obj" \
"./shimmer3_common_source/5xx_HAL/hal_TB0.obj" \
"./shimmer3_common_source/5xx_HAL/hal_UCA0.obj" \
"./shimmer3_common_source/5xx_HAL/hal_UCS.obj" \
"./shimmer3_common_source/5xx_HAL/hal_UartA0.obj" \
"./shimmer3_common_source/5xx_HAL/hal_pmm.obj" \
"./shimmer3_common_source/BMPX80/bmpX80.obj" \
"./shimmer3_common_source/Bluetooth_SD/RN4X.obj" \
"./shimmer3_common_source/Bluetooth_SD/sd_sync.obj" \
"./shimmer3_common_source/Bluetooth_SD/shimmer_bt_comms.obj" \
"./shimmer3_common_source/CAT24C16/cat24c16.obj" \
"./shimmer3_common_source/EXG/ads1292.obj" \
"./shimmer3_common_source/EXG/exg.obj" \
"./shimmer3_common_source/FatFs/ff.obj" \
"./shimmer3_common_source/FatFs/mmc.obj" \
"./shimmer3_common_source/FatFs/option/ccsbcs.obj" \
"./shimmer3_common_source/FatFs/option/syscall.obj" \
"./shimmer3_common_source/GSR/gsr.obj" \
"./shimmer3_common_source/ICM20948/ICM20948.obj" \
"./shimmer3_common_source/LSM303AHTR/lsm303ahtr.obj" \
"./shimmer3_common_source/LSM303DLHC/lsm303dlhc.obj" \
"./shimmer3_common_source/MPU9150/mpu9150.obj" \
"./shimmer3_common_source/msp430_clock/msp430_clock.obj" \
"./shimmer3_common_source/shimmer_calibration/shimmer_calibration.obj" \
"../lnk_msp430f5437a.cmd" \
$(GEN_CMDS__FLAG) \
-llibc.a \
-llibmath.a \
ORDERED_OBJS += \
"./main.obj" \
"./system_pre_init.obj" \
"./shimmer3_common_source/5xx_HAL/hal_ADC.obj" \
"./shimmer3_common_source/5xx_HAL/hal_Board.obj" \
"./shimmer3_common_source/5xx_HAL/hal_Button.obj" \
"./shimmer3_common_source/5xx_HAL/hal_CRC.obj" \
"./shimmer3_common_source/5xx_HAL/hal_DMA.obj" \
"./shimmer3_common_source/5xx_HAL/hal_I2C.obj" \
"./shimmer3_common_source/5xx_HAL/hal_InfoMem.obj" \
"./shimmer3_common_source/5xx_HAL/hal_RTC.obj" \
"./shimmer3_common_source/5xx_HAL/hal_SDCard.obj" \
"./shimmer3_common_source/5xx_HAL/hal_TB0.obj" \
"./shimmer3_common_source/5xx_HAL/hal_UCA0.obj" \
"./shimmer3_common_source/5xx_HAL/hal_UCS.obj" \
"./shimmer3_common_source/5xx_HAL/hal_UartA0.obj" \
"./shimmer3_common_source/5xx_HAL/hal_pmm.obj" \
"./shimmer3_common_source/BMPX80/bmpX80.obj" \
"./shimmer3_common_source/Bluetooth_SD/RN4X.obj" \
"./shimmer3_common_source/Bluetooth_SD/sd_sync.obj" \
"./shimmer3_common_source/Bluetooth_SD/shimmer_bt_comms.obj" \
"./shimmer3_common_source/CAT24C16/cat24c16.obj" \
"./shimmer3_common_source/EXG/ads1292.obj" \
"./shimmer3_common_source/EXG/exg.obj" \
"./shimmer3_common_source/FatFs/ff.obj" \
"./shimmer3_common_source/FatFs/mmc.obj" \
"./shimmer3_common_source/FatFs/option/ccsbcs.obj" \
"./shimmer3_common_source/FatFs/option/syscall.obj" \
"./shimmer3_common_source/GSR/gsr.obj" \
"./shimmer3_common_source/ICM20948/ICM20948.obj" \
"./shimmer3_common_source/LSM303AHTR/lsm303ahtr.obj" \
"./shimmer3_common_source/LSM303DLHC/lsm303dlhc.obj" \
"./shimmer3_common_source/MPU9150/mpu9150.obj" \
"./shimmer3_common_source/msp430_clock/msp430_clock.obj" \
"./shimmer3_common_source/shimmer_calibration/shimmer_calibration.obj" \
"../lnk_msp430f5437a.cmd" \
$(GEN_CMDS__FLAG) \
-llibc.a \
-llibmath.a \

-include ../makefile.init

Expand Down Expand Up @@ -181,17 +181,17 @@ endif
-include ../makefile.defs

# Add inputs and outputs from these tool invocations to the build variables
EXE_OUTPUTS += \
LogAndStream.out \
EXE_OUTPUTS += \
LogAndStream.out \

EXE_OUTPUTS__QUOTED += \
"LogAndStream.out" \
EXE_OUTPUTS__QUOTED += \
"LogAndStream.out" \

BIN_OUTPUTS += \
LogAndStream.txt \
BIN_OUTPUTS += \
LogAndStream.txt \

BIN_OUTPUTS__QUOTED += \
"LogAndStream.txt" \
BIN_OUTPUTS__QUOTED += \
"LogAndStream.txt" \


# All Target
Expand Down
160 changes: 160 additions & 0 deletions LogAndStream/python_scripts/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
73 changes: 73 additions & 0 deletions LogAndStream/python_scripts/Bluetooth commands/aAccel5Hz.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#!/usr/bin/python
import serial
import struct
import sys


def wait_for_ack():
ddata = bytes()
ack = struct.pack('B', 0xff)
while ddata != ack:
ddata = ser.read(1)
print("0x%02x" % ddata[0])
return


if len(sys.argv) < 2:
print("no device specified")
print("You need to specify the serial port of the device you wish to connect to")
print("example:")
print(" aAccel5Hz.py Com12")
print("or")
print(" aAccel5Hz.py /dev/rfcomm0")
else:
ser = serial.Serial(sys.argv[1], 115200)
ser.flushInput()
print("port opening, done.")
# send the set sensors command
ser.write(struct.pack('BBBB', 0x08, 0x80, 0x00, 0x00)) # analogaccel
wait_for_ack()
print("sensor setting, done.")
# send the set sampling rate command
ser.write(struct.pack('BBB', 0x05, 0x00, 0x19)) # 5.12Hz (6400 (0x1900)). Has to be done like this for alignment reasons
wait_for_ack()
print("sampling rate setting, done.")
# send start streaming command
ser.write(struct.pack('B', 0x07))
wait_for_ack()
print("start command sending, done.")

# read incoming data
ddata = bytes()
numbytes = 0
framesize = 10 # 1byte packet type + 3byte timestamp + 3x2byte Analog Accel

print("Packet Type,Timestamp,Analog Accel X,Analog Accel Y,Analog Accel Z")
try:
while True:
while numbytes < framesize:
ddata += ser.read(framesize)
numbytes = len(ddata)

data = ddata[0:framesize]
ddata = ddata[framesize:]
numbytes = len(ddata)

(packettype) = struct.unpack('B', data[0:1])
(timestamp0, timestamp1, timestamp2) = struct.unpack('BBB', data[1:4])
(analogaccelx, analogaccely, analogaccelz) = struct.unpack('HHH', data[4:framesize])

timestamp = timestamp0 + timestamp1 * 256 + timestamp2 * 65536

print("0x%02x,%5d,\t%4d,%4d,%4d" % (packettype[0], timestamp, analogaccelx, analogaccely, analogaccelz))

except KeyboardInterrupt:
# send stop streaming command
ser.write(struct.pack('B', 0x20))
print
print("stop command sent, waiting for ACK_COMMAND")
wait_for_ack()
print("ACK_COMMAND received.")
# close serial port
ser.close()
print("All done")
Loading

0 comments on commit b23d52c

Please sign in to comment.