Line 99: |
Line 99: |
| | | |
| | | |
− | ==Crash detection== | + | ==Crash Detection== |
− | {{{pic_crash|[[File:Crash Detection cfg.PNG|right]]}}}
| |
| | | |
− | If ''Crash Detection'' is enabled, it monitors acceleration on each axis which helps to detect an accident. ''Threshold'' and ''Duration'' values are set depending on the impact magnitude that is required to be detected. {{{model|FMT100}}} can detect events ranging between a slight tapping on the device and a severe accident.<br/>
| + | {{{pic_crash|[[Image:Fmb640_crash.png|250px|right]]}}} |
− | If ''Crash Trace'' is disabled only one eventual crash record will be generated when ''Duration (ms)'' and ''Threshold (mg)'' values are exceeded. <br/>
| |
| | | |
− | If ''Crash Trace'' is enabled, {{{model|FMB640}}} will collect crash trace data with frequency defined by ''Trace ODR (Hz)'' parameter. Acceleration, GNSS and IO data monitoring duration during the crash event is defined by these parameters: <br/>
| + | The scenario is activated when Crash is detected by the device using acceleration values. |
| + | Crash Detection functionality can be set according to these settings: |
| + | 1. Threshold (mg) |
| + | 2. Duration (ms) |
| + | If an accident happens and FMB640 detects an acceleration value higher than the set threshold value during the set time period, then the device will generate an event. Threshold and duration values are set depending on the accident power that you want to detect. FMB640 can detect a slight tapping on the device (Threshold=100mg, Duration=1ms) or can detect severe accidents (Threshold=4000mg, Duration=5ms). |
| | | |
− | *''Accel duration (s)''. Acceleration data duration can be set for up to 15 seconds before crash event and 15 seconds after; <br/>
| + | ''Crash trace functionality'' <br> |
− | *''GNSS duration (s)''. GNSS data duration can be set for up to 30 seconds before crash event and 30 seconds after. <br/>
| + | Crash trace functionality collects accelerometer, GNSS data if configured. Collected data holds 10 seconds of information. The output data rate for the crash trace is 50 Hz and it is not configurable <br> |
− | *''IO duration (s)''. IO data duration can be set for up to 30 seconds before crash event and 30 seconds after. <br/>
| + | 0. Disabled, <br> |
| + | 1. Trace Changes(Enable). <br> |
| | | |
− | There are three configurable Crash Trace modes:<br/>
| + | *FMB will collect acceleration data for configured trace duration. Every second Acceleration changed more than> 50mG Data will be collected and records generated. If Acceleration does not change, the trace will save records with a 1second period. |
− | '''Trace Full'''
| |
| | | |
− | *Data tracked: all GNSS and acceleration data <br/>
| + | 2. Trace Full. <br> |
| | | |
− | '''Trace Full with IO's'''
| + | *It doesn't matter if the axis changed more than>50mG or not all values will be added in the buffer. |
− | | + | |
− | *Data tracked: all GNSS and acceleration data with IO's, configured in I/O settings as "Crash" parameter (see picture below) | + | ''Crash trace data structure'' <br> |
− | | + | Data is packed differently in Codec 8 and Codec 8E protocols. <br> |
− | [[File:Crash event input.png|thumb|none]]
| + | Then CODEC8 is being used device will save IO records with 4 elements. Each sample will contain sample data. This means that 500 records will be created to reflect 10 s of data then ODR is 50 Hz. |
− | | |
− | '''Trace Changes'''
| |
− | | |
− | *Data tracked: GNSS and acceleration data, when acceleration values are changed by more then 50mG <br/><br/>
| |
− | | |
− | NOTE: with Crash Trace mode enabled, it is recommended to use ''[[Codec#Codec 8 Extended|Codec 8 Extended]]'' Data Protocol. This helps to optimize crash trace data sending from device to server.
| |
− | | |
− | [[File:Codec 8 Extended setting.png|thumb|none]]
| |
− | | |
− | Each record will have accurate timestamps in milliseconds. <br/>
| |
− | | |
− | | |
− | [[Image:Fmb120_crash_trace.png|600px|none]]
| |
− | <youtube>u6w7UHbvQcU</youtube>
| |
− | | |
− | ==Crash Data Visualisation==
| |
− | | |
− | With Teltonika ''CrashDataVisualizer'' tool you can analyze crash trace data visually: determine impact to vehicle direction, view crash trace on the map, also see the change of mG and speed values during crash time period. CrashDataVisualizer is dedicated to work with TAVL application, it means that only crash trace log files exported from TAVL is compatible. To have ability to export crash trace log files, device must be configured to send data by [[Codec#Codec 8 Extended|Codec8E]].
| |
− | | |
− | '''To start using CrashDataVisualizer'''<br/>
| |
− | Download and install TAVL (version 4.15.0.1 or later) + CrashDataVisualizer applications from here:<br/>
| |
− | ''Link:'' https://drive.teltonika.lt/d/05369fc90d9744afb14f/<br/>
| |
− | ''Password:'' TJEk24YApbRhWrQQ
| |
− | | |
− | '''To get crash data'''<br/>
| |
− | | |
− | Login to TAVL application (please contact your Sales manager for TAVL login information).<br/>
| |
− | | |
− | [[File:Crash data steps.png|thumb|left]]
| |
− | | |
− | In TAVL application:<br />
| |
− | 1. Go to Events<br />
| |
− | 2. Set the date of event<br />
| |
− | 3. Select the object you want to analyze<br />
| |
− | 4. Press "Crashes" button<br /><br /><br /><br /><br /><br /><br /><br />
| |
− | Crash event list window will show up. Press Download icon and save crash event file (.JSON).<br />
| |
− | [[File:JSON download.png|thumb|none]]<br />
| |
− | | |
− | '''Viewing crash data in application'''<br /> | |
− | Open CrashDataVisualizer application. Drag and Drop or Browse crash data file (.JSON).<br />
| |
− | | |
− | [[File:Crash Data Visualizer start screen.png|thumb|none]]
| |
− | | |
− | Use the Visualizer.<br />
| |
− | | |
− | [[File:Crash Data Visualizer main.png|thumb|none]]
| |
− | }}}
| |
− | <br>
| |
− | ==Crash Trace Explanation==
| |
− | Device continiously reads data from accelerometer. When accelerometer‘s axes magnitude is above configured threshold for defined duration, crash event is detected. After crash is detected, crash trace is performed. Crash trace functionality collects accelerometer, GNSS and additional configured IO data (configurable). Collected data holds configured seconds of information before crash and configured seconds of information after crash. <br>
| |
− | <br>
| |
− | '''Example:''' accel and GNSS duration set to 2s. Total data length will be 4s (2 before event 2 after event).<br>
| |
− | <br>
| |
− | '''Structure'''<br>
| |
− | Crash trace records follows AVL records structure, and can be parsed using the same parsers. Records are sent together with usual device records.<br>
| |
− | <br>
| |
− | '''Table 1. Crash Trace Record Part 1 '''
| |
− | {| class="nd-othertables_2" style="width:100%;"
| |
− | |+
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Timestamp
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Priority
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Longitude
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Latitude
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Altitude
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Angle
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Sat in Use
| |
− | ! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Speed
| |
− | |-
| |
− | | style="vertical-align: middle; text-align: center;" |8B
| |
− | | style="vertical-align: middle; text-align: center;" |1B
| |
− | | style="vertical-align: middle; text-align: center;" |4B
| |
− | | style="vertical-align: middle; text-align: center;" |4B
| |
− | | style="vertical-align: middle; text-align: center;" |2B
| |
− | | style="vertical-align: middle; text-align: center;" |2B
| |
− | | style="vertical-align: middle; text-align: center;" |1B
| |
− | | style="vertical-align: middle; text-align: center;" |2B
| |
− | |-
| |
− | |}
| |
− | <br> | |
− | '''Table 2. Crash Trace Record Part 2'''
| |
− | {| class="nd-othertables_2" style="width:100%;"
| |
− | |+
| |
− | ! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Eventual ID
| |
− | ! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Total, IO Count
| |
− | ! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |1B IO elements
| |
− | ! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Crash Event, ID
| |
− | ! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Crash Event, Value
| |
− | |-
| |
− | | style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 247
| |
− | | style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 0x04
| |
− | | style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 0x01
| |
− | | style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 247
| |
− | | style="vertical-align: middle; text-align: center;" |1B<br> Always<br> [2-5]*
| |
− | |-
| |
− | |}
| |
− | * This value depends on user configuration : <br>
| |
− | 2 – Trace changes and device is not calibrated.<br>
| |
− | 3 – Trace changes and device is calibrated.<br>
| |
− | 4 – Trace full and device is not calibrated.<br>
| |
− | 5 – Trace full and device is calibrated.<br>
| |
− | <br>
| |
− | '''Table 3. Crash Trace Record Part 3'''
| |
− | {| class="nd-othertables_2" style="width:100%;"
| |
− | |+
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |1B IO <br> elements*
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Ignition <br> Value*
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |2B IO <br> elements
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis X, <br> ID
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis X, <br> Value
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Y,<br> ID
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Y, <br> Value
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Z,<br> ID
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Z, <br> Value
| |
− | ! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |4B IO <br> elements
| |
− | ! rowspan="1" style="width:10%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |8B IO <br> Elements
| |
− | |-
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always 1
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Ignition <br> value
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 3
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x17
| |
− | | style="vertical-align: middle; text-align: center;" |2B
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x18
| |
− | | style="vertical-align: middle; text-align: center;" |2B
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x19
| |
− | | style="vertical-align: middle; text-align: center;" |2B
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x00
| |
− | | style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x00
| |
− | |-
| |
− | |}
| |
− | * Ignition value is only added to the trace records if crash trace parameter is configured as „Trace Full“<br>
| |
− | <br>
| |
− | '''ODR explanation:'''<br>
| |
− | When crash ODR is set to 100 Hz then device should collect 100 samples of AXL data over one second. You should see records timestamp every 1 second and each record should contain Crash trace data (AVL ID 257). This IO element should has 100 samples of X,Y,Z values. Also I notice that you use Codec8 protocol. We strongly recommend to use Codec8 extended. <br>
| |
− | <br>
| |
− | '''Parsing'''<br>
| |
− | {| class="nd-othertables_2" style="width:100%;"
| |
− | ! rowspan="1" style="width:100%; vertical-align: middle; text-align: center;" |Unparsed received data in hexadecimal stream
| |
− | |-
| |
− | | style="vertical-align: middle; text-align: center;" | <span style="background:#FFA533">0001</span><span style="background:#0b9768">0101</span><span style="background:#B233FF">0258</span><span style="background:#E74C3C">0234</span><span style="background:#F9FF33">001F</span><span style="background:#335EFF">0027</span><span style="background:#0b9768">0269</span><span style="background:#F9FF33">003A</span><span style="background:#335EFF">0035</span><span style="background:#E74C3C">026C</span><span style="background:#F9FF33">002A</span><span style="background:#B233FF">002B</span>0257FFC300180255FF8C00130258FF95000B0283FF800012027EFF860007026EFF63FFFA02D5F<br>F75000F0352FFBA003D03BEFFA70081043BFFE400EE04550027011003CBFFB8009103AFFFB0007D039BFFE0006D0357FFD70044039F0008007803AFFFEF008B03D9<br>FFD200BF040F0018010904210030013E03F6001A012E03BB003A01140336006A00C502A4000900780269FF9A00730228FF75006A0234FFBE007B024BFFD800990262FFEB00BE<br>02B000530123028FFFE70123016FFF11008C00C2FEE2005AFFB6FF8AFFF8FF46FFA5FFE6FEFBFFBDFFDAFEBDFFCEFFD6FE66FFF6FFD8FEC4004BFFD5FF730047FFE2FFD8F<br>FE6FFF100FB0040007C00A6FF1D006C0036FE6E007EFF46FF0FFFEBFE87001FFFA9FE370042FFA3FE500066FFA3FE35FF56FFBDFDCD0016FFB5FDDB006CFFBAFE770019<br>FFAFFE830020FFB1FE8E0032FFB3FE970034FFB6FE94FFF8FFBAFEA20028FFBBFEAC0027FFBDFEB00025FFBFFEB1002FFFC1FEB70027FFC3FEBB0025FFC5FEB90031FFC6FEB<br>F002FFFC8FED1000FFFCAFED6000DFFCCFED40023FFCDFED80024FFCFFEDA0026FFD0FEE00024FFD1FEE80022FFD3FEE2002CFFD4FEEC0028FFD5FEEE0028FFD6FE<br>F10027FFD8FEF70025FFD9FEFC0024FFDAFEFD0022FFDBFF050028FFDDFF0D0023FFDEFF180021FFDFFF030021FFE0FF020027FFE1FF150021FFE2FF190<br>023FFE3FF1E0024FFE4FF220023FFE5FF260022FFE6FF260020FFE6FF2C0023FFE7FF310022FFE8FF360020FFE9FF37001DFFEAFF3C001CFFEAF<br>F3F001EFFEBFF43001EFFECFF46001EFFEC
| |
− | |}
| |
− | <span style="background:#FFA533">0001</span> - IO element count <br>
| |
− | <span style="background:#0b9768">0101</span> - IO element ID 257 (dec) <br>
| |
− | <span style="background:#B233FF">0258</span> - Data length 600 (dec) <br>
| |
− | <br>
| |
− | Accelerometer data: <br>
| |
− | 1‘st sample: <br>
| |
− | <span style="background:#E74C3C">0234</span> – X axis data 564 mG (dec) <br>
| |
− | <span style="background:#F9FF33">001F</span> – Y axis data 31 mG (dec) <br>
| |
− | <span style="background:#335EFF">0027</span> – Z axis data 39 mG (dec) <br>
| |
− | <br>
| |
− | 2‘nd sample: <br>
| |
− | <span style="background:#0b9768">0269</span> – X axis data 617 mG (dec) <br>
| |
− | <span style="background:#F9FF33">003A</span> – Y axis data 58 mG (dec) <br>
| |
− | <span style="background:#335EFF">0035</span> – Z axis data 53 mG (dec) <br>
| |
− | <br>
| |
− | 3‘rd sample:<br>
| |
− | <span style="background:#E74C3C">026C</span> – X axis data 620 mG (dec) <br>
| |
− | <span style="background:#F9FF33">002A</span> – Y axis data 42 mG (dec) <br>
| |
− | <span style="background:#B233FF">002B</span> – Z axis data 43 mG (dec) <br>
| |
− | ...<br>
| |
− | N'th sample: <br>
| |
− | ...<br>
| |