Changes

24,725 bytes added ,  00:40, 2 December 2020
no edit summary
Line 87: Line 87:  
</table class="nd-othertables" style="width: 68%;">
 
</table class="nd-othertables" style="width: 68%;">
 
<br>
 
<br>
 +
==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.
 +
[[Image:DualCamWiringScheme.jpg|{{{general|size}}}|center]]
 +
{| class="wikitable"
 +
|+
 +
! style="width:10%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |PIN NUMBER
 +
! style="width:15%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |PIN NAME
 +
! style="width:25%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |
 +
DESCRIPTION
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |1
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#D8D800">'''RS232-Tx'''</span>
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |DualCam output for data transmission through RS232
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |2
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#008000">'''RS232-Rx'''</span>
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |DualCam input for data reception through RS232
 +
|-
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |3
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#FF0000">'''VCC(9-36V)''' </span>(+)
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |Power supply for the DualCam
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |4
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#000000">'''GND''' </span>(-)
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |Ground
 +
|}
 +
 
==DualCam RS232 camera support==
 
==DualCam RS232 camera support==
 
DualCam camera support was introduced from firmware version 03.27.00.Rev.86. A new RS232 mode "DualCam"
 
DualCam camera support was introduced from firmware version 03.27.00.Rev.86. A new RS232 mode "DualCam"
Line 210: Line 238:  
| 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
 
|}
 
|}
 +
===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:
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''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;" | <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.
 +
|}
 +
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), (up to 255 s)
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" | '''Conditions'''
 +
! 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: 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: 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: left; style="width: 150px; background: white; color: black;" | Request for video from source <1-3> received for  <1-255> 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.
 +
{| class="wikitable"
 +
|+
 +
! 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 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;" | 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;" | 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;" | 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;" | 3 - Card failed
 +
|-
 +
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | 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:
 +
# '''RS232 mode is selected (DualCam)'''
 +
# '''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.
 +
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==
 +
[[Image:CameraServerSettings.PNG|{{{general|size}}}|right]]
 +
Once camera has at least one file captured, it starts connection to a remote server, which isconfigured by parameters “Domain” and “Port” found in the “Camera Settings” tab.
 +
==Initialization packet==
 +
On connection, a device sends an initialization packet.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''IMEI'''
 +
! 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;" | 8 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.86 and up have protocol ID 5.
 +
Settings flag contains information on what is available for download. Structure is provided below:
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" colspan="32" style="width: 400px; background: #0054A6; color: white;" | '''Settings, 4 B'''
 +
|-
 +
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 3''' 
 +
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 2'''
 +
! rowspan="1" colspan="8" style="width: 400px; background: #0054A6; color: white;" | '''Byte 1'''
 +
! rowspan="1" colspan="8" 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;" | 1
 +
! 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;" | 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;" |
 +
|}
 +
# Video, rear (%videor)
 +
# Video, front(%videof)
 +
# Photo, rear (%photor)
 +
# 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.
 +
{| class="wikitable"
 +
|+
 +
! 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'''
 +
|-
 +
| 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
 +
|}
 +
==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.
 +
{| class="wikitable"
 +
|+
 +
! 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="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
 +
|}
 +
==Start file transfer command (CMD ID 0x0001)
 +
After device is connected for a file download, server initiates file transfer by sending a „START“ command.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''File Packets (4 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;" | 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;" | ...
 +
|}
 +
==File request command (CMD ID 0x0008)==
 +
After device is connected for a file upload, server initiates file transfer by sending a „FILE REQ“ command.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''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;" | 2 bytes
 +
| 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.
 +
{| class="wikitable"
 +
|+
 +
! 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="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;" | 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;" | 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;" | Video from camera, front
 +
| rowspan="1" style="text-align: center; style="width: 150px; background: white; color: black;" | %videof
 +
|}
 +
==Resume file transfer command (CMD ID 0x0002)==
 +
In a response to the START command a RESUME command must be sent from a server.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''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;" | 0x0004
 +
| 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]).
 +
==Synchronize file transfer command (CMD ID 0x0003)==
 +
In a response to the RESUME command a SYNC command is sent from device.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''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;" | 0x0004
 +
| 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.
 +
==File data transfer command (CMD ID 0x0004)==
 +
After sending a SYNC command, a file data transfer is started by sending DATA commands.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''File data (up to 1024 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;" | 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;" | ...
 +
|}
 +
A File data is split into 1024 byte parts, each part wrapped into a DATA command and is sent. <br>
 +
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'' '''“Error! Reference source not found.”''' ''step.''<br>
 +
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 doesn‘t work after executing repeat init command0 x0009 – in this case the server should send a CLOSE session 0x0000 command mentioned before).
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''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;" | 0x0004
 +
| 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.
 +
{| class="wikitable"
 +
|+
 +
! 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;" | '''Notes'''
 +
|-
 +
| 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: 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: 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;" | 0x00000003
 +
| 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;" | 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: 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: 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:
 +
* "Toyota" special ID (160) is not active
 +
* 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==
 +
[[Image:FileTransferVisual.PNG|{{{general|size}}}|center]]

Navigation menu