Hardware components | ||||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
Software apps and online services | ||||||
| ||||||
| ||||||
| ||||||
| ||||||
| ||||||
Hand tools and fabrication machines | ||||||
|
The goal of this project is to offer an inexpensive method for independent non-invasive control of conditions of passengers or cargo transportation. The list of possible use cases includes:
- Ensuring quality and safety of public transportation conditions (smoothness of movement, cabin environment, noise, light etc.). This includes also monitoring of quality of service and usage statistics of elevators, escalators, automatic doors etc.
- Ensuring cargo end-to-end transportation conditions for fragile goods (package position along the route, maximal accelerations etc.) or packages requiring special environment conditions (temperature, humidity, pressure).
Title picture: airplane mechanical meteorographSolution Operation Principles
Minimalfunctionalsetup
Minimally solution consists of two blocks: the sensing element (The Tablet) based on RSL10-SENSE-DB-GEVK board and the analysis and logging block (The Registrar) based on Raspberry Pi 4 connected to each other over Bluetooth Low Energy link.
The Tablet main functions:
- provide access to the attached sensors
- provide functionality of BLE peripheral server
- (Optionally) provide sensor fusion and preliminary processing of sensor data for the attached sensors.
The Registrar main functions:
- Provide functionality of BLE client
- Collect all necessary sensor data from the connected Tablet(s)
- Collect all necessary data from the attached sensors
- Perform Tablet sensor data analysis (thresholds, changes).
- Perform Tablet-to-Registrar sensor data comparative analysis. <== THE KEY FEATURE!
- Log all collected data.
- (Optional) report collected data to the cloud platform.
The main advanced feature of the proposed solution consisting of two blocks - one attached to the container and another attached to the parcel - is the identification of movement of the parcel within container by comparing data from Tablet and from Registrar sensors. In the current implementation the magnetometer vector changes are compared.
Advanced Usages
Cloud Integration
Solution may be easily integrated to cloud platform for reporting, analysis and end-to-end parcel tracking (see below).
Note: Cloud integration is not implemented within this project.
Support of multiple Tablets on a Single Registrar
This capability may be employed by transportation companies and postal services. Each container and each warehouse can be equipped with the registrar connecting to any parcel entering it. NFC then can be used for detecting of and connection initialization to each parcel.
Note: NFC option is not implemented within this prototype solution
End-to-end parcel tracking
This option technically represents the combination of two previous ones. From service perspective this is a solution prototype for end-to-end delivery condition monitoring which potentially can be employed by global express delivery services.
Solution ImplementationThe solution consists of two main blocks: the Sensing Tablet based on RSL10 Sense DB GEVK board and The Registrar based on Raspberry 4.
The software part consists of the Custom Service Firmware with Deep Sleep (RSL10−SENSE−GEVK) running on RSL10 board and the main Python application running on RPI.
The test application used for polling of RSL10 Sense DB GEVK board sensors is also included.
Hardware
On Semiconductor RSL10-SENSE-DB-GEVK Development Kit
The provided board is based on the On Semiconductor RSL10 SIP (System In Package).
From onsemi.com:
RSL10 is a Bluetooth 5, multi-protocol radio System on Chip (SoC) bringing ultra-low-power Bluetooth Low Energy to wireless applications.
Offering the industry’s lowest power consumption, RSL10 enables advanced wireless features while optimizing system size and battery life. The highly-integrated radio SoC features a dual-core architecture and a 2.4 GHz transceiver, providing the flexibility to support Bluetooth Low Energy and 2.4 GHz custom protocols.
The RSL10 Software Development Kit (SDK) enables rapid development of ultra-low power Bluetooth Low Energy applications by leveraging convenient abstraction, drivers and sample applications from Blinky to complete BLE peripherals, and everything in between.
Key features:
- Free Eclipse-based ON Semiconductor IDE plus support for Keil uVision® and IAR Embedded Work Bench®
- Complete Bluetooth Low Energy protocol stack
- Bluetooth Low Energy mesh networking with Android app
- FOTA (Firmware Over The Air) with Android and iOS apps
- FreeRTOS
In addition to RSL10 SiP main board includes reach set of sensors and other peripheral:
The Development Kit was provided by On Semiconductor for this contest is the debug version including a CR2032 coin cell battery, a flexible NFC Antenna, the 10-pin debug header populated and a Segger J-Link LITE CortexM debugger that connects to this header.
Raspberry Pi 4
Note: Raspberry 3 may also work fine as Registrar as far as BLE is supported. But is was not tested within this project.
MPU-9250
From https://www.sparkfun.com/:
The SparkFun MPU-9250 IMU Breakout features the latest 9-axis MEMS sensor from InvenSense. Each of these 9DoF breakouts feature an MPU-9250 with a System in Package (SiP) that combines two chips: the MPU-6500, which contains a 3-axis gyroscope as well as a 3-axis accelerometer, and the AK8963, which features a 3-axis magnetometer. This breakout has been designed to be smaller than some of our other offerings to fit in smaller projects. However, if you plan to use a breadboard, or secure the IMU board to a project with something like epoxy, the mounting holes can be easily snapped off.
Note: The main reason for introducing sensors on the Registrar's side is to provide differential sensor data analysis. By comparing data from the Tablet and from the Registrar the relative movement of the parcel within container may be easily detected.
Firmware
RSL10 Firmware
Custom Service Firmware with Deep Sleep (RSL10−SENSE−GEVK) was used. During the initial phase of the projects some minor tweaks were checked including extension of the data protocol to cover for potential additional sensor fusion results, unlocking the air quality sensor, unlocking the calibration data. Generally all these changes were considered not important for the resulting solution and it was decided to use the provided firmware as is to simplify project reproducing.
Software
Raspberry Pi script for RSL10 sensors polling (rsl10_polling_v0.1.py)
This is test application used for investigating of RSL10 SENSE GEVK sensors and the data interface from Raspberry Pi over BLE. Application is using the pygatt library for establishing BLE connection and for requesting data from the Tablet.
Polled sensors can be added or removed by commenting/un-commenting relative lines in the session using the following session of the application:
The sample output of the script:
Main Raspberry Pi application
The main project application is also using pygatt library for interfacing between the Registrar and the Tablet. Also the FaBo9Axis_MPU9250 library is used for integration and polling of MPU-9250 sensors.
The main cycle of the application consists of the following steps:
- Poll RSL10 SENSE sensors.
- Poll MPU-9250 sensors.
- Check collected data for special conditions (thresholds, changes, change differences between data measured on Regjstrar and on Tablet.
- Print report on the consolr.
- Write data log to CSV file.
The current implementation applies the following checks:
- Ambient light high threshold
- Temperature high and low thresholds
- Humidity high and low thresholds
- Accelerometer norm high threshold
- Magnetometer change threshold (for Tablet and for Registrar)
- Magnetometer change difference threshold
Configuration
The configuration section of the application includes two subsections: one for the system configuration and another one for the sensor data analysis configuration:
The _log and the _log_size parameters manage writing of the measurement CSV log file. _log_size defines maximal number of lines before new file is opened. Log filename includes the timestamp of the moment of opening of the file.
Tablet to Registrar interface
The data protocol (GATT data) is described in the 'RSL10 BLE Custom Service communication protocol' document included into the BDK package and is using two UUIDs - one for sending (writing) the request to the server and one for reading the result. Multiplexing is done using tokens (ASCII range 48 (‘0’) up to 126 (`~`)).
The piece of Python code responsible for this request response handling is quite simple:
The data and the statically provisioned tokens are stored in the global sensor_cfg structure of the RSL10Sense class:
Note: The tokens are statically provisioned which assumes that no multiple concurrent requests to the same sensor is issued. This condition is hold for this application but generally please ensure different tokens if you are going to reuse parts of this code.Solution Testing and Usage Examples
Development and debugging configuration:
Working configuration (aka production):
Examples
Below are several examples of normal and alarm situations detected by the solution - console screenshot and log file. See also attached samples.
Normal conditions:
Ambient light threshold exceeded (e.g. parcel was opened):
Humidity threshold exceeded (damage possibility):
Acceptable turn (parcel is moving with the container). The complex virtual differential sensor is within the threshold while both Tablet and Registrar magnetometers are outside:
Unacceptable turn (the parcel movement is not aligned with the container movement):
The differential analysis was not completely finalized and debugged because magnetometer data do not update as expected. Potentially some rework of the demo application will be required.
The complex alarm related to sharp move and opening of the parcel:
Sample log file
The provided development kit is somewhat unique in the sense of offered capabilities and features. And even simple prototype immediately opens almost unlimited possibilities for extension and modification of the solution.
For this project e.g. the following direction of future development can be taken:
- Usage of NFC for Tablet identification by Registrar and connection initiation.
- Adding rule engine and deep learning tools to the Registrar for smart sensor fusion and complex situation identification.
- Rebuilding Registrar on another RSL10 development kit.
- Reworking the firmware in purpose to employ the advanced sensor features and to reusing of LPDSP32 for sensor fusion (unfortunately there were no tools available within the kit for compiling code for LPDSP32).
(Raspberry Pi) Python script for RSL10 Sense board sensors polling over BLE
Python# RSL10 Sense Board Pooling
# Tested with Raspberry Pi 4
# anton_bondarenko at yahoo.com
import os
import sys
import traceback
import time
import datetime
import csv
import pygatt
#------------------------------------------------------------------------
# Sensor polling configuration
sensors = [
# token, node, prop, title, ...
['a', 'AL', 'L', 'Ambient light, Lux', True, True, False],
['b', 'EV', 'T', 'Temperature, Deg.C', True, True, False],
['c', 'EV', 'P', 'Pressure, kPa', True, True, False],
['d', 'EV', 'H', 'Humidity, %', True, True, False],
['f', 'AO', 'H', 'Compas heading, Deg.', True, True, True],
['g', 'AO', 'P', 'Device pitch, Deg.', True, True, True],
['h', 'AO', 'R', 'Device roll, Deg.', True, True, True],
# ['i', 'AO', 'GX', 'Gravity vector X axis, m/sqr(s)', True, True, True],
# ['j', 'AO', 'GY', 'Gravity vector Y axis, m/sqr(s)', True, True, True],
# ['k', 'AO', 'GZ', 'Gravity vector Z axis, m/sqr(s)', True, True, True],
['l', 'AO', 'AX', 'Linear acceleration X axis, m/sqr(s)', True, True, True],
['m', 'AO', 'AY', 'Linear acceleration Y axis, m/sqr(s)', True, True, True],
['n', 'AO', 'AZ', 'Linear acceleration Z axis, m/sqr(s)', True, True, True],
['o', 'AO', 'MX', 'Magnetic field strength X axis, muT (micro Tesla)', True, True, True],
['p', 'AO', 'MY', 'Magnetic field strength Y axis, muT (micro Tesla)', True, True, True],
['q', 'AO', 'MZ', 'Magnetic field strength Z axis, muT (micro Tesla)', True, True, True],
['r', 'AO', 'ARX', 'Angular rate X axis, Dps (Degrees per second)', True, True, True],
['s', 'AO', 'ARY', 'Angular rate Y axis, Dps (Degrees per second)', True, True, True],
['t', 'AO', 'ARZ', 'Angular rate Z axis, Dps (Degrees per second)', True, True, True],
# ['0', 'AO', 'C', 'Calibration status', True, True, False]
]
#------------------------------------------------------------------------
clear_scr = True
clear_timeout = 2
def sysexit():
global adapter
traceback.print_exc()
adapter.stop()
sys.exit()
try:
adapter = pygatt.GATTToolBackend()
adapter.start()
ADDR = "60:C0:BF:28:93:8A"
device = adapter.connect(ADDR)
# Warm-up
rq_no = 0
ts = time.time()
if clear_scr:
os.system('clear')
print '==== RSL10 Sense Board Sensor Polling Script =========================='
print 'Poll No.: %i' % rq_no
for i in range(len(sensors)):
s = sensors[i]
device.char_write('e093f3b7-00a3-a9e5-9eca-40036e0edc24',
bytearray(s[0]+'/'+s[1]+'/'+s[2]), wait_for_response=s[4])
_, _, prop = device.char_read('e093f3b6-00a3-a9e5-9eca-40026e0edc24', timeout=30).split('/')
if s[6]:
prop = float(prop)
print sensors[i][3] + ': ', prop
print 'Poll RTT: %0.2f' % (time.time() - ts)
if clear_scr:
time.sleep(clear_timeout)
# Polling loop
active = True
while(active):
ts = time.time()
rq_no += 1
if clear_scr:
os.system('clear')
print '==== RSL10 Sense Board Sensor Polling Script =========================='
else:
print '======================================================================='
print 'Poll No.: %i' % rq_no
for i in range(0, len(sensors)):
s = sensors[i]
device.char_write('e093f3b7-00a3-a9e5-9eca-40036e0edc24',
bytearray(s[0]+'/'+s[1]+'/'+s[2]), wait_for_response=s[5])
_, _, prop = device.char_read('e093f3b6-00a3-a9e5-9eca-40026e0edc24', timeout=4).split('/')
if s[6]:
prop = float(prop)
print sensors[i][3] + ': ', prop
print 'Poll RTT: %0.2f, sec.' % (time.time() - ts)
if clear_scr:
time.sleep(clear_timeout)
except:
sysexit()
adapter.stop()
sys.exit()
#------------------------------------------------------------------------
# OnSemi RSL10Sense Board
# https://www.hackster.io/contests/OnSemi
# Transportation Condition Logging Monitor v.0.3
# Tested with Raspberry Pi 4
# anton_bondarenko at yahoo.com
#------------------------------------------------------------------------
import os
import sys
import traceback
import time
import math
import datetime
import csv
import pygatt
import FaBo9Axis_MPU9250
import numpy as np
#------------------------------------------------------------------------
# System configuration
#------------------------------------------------------------------------
_log = True
_log_size = 1000
_debug = False
#------------------------------------------------------------------------
# Detector configuration
#------------------------------------------------------------------------
_ambient_light_threshold = 200 # lux
_temperature_high_thresold = 35 # deg Celcius
_temperature_low_thresold = 15 # deg Celcius
_humidity_high_threshold = 65 # %
_humidity_low_threshold = 20 # %
_accelerometer_threshold = 10 # mpss
# _accelerometer_delta = 25 # mpss
_magnetometer_delta = 10 # %
_magnetometer_angle = math.radians(15) # deg
_magnetometer_change_delta = 15 # %
_magnetometer_change_angle = 15 # %
# _position_delta = 0.1 # meter
# _orientation_delta = 10 # deg
#------------------------------------------------------------------------
# Miscelaneous classes and functions
#------------------------------------------------------------------------
# Terminal output formats
class TermCo:
OK = '\033[92m\033[1m'
WARNING = '\033[93m\033[1m'
ALARM = '\033[91m\033[1m'
NORMAL = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
def highlight(style, value):
return style + str(value) + TermCo.NORMAL
def fstr(v):
if isinstance(v, float):
return "%.4f" % v
else:
return str(v)
# Encoder and Decoder for status variable
StatusDec = [highlight(TermCo.OK, 'Normal'),
highlight(TermCo.WARNING, 'Warning'),
highlight(TermCo.ALARM, 'Alarm')]
StatusText = ['Normal', 'Warning', 'Alarm']
class Status:
normal = 0
warning = 1
alarm = 2
#------------------------------------------------------------------------
# RSL10 Sense Board
#------------------------------------------------------------------------
class Sensor:
def __init__(self, device, id):
self.device = device
self.id = id
self.current = 'Undefined'
self.previous = 'Undefined'
self.current_ts = -1
self.previous_ts = -1
def update(self, value):
self.previous = self.current
self.previous_ts = self.current_ts
self.current = value
self.current_ts = time.time()
def get_sensor(device, id, c, p, ts_c, ts_p):
s = Sensor(device, id)
s.device = device
s.id = id
s.current = c
s.previous = p
s.current_ts = ts_c
s.previous_ts = ts_p
return s
def poll(sensors):
for s in sensors:
s.get()
class RSL10Sense:
AMBIENT_LIGHT = 0
TEMPERATURE = 1
PRESSURE = 2
HUMIDITY = 3
YAW = 4
PITCH = 5
ROLL = 6
AX = 7
AY = 8
AZ = 9
MX = 10
MY = 11
MZ = 12
AV = 13 # virtual aggegate
OV = 14 # virtual aggegate
MV = 15 # virtual aggegate
sensor_cfg = [
['Ambient light', 'Lux', 'a', 'AL', 'L', True, True],
['Temperature', 'Deg.C', 'b', 'EV', 'T', True, True],
['Pressure', 'kPa', 'c', 'EV', 'P', True, True],
['Humidity', '%', 'd', 'EV', 'H', True, True],
['Compas yaw', 'Deg.', 'f', 'AO', 'H', True, True],
['Device pitch', 'Deg.', 'g', 'AO', 'P', True, True],
['Device roll', 'Deg.', 'h', 'AO', 'R', True, True],
['Linear acceleration X axis', 'mpss', 'l', 'AO', 'AX', True, True],
['Linear acceleration Y axis', 'mpss', 'm', 'AO', 'AY', True, True],
['Linear acceleration Z axis', 'mpss', 'n', 'AO', 'AZ', True, True],
['Magnetic field strength X axis', 'muT', 'o', 'AO', 'MX', True, False],
['Magnetic field strength Y axis', 'muT', 'p', 'AO', 'MY', True, False],
['Magnetic field strength Z axis', 'muT', 'q', 'AO', 'MZ', True, False],
['Acceleration vector', '3 x mpss'],
['Orientation vector', '3 x Deg.'],
['Magnetic field vector', '3 x muT']
]
def __init__(self, addr = False):
self.status = 'Disconnected'
self.adapter = pygatt.GATTToolBackend()
self.sensors = []
if addr:
self.adapter.start()
self.ADDR = "60:C0:BF:28:93:8A"
self.device = self.adapter.connect(self.ADDR, auto_reconnect=True)
for i in range(16):
s = Sensor(self, i)
self.sensors.append(s)
self.get(i, warm_up = True)
self.status = 'Connected'
def connect(self, addr):
self.adapter.start()
self.ADDR = "60:C0:BF:28:93:8A"
self.device = adapter.connect(self.ADDR, auto_reconnect=True)
for i in range(16):
s = Sensor(self, i)
self.sensors.append(s)
self.get(i, warm_up = True)
self.status = 'Connected'
def get(self, sensor, warm_up = False):
s = self.sensor_cfg[sensor]
if sensor >= 13:
if sensor == self.AV:
self.sensors[sensor].update([self.sensors[self.AX].current,
self.sensors[self.AY].current,
self.sensors[self.AZ].current])
return self.sensors[sensor]
elif sensor == self.OV:
self.sensors[sensor].update([self.sensors[self.YAW].current,
self.sensors[self.PITCH].current,
self.sensors[self.ROLL].current])
return self.sensors[sensor]
elif sensor == self.MV:
self.sensors[sensor].update([self.sensors[self.MX].current,
self.sensors[self.MY].current,
self.sensors[self.MZ].current])
return self.sensors[sensor]
else:
return 'Unlnown sensor Id'
else:
if warm_up:
wfr = s[6]
else:
wfr = s[5]
try:
self.device.char_write('e093f3b7-00a3-a9e5-9eca-40036e0edc24',
bytearray(s[2]+'/'+s[3]+'/'+s[4]), wait_for_response=wfr)
_, _, prop = self.device.char_read('e093f3b6-00a3-a9e5-9eca-40026e0edc24',
timeout=4).split('/')
except (KeyboardInterrupt, SystemExit):
if _debug:
print 'Aborted'
rsl.adapter.stop()
sys.exit()
except:
self.sensors[sensor].update('Timeout')
if _debug:
print highlight(TermCo.ALARM, 'Sensor data acquizition failure')
exc_type, exc_value, exc_traceback = sys.exc_info()
print("*** Traceback:")
traceback.print_tb(exc_traceback, file=sys.stdout) # limit=1,
print("*** Exception:")
traceback.print_exception(exc_type, exc_value, exc_traceback, file=sys.stdout)
print sys.exc_info() # limit=2,
else:
self.sensors[sensor].update(float(prop))
""" if prop == 0:
self.sensors[sensor].update('Undefined')
else:
self.sensors[sensor].update(float(prop)) """
return self.sensors[sensor].current
def poll(self):
for i in range(16):
self.get(i)
#------------------------------------------------------------------------
# MPU9250 Sense Board
#------------------------------------------------------------------------
class MPU9250:
A = 0 # Aggregate
G = 1 # Aggregate
M = 2 # Aggregate
AX = 3 # Virtual
AY = 4 # Virtual
AZ = 5 # Virtual
GX = 6 # Virtual
GY = 7 # Virtual
GZ = 8 # Virtual
MX = 9 # Virtual
MY = 10 # Virtual
MZ = 11 # Virtual
sensor_cfg = [
['Acceleration vector', '3 x raw'],
['Gyroscope vector', '3 x raw.'],
['Magnetic field vector', '3 x raw'],
['Linear acceleration X axis', 'raw'],
['Linear acceleration Y axis', 'raw'],
['Linear acceleration Z axis', 'raw'],
['Gyrospope X axis', 'raw'],
['Gyrospope Y axis', 'raw'],
['Gyrospope Z axis', 'raw'],
['Magnetic field strength X axis', 'raw'],
['Magnetic field strength Y axis', 'raw'],
['Magnetic field strength Z axis', 'raw']
]
def __init__(self):
self.device = FaBo9Axis_MPU9250.MPU9250()
self.status = 'Connected'
self.sensors = []
for i in range(12):
s = Sensor(self, i)
self.sensors.append(s)
self.get(i)
def get(self, sensor):
if sensor == self.A:
s = self.device.readAccel()
self.sensors[self.A].update([s['x'], s['y'], s['z']])
return self.sensors[self.A]
elif sensor == self.G:
s = self.device.readGyro()
self.sensors[self.G].update([s['x'], s['y'], s['z']])
return self.sensors[self.G]
elif sensor == self.M:
s = self.device.readMagnet()
self.sensors[self.M].update([s['x'], s['y'], s['z']])
return self.sensors[self.M]
elif sensor <= 11:
self.sensors[sensor].update(self.sensors[sensor / 3 - 1].current[sensor % 3])
return self.sensors[sensor]
else:
return 'Unknown sensor Id'
def poll(self):
for i in range(12):
self.get(i)
#------------------------------------------------------------------------
# Hardware-agnostic sensor value analysis
#------------------------------------------------------------------------
""" Checks if scalar sensor value went below/above given threshold
Parameters:
sensor - scalar sensor object
threshold - value boundary
less = true means check if value is below threshold. Otherwise checks if the value is above
Parameter check:
sensor current value must be defined
Output:
status, report message """
def scalar_threshold(sensor, threshold, less=True):
status = Status.normal
if sensor.current == 'Timeout' or sensor.current == 'Undefined':
status = Status.warning
message = sensor.device.sensor_cfg[sensor.id][0] + \
highlight(TermCo.WARNING, ' value is undefined')
elif (less and sensor.current > threshold) or (not less and sensor.current < threshold):
status = Status.alarm
message = sensor.device.sensor_cfg[sensor.id][0] + ' threshold (' + \
str(threshold) + ') reached: ' + highlight(TermCo.ALARM, str(sensor.current))
else:
message = sensor.device.sensor_cfg[sensor.id][0] + ' threshold (' + \
str(threshold) + ') check passed: ' + highlight(TermCo.OK, str(sensor.current))
return status, message
# Checks if scalar sensor value varied more than given percent
#def scalar_change(sensor, delta):
# Checks if scalar sensor value differs more than given percent from another value
#def scalar_delta(sensor, delta):
""" Checks if the length of 3-coordinated vector sensor went below/above given threshold
Parameters:
vector - vector sensor object
threshold - value boundary
less = true means check if value is below threshold. Otherwise checks if the value is above
Parameter check:
sensor current values must be defined
Output:
status, report message """
def vector_threshold(vector, threshold, less=True):
status = Status.normal
if vector.current == 'Timeout' or vector.current == 'Undefined' or \
vector.current[0] == 'Timeout' or vector.current[0] == 'Undefined' or \
vector.current[1] == 'Timeout' or vector.current[1] == 'Undefined' or \
vector.current[2] == 'Timeout' or vector.current[2] == 'Undefined':
status = Status.warning
message = vector.device.sensor_cfg[vector.id][0] + \
highlight(TermCo.WARNING, ' value is undefined')
else:
vc = np.array(vector.current)
value = np.sqrt(vc.dot(vc))
if (less and value > threshold) or (not less and value < threshold):
status = Status.alarm
message = vector.device.sensor_cfg[vector.id][0] + ' norm threshold (' + \
str(threshold) + ') reached: ' + highlight(TermCo.ALARM, fstr(value))
else:
message = vector.device.sensor_cfg[vector.id][0] + ' threshold (' + \
str(threshold) + ') check passed: ' + \
highlight(TermCo.OK, fstr(value))
return status, message
""" Checks if length or angle of 3-coordinated vector changed outside of the threshold
Parameters:
vector - vector sensor object
delta - norm change boundary
angle - direction change boundary
sensor current and previous values must be defined
Output:
status, report message """
def vector_change(vector, delta, angle):
status = Status.normal
if vector.current == 'Timeout' or vector.current == 'Undefined' or \
vector.current[0] == 'Timeout' or vector.current[0] == 'Undefined'or \
vector.current[1] == 'Timeout' or vector.current[1] == 'Undefined'or \
vector.current[2] == 'Timeout' or vector.current[2] == 'Undefined' or \
vector.previous == 'Timeout' or vector.previous == 'Undefined'or \
vector.previous[0] == 'Timeout' or vector.previous[0] == 'Undefined'or \
vector.previous[1] == 'Timeout' or vector.previous[1] == 'Undefined'or \
vector.previous[2] == 'Timeout' or vector.previous[2] == 'Undefined':
status = Status.warning
message = vector.device.sensor_cfg[vector.id][0] + \
highlight(TermCo.WARNING, ' value is undefined')
else:
vc = np.array(vector.current)
vp = np.array(vector.previous)
lc = np.sqrt(vc.dot(vc))
lp = np.sqrt(vp.dot(vp))
if abs(lc*lp) < 0.0000000000001:
message = vector.device.sensor_cfg[vector.id][0] + highlight(TermCo.WARNING, ' is undefined')
status = Status.warning
else:
_delta = abs(lc - lp)*100/lp
_angle = math.acos(vc.dot(vp)/(lc*lp))
if (_delta > delta) or (_angle > angle):
status = Status.alarm
message = vector.device.sensor_cfg[vector.id][0] + ' change check failed, \n delta: ' + \
highlight(TermCo.ALARM, fstr(_delta)) + ' / ' + fstr(delta) + ',\n angle: ' + \
highlight(TermCo.ALARM, fstr(_angle)) + ' / ' + fstr(angle)
else:
message = vector.device.sensor_cfg[vector.id][0] + ' change check passed, \n delta: ' + \
highlight(TermCo.OK, fstr(_delta)) + ' / ' + fstr(delta) + ',\n angle: ' + \
highlight(TermCo.OK, fstr(_angle)) + ' / ' + fstr(angle)
return status, message
""" Checks if the delta of length or angle between 3-dim vectors changed outside of the set threshold
Parameters:
vector1, vector1 - compared vector sensor objects
delta - norm delta boundary
angle - angle delta boundary
vectors' both current and previous values must be defined
Output:
status, report message """
def vector_delta(vector1, vector2, delta, angle):
status = Status.normal
if vector1.current == 'Timeout' or vector1.current == 'Undefined' or \
vector1.current[0] == 'Timeout' or vector1.current[0] == 'Undefined'or \
vector1.current[1] == 'Timeout' or vector1.current[1] == 'Undefined'or \
vector1.current[2] == 'Timeout' or vector1.current[2] == 'Undefined' or \
vector1.previous == 'Timeout' or vector1.previous == 'Undefined'or \
vector1.previous[0] == 'Timeout' or vector1.previous[0] == 'Undefined'or \
vector1.previous[1] == 'Timeout' or vector1.previous[1] == 'Undefined'or \
vector1.previous[2] == 'Timeout' or vector1.previous[2] == 'Undefined'or \
vector2.current == 'Timeout' or vector2.current == 'Undefined' or \
vector2.current[0] == 'Timeout' or vector2.current[0] == 'Undefined'or \
vector2.current[1] == 'Timeout' or vector2.current[1] == 'Undefined'or \
vector2.current[2] == 'Timeout' or vector2.current[2] == 'Undefined' or \
vector2.previous == 'Timeout' or vector2.previous == 'Undefined'or \
vector2.previous[0] == 'Timeout' or vector2.previous[0] == 'Undefined'or \
vector2.previous[1] == 'Timeout' or vector2.previous[1] == 'Undefined'or \
vector2.previous[2] == 'Timeout' or vector2.previous[2] == 'Undefined':
status = Status.warning
message = vector1.device.sensor_cfg[vector.id][0] + \
highlight(TermCo.WARNING, ' value is undefined')
else:
vc1 = np.array(vector1.current)
vp1 = np.array(vector1.previous)
lc1 = np.sqrt(vc1.dot(vc1))
lp1 = np.sqrt(vp1.dot(vp1))
vc2 = np.array(vector2.current)
vp2 = np.array(vector2.previous)
lc2 = np.sqrt(vc2.dot(vc2))
lp2 = np.sqrt(vp2.dot(vp2))
if abs(lc1*lp1) < 0.0000000000001 or abs(lc2*lp2) < 0.0000000000001:
message = vector1.device.sensor_cfg[vector.id][0] + \
highlight(TermCo.WARNING, ' is undefined')
status = Status.warning
else:
_delta1 = abs(lc1 - lp1)*100/lp1
_angle1 = math.acos(vc1.dot(vp1)/(lc1*lp1))
_delta2 = abs(lc2 - lp2)*100/lp2
_angle2 = math.acos(vc2.dot(vp2)/(lc2*lp2))
if abs(_delta2 - _delta1) > delta or abs(_angle2 - _angle1) > angle:
status = Status.alarm
message = vector1.device.sensor_cfg[vector1.id][0] + \
' delta change check failed, \n change delta: ' + \
highlight(TermCo.ALARM, fstr(abs(_delta2 - _delta1))) + \
' / ' + fstr(delta) + ',\n angle change delta: ' + \
highlight(TermCo.ALARM, fstr(abs(_angle2 - _angle1))) + ' / ' + fstr(angle)
else:
message = vector1.device.sensor_cfg[vector1.id][0] + \
' delta change check passed, \n change delta: ' + \
highlight(TermCo.OK, fstr(abs(_delta2 - _delta1))) + \
' / ' + fstr(delta) + ',\n angle change delta: ' + \
highlight(TermCo.OK, fstr(abs(_angle2 - _angle1))) + ' / ' + fstr(angle)
return status, message
#------------------------------------------------------------------------
# main()
#------------------------------------------------------------------------
#------------------------------------------------------------------------
# Intialize sensor objects
#------------------------------------------------------------------------
try:
rsl = RSL10Sense("60:C0:BF:28:93:8A")
mpu = MPU9250()
except (KeyboardInterrupt, SystemExit):
if _debug:
print 'Aborted'
#rsl.adapter.stop()
sys.exit()
except:
if _debug:
exc_type, exc_value, exc_traceback = sys.exc_info()
print("*** Traceback:")
traceback.print_tb(exc_traceback, file=sys.stdout) # limit=1,
print("*** Exception:")
traceback.print_exception(exc_type, exc_value, exc_traceback, file=sys.stdout) #limit=2,
print sys.exc_info()
else:
print highlight(TermCo.ALARM, 'Initialization failure')
#rsl.adapter.stop()
sys.exit()
#------------------------------------------------------------------------
# Main loop
#------------------------------------------------------------------------
try:
rq_no = 1 # Poll counter
no_rec = 0 # record counter in the current file
if _log:
dt = datetime.datetime.fromtimestamp(time.time()).strftime('%Y_%m_%d_%H_%M_%S')
logf = open('tclm_log_' + dt + '.csv', 'wb')
logh = ['Poll No.', 'Timestamp', 'Status']
for i in range(len(RSL10Sense.sensor_cfg)):
logh.append(RSL10Sense.sensor_cfg[i][0])
for i in range(len(MPU9250.sensor_cfg)):
logh.append(MPU9250.sensor_cfg[i][0])
writer = csv.writer(logf, delimiter = ',')
writer.writerow(logh)
while(True):
# poll sensors
rsl.poll()
mpu.poll()
# print values to console
print '\n==== Transaportation Condition Logging Monitor ================='
print '>>> Poll iteration No.: %i' % rq_no, '>>> Date/Time:', dt
print '==== Collected Data: RSL10 Sense ===============================\n'
for i in range(len(rsl.sensors)):
print RSL10Sense.sensor_cfg[i][0] + ': ' + str(rsl.sensors[i].current)
print '\n==== Collected Data: MPU-9250 ==================================\n'
for i in range(len(mpu.sensors)):
print MPU9250.sensor_cfg[i][0] + ': ' + str(mpu.sensors[i].current)
print '\n==== Sensor Data Analysis ======================================\n'
# Do all checks
# Ambient Light
status = Status.normal
s, m = scalar_threshold(rsl.sensors[RSL10Sense.AMBIENT_LIGHT],
_ambient_light_threshold)
if s > status:
status = s
print m
# Temperature
s, m = scalar_threshold(rsl.sensors[RSL10Sense.TEMPERATURE],
_temperature_high_thresold)
if s > status:
status = s
print m
s, m = scalar_threshold(rsl.sensors[RSL10Sense.TEMPERATURE],
_temperature_low_thresold, less = False)
if s > status:
status = s
print m
# Humidity
s, m = scalar_threshold(rsl.sensors[RSL10Sense.HUMIDITY],
_humidity_high_threshold)
if s > status:
status = s
print m
s, m = scalar_threshold(rsl.sensors[RSL10Sense.HUMIDITY],
_humidity_low_threshold, less = False)
if s > status:
status = s
print m
# Acceleration (RSL10)
s, m = vector_threshold(rsl.sensors[RSL10Sense.AV],
_accelerometer_threshold)
if s > status:
status = s
print m
# Magnetic Field Change (RSL10)
s, m = vector_change(rsl.sensors[RSL10Sense.MV],
_magnetometer_delta,
_magnetometer_angle)
if s > status:
status = s
print m
# Magnetic Field Change (MPU9250)
s, m = vector_change(mpu.sensors[MPU9250.M],
_magnetometer_delta,
_magnetometer_angle)
if s > status:
status = s
print m
# Magnetic Field Change Deta (RSL10 - MPU9250)
s, m = vector_delta(rsl.sensors[RSL10Sense.MV],
mpu.sensors[MPU9250.M],
_magnetometer_change_delta,
_magnetometer_change_angle)
if s > status:
status = s
print m
print '\n==== Status ===================================================='
print '>>>>', StatusDec[status]
print '==== Press Ctrl-c for exit ====================================='
# Write to log
if _log:
dt = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
if no_rec >= _log_size: # Open new file
logf.close()
logf = open('tclm_log_' + dt + '.csv', 'wb')
writer = csv.writer(logf, delimiter = ',')
writer.writerow(logh)
no_rec = 0
poll = [rq_no, dt, StatusText[status]]
for i in range(len(rsl.sensors)):
poll.append(rsl.sensors[i].current)
for i in range(len(mpu.sensors)):
poll.append(mpu.sensors[i].current)
writer.writerow(poll)
no_rec += 1
rq_no += 1
except (KeyboardInterrupt, SystemExit):
if _debug:
print 'Aborted'
rsl.adapter.stop()
sys.exit()
except:
if _debug:
exc_type, exc_value, exc_traceback = sys.exc_info()
print("*** Traceback:")
traceback.print_tb(exc_traceback, file=sys.stdout) # limit=1,
print("*** Exception:")
traceback.print_exception(exc_type, exc_value, exc_traceback, file=sys.stdout) #limit=2,
print sys.exc_info()
else:
print highlight(TermCo.ALARM, 'Main loop failure')
rsl.adapter.stop()
sys.exit()
rsl.adapter.stop()
sys.exit()
#------------------------------------------------------------------------
# Mar 09, 2020 - anton_bondarenko at yahoo.com
#------------------------------------------------------------------------
Example log file (.csv)
Plain textPoll No.,Timestamp,Status,Ambient light,Temperature,Pressure,Humidity,Compas yaw,Device pitch,Device roll,Linear acceleration X axis,Linear acceleration Y axis,Linear acceleration Z axis,Magnetic field strength X axis,Magnetic field strength Y axis,Magnetic field strength Z axis,Acceleration vector,Orientation vector,Magnetic field vector,Acceleration vector,Gyroscope vector,Magnetic field vector,Linear acceleration X axis,Linear acceleration Y axis,Linear acceleration Z axis,Gyrospope X axis,Gyrospope Y axis,Gyrospope Z axis,Magnetic field strength X axis,Magnetic field strength Y axis,Magnetic field strength Z axis
1,2020-03-13 23:15:13,Alarm,41.0,25.4,97.37,29.37,359.967041,2.93335,0.736084,0.029928,-0.175974,0.223858,-28.869629,-55.358887,34.484863,"[0.029928, -0.175974, 0.223858]","[359.967041, 2.93335, 0.736084]","[-28.869629, -55.358887, 34.484863]","[0.047, 0.009, 1.032]","[0.175, 0.237, 0.168]","[-1.457, 55.01, 48.144]",0.047,0.009,1.032,0.175,0.237,0.168,-1.457,55.01,48.144
2,2020-03-13 23:15:17,Normal,41.0,25.38,97.37,28.74,359.945068,2.955322,0.769043,0.003591,-0.177171,0.326809,-26.794434,-53.588867,32.470703,"[0.003591, -0.177171, 0.326809]","[359.945068, 2.955322, 0.769043]","[-26.794434, -53.588867, 32.470703]","[0.048, 0.01, 1.03]","[0.183, 0.244, 0.053]","[-2.914, 55.01, 50.604]",0.048,0.01,1.03,0.183,0.244,0.053,-2.914,55.01,50.604
3,2020-03-13 23:15:21,Normal,41.0,25.38,97.38,28.34,359.934082,2.977295,0.780029,-0.007183,-0.175974,0.233435,-27.587891,-54.382324,32.897949,"[-0.007183, -0.175974, 0.233435]","[359.934082, 2.977295, 0.780029]","[-27.587891, -54.382324, 32.897949]","[0.048, 0.013, 1.038]","[0.107, 0.229, 0.13]","[-3.097, 55.921, 47.969]",0.048,0.013,1.038,0.107,0.229,0.13,-3.097,55.921,47.969
4,2020-03-13 23:15:25,Alarm,41.0,25.38,97.37,27.96,3.273926,-5.921631,-31.552734,8.761581,-11.160571,1.322796,13.85498,-30.395508,6.591797,"[8.761581, -11.160571, 1.322796]","[3.273926, -5.921631, -31.552734]","[13.85498, -30.395508, 6.591797]","[0.051, 0.008, 1.035]","[0.191, 0.229, 0.099]","[-2.004, 56.285, 47.617]",0.051,0.008,1.035,0.191,0.229,0.099,-2.004,56.285,47.617
5,2020-03-13 23:15:29,Alarm,20.0,25.43,97.37,30.82,55.415039,-1.845703,5.734863,-0.568623,-0.227449,-0.96606,18.188477,-56.884766,93.566895,"[-0.568623, -0.227449, -0.96606]","[55.415039, -1.845703, 5.734863]","[18.188477, -56.884766, 93.566895]","[0.048, 0.01, 1.033]","[0.214, 0.244, 0.168]","[-1.093, 56.832, 48.496]",0.048,0.01,1.033,0.214,0.244,0.168,-1.093,56.832,48.496
6,2020-03-13 23:15:33,Alarm,0.0,26.09,97.37,35.3,328.930664,3.823242,0.351562,0.539892,2.044648,-0.117316,-6.896973,21.484375,-32.592773,"[0.539892, 2.044648, -0.117316]","[328.930664, 3.823242, 0.351562]","[-6.896973, 21.484375, -32.592773]","[0.051, 0.01, 1.033]","[0.153, 0.427, 0.061]","[-3.825, 57.014, 48.32]",0.051,0.01,1.033,0.153,0.427,0.061,-3.825,57.014,48.32
7,2020-03-13 23:15:37,Alarm,20.0,26.15,97.38,45.0,23.90625,31.783447,6.152344,-0.604536,16.393099,3.5099,-11.291504,16.052246,27.770996,"[-0.604536, 16.393099, 3.5099]","[23.90625, 31.783447, 6.152344]","[-11.291504, 16.052246, 27.770996]","[0.049, 0.009, 1.034]","[-0.031, 0.145, 0.092]","[-5.647, 55.556, 48.672]",0.049,0.009,1.034,-0.031,0.145,0.092,-5.647,55.556,48.672
8,2020-03-13 23:15:41,Alarm,20.0,26.3,97.37,48.86,20.961914,1.878662,0.0,-0.007183,-0.005986,0.240617,-25.939941,63.293457,-22.338867,"[-0.007183, -0.005986, 0.240617]","[20.961914, 1.878662, 0.0]","[-25.939941, 63.293457, -22.338867]","[0.048, 0.01, 1.032]","[0.214, 0.191, 0.145]","[-3.643, 56.467, 49.55]",0.048,0.01,1.032,0.214,0.191,0.145,-3.643,56.467,49.55
9,2020-03-13 23:15:45,Normal,20.0,26.18,97.37,44.98,20.961914,1.878662,0.0,-0.016759,-0.026336,0.234632,-25.146484,63.293457,-22.338867,"[-0.016759, -0.026336, 0.234632]","[20.961914, 1.878662, 0.0]","[-25.146484, 63.293457, -22.338867]","[0.05, 0.008, 1.033]","[0.114, 0.214, 0.168]","[-2.368, 55.921, 48.672]",0.05,0.008,1.033,0.114,0.214,0.168,-2.368,55.921,48.672
10,2020-03-13 23:15:49,Normal,20.0,26.1,97.38,40.17,20.961914,1.878662,0.0,-0.02873,-0.016759,0.2478,-26.245117,62.561035,-23.498535,"[-0.02873, -0.016759, 0.2478]","[20.961914, 1.878662, 0.0]","[-26.245117, 62.561035, -23.498535]","[0.05, 0.009, 1.033]","[0.221, 0.191, 0.145]","[-3.097, 57.378, 47.969]",0.05,0.009,1.033,0.221,0.191,0.145,-3.097,57.378,47.969
11,2020-03-13 23:15:53,Normal,20.0,26.05,97.37,36.57,20.961914,1.878662,0.0,-0.025139,0.00838,0.189142,-27.038574,62.561035,-22.766113,"[-0.025139, 0.00838, 0.189142]","[20.961914, 1.878662, 0.0]","[-27.038574, 62.561035, -22.766113]","[0.049, 0.008, 1.031]","[0.237, 0.198, 0.145]","[-3.461, 56.649, 47.969]",0.049,0.008,1.031,0.237,0.198,0.145,-3.461,56.649,47.969
12,2020-03-13 23:15:57,Alarm,1132.0,26.01,97.37,32.87,20.961914,1.867676,0.0,-0.015562,-0.001197,0.241814,-26.672363,62.866211,-22.766113,"[-0.015562, -0.001197, 0.241814]","[20.961914, 1.867676, 0.0]","[-26.672363, 62.866211, -22.766113]","[0.052, 0.01, 1.034]","[0.153, 0.175, 0.099]","[-2.368, 57.014, 48.672]",0.052,0.01,1.034,0.153,0.175,0.099,-2.368,57.014,48.672
13,2020-03-13 23:16:01,Alarm,1142.0,25.99,97.37,31.72,20.961914,1.867676,0.0,-0.022745,-0.017957,0.226252,-27.038574,63.659668,-22.338867,"[-0.022745, -0.017957, 0.226252]","[20.961914, 1.867676, 0.0]","[-27.038574, 63.659668, -22.338867]","[0.048, 0.011, 1.034]","[0.191, 0.275, 0.053]","[-2.55, 55.374, 49.199]",0.048,0.011,1.034,0.191,0.275,0.053,-2.55,55.374,49.199
14,2020-03-13 23:16:05,Alarm,1142.0,25.98,97.37,30.53,20.961914,1.867676,0.0,-0.034716,-0.013168,0.222661,-26.672363,63.293457,-23.193359,"[-0.034716, -0.013168, 0.222661]","[20.961914, 1.867676, 0.0]","[-26.672363, 63.293457, -23.193359]","[0.048, 0.009, 1.036]","[0.214, 0.252, 0.061]","[-3.097, 57.742, 47.617]",0.048,0.009,1.036,0.214,0.252,0.061,-3.097,57.742,47.617
15,2020-03-13 23:16:09,Normal,20.0,25.94,97.37,28.96,20.961914,1.867676,0.0,-0.014365,-0.005986,0.227449,-26.672363,64.086914,-22.338867,"[-0.014365, -0.005986, 0.227449]","[20.961914, 1.867676, 0.0]","[-26.672363, 64.086914, -22.338867]","[0.052, 0.011, 1.033]","[0.229, 0.244, 0.0]","[-4.007, 56.832, 48.847]",0.052,0.011,1.033,0.229,0.244,0.0,-4.007,56.832,48.847
16,2020-03-13 23:16:13,Normal,20.0,25.95,97.37,28.68,20.961914,1.867676,0.0,-0.017957,0.001197,0.222661,-25.939941,63.659668,-22.338867,"[-0.017957, 0.001197, 0.222661]","[20.961914, 1.867676, 0.0]","[-25.939941, 63.659668, -22.338867]","[0.049, 0.007, 1.033]","[0.206, 0.206, 0.107]","[-5.465, 55.374, 48.847]",0.049,0.007,1.033,0.206,0.206,0.107,-5.465,55.374,48.847
17,2020-03-13 23:16:17,Alarm,20.0,25.93,97.37,28.89,20.961914,1.647949,0.615234,-0.169988,-0.041899,0.219069,-13.671875,51.269531,-16.845703,"[-0.169988, -0.041899, 0.219069]","[20.961914, 1.647949, 0.615234]","[-13.671875, 51.269531, -16.845703]","[0.054, 0.012, 1.034]","[0.244, 0.229, 0.008]","[6.193, 70.311, 48.847]",0.054,0.012,1.034,0.244,0.229,0.008,6.193,70.311,48.847
18,2020-03-13 23:16:21,Normal,20.0,25.93,97.37,28.59,73.937988,1.702881,0.186768,-0.077812,-0.034716,0.241814,-12.145996,49.194336,-16.540527,"[-0.077812, -0.034716, 0.241814]","[73.937988, 1.702881, 0.186768]","[-12.145996, 49.194336, -16.540527]","[0.054, 0.01, 1.033]","[0.183, 0.237, 0.084]","[4.918, 70.129, 48.32]",0.054,0.01,1.033,0.183,0.237,0.084,4.918,70.129,48.32
19,2020-03-13 23:16:25,Alarm,31.0,25.93,97.37,28.6,43.417969,1.362305,-0.494385,0.059855,-0.11133,0.257377,-2.685547,50.598145,-21.54541,"[0.059855, -0.11133, 0.257377]","[43.417969, 1.362305, -0.494385]","[-2.685547, 50.598145, -21.54541]","[0.05, 0.01, 1.034]","[0.214, 0.183, 0.275]","[-5.829, 55.739, 47.793]",0.05,0.01,1.034,0.214,0.183,0.275,-5.829,55.739,47.793
20,2020-03-13 23:16:29,Normal,20.0,25.93,97.37,29.03,16.842041,1.494141,-0.406494,0.051475,-0.068235,0.228646,-1.89209,49.865723,-22.644043,"[0.051475, -0.068235, 0.228646]","[16.842041, 1.494141, -0.406494]","[-1.89209, 49.865723, -22.644043]","[0.049, 0.011, 1.032]","[0.191, 0.237, 0.122]","[-4.554, 58.107, 49.023]",0.049,0.011,1.032,0.191,0.237,0.122,-4.554,58.107,49.023
21,2020-03-13 23:16:33,Normal,20.0,25.92,97.37,29.19,16.842041,1.494141,-0.406494,0.051475,-0.070629,0.223858,-2.685547,50.964355,-20.751953,"[0.051475, -0.070629, 0.223858]","[16.842041, 1.494141, -0.406494]","[-2.685547, 50.964355, -20.751953]","[0.048, 0.012, 1.029]","[0.252, 0.183, 0.046]","[-4.736, 57.924, 47.793]",0.048,0.012,1.029,0.252,0.183,0.046,-4.736,57.924,47.793
22,2020-03-13 23:16:37,Normal,20.0,25.92,97.37,28.91,16.842041,1.494141,-0.406494,0.05387,-0.07422,0.238223,-3.356934,50.964355,-21.179199,"[0.05387, -0.07422, 0.238223]","[16.842041, 1.494141, -0.406494]","[-3.356934, 50.964355, -21.179199]","[0.048, 0.011, 1.029]","[0.275, 0.107, 0.137]","[-2.732, 57.742, 46.563]",0.048,0.011,1.029,0.275,0.107,0.137,-2.732,57.742,46.563
23,2020-03-13 23:16:41,Normal,20.0,25.91,97.37,28.59,16.842041,1.494141,-0.406494,0.049081,-0.09098,0.235829,-3.356934,50.964355,-22.277832,"[0.049081, -0.09098, 0.235829]","[16.842041, 1.494141, -0.406494]","[-3.356934, 50.964355, -22.277832]","[0.05, 0.008, 1.033]","[0.122, 0.145, 0.114]","[-3.461, 55.556, 50.077]",0.05,0.008,1.033,0.122,0.145,0.114,-3.461,55.556,50.077
24,2020-03-13 23:16:45,Alarm,20.0,25.9,97.38,27.82,16.842041,1.494141,-0.406494,0.041899,-0.081403,0.178368,-1.586914,77.087402,-20.141602,"[0.041899, -0.081403, 0.178368]","[16.842041, 1.494141, -0.406494]","[-1.586914, 77.087402, -20.141602]","[0.051, 0.009, 1.034]","[0.244, 0.198, 0.114]","[-4.19, 55.921, 49.023]",0.051,0.009,1.034,0.244,0.198,0.114,-4.19,55.921,49.023
25,2020-03-13 23:16:49,Normal,20.0,25.93,97.38,27.72,22.17041,3.812256,6.855469,0.37589,-0.07422,0.158017,-12.573242,80.444336,-25.45166,"[0.37589, -0.07422, 0.158017]","[22.17041, 3.812256, 6.855469]","[-12.573242, 80.444336, -25.45166]","[0.051, 0.011, 1.031]","[0.229, 0.229, 0.191]","[-3.643, 57.924, 48.847]",0.051,0.011,1.031,0.229,0.229,0.191,-3.643,57.924,48.847
26,2020-03-13 23:16:53,Alarm,20.0,26.3,97.37,30.27,17.600098,19.006348,15.281982,-1.572991,0.629675,0.266953,-0.183105,57.739258,-15.686035,"[-1.572991, 0.629675, 0.266953]","[17.600098, 19.006348, 15.281982]","[-0.183105, 57.739258, -15.686035]","[0.052, 0.012, 1.032]","[0.092, 0.191, 0.153]","[-4.007, 57.196, 47.442]",0.052,0.012,1.032,0.092,0.191,0.153,-4.007,57.196,47.442
27,2020-03-13 23:16:57,Normal,31.0,26.52,97.37,34.72,12.513428,4.724121,0.725098,-0.102951,0.049081,0.294487,1.281738,57.495117,-16.479492,"[-0.102951, 0.049081, 0.294487]","[12.513428, 4.724121, 0.725098]","[1.281738, 57.495117, -16.479492]","[0.051, 0.01, 1.033]","[0.168, 0.244, 0.183]","[-4.736, 55.739, 48.144]",0.051,0.01,1.033,0.168,0.244,0.183,-4.736,55.739,48.144
28,2020-03-13 23:17:01,Alarm,31.0,26.4,97.38,33.72,93.065186,4.328613,-0.12085,-0.016759,-0.011971,0.266953,-10.070801,30.761719,-11.962891,"[-0.016759, -0.011971, 0.266953]","[93.065186, 4.328613, -0.12085]","[-10.070801, 30.761719, -11.962891]","[0.05, 0.01, 1.034]","[0.259, 0.267, 0.145]","[-3.461, 55.556, 49.023]",0.05,0.01,1.034,0.259,0.267,0.145,-3.461,55.556,49.023
29,2020-03-13 23:17:05,Normal,20.0,26.44,97.37,33.54,18.369141,4.449463,-0.12085,-0.025139,-0.023942,0.290895,-8.972168,31.860352,-11.84082,"[-0.025139, -0.023942, 0.290895]","[18.369141, 4.449463, -0.12085]","[-8.972168, 31.860352, -11.84082]","[0.049, 0.009, 1.035]","[0.183, 0.145, 0.069]","[-2.186, 55.739, 50.604]",0.049,0.009,1.035,0.183,0.145,0.069,-2.186,55.739,50.604
30,2020-03-13 23:17:09,Alarm,20.0,26.35,97.38,32.62,16.864014,49.119873,-21.280518,7.529764,10.059238,-0.010774,-14.099121,27.893066,29.846191,"[7.529764, 10.059238, -0.010774]","[16.864014, 49.119873, -21.280518]","[-14.099121, 27.893066, 29.846191]","[0.051, 0.009, 1.031]","[0.214, 0.145, 0.092]","[-2.732, 55.192, 49.374]",0.051,0.009,1.031,0.214,0.145,0.092,-2.732,55.192,49.374
31,2020-03-13 23:17:13,Normal,10.0,26.61,97.38,32.84,29.256592,-29.025879,21.368408,-0.264559,-0.452504,0.09098,-12.268066,29.052734,25.45166,"[-0.264559, -0.452504, 0.09098]","[29.256592, -29.025879, 21.368408]","[-12.268066, 29.052734, 25.45166]","[0.049, 0.01, 1.032]","[0.191, 0.267, 0.069]","[-5.1, 55.739, 48.847]",0.049,0.01,1.032,0.191,0.267,0.069,-5.1,55.739,48.847
32,2020-03-13 23:17:17,Alarm,10.0,26.84,97.38,36.57,344.696045,-41.418457,51.624756,-5.390545,-8.119935,4.292804,-2.075195,27.770996,6.896973,"[-5.390545, -8.119935, 4.292804]","[344.696045, -41.418457, 51.624756]","[-2.075195, 27.770996, 6.896973]","[0.051, 0.01, 1.032]","[0.29, 0.259, 0.092]","[-2.732, 55.921, 49.374]",0.051,0.01,1.032,0.29,0.259,0.092,-2.732,55.921,49.374
33,2020-03-13 23:17:21,Normal,0.0,28.0,97.38,43.88,294.44458,30.849609,18.226318,-0.027533,-0.05387,0.608127,0.854492,24.780273,7.751465,"[-0.027533, -0.05387, 0.608127]","[294.44458, 30.849609, 18.226318]","[0.854492, 24.780273, 7.751465]","[0.051, 0.014, 1.035]","[0.191, 0.267, 0.183]","[-3.461, 55.921, 48.32]",0.051,0.014,1.035,0.191,0.267,0.183,-3.461,55.921,48.32
34,2020-03-13 23:17:25,Normal,10.0,30.03,97.38,53.67,285.578613,27.784424,3.603516,0.464475,0.05387,0.288501,4.394531,24.475098,6.04248,"[0.464475, 0.05387, 0.288501]","[285.578613, 27.784424, 3.603516]","[4.394531, 24.475098, 6.04248]","[0.05, 0.01, 1.032]","[0.198, 0.153, 0.191]","[-3.643, 57.196, 48.144]",0.05,0.01,1.032,0.198,0.153,0.191,-3.643,57.196,48.144
35,2020-03-13 23:17:29,Alarm,0.0,29.15,97.39,68.61,279.975586,28.78418,14.18335,-1.021127,0.050278,0.205901,5.371094,22.949219,5.79834,"[-1.021127, 0.050278, 0.205901]","[279.975586, 28.78418, 14.18335]","[5.371094, 22.949219, 5.79834]","[0.049, 0.01, 1.036]","[0.145, 0.206, 0.122]","[-4.007, 56.832, 48.847]",0.049,0.01,1.036,0.145,0.206,0.122,-4.007,56.832,48.847
36,2020-03-13 23:17:33,Alarm,10.0,30.23,97.38,75.68,283.502197,25.268555,47.427979,-6.14831,-12.077551,9.640253,-0.671387,0.488281,-7.751465,"[-6.14831, -12.077551, 9.640253]","[283.502197, 25.268555, 47.427979]","[-0.671387, 0.488281, -7.751465]","[0.05, 0.008, 1.029]","[0.053, 0.175, 0.153]","[-4.736, 56.832, 48.847]",0.05,0.008,1.029,0.053,0.175,0.153,-4.736,56.832,48.847
37,2020-03-13 23:17:37,Alarm,31.0,30.16,97.39,78.87,352.957764,3.922119,0.12085,0.025139,0.013168,0.055067,-1.464844,7.446289,4.272461,"[0.025139, 0.013168, 0.055067]","[352.957764, 3.922119, 0.12085]","[-1.464844, 7.446289, 4.272461]","[0.05, 0.009, 1.034]","[0.259, 0.214, 0.122]","[-5.282, 55.192, 47.969]",0.05,0.009,1.034,0.259,0.214,0.122,-5.282,55.192,47.969
38,2020-03-13 23:17:41,Alarm,41.0,28.85,97.39,86.72,272.032471,4.54834,-1.878662,1.106121,0.6608,0.113725,4.272461,-12.756348,-13.977051,"[1.106121, 0.6608, 0.113725]","[272.032471, 4.54834, -1.878662]","[4.272461, -12.756348, -13.977051]","[0.034, 0.023, 1.037]","[0.13, 0.084, 0.275]","[-2.914, 57.196, 48.144]",0.034,0.023,1.037,0.13,0.084,0.275,-2.914,57.196,48.144
39,2020-03-13 23:17:45,Alarm,20.0,28.17,97.39,86.52,286.413574,1.2854,0.582275,-0.002394,-0.003591,0.00838,5.79834,-12.756348,-8.056641,"[-0.002394, -0.003591, 0.00838]","[286.413574, 1.2854, 0.582275]","[5.79834, -12.756348, -8.056641]","[0.049, 0.01, 1.035]","[0.221, 0.252, 0.099]","[-4.736, 56.103, 49.199]",0.049,0.01,1.035,0.221,0.252,0.099,-4.736,56.103,49.199
40,2020-03-13 23:17:49,Alarm,20.0,27.38,97.39,89.12,286.413574,1.2854,0.582275,0.020351,-0.001197,-0.084994,6.591797,-11.962891,-8.239746,"[0.020351, -0.001197, -0.084994]","[286.413574, 1.2854, 0.582275]","[6.591797, -11.962891, -8.239746]","[0.048, 0.01, 1.033]","[0.214, 0.229, 0.053]","[-4.007, 58.653, 47.09]",0.048,0.01,1.033,0.214,0.229,0.053,-4.007,58.653,47.09
41,2020-03-13 23:17:53,Alarm,20.0,27.06,97.4,89.72,286.413574,1.2854,0.582275,-0.108936,-0.089783,0.214281,6.896973,-14.160156,-7.446289,"[-0.108936, -0.089783, 0.214281]","[286.413574, 1.2854, 0.582275]","[6.896973, -14.160156, -7.446289]","[0.049, 0.01, 1.028]","[0.191, 0.168, 0.229]","[-4.372, 54.646, 49.199]",0.049,0.01,1.028,0.191,0.168,0.229,-4.372,54.646,49.199
42,2020-03-13 23:17:57,Alarm,20.0,26.57,97.39,84.43,286.413574,1.2854,0.582275,-0.125696,-0.108936,0.257377,6.591797,-12.695312,-8.239746,"[-0.125696, -0.108936, 0.257377]","[286.413574, 1.2854, 0.582275]","[6.591797, -12.695312, -8.239746]","[0.052, 0.01, 1.031]","[0.183, 0.267, 0.168]","[-4.918, 55.556, 50.077]",0.052,0.01,1.031,0.183,0.267,0.168,-4.918,55.556,50.077
43,2020-03-13 23:18:01,Alarm,20.0,26.78,97.39,76.35,286.413574,1.2854,0.582275,-0.138864,-0.095768,0.240617,5.493164,-12.390137,-7.080078,"[-0.138864, -0.095768, 0.240617]","[286.413574, 1.2854, 0.582275]","[5.493164, -12.390137, -7.080078]","[0.051, 0.01, 1.03]","[0.198, 0.244, 0.092]","[-5.647, 57.378, 49.023]",0.051,0.01,1.03,0.198,0.244,0.092,-5.647,57.378,49.023
44,2020-03-13 23:18:05,Alarm,20.0,26.89,97.39,65.95,286.413574,1.2854,0.582275,-0.105345,-0.104148,0.243011,6.164551,-12.756348,-8.178711,"[-0.105345, -0.104148, 0.243011]","[286.413574, 1.2854, 0.582275]","[6.164551, -12.756348, -8.178711]","[0.049, 0.01, 1.029]","[0.191, 0.237, 0.076]","[-5.1, 57.196, 49.199]",0.049,0.01,1.029,0.191,0.237,0.076,-5.1,57.196,49.199
45,2020-03-13 23:18:09,Normal,20.0,26.98,97.39,49.46,286.413574,1.2854,0.582275,-0.102951,-0.093374,0.254982,6.164551,-11.962891,-7.446289,"[-0.102951, -0.093374, 0.254982]","[286.413574, 1.2854, 0.582275]","[6.164551, -11.962891, -7.446289]","[0.052, 0.01, 1.032]","[0.183, 0.229, 0.13]","[-5.647, 57.378, 48.32]",0.052,0.01,1.032,0.183,0.229,0.13,-5.647,57.378,48.32
46,2020-03-13 23:18:13,Normal,20.0,27.0,97.39,44.07,286.413574,1.2854,0.582275,-0.114922,-0.087388,0.25618,6.164551,-12.756348,-7.446289,"[-0.114922, -0.087388, 0.25618]","[286.413574, 1.2854, 0.582275]","[6.164551, -12.756348, -7.446289]","[0.049, 0.009, 1.033]","[0.32, 0.229, 0.122]","[-2.732, 55.556, 50.78]",0.049,0.009,1.033,0.32,0.229,0.122,-2.732,55.556,50.78
47,2020-03-13 23:18:17,Normal,20.0,27.0,97.39,40.02,286.413574,1.2854,0.582275,-0.100556,-0.083797,0.259771,6.591797,-12.390137,-7.080078,"[-0.100556, -0.083797, 0.259771]","[286.413574, 1.2854, 0.582275]","[6.591797, -12.390137, -7.080078]","[0.052, 0.008, 1.034]","[0.175, 0.252, 0.145]","[-5.1, 57.196, 49.902]",0.052,0.008,1.034,0.175,0.252,0.145,-5.1,57.196,49.902
48,2020-03-13 23:18:21,Normal,20.0,26.98,97.39,34.6,286.413574,1.2854,0.582275,-0.101754,-0.071826,0.232238,6.591797,-12.756348,-7.751465,"[-0.101754, -0.071826, 0.232238]","[286.413574, 1.2854, 0.582275]","[6.591797, -12.756348, -7.751465]","[0.049, 0.01, 1.031]","[0.046, 0.214, 0.008]","[-4.736, 56.467, 49.199]",0.049,0.01,1.031,0.046,0.214,0.008,-4.736,56.467,49.199
49,2020-03-13 23:18:25,Normal,20.0,26.97,97.38,32.96,286.413574,1.2854,0.582275,-0.144849,-0.102951,0.253785,6.896973,-11.657715,-7.446289,"[-0.144849, -0.102951, 0.253785]","[286.413574, 1.2854, 0.582275]","[6.896973, -11.657715, -7.446289]","[0.05, 0.009, 1.033]","[0.244, 0.198, 0.153]","[-4.372, 57.56, 48.144]",0.05,0.009,1.033,0.244,0.198,0.153,-4.372,57.56,48.144
50,2020-03-13 23:18:29,Normal,20.0,26.95,97.38,32.21,286.413574,1.2854,0.582275,-0.096965,-0.076614,0.222661,6.164551,-13.061523,-8.239746,"[-0.096965, -0.076614, 0.222661]","[286.413574, 1.2854, 0.582275]","[6.164551, -13.061523, -8.239746]","[0.05, 0.008, 1.033]","[0.313, 0.221, 0.168]","[-6.375, 57.014, 48.672]",0.05,0.008,1.033,0.313,0.221,0.168,-6.375,57.014,48.672
Example console output
Plain text==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 1
==== Collected Data: RSL10 Sense ===============================
Ambient light: 41.0
Temperature: 25.4
Pressure: 97.37
Humidity: 29.37
Compas yaw: 359.967041
Device pitch: 2.93335
Device roll: 0.736084
Linear acceleration X axis: 0.029928
Linear acceleration Y axis: -0.175974
Linear acceleration Z axis: 0.223858
Magnetic field strength X axis: -28.869629
Magnetic field strength Y axis: -55.358887
Magnetic field strength Z axis: 34.484863
Acceleration vector: [0.029928, -0.175974, 0.223858]
Orientation vector: [359.967041, 2.93335, 0.736084]
Magnetic field vector: [-28.869629, -55.358887, 34.484863]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.047, 0.009, 1.032]
Gyroscope vector: [0.175, 0.237, 0.168]
Magnetic field vector: [-1.457, 55.01, 48.144]
Linear acceleration X axis: 0.047
Linear acceleration Y axis: 0.009
Linear acceleration Z axis: 1.032
Gyrospope X axis: 0.175
Gyrospope Y axis: 0.237
Gyrospope Z axis: 0.168
Magnetic field strength X axis: -1.457
Magnetic field strength Y axis: 55.01
Magnetic field strength Z axis: 48.144
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 41.0
Temperature threshold (35) check passed: 25.4
Temperature threshold (15) check passed: 25.4
Humidity threshold (65) check passed: 29.37
Humidity threshold (20) check passed: 29.37
Acceleration vector threshold (10) check passed: 0.2863
Magnetic field vector change check failed,
delta: 8.4485 / 10,
angle: 0.4168 / 0.2618
Magnetic field vector change check passed,
delta: 3.0668 / 10,
angle: 0.0461 / 0.2618
Magnetic field vector delta change check passed,
change delta: 5.3817 / 15,
angle change delta: 0.3707 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 2
==== Collected Data: RSL10 Sense ===============================
Ambient light: 41.0
Temperature: 25.38
Pressure: 97.37
Humidity: 28.74
Compas yaw: 359.945068
Device pitch: 2.955322
Device roll: 0.769043
Linear acceleration X axis: 0.003591
Linear acceleration Y axis: -0.177171
Linear acceleration Z axis: 0.326809
Magnetic field strength X axis: -26.794434
Magnetic field strength Y axis: -53.588867
Magnetic field strength Z axis: 32.470703
Acceleration vector: [0.003591, -0.177171, 0.326809]
Orientation vector: [359.945068, 2.955322, 0.769043]
Magnetic field vector: [-26.794434, -53.588867, 32.470703]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.048, 0.01, 1.03]
Gyroscope vector: [0.183, 0.244, 0.053]
Magnetic field vector: [-2.914, 55.01, 50.604]
Linear acceleration X axis: 0.048
Linear acceleration Y axis: 0.01
Linear acceleration Z axis: 1.03
Gyrospope X axis: 0.183
Gyrospope Y axis: 0.244
Gyrospope Z axis: 0.053
Magnetic field strength X axis: -2.914
Magnetic field strength Y axis: 55.01
Magnetic field strength Z axis: 50.604
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 41.0
Temperature threshold (35) check passed: 25.38
Temperature threshold (15) check passed: 25.38
Humidity threshold (65) check passed: 28.74
Humidity threshold (20) check passed: 28.74
Acceleration vector threshold (10) check passed: 0.3718
Magnetic field vector change check passed,
delta: 4.4553 / 10,
angle: 0.0170 / 0.2618
Magnetic field vector change check passed,
delta: 2.3049 / 10,
angle: 0.0312 / 0.2618
Magnetic field vector delta change check passed,
change delta: 2.1504 / 15,
angle change delta: 0.0143 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 3
==== Collected Data: RSL10 Sense ===============================
Ambient light: 41.0
Temperature: 25.38
Pressure: 97.38
Humidity: 28.34
Compas yaw: 359.934082
Device pitch: 2.977295
Device roll: 0.780029
Linear acceleration X axis: -0.007183
Linear acceleration Y axis: -0.175974
Linear acceleration Z axis: 0.233435
Magnetic field strength X axis: -27.587891
Magnetic field strength Y axis: -54.382324
Magnetic field strength Z axis: 32.897949
Acceleration vector: [-0.007183, -0.175974, 0.233435]
Orientation vector: [359.934082, 2.977295, 0.780029]
Magnetic field vector: [-27.587891, -54.382324, 32.897949]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.048, 0.013, 1.038]
Gyroscope vector: [0.107, 0.229, 0.13]
Magnetic field vector: [-3.097, 55.921, 47.969]
Linear acceleration X axis: 0.048
Linear acceleration Y axis: 0.013
Linear acceleration Z axis: 1.038
Gyrospope X axis: 0.107
Gyrospope Y axis: 0.229
Gyrospope Z axis: 0.13
Magnetic field strength X axis: -3.097
Magnetic field strength Y axis: 55.921
Magnetic field strength Z axis: 47.969
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 41.0
Temperature threshold (35) check passed: 25.38
Temperature threshold (15) check passed: 25.38
Humidity threshold (65) check passed: 28.34
Humidity threshold (20) check passed: 28.34
Acceleration vector threshold (10) check passed: 0.2924
Magnetic field vector change check passed,
delta: 1.6736 / 10,
angle: 0.0055 / 0.2618
Magnetic field vector change check passed,
delta: 1.4182 / 10,
angle: 0.0348 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.2554 / 15,
angle change delta: 0.0293 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 4
==== Collected Data: RSL10 Sense ===============================
Ambient light: 41.0
Temperature: 25.38
Pressure: 97.37
Humidity: 27.96
Compas yaw: 3.273926
Device pitch: -5.921631
Device roll: -31.552734
Linear acceleration X axis: 8.761581
Linear acceleration Y axis: -11.160571
Linear acceleration Z axis: 1.322796
Magnetic field strength X axis: 13.85498
Magnetic field strength Y axis: -30.395508
Magnetic field strength Z axis: 6.591797
Acceleration vector: [8.761581, -11.160571, 1.322796]
Orientation vector: [3.273926, -5.921631, -31.552734]
Magnetic field vector: [13.85498, -30.395508, 6.591797]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.051, 0.008, 1.035]
Gyroscope vector: [0.191, 0.229, 0.099]
Magnetic field vector: [-2.004, 56.285, 47.617]
Linear acceleration X axis: 0.051
Linear acceleration Y axis: 0.008
Linear acceleration Z axis: 1.035
Gyrospope X axis: 0.191
Gyrospope Y axis: 0.229
Gyrospope Z axis: 0.099
Magnetic field strength X axis: -2.004
Magnetic field strength Y axis: 56.285
Magnetic field strength Z axis: 47.617
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 41.0
Temperature threshold (35) check passed: 25.38
Temperature threshold (15) check passed: 25.38
Humidity threshold (65) check passed: 27.96
Humidity threshold (20) check passed: 27.96
Acceleration vector norm threshold (10) reached: 14.2504
Magnetic field vector change check failed,
delta: 50.8594 / 10,
angle: 0.8885 / 0.2618
Magnetic field vector change check passed,
delta: 0.0149 / 10,
angle: 0.0163 / 0.2618
Magnetic field vector delta change check failed,
change delta: 50.8445 / 15,
angle change delta: 0.8722 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 5
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 25.43
Pressure: 97.37
Humidity: 30.82
Compas yaw: 55.415039
Device pitch: -1.845703
Device roll: 5.734863
Linear acceleration X axis: -0.568623
Linear acceleration Y axis: -0.227449
Linear acceleration Z axis: -0.96606
Magnetic field strength X axis: 18.188477
Magnetic field strength Y axis: -56.884766
Magnetic field strength Z axis: 93.566895
Acceleration vector: [-0.568623, -0.227449, -0.96606]
Orientation vector: [55.415039, -1.845703, 5.734863]
Magnetic field vector: [18.188477, -56.884766, 93.566895]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.048, 0.01, 1.033]
Gyroscope vector: [0.214, 0.244, 0.168]
Magnetic field vector: [-1.093, 56.832, 48.496]
Linear acceleration X axis: 0.048
Linear acceleration Y axis: 0.01
Linear acceleration Z axis: 1.033
Gyrospope X axis: 0.214
Gyrospope Y axis: 0.244
Gyrospope Z axis: 0.168
Magnetic field strength X axis: -1.093
Magnetic field strength Y axis: 56.832
Magnetic field strength Z axis: 48.496
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 25.43
Temperature threshold (15) check passed: 25.43
Humidity threshold (65) check passed: 30.82
Humidity threshold (20) check passed: 30.82
Acceleration vector threshold (10) check passed: 1.1438
Magnetic field vector change check failed,
delta: 226.0118 / 10,
angle: 0.8130 / 0.2618
Magnetic field vector change check passed,
delta: 1.3108 / 10,
angle: 0.0132 / 0.2618
Magnetic field vector delta change check failed,
change delta: 224.7010 / 15,
angle change delta: 0.7997 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 6
==== Collected Data: RSL10 Sense ===============================
Ambient light: 0.0
Temperature: 26.09
Pressure: 97.37
Humidity: 35.3
Compas yaw: 328.930664
Device pitch: 3.823242
Device roll: 0.351562
Linear acceleration X axis: 0.539892
Linear acceleration Y axis: 2.044648
Linear acceleration Z axis: -0.117316
Magnetic field strength X axis: -6.896973
Magnetic field strength Y axis: 21.484375
Magnetic field strength Z axis: -32.592773
Acceleration vector: [0.539892, 2.044648, -0.117316]
Orientation vector: [328.930664, 3.823242, 0.351562]
Magnetic field vector: [-6.896973, 21.484375, -32.592773]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.051, 0.01, 1.033]
Gyroscope vector: [0.153, 0.427, 0.061]
Magnetic field vector: [-3.825, 57.014, 48.32]
Linear acceleration X axis: 0.051
Linear acceleration Y axis: 0.01
Linear acceleration Z axis: 1.033
Gyrospope X axis: 0.153
Gyrospope Y axis: 0.427
Gyrospope Z axis: 0.061
Magnetic field strength X axis: -3.825
Magnetic field strength Y axis: 57.014
Magnetic field strength Z axis: 48.32
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 0.0
Temperature threshold (35) check passed: 26.09
Temperature threshold (15) check passed: 26.09
Humidity threshold (65) check passed: 35.3
Humidity threshold (20) check passed: 35.3
Acceleration vector threshold (10) check passed: 2.1180
Magnetic field vector change check failed,
delta: 64.2878 / 10,
angle: 3.1041 / 0.2618
Magnetic field vector change check passed,
delta: 0.1532 / 10,
angle: 0.0367 / 0.2618
Magnetic field vector delta change check failed,
change delta: 64.1346 / 15,
angle change delta: 3.0675 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 7
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 26.15
Pressure: 97.38
Humidity: 45.0
Compas yaw: 23.90625
Device pitch: 31.783447
Device roll: 6.152344
Linear acceleration X axis: -0.604536
Linear acceleration Y axis: 16.393099
Linear acceleration Z axis: 3.5099
Magnetic field strength X axis: -11.291504
Magnetic field strength Y axis: 16.052246
Magnetic field strength Z axis: 27.770996
Acceleration vector: [-0.604536, 16.393099, 3.5099]
Orientation vector: [23.90625, 31.783447, 6.152344]
Magnetic field vector: [-11.291504, 16.052246, 27.770996]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.049, 0.009, 1.034]
Gyroscope vector: [-0.031, 0.145, 0.092]
Magnetic field vector: [-5.647, 55.556, 48.672]
Linear acceleration X axis: 0.049
Linear acceleration Y axis: 0.009
Linear acceleration Z axis: 1.034
Gyrospope X axis: -0.031
Gyrospope Y axis: 0.145
Gyrospope Z axis: 0.092
Magnetic field strength X axis: -5.647
Magnetic field strength Y axis: 55.556
Magnetic field strength Z axis: 48.672
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 26.15
Temperature threshold (15) check passed: 26.15
Humidity threshold (65) check passed: 45.0
Humidity threshold (20) check passed: 45.0
Acceleration vector norm threshold (10) reached: 16.7755
Magnetic field vector change check failed,
delta: 14.2161 / 10,
angle: 1.9368 / 0.2618
Magnetic field vector change check passed,
delta: 1.0116 / 10,
angle: 0.0300 / 0.2618
Magnetic field vector delta change check passed,
change delta: 13.2045 / 15,
angle change delta: 1.9067 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 8
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 26.3
Pressure: 97.37
Humidity: 48.86
Compas yaw: 20.961914
Device pitch: 1.878662
Device roll: 0.0
Linear acceleration X axis: -0.007183
Linear acceleration Y axis: -0.005986
Linear acceleration Z axis: 0.240617
Magnetic field strength X axis: -25.939941
Magnetic field strength Y axis: 63.293457
Magnetic field strength Z axis: -22.338867
Acceleration vector: [-0.007183, -0.005986, 0.240617]
Orientation vector: [20.961914, 1.878662, 0.0]
Magnetic field vector: [-25.939941, 63.293457, -22.338867]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.048, 0.01, 1.032]
Gyroscope vector: [0.214, 0.191, 0.145]
Magnetic field vector: [-3.643, 56.467, 49.55]
Linear acceleration X axis: 0.048
Linear acceleration Y axis: 0.01
Linear acceleration Z axis: 1.032
Gyrospope X axis: 0.214
Gyrospope Y axis: 0.191
Gyrospope Z axis: 0.145
Magnetic field strength X axis: -3.643
Magnetic field strength Y axis: 56.467
Magnetic field strength Z axis: 49.55
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 26.3
Temperature threshold (15) check passed: 26.3
Humidity threshold (65) check passed: 48.86
Humidity threshold (20) check passed: 48.86
Acceleration vector threshold (10) check passed: 0.2408
Magnetic field vector change check failed,
delta: 111.6048 / 10,
angle: 1.2856 / 0.2618
Magnetic field vector change check passed,
delta: 1.5343 / 10,
angle: 0.0279 / 0.2618
Magnetic field vector delta change check failed,
change delta: 110.0705 / 15,
angle change delta: 1.2577 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 9
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 26.18
Pressure: 97.37
Humidity: 44.98
Compas yaw: 20.961914
Device pitch: 1.878662
Device roll: 0.0
Linear acceleration X axis: -0.016759
Linear acceleration Y axis: -0.026336
Linear acceleration Z axis: 0.234632
Magnetic field strength X axis: -25.146484
Magnetic field strength Y axis: 63.293457
Magnetic field strength Z axis: -22.338867
Acceleration vector: [-0.016759, -0.026336, 0.234632]
Orientation vector: [20.961914, 1.878662, 0.0]
Magnetic field vector: [-25.146484, 63.293457, -22.338867]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.05, 0.008, 1.033]
Gyroscope vector: [0.114, 0.214, 0.168]
Magnetic field vector: [-2.368, 55.921, 48.672]
Linear acceleration X axis: 0.05
Linear acceleration Y axis: 0.008
Linear acceleration Z axis: 1.033
Gyrospope X axis: 0.114
Gyrospope Y axis: 0.214
Gyrospope Z axis: 0.168
Magnetic field strength X axis: -2.368
Magnetic field strength Y axis: 55.921
Magnetic field strength Z axis: 48.672
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 26.18
Temperature threshold (15) check passed: 26.18
Humidity threshold (65) check passed: 44.98
Humidity threshold (20) check passed: 44.98
Acceleration vector threshold (10) check passed: 0.2367
Magnetic field vector change check passed,
delta: 0.3922 / 10,
angle: 0.0103 / 0.2618
Magnetic field vector change check passed,
delta: 1.3819 / 10,
angle: 0.0170 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.9897 / 15,
angle change delta: 0.0067 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 10
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 26.1
Pressure: 97.38
Humidity: 40.17
Compas yaw: 20.961914
Device pitch: 1.878662
Device roll: 0.0
Linear acceleration X axis: -0.02873
Linear acceleration Y axis: -0.016759
Linear acceleration Z axis: 0.2478
Magnetic field strength X axis: -26.245117
Magnetic field strength Y axis: 62.561035
Magnetic field strength Z axis: -23.498535
Acceleration vector: [-0.02873, -0.016759, 0.2478]
Orientation vector: [20.961914, 1.878662, 0.0]
Magnetic field vector: [-26.245117, 62.561035, -23.498535]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.05, 0.009, 1.033]
Gyroscope vector: [0.221, 0.191, 0.145]
Magnetic field vector: [-3.097, 57.378, 47.969]
Linear acceleration X axis: 0.05
Linear acceleration Y axis: 0.009
Linear acceleration Z axis: 1.033
Gyrospope X axis: 0.221
Gyrospope Y axis: 0.191
Gyrospope Z axis: 0.145
Magnetic field strength X axis: -3.097
Magnetic field strength Y axis: 57.378
Magnetic field strength Z axis: 47.969
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 26.1
Temperature threshold (15) check passed: 26.1
Humidity threshold (65) check passed: 40.17
Humidity threshold (20) check passed: 40.17
Acceleration vector threshold (10) check passed: 0.2500
Magnetic field vector change check passed,
delta: 0.1696 / 10,
angle: 0.0244 / 0.2618
Magnetic field vector change check passed,
delta: 0.9148 / 10,
angle: 0.0220 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.7452 / 15,
angle change delta: 0.0024 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 11
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 26.05
Pressure: 97.37
Humidity: 36.57
Compas yaw: 20.961914
Device pitch: 1.878662
Device roll: 0.0
Linear acceleration X axis: -0.025139
Linear acceleration Y axis: 0.00838
Linear acceleration Z axis: 0.189142
Magnetic field strength X axis: -27.038574
Magnetic field strength Y axis: 62.561035
Magnetic field strength Z axis: -22.766113
Acceleration vector: [-0.025139, 0.00838, 0.189142]
Orientation vector: [20.961914, 1.878662, 0.0]
Magnetic field vector: [-27.038574, 62.561035, -22.766113]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.049, 0.008, 1.031]
Gyroscope vector: [0.237, 0.198, 0.145]
Magnetic field vector: [-3.461, 56.649, 47.969]
Linear acceleration X axis: 0.049
Linear acceleration Y axis: 0.008
Linear acceleration Z axis: 1.031
Gyrospope X axis: 0.237
Gyrospope Y axis: 0.198
Gyrospope Z axis: 0.145
Magnetic field strength X axis: -3.461
Magnetic field strength Y axis: 56.649
Magnetic field strength Z axis: 47.969
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 26.05
Temperature threshold (15) check passed: 26.05
Humidity threshold (65) check passed: 36.57
Humidity threshold (20) check passed: 36.57
Acceleration vector threshold (10) check passed: 0.1910
Magnetic field vector change check passed,
delta: 0.0814 / 10,
angle: 0.0150 / 0.2618
Magnetic field vector change check passed,
delta: 0.7231 / 10,
angle: 0.0082 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.6418 / 15,
angle change delta: 0.0068 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 12
==== Collected Data: RSL10 Sense ===============================
Ambient light: 1132.0
Temperature: 26.01
Pressure: 97.37
Humidity: 32.87
Compas yaw: 20.961914
Device pitch: 1.867676
Device roll: 0.0
Linear acceleration X axis: -0.015562
Linear acceleration Y axis: -0.001197
Linear acceleration Z axis: 0.241814
Magnetic field strength X axis: -26.672363
Magnetic field strength Y axis: 62.866211
Magnetic field strength Z axis: -22.766113
Acceleration vector: [-0.015562, -0.001197, 0.241814]
Orientation vector: [20.961914, 1.867676, 0.0]
Magnetic field vector: [-26.672363, 62.866211, -22.766113]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.052, 0.01, 1.034]
Gyroscope vector: [0.153, 0.175, 0.099]
Magnetic field vector: [-2.368, 57.014, 48.672]
Linear acceleration X axis: 0.052
Linear acceleration Y axis: 0.01
Linear acceleration Z axis: 1.034
Gyrospope X axis: 0.153
Gyrospope Y axis: 0.175
Gyrospope Z axis: 0.099
Magnetic field strength X axis: -2.368
Magnetic field strength Y axis: 57.014
Magnetic field strength Z axis: 48.672
==== Sensor Data Analysis ======================================
Ambient light threshold (200) reached: 1132.0
Temperature threshold (35) check passed: 26.01
Temperature threshold (15) check passed: 26.01
Humidity threshold (65) check passed: 32.87
Humidity threshold (20) check passed: 32.87
Acceleration vector threshold (10) check passed: 0.2423
Magnetic field vector change check passed,
delta: 0.1800 / 10,
angle: 0.0064 / 0.2618
Magnetic field vector change check passed,
delta: 0.9288 / 10,
angle: 0.0155 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.7488 / 15,
angle change delta: 0.0092 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 13
==== Collected Data: RSL10 Sense ===============================
Ambient light: 1142.0
Temperature: 25.99
Pressure: 97.37
Humidity: 31.72
Compas yaw: 20.961914
Device pitch: 1.867676
Device roll: 0.0
Linear acceleration X axis: -0.022745
Linear acceleration Y axis: -0.017957
Linear acceleration Z axis: 0.226252
Magnetic field strength X axis: -27.038574
Magnetic field strength Y axis: 63.659668
Magnetic field strength Z axis: -22.338867
Acceleration vector: [-0.022745, -0.017957, 0.226252]
Orientation vector: [20.961914, 1.867676, 0.0]
Magnetic field vector: [-27.038574, 63.659668, -22.338867]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.048, 0.011, 1.034]
Gyroscope vector: [0.191, 0.275, 0.053]
Magnetic field vector: [-2.55, 55.374, 49.199]
Linear acceleration X axis: 0.048
Linear acceleration Y axis: 0.011
Linear acceleration Z axis: 1.034
Gyrospope X axis: 0.191
Gyrospope Y axis: 0.275
Gyrospope Z axis: 0.053
Magnetic field strength X axis: -2.55
Magnetic field strength Y axis: 55.374
Magnetic field strength Z axis: 49.199
==== Sensor Data Analysis ======================================
Ambient light threshold (200) reached: 1142.0
Temperature threshold (35) check passed: 25.99
Temperature threshold (15) check passed: 25.99
Humidity threshold (65) check passed: 31.72
Humidity threshold (20) check passed: 31.72
Acceleration vector threshold (10) check passed: 0.2281
Magnetic field vector change check passed,
delta: 0.9679 / 10,
angle: 0.0094 / 0.2618
Magnetic field vector change check passed,
delta: 1.1789 / 10,
angle: 0.0200 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.2110 / 15,
angle change delta: 0.0106 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 14
==== Collected Data: RSL10 Sense ===============================
Ambient light: 1142.0
Temperature: 25.98
Pressure: 97.37
Humidity: 30.53
Compas yaw: 20.961914
Device pitch: 1.867676
Device roll: 0.0
Linear acceleration X axis: -0.034716
Linear acceleration Y axis: -0.013168
Linear acceleration Z axis: 0.222661
Magnetic field strength X axis: -26.672363
Magnetic field strength Y axis: 63.293457
Magnetic field strength Z axis: -23.193359
Acceleration vector: [-0.034716, -0.013168, 0.222661]
Orientation vector: [20.961914, 1.867676, 0.0]
Magnetic field vector: [-26.672363, 63.293457, -23.193359]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.048, 0.009, 1.036]
Gyroscope vector: [0.214, 0.252, 0.061]
Magnetic field vector: [-3.097, 57.742, 47.617]
Linear acceleration X axis: 0.048
Linear acceleration Y axis: 0.009
Linear acceleration Z axis: 1.036
Gyrospope X axis: 0.214
Gyrospope Y axis: 0.252
Gyrospope Z axis: 0.061
Magnetic field strength X axis: -3.097
Magnetic field strength Y axis: 57.742
Magnetic field strength Z axis: 47.617
==== Sensor Data Analysis ======================================
Ambient light threshold (200) reached: 1142.0
Temperature threshold (35) check passed: 25.98
Temperature threshold (15) check passed: 25.98
Humidity threshold (65) check passed: 30.53
Humidity threshold (20) check passed: 30.53
Acceleration vector threshold (10) check passed: 0.2257
Magnetic field vector change check passed,
delta: 0.2583 / 10,
angle: 0.0135 / 0.2618
Magnetic field vector change check passed,
delta: 1.0664 / 10,
angle: 0.0374 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.8081 / 15,
angle change delta: 0.0239 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 15
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 25.94
Pressure: 97.37
Humidity: 28.96
Compas yaw: 20.961914
Device pitch: 1.867676
Device roll: 0.0
Linear acceleration X axis: -0.014365
Linear acceleration Y axis: -0.005986
Linear acceleration Z axis: 0.227449
Magnetic field strength X axis: -26.672363
Magnetic field strength Y axis: 64.086914
Magnetic field strength Z axis: -22.338867
Acceleration vector: [-0.014365, -0.005986, 0.227449]
Orientation vector: [20.961914, 1.867676, 0.0]
Magnetic field vector: [-26.672363, 64.086914, -22.338867]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.052, 0.011, 1.033]
Gyroscope vector: [0.229, 0.244, 0.0]
Magnetic field vector: [-4.007, 56.832, 48.847]
Linear acceleration X axis: 0.052
Linear acceleration Y axis: 0.011
Linear acceleration Z axis: 1.033
Gyrospope X axis: 0.229
Gyrospope Y axis: 0.244
Gyrospope Z axis: 0.0
Magnetic field strength X axis: -4.007
Magnetic field strength Y axis: 56.832
Magnetic field strength Z axis: 48.847
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 25.94
Temperature threshold (15) check passed: 25.94
Humidity threshold (65) check passed: 28.96
Humidity threshold (20) check passed: 28.96
Acceleration vector threshold (10) check passed: 0.2280
Magnetic field vector change check passed,
delta: 0.5897 / 10,
angle: 0.0149 / 0.2618
Magnetic field vector change check passed,
delta: 0.1856 / 10,
angle: 0.0237 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.4040 / 15,
angle change delta: 0.0087 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 16
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 25.95
Pressure: 97.37
Humidity: 28.68
Compas yaw: 20.961914
Device pitch: 1.867676
Device roll: 0.0
Linear acceleration X axis: -0.017957
Linear acceleration Y axis: 0.001197
Linear acceleration Z axis: 0.222661
Magnetic field strength X axis: -25.939941
Magnetic field strength Y axis: 63.659668
Magnetic field strength Z axis: -22.338867
Acceleration vector: [-0.017957, 0.001197, 0.222661]
Orientation vector: [20.961914, 1.867676, 0.0]
Magnetic field vector: [-25.939941, 63.659668, -22.338867]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.049, 0.007, 1.033]
Gyroscope vector: [0.206, 0.206, 0.107]
Magnetic field vector: [-5.465, 55.374, 48.847]
Linear acceleration X axis: 0.049
Linear acceleration Y axis: 0.007
Linear acceleration Z axis: 1.033
Gyrospope X axis: 0.206
Gyrospope Y axis: 0.206
Gyrospope Z axis: 0.107
Magnetic field strength X axis: -5.465
Magnetic field strength Y axis: 55.374
Magnetic field strength Z axis: 48.847
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 25.95
Temperature threshold (15) check passed: 25.95
Humidity threshold (65) check passed: 28.68
Humidity threshold (20) check passed: 28.68
Acceleration vector threshold (10) check passed: 0.2234
Magnetic field vector change check passed,
delta: 0.8794 / 10,
angle: 0.0076 / 0.2618
Magnetic field vector change check passed,
delta: 1.3387 / 10,
angle: 0.0242 / 0.2618
Magnetic field vector delta change check passed,
change delta: 0.4594 / 15,
angle change delta: 0.0165 / 15
==== Status ====================================================
>>>> Normal
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 17
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 25.93
Pressure: 97.37
Humidity: 28.89
Compas yaw: 20.961914
Device pitch: 1.647949
Device roll: 0.615234
Linear acceleration X axis: -0.169988
Linear acceleration Y axis: -0.041899
Linear acceleration Z axis: 0.219069
Magnetic field strength X axis: -13.671875
Magnetic field strength Y axis: 51.269531
Magnetic field strength Z axis: -16.845703
Acceleration vector: [-0.169988, -0.041899, 0.219069]
Orientation vector: [20.961914, 1.647949, 0.615234]
Magnetic field vector: [-13.671875, 51.269531, -16.845703]
==== Collected Data: MPU-9250 ==================================
Acceleration vector: [0.054, 0.012, 1.034]
Gyroscope vector: [0.244, 0.229, 0.008]
Magnetic field vector: [6.193, 70.311, 48.847]
Linear acceleration X axis: 0.054
Linear acceleration Y axis: 0.012
Linear acceleration Z axis: 1.034
Gyrospope X axis: 0.244
Gyrospope Y axis: 0.229
Gyrospope Z axis: 0.008
Magnetic field strength X axis: 6.193
Magnetic field strength Y axis: 70.311
Magnetic field strength Z axis: 48.847
==== Sensor Data Analysis ======================================
Ambient light threshold (200) check passed: 20.0
Temperature threshold (35) check passed: 25.93
Temperature threshold (15) check passed: 25.93
Humidity threshold (65) check passed: 28.89
Humidity threshold (20) check passed: 28.89
Acceleration vector threshold (10) check passed: 0.2804
Magnetic field vector change check failed,
delta: 22.9791 / 10,
angle: 0.1205 / 0.2618
Magnetic field vector change check failed,
delta: 15.9308 / 10,
angle: 0.1863 / 0.2618
Magnetic field vector delta change check passed,
change delta: 7.0483 / 15,
angle change delta: 0.0658 / 15
==== Status ====================================================
>>>> Alarm
==== Press Ctrl-c for exit =====================================
==== Transaportation Condition Logging Monitor =================
>>>> Poll iteration No.: 18
==== Collected Data: RSL10 Sense ===============================
Ambient light: 20.0
Temperature: 25.93
Pressure: 97.37
Humidity: 28.59
Compas yaw: 73.937988
Device pitch: 1.702881
Device roll: 0.186768
Linear acceleration X axis: -0.077812
Linear acceleration Y axis: -0.034716
Linear acceleration Z axis: 0.241814
...
This file has been truncated, please download it to see its full contents.
Comments