Difference between revisions of "Teltonika DualCam"

From Wiki Knowledge Base | Teltonika GPS
m (Fixed grammar mistakes.)
Line 34: Line 34:
 
     </tr>
 
     </tr>
 
<tr>
 
<tr>
<table class="nd-othertables" style="width: 68%;">
+
<br><table class="nd-othertables" style="width: 68%;">
<br>
+
 
 
         <th style="width: 10%; text-align:left; vertical-align:middle; color:black">Electrical parameters</th>
 
         <th style="width: 10%; text-align:left; vertical-align:middle; color:black">Electrical parameters</th>
 
         <th style="width: 20%; text-align:center; vertical-align:middle; color:black">Description</th>
 
         <th style="width: 20%; text-align:center; vertical-align:middle; color:black">Description</th>
Line 41: Line 41:
 
<tr>
 
<tr>
 
         <td style="width: 8%; text-align:left;">Input voltage range</td>
 
         <td style="width: 8%; text-align:left;">Input voltage range</td>
         <td style="width: 8%; text-align:left">9-36 V</td>
+
         <td style="width: 8%; text-align:left">9 ~ 36 V</td>
 
     </tr>
 
     </tr>
 
<tr>
 
<tr>
 
         <td style="width: 8%; text-align:left">Working temperature and humidity</td>
 
         <td style="width: 8%; text-align:left">Working temperature and humidity</td>
         <td style="width: 8%; text-align:left">30C~85C Humidity<90%</td>
+
         <td style="width: 8%; text-align:left">Temperature: 30 °C ~ 85 °C
 +
Humidity: <90%
 +
</td>
 
     </tr>
 
     </tr>
 
<tr>
 
<tr>
Line 51: Line 53:
 
         <td style="width: 8%; text-align:left">60 mA</td>
 
         <td style="width: 8%; text-align:left">60 mA</td>
 
     </tr>
 
     </tr>
<tr>
+
<tr></table>
</table class="nd-othertables" style="width: 68%;">
 
 
<br>
 
<br>
 
<table class="nd-othertables" style="width: 68%;">
 
<table class="nd-othertables" style="width: 68%;">
Line 80: Line 81:
 
<tr>
 
<tr>
 
         <td style="width: 8%; text-align:left">Video resolution</td>
 
         <td style="width: 8%; text-align:left">Video resolution</td>
         <td style="width: 8%; text-align:left">720P (20 sec. – 6MB, transfer period ~320sec.)</td>
+
         <td style="width: 8%; text-align:left">720P (20 sec. – 6MB, transfer period ~ 320 sec.)</td>
 
     </tr>
 
     </tr>
 
<tr>
 
<tr>
Line 86: Line 87:
 
         <td style="width: 8%; text-align:left">2psc. MicroSD card (Max 64G up to 72 hours of video)</td>
 
         <td style="width: 8%; text-align:left">2psc. MicroSD card (Max 64G up to 72 hours of video)</td>
 
     </tr>
 
     </tr>
</table class="nd-othertables" style="width: 68%;">
+
</table>
 
<br>
 
<br>
 
==Installation==
 
==Installation==
Line 123: Line 124:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter name'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter ID'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter value'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter value'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | RS323 Mode
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |RS232 Mode
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 151
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |151
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 18
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |18
 
|}
 
|}
 
<br>
 
<br>
Line 140: Line 141:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter name'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter ID'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter values'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter values'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Default values'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Default values'''
 
|-  
 
|-  
| rowspan="6" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Camera Picture Resolution
+
| colspan="1" rowspan="6" style="text-align: center; style=" width: 150px; background: white; color: black;" |Camera Picture Resolution
| rowspan="6" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66000
+
| colspan="1" rowspan="6" style="text-align: center; style=" width: 150px; background: white; color: black;" |66000
 
|-
 
|-
 
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - 160 x 120
 
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - 160 x 120
| rowspan="5" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 3
+
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |3
 
|-
 
|-
 
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - 320 x 240
 
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - 320 x 240
Line 159: Line 160:
 
| rowspan="1" style="text-align: center; vertical-align: center;" |4 - 1920 x 1080
 
