February 4, 2021 at 12:02 pm #11333Michel CastañoKeymaster
Syrus 4G counts with 2 analog-to-digital converter pins: Wires white and pink in the 16 pin Molex harness.
Any of them are high impedance analog Inputs (128 Kohms) able to measure voltages between 0V and 28 VDC.
For this tutorial we are going to read the Power Source’s voltage using Analog Input 1 (White wire) and to add it inside a reporting position frame to Pegasus, so we could have this value every 2 minutes.
First, Connect white wire to +V and brown wire (Syrus’ Ground) to the voltage to be measured. For this example black wire is already connected to Power source’s ground so we can omit connection of brown wire.
We can see immediately the Voltage read from power source in the User Interface -Inputs/Outputs Section:
Compared with a Multimeter read it is very precise:
This value can be consulted via API and via APX core.
sudo apx-io getall analogs
Now that we are pretty sure we are receiving Analog readings from our Analog Input 1, let’s create some Syrus JS commands
For this Small forum post we are not going to dive deep into Syruslang language, to do so visit our complete documentation here, instead, we are going to touch the main Syruslang commands we need to generate a report every 2 minutes including Analog Input 1 Information.
We must define a set of fields to be reported (Fielsets), Signals to trigger actions “start” and “stop” timer, and a reporting event.
#Define a Fieldset including ADC Values (Fields come from “Device Components” Section in Manual
define fieldset default fields=$io.an1,$io,$gnss,$net,$accelerometer,$ecu,VO:$counters.globals.odometer,CE:$counters.globals.ignition_time,CL:$counters.globals.idle_time,CS:$counters.globals.over_speed,CR:$counters.globals.over_rpm
#Signals to trigger and stop Actions related with Timer
define signal ignitionON min_duration=5s $io.ign == true
define signal ignitionOFF min_duration=5s $io.ign == false
define timer ADCtimer duration=2min repeat=true enabled=true
#Define Actions to start and stop Timers
define action start_ADC_measures trigger=ignitionON, start timer ADCtimer
define action stop_ADC_measures trigger=ignitionOFF stop timer ADCtimer
#Define Event to report position with ADC every 2 minutes
define event ADCReport group=tracking fieldset=default ack=seq label=adcread code=53 trigger=@timers.ADCtimer
Now ADC is shown in real time in Pegasus’ Tracking module
Also Detailed ADC voltage can be seen in rawdata:
- You must be logged in to reply to this topic.