| rowspan="1" style="text-align: center; vertical-align: center;" |4 - 1920 x 1080
 
|-  
 
|-  
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Camera Picture Compression
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Camera Picture Compression
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66001
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66001
 
| rowspan="1" style="text-align: center; vertical-align: center;" |[0 - 100] (%)
 
| rowspan="1" style="text-align: center; vertical-align: center;" |[0 - 100] (%)
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 50
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |50
 
|-  
 
|-  
| rowspan="2" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | OSD Display
+
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |OSD Display
| rowspan="2" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66002
+
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |66002
| rowspan="1" style="text-align: center; vertical-align: center;" | 0 - Disabled
+
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - Disabled
| rowspan="2" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0
+
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 
|-
 
|-
| rowspan="1" style="text-align: center; vertical-align: center;" | 1 - Enabled
+
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Enabled
 
|-
 
|-
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video Frame Rate
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video Frame Rate
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66003
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66003
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | [1-30] (frames per second)
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[1-30] (frames per second)
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 30
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |30
 
|}
 
|}
 
'''OSD display''' - On Screen Display feature displays date and time in the upper left corner of the photo. This feature can be enabled or disabled.
 
'''OSD display''' - On Screen Display feature displays date and time in the upper left corner of the photo. This feature can be enabled or disabled.
Line 185: Line 186:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" | '''Parameter name'''  
+
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Parameter name'''
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" | '''Parameter ID'''
+
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Parameter ID'''
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" | '''Parameter values'''
+
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Parameter values'''
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" | '''Default values'''
+
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Default values'''
 
|-  
 
|-  
| rowspan="2" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Periodic Image sending
+
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |Periodic Image sending
| rowspan="2" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66006
+
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |66006
| rowspan="1" style="text-align: center; vertical-align: center;" | 0 - Disabled
+
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - Disabled
| rowspan="2" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0
+
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 
|-
 
|-
| rowspan="1" style="text-align: center; vertical-align: center;" | 1 - Enabled
+
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Enabled
 
|-
 
|-
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Sending interval
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sending interval
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66007
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66007
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | [10-1800] (seconds)
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[10-1800] (seconds)
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 600
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |600
 
|-
 
|-
| rowspan="5" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video sending trigger
+
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video sending trigger
| rowspan="5" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66008
+
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |66008
 
|-
 
|-
 
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
 
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
| rowspan="4" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0
+
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 
|-
 
|-
 
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - DIN1
 
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - DIN1
Line 214: Line 215:
 
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - Crash
 
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - Crash
 
|-
 
|-
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video duration before trigger
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video duration before trigger
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66009
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66009
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | [1-10] (seconds)
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[1-10] (seconds)
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 5
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |5
 
|-
 
|-
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video duration after trigger
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video duration after trigger
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 66010
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66010
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | [1-10] (seconds)
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[1-10] (seconds)
| rowspan="1" colspan ="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 5
+
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |5
 
|-
 
|-
 
|}
 
|}
Line 235: Line 236:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter name'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter ID'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter value'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter value'''
 
|-  
 
|-  
| rowspan="4" style="text-align: center; style="width: 150px; background: white; color: black;" | SOS trigger
+
| rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |SOS trigger
| rowspan="4" style="text-align: center; style="width: 150px; background: white; color: black;" | 499
+
| rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |499
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0 - Server request
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0 - Server request
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 1 - DIN1
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |1 - DIN1
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 - DIN2
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 - DIN2
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 3 - Crash
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |3 - Crash
 
|}
 
|}
 
<br>
 
<br>
Line 255: Line 256:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Arguments'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Arguments'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Explanation'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Explanation'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | camreq:
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |camreq:
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | <file_type>,<file_source>,<timestamp>,<duration>
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |<file_type>,<file_source>,<timestamp>,<duration>
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Captures appropriate file with the provided details. If the connection to server is opened, them files immediately become available for download. If not, then connection is tired to be made.
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Captures appropriate file with the provided details. If the connection to server is opened, them files immediately become available for download. If not, then connection is tired to be made.
 
|}
 
|}
 
The arguments are as follows:
 
The arguments are as follows:
* <file_type>
+
 
** 0 - Video
+
*<file_type>
** 1 - Photo
+
**0 - Video
* <file_source>
+
**1 - Photo
** 1 - Front camera
+
*<file_source>
** 2 - Rear camera
+
**1 - Front camera
** 3 - Both cameras
+
**2 - Rear camera
* <timestamp>
+
**3 - Both cameras
** Unix timestamps in decimal (not required for photo download)
+
*<timestamp>
* <duration>
+
**Unix timestamps in decimal (not required for photo download)
** Video duration in seconds from provided timestamps (not required for photo download), (max 30 sec)
+
*<duration>
 +
**Video duration in seconds from provided timestamps (not required for photo download), (max 30 sec)
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''Conditions'''  
+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Conditions'''
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''Command response'''
+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Command response'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Arguments are invalid
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Arguments are invalid
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Invalid argument in camera request cmd!
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Invalid argument in camera request cmd!
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Photo requested
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Photo requested
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Request for photo from source <1-3> received
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Request for photo from source <1-3> received
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video requested
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video requested
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Request for video from source <1-3> received for  <1-30> seconds since YYYY-MM-DDHH:MM:SS
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Request for video from source <1-3> received for  <1-30> seconds since YYYY-MM-DDHH:MM:SS
 
|}
 
|}
 
<br>
 
<br>
Line 295: Line 298:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter name'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter AVL ID'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter AVL ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Parameter values'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter values'''
 
|-
 
|-
| rowspan="2" style="text-align: center; style="width: 150px; background: white; color: black;" | Front camera state:
+
| rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |Front camera state:
| rowspan="2" style="text-align: center; style="width: 150px; background: white; color: black;" | 498
+
| rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |498
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0 - Camera not detected
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0 - Camera not detected
 
|-
 
|-
 
|-
 
|-
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 1 - No card
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |1 - No card
 
|-
 
|-
| rowspan="4" style="text-align: center; style="width: 150px; background: white; color: black;" | Rear camera state:
+
| rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |Rear camera state:
| rowspan="4" style="text-align: center; style="width: 150px; background: white; color: black;" | 497
+
| rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |497
 
|-
 
|-
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 - Card mount failed
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 - Card mount failed
 
|-
 
|-
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 3 - Card failed
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |3 - Card failed
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 4 - Card faulty
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |4 - Card faulty
 
|-
 
|-
 
|}
 
|}
Line 327: Line 330:
 
==Other camera related functionality==
 
==Other camera related functionality==
 
Camera is configured if all of these conditions are met:
 
Camera is configured if all of these conditions are met:
# '''RS232 mode is selected (DualCam)'''
+
 
# '''Camera was not configured since startup or one of the related parameters were changed (compression, framerate or OSD)'''
+
#'''RS232 mode is selected (DualCam)'''
# '''Camera file transfer is not active'''
+
#'''Camera was not configured since startup or one of the related parameters were changed (compression, framerate or OSD)'''
 +
#'''Camera file transfer is not active'''
 +
 
 
Active camera reconfiguration is accompanied by two consecutive camera shutter clicks.
 
Active camera reconfiguration is accompanied by two consecutive camera shutter clicks.
 
If camera is disconnected and later reconnected, a device will detect it by periodic camera ping packet. Once camera is detected, the device will reissue the reconfiguration procedure.
 
If camera is disconnected and later reconnected, a device will detect it by periodic camera ping packet. Once camera is detected, the device will reissue the reconfiguration procedure.
Line 346: Line 351:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Header(0x0000)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Header(0x0000)'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Protocol ID'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Protocol ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''IMEI'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''IMEI'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Settings'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Settings'''
 
|-
 
|-
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 8 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |8 bytes
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 4 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |4 bytes
 
|}
 
|}
 
Protocol ID – just a reference for the protocol version that is running on a device (for server cross compatibility with older versions). Firmware FMB.Ver.03.27.00.Rev.100 and up have protocol ID 5.
 
Protocol ID – just a reference for the protocol version that is running on a device (for server cross compatibility with older versions). Firmware FMB.Ver.03.27.00.Rev.100 and up have protocol ID 5.
Line 360: Line 365:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" colspan="32" style="width: 400px; background: #0054A6; color: white;" | '''Settings, 4 B'''
+
! colspan="32" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Settings, 4 B'''
 
|-
 
|-
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 3'''
+
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 3'''
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 2'''
+
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 2'''
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 1'''
+
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 1'''
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 0'''
+
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 0'''
 
|-
 
|-
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" | 1
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |1
! rowspan="1" style="width: 400px; background: background: white; color: black;" | 2
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |2
! rowspan="1" style="width: 400px; background: background: white; color: black;" | 3
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |3
! rowspan="1" style="width: 400px; background: background: white; color: black;" | 4
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |4
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
! rowspan="1" style="width: 400px; background: background: white; color: black;" |  
+
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 
|}
 
|}
# Video, rear (%videor)
+
 
# Video, front(%videof)
+
#Video, rear (%videor)
# Photo, rear (%photor)
+
#Video, front(%videof)
# Photo, rear (%photor)
+
#Photo, rear (%photor)
 +
#Photo, rear (%photor)
 +
 
 
If identifier sent to a server is not valid, device disconnects.
 
If identifier sent to a server is not valid, device disconnects.
 
<br>
 
<br>
Line 411: Line 418:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | [data length] bytes
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |[data length] bytes
 
|}
 
|}
 
<br>
 
<br>
Line 425: Line 432:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Data length'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0000
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0000
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0000
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0000
 
|}
 
|}
 
<br>
 
<br>
Line 436: Line 443:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''File Packets (4 bytes)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File Packets (4 bytes)'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''File CRC (2 bytes)'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File CRC (2 bytes)'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0004
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0006
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0006
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x12345678
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x12345678
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | ...
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |...
 
|}
 
|}
 
<br>
 
<br>
Line 451: Line 458:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''File Identifier'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File Identifier'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0008
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0008
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 2 bytes
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | ''See the table below''
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |''See the table below''
 
|}
 
|}
Device should answer with a START command described above indicating a size and crc of the requested file.
+
Device should answer with a START command described above indicating a size and CRC of the requested file.
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''File source, type'''  
+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''File source, type'''
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''Identifier (ASCII chars)'''
+
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Identifier (ASCII chars)'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Photo from camera, rear
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Photo from camera, rear
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | %photor
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%photor
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Photo from camera, front
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Photo from camera, front
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | %photof
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%photof
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video from camera, rear
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video from camera, rear
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | %videor
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%videor
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Video from camera, front
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video from camera, front
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | %videof
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%videof
 
|}
 
|}
 
<br>
 
<br>
Line 482: Line 489:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Packet offset (4 bytes)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Packet offset (4 bytes)'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0002
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0002
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0004
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000000
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000000
 
|}
 
|}
 
To begin a file transfer from the start, offset should be set to zero (4 bytes value). In case when the file transfer has been interrupted, to resume file transfer, offset can be set to the desired value (0 ≤ [offset] ≤ [file size]).
 
To begin a file transfer from the start, offset should be set to zero (4 bytes value). In case when the file transfer has been interrupted, to resume file transfer, offset can be set to the desired value (0 ≤ [offset] ≤ [file size]).
Line 497: Line 504:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''File offset (4 bytes)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File offset (4 bytes)'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0003
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0003
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0004
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000000
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000000
 
|}
 
|}
 
By sending a SYNC command, it is ensured that the next data command will contain a file data starting from the specified offset.
 
By sending a SYNC command, it is ensured that the next data command will contain a file data starting from the specified offset.
Line 512: Line 519:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''File data (up to 1024 bytes)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File data (up to 1024 bytes)'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data CRC (2 bytes)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data CRC (2 bytes)'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0004
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0402
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0402
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | ...
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |...
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | ...
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |...
 
|}
 
|}
 
A File data is split into 1024 byte parts, each part wrapped into a DATA command and is sent. <br>
 
A File data is split into 1024 byte parts, each part wrapped into a DATA command and is sent. <br>
Line 532: Line 539:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Command ID'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Data length'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Status (4 bytes)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Status (4 bytes)'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0005
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0005
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x0004
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000000
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000000
 
|}
 
|}
 
In case of the server using invalid arguments, commands or not following the file request flow, the device will send this command with a Status field set to one of the few possible error codes. List of possible ones is provided below.
 
In case of the server using invalid arguments, commands or not following the file request flow, the device will send this command with a Status field set to one of the few possible error codes. List of possible ones is provided below.
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Status value (hexadecimal)'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Status value (hexadecimal)'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Description'''
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Description'''
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" | '''Notes'''  
+
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Notes'''
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000000
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000000
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | File transfer process completed
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |File transfer process completed
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Sent from server
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from server
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000002
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000002
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Failed to close GPRS
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Failed to close GPRS
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Sent from device
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from device
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000003
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000003
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Failed to close socket
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Failed to close socket
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Sent from device
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from device
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000005
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000005
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Invalid response from server to init packet
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Invalid response from server to init packet
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | Sent from device
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from device
 
|-  
 
|-  
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 0x00000011
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000011
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | This error code forces the device to disconnect from server
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |This error code forces the device to disconnect from server
| rowspan="1" style="text-align: left; style="width: 150px; background: white; color: black;" | Sent from device. Possible causes:
+
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Sent from device. Possible causes:
* Camera is not configured
+
 
* The requested file is not available by camera
+
*Camera is not configured
 +
*The requested file is not available by camera
 
|}
 
|}
 
After a COMPLETED command device should disconnect from the server.
 
After a COMPLETED command device should disconnect from the server.

Revision as of 13:35, 9 December 2020

Main Page > Video Solutions > Teltonika DualCam

Introduction to the product

Teltonika DualCam is connected to FMX125 and FMU126 devices using the RS232 interface.

DualCam1.png

Basic characteristics



Technical data Description
Supported by FMC125, FMM125, FMU125, FMU126, FMB125
Day & Night Vision Effect Day (Color), Night (Black & White)
Angle of View Horizontal 120°, Vertical 70°
Dual Camera Front and Rear (equal characteristics)
Camera casing dimensions 126.2 x 36.6 x 36.6 mm
Camera mounting Sticky tape (3M) or screws
Electrical parameters Description
Input voltage range 9 ~ 36 V
Working temperature and humidity Temperature: 30 °C ~ 85 °C

Humidity: <90%

Stand-by electric current 60 mA


Function parameters Description
Real time clock (RTC) synchronization Available over FM (via NTP, NITZ or GNSS)
Picture resolution 1280 x 720 (default) (50KB transfer period 18 sec), Configurable: 160 x 120; 320 x 240; 640 x 480; 1920 x 1080
IR Distance 2 Meters
Cable length RS232 (0.35 m)
Video compression H.265
Video resolution 720P (20 sec. – 6MB, transfer period ~ 320 sec.)
Video storage 2psc. MicroSD card (Max 64G up to 72 hours of video)


Installation

To connect the DualCam to a supported device, you have to make sure to connect 4 PINs of the camera to the PINs of your device correctly.

size
PIN NUMBER PIN NAME

DESCRIPTION

1 RS232-Tx DualCam output for data transmission through RS232
2 RS232-Rx DualCam input for data reception through RS232
3 VCC(9-36V) (+) Power supply for the DualCam
4 GND (-) Ground


DualCam RS232 camera support

DualCam camera support was introduced from firmware version 03.27.00.Rev.100. A new RS232 mode "DualCam" was added with parameters for setting control. The details of the RS232 mode parameter are provided in the table below.

Parameter name Parameter ID Parameter value
RS232 Mode 151 18


Camera Feature Settings

size

Once this mode is enabled, new tab “Camera Settings” appears on the left sidebar. This will contain the main parameters for configuring the camera settings The parameter IDs and values are provided in the table below. Once configuration is saved to device, these parameters are updated.

Parameter name Parameter ID Parameter values Default values
Camera Picture Resolution 66000
0 - 160 x 120 3
1 - 320 x 240
2 - 640 x 480
3 - 1280 x 720
4 - 1920 x 1080
Camera Picture Compression 66001 [0 - 100] (%) 50
OSD Display 66002 0 - Disabled 0
1 - Enabled
Video Frame Rate 66003 [1-30] (frames per second) 30

OSD display - On Screen Display feature displays date and time in the upper left corner of the photo. This feature can be enabled or disabled.

Camera Scenario Settings

size

"Camera settings" tab also contains scenario settings that trigger camera video/photo capture when specific condition is met.

Parameter name Parameter ID Parameter values Default values
Periodic Image sending 66006 0 - Disabled 0
1 - Enabled
Sending interval 66007 [10-1800] (seconds) 600
Video sending trigger 66008
0 - None 0
1 - DIN1
2 - DIN2
3 - Crash
Video duration before trigger 66009 [1-10] (seconds) 5
Video duration after trigger 66010 [1-10] (seconds) 5


Periodic image sending scenario

Periodic image sending triggers photo capture from a front camera, whenever the timeout is reached (sending interval parameter). If a camera has not finished uploading picture to a server, then the photo capture is skipped.


Video sending by trigger

Video sending by trigger scenario monitors the selected trigger (video sending trigger parameter) and captures video before and after the event (video duration before trigger and video duration after trigger parameters). If the previously captured video has not finished downloading, then a new video capture is skipped until the old one has been sent. When this scenario is triggered, high priority eventual record is generated with the value corresponding to what triggered the scenario. See the table below.

Parameter name Parameter ID Parameter value
SOS trigger 499 0 - Server request
1 - DIN1
2 - DIN2
3 - Crash


Camera request command

A new camera request has been added, which allows server to request files from a camera. The format is as provided below in the table:

Command Arguments Explanation
camreq: <file_type>,<file_source>,<timestamp>,<duration> Captures appropriate file with the provided details. If the connection to server is opened, them files immediately become available for download. If not, then connection is tired to be made.

The arguments are as follows:

  • <file_type>
    • 0 - Video
    • 1 - Photo
  • <file_source>
    • 1 - Front camera
    • 2 - Rear camera
    • 3 - Both cameras
  • <timestamp>
    • Unix timestamps in decimal (not required for photo download)
  • <duration>
    • Video duration in seconds from provided timestamps (not required for photo download), (max 30 sec)
Conditions Command response
Arguments are invalid Invalid argument in camera request cmd!
Photo requested Request for photo from source <1-3> received
Video requested Request for video from source <1-3> received for <1-30> seconds since YYYY-MM-DDHH:MM:SS


Camera ping transmission and TF status checking

Camera pinging was implemented to periodically check if a camera is connected to a device. This is done via “Get TF status” command for both front and rear camera every 20 seconds when ignition is on. The received result from this command is stored in two corresponding AVL elements “Front camera state” and “Rear camera state”. The following do not only store TF status, but also if response from the camera was received or not.

Parameter name Parameter AVL ID Parameter values
Front camera state: 498 0 - Camera not detected
1 - No card
Rear camera state: 497
2 - Card mount failed
3 - Card failed
4 - Card faulty


Camera RTC synchronization

Camera RTC synchronization is done anytime the device itself is synchronized (via NTP, NITZ or GNSS).

Other camera related functionality

Camera is configured if all of these conditions are met:

  1. RS232 mode is selected (DualCam)
  2. Camera was not configured since startup or one of the related parameters were changed (compression, framerate or OSD)
  3. Camera file transfer is not active

Active camera reconfiguration is accompanied by two consecutive camera shutter clicks. If camera is disconnected and later reconnected, a device will detect it by periodic camera ping packet. Once camera is detected, the device will reissue the reconfiguration procedure.

Camera file transfer reconnection

If FMU1YX device has bad reception, server is not reachable or wrong server details are configured, then the device tries to open a link to a camera server few consecutive times. If no connection was possible to be established, then the connection is postponed for 30 minutes and tried again (or tried every configured sending interval if periodic image sending is enabled).

DualCam camera file transfer support

size

Once camera has at least one file captured, it starts connection to a remote server, which is configured by parameters “Domain” and “Port” found in the “Camera Settings” tab.

Initialization packet

On connection, a device sends an initialization packet.

Header(0x0000) Protocol ID IMEI Settings
2 bytes 2 bytes 8 bytes 4 bytes

Protocol ID – just a reference for the protocol version that is running on a device (for server cross compatibility with older versions). Firmware FMB.Ver.03.27.00.Rev.100 and up have protocol ID 5. Settings flag contains information on what is available for download. Structure is provided below:

Settings, 4 B
Byte 3 Byte 2 Byte 1 Byte 0
1 2 3 4
  1. Video, rear (%videor)
  2. Video, front(%videof)
  3. Photo, rear (%photor)
  4. Photo, rear (%photor)

If identifier sent to a server is not valid, device disconnects.

General command structure

General communication packet structure is as in the table bellow. It consist of CMD_ID (2 bytes), Data length of a command and a payload.

Command ID Data length Data
2 bytes 2 bytes [data length] bytes


Communication protocol

Close a session command (CMD ID 0x0000)
In case when a device connects to a server, but the server does not expect it to connect, server will respond by sending a CLOSE command after which the connection will be terminated. This command is also used when device connects to a server for a custom file sending and server finishes to send all custom files to the device.

Command ID Data length
0x0000 0x0000


Start file transfer command (CMD ID 0x0001)
After device is connected for a file download, server initiates file transfer by sending a START command.

Command ID Data length File Packets (4 bytes) File CRC (2 bytes)
0x0004 0x0006 0x12345678 ...


File request command (CMD ID 0x0008)
After device is connected for a file upload, server initiates file transfer by sending a FILE REQ command.

Command ID Data length File Identifier
0x0008 2 bytes See the table below

Device should answer with a START command described above indicating a size and CRC of the requested file.

File source, type Identifier (ASCII chars)
Photo from camera, rear %photor
Photo from camera, front %photof
Video from camera, rear %videor
Video from camera, front %videof


Resume file transfer command (CMD ID 0x0002)
In a response to the START command a RESUME command must be sent from a server.

Command ID Data length Packet offset (4 bytes)
0x0002 0x0004 0x00000000

To begin a file transfer from the start, offset should be set to zero (4 bytes value). In case when the file transfer has been interrupted, to resume file transfer, offset can be set to the desired value (0 ≤ [offset] ≤ [file size]).

Synchronize file transfer command (CMD ID 0x0003)
In a response to the RESUME command a SYNC command is sent from device.

Command ID Data length File offset (4 bytes)
0x0003 0x0004 0x00000000

By sending a SYNC command, it is ensured that the next data command will contain a file data starting from the specified offset.

File data transfer command (CMD ID 0x0004)
After sending a SYNC command, a file data transfer is started by sending DATA commands.

Command ID Data length File data (up to 1024 bytes) Data CRC (2 bytes)
0x0004 0x0402 ... ...

A File data is split into 1024 byte parts, each part wrapped into a DATA command and is sent.
Note: if a command with a bad CRC is received, RESUME command should be sent with the last valid file offset, after receiving a RESUME command, server will stop sending DATA commands and continue communication from “Resume file transfer” step.
CRC polynomial expression: 0x8408 Initial value, when calculating CRC, is previously received packet (CMD ID 0x0004) CRC value.

File transfer status command (CMD ID 0x0005)
After a file transfer is completed and no more files are required from the device, a server should send a COMPLETED command to the device (this command does not work after executing repeat init command0 x0009 – in this case the server should send a CLOSE session 0x0000 command mentioned before).

Command ID Data length Status (4 bytes)
0x0005 0x0004 0x00000000

In case of the server using invalid arguments, commands or not following the file request flow, the device will send this command with a Status field set to one of the few possible error codes. List of possible ones is provided below.

Status value (hexadecimal) Description Notes
0x00000000 File transfer process completed Sent from server
0x00000002 Failed to close GPRS Sent from device
0x00000003 Failed to close socket Sent from device
0x00000005 Invalid response from server to init packet Sent from device
0x00000011 This error code forces the device to disconnect from server Sent from device. Possible causes:
  • Camera is not configured
  • The requested file is not available by camera

After a COMPLETED command device should disconnect from the server.

Initialization packet repeat command (CMD ID 0x0009)
When sent, the initialization packet is repeated. This is used, when all of the files are downloaded and additional check is carried out for any additional files, that may have been captured during the download operation.

File transfer visual flow

size