Added RTC configuration command
authordsouzahansenfrancis <hdsouza@crosschasm.com>
Thu, 19 Nov 2015 18:36:52 +0000 (13:36 -0500)
committerdsouzahansenfrancis <hdsouza@crosschasm.com>
Thu, 19 Nov 2015 18:36:52 +0000 (13:36 -0500)
gen/cpp/openxc.pb
gen/cpp/openxc.pb.c
gen/cpp/openxc.pb.h
gen/java/com/openxc/BinaryMessages.java
gen/python/openxc_pb2.py
openxc.proto

index ff526e1..d0fb4fe 100644 (file)
Binary files a/gen/cpp/openxc.pb and b/gen/cpp/openxc.pb differ
index db740c0..45ae65b 100644 (file)
@@ -1,5 +1,5 @@
 /* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.1 at Tue Oct 27 16:15:02 2015. */
+/* Generated by nanopb-0.3.1 at Thu Nov 19 16:37:50 2015. */
 
 #include "openxc.pb.h"
 
@@ -28,7 +28,7 @@ const pb_field_t openxc_CanMessage_fields[5] = {
     PB_LAST_FIELD
 };
 
-const pb_field_t openxc_ControlCommand_fields[8] = {
+const pb_field_t openxc_ControlCommand_fields[9] = {
     PB_FIELD(  1, ENUM    , OPTIONAL, STATIC  , FIRST, openxc_ControlCommand, type, type, 0),
     PB_FIELD(  2, MESSAGE , OPTIONAL, STATIC  , OTHER, openxc_ControlCommand, diagnostic_request, type, &openxc_DiagnosticControlCommand_fields),
     PB_FIELD(  3, MESSAGE , OPTIONAL, STATIC  , OTHER, openxc_ControlCommand, passthrough_mode_request, diagnostic_request, &openxc_PassthroughModeControlCommand_fields),
@@ -36,6 +36,7 @@ const pb_field_t openxc_ControlCommand_fields[8] = {
     PB_FIELD(  5, MESSAGE , OPTIONAL, STATIC  , OTHER, openxc_ControlCommand, payload_format_command, acceptance_filter_bypass_command, &openxc_PayloadFormatCommand_fields),
     PB_FIELD(  6, MESSAGE , OPTIONAL, STATIC  , OTHER, openxc_ControlCommand, predefined_obd2_requests_command, payload_format_command, &openxc_PredefinedObd2RequestsCommand_fields),
     PB_FIELD(  7, MESSAGE , OPTIONAL, STATIC  , OTHER, openxc_ControlCommand, modem_configuration_command, predefined_obd2_requests_command, &openxc_ModemConfigurationCommand_fields),
+    PB_FIELD(  8, MESSAGE , OPTIONAL, STATIC  , OTHER, openxc_ControlCommand, rtc_configuration_command, modem_configuration_command, &openxc_RTCConfigurationCommand_fields),
     PB_LAST_FIELD
 };
 
@@ -98,6 +99,11 @@ const pb_field_t openxc_ModemConfigurationCommand_fields[4] = {
     PB_LAST_FIELD
 };
 
+const pb_field_t openxc_RTCConfigurationCommand_fields[2] = {
+    PB_FIELD(  1, UINT32  , OPTIONAL, STATIC  , FIRST, openxc_RTCConfigurationCommand, unix_time, unix_time, 0),
+    PB_LAST_FIELD
+};
+
 const pb_field_t openxc_CommandResponse_fields[4] = {
     PB_FIELD(  1, ENUM    , OPTIONAL, STATIC  , FIRST, openxc_CommandResponse, type, type, 0),
     PB_FIELD(  2, STRING  , OPTIONAL, STATIC  , OTHER, openxc_CommandResponse, message, type, 0),
@@ -155,7 +161,7 @@ const pb_field_t openxc_SimpleMessage_fields[4] = {
  * numbers or field sizes that are larger than what can fit in 8 or 16 bit
  * field descriptors.
  */
-PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 65536 && pb_membersize(openxc_VehicleMessage, simple_message) < 65536 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 65536 && pb_membersize(openxc_VehicleMessage, control_command) < 65536 && pb_membersize(openxc_VehicleMessage, command_response) < 65536 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 65536 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 65536 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 65536 && pb_membersize(openxc_ControlCommand, payload_format_command) < 65536 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 65536 && pb_membersize(openxc_ControlCommand, modem_configuration_command) < 65536 && pb_membersize(openxc_DiagnosticControlCommand, request) < 65536 && pb_membersize(openxc_NetworkOperatorSettings, networkDescriptor) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, networkOperatorSettings) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, networkDataSettings) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, serverConnectSettings) < 65536 && pb_membersize(openxc_SimpleMessage, value) < 65536 && pb_membersize(openxc_SimpleMessage, event) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_CanMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_NetworkOperatorSettings_openxc_NetworkOperatorSettings_NetworkDescriptor_openxc_NetworkDataSettings_openxc_ServerConnectSettings_openxc_ModemConfigurationCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_SimpleMessage)
+PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 65536 && pb_membersize(openxc_VehicleMessage, simple_message) < 65536 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 65536 && pb_membersize(openxc_VehicleMessage, control_command) < 65536 && pb_membersize(openxc_VehicleMessage, command_response) < 65536 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 65536 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 65536 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 65536 && pb_membersize(openxc_ControlCommand, payload_format_command) < 65536 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 65536 && pb_membersize(openxc_ControlCommand, modem_configuration_command) < 65536 && pb_membersize(openxc_ControlCommand, rtc_configuration_command) < 65536 && pb_membersize(openxc_DiagnosticControlCommand, request) < 65536 && pb_membersize(openxc_NetworkOperatorSettings, networkDescriptor) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, networkOperatorSettings) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, networkDataSettings) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, serverConnectSettings) < 65536 && pb_membersize(openxc_SimpleMessage, value) < 65536 && pb_membersize(openxc_SimpleMessage, event) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_CanMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_NetworkOperatorSettings_openxc_NetworkOperatorSettings_NetworkDescriptor_openxc_NetworkDataSettings_openxc_ServerConnectSettings_openxc_ModemConfigurationCommand_openxc_RTCConfigurationCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_SimpleMessage)
 #endif
 
 #if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
@@ -166,7 +172,7 @@ PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 65536 && p
  * numbers or field sizes that are larger than what can fit in the default
  * 8 bit descriptors.
  */
-PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 256 && pb_membersize(openxc_VehicleMessage, simple_message) < 256 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 256 && pb_membersize(openxc_VehicleMessage, control_command) < 256 && pb_membersize(openxc_VehicleMessage, command_response) < 256 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 256 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 256 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 256 && pb_membersize(openxc_ControlCommand, payload_format_command) < 256 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 256 && pb_membersize(openxc_ControlCommand, modem_configuration_command) < 256 && pb_membersize(openxc_DiagnosticControlCommand, request) < 256 && pb_membersize(openxc_NetworkOperatorSettings, networkDescriptor) < 256 && pb_membersize(openxc_ModemConfigurationCommand, networkOperatorSettings) < 256 && pb_membersize(openxc_ModemConfigurationCommand, networkDataSettings) < 256 && pb_membersize(openxc_ModemConfigurationCommand, serverConnectSettings) < 256 && pb_membersize(openxc_SimpleMessage, value) < 256 && pb_membersize(openxc_SimpleMessage, event) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_CanMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_NetworkOperatorSettings_openxc_NetworkOperatorSettings_NetworkDescriptor_openxc_NetworkDataSettings_openxc_ServerConnectSettings_openxc_ModemConfigurationCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_SimpleMessage)
+PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 256 && pb_membersize(openxc_VehicleMessage, simple_message) < 256 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 256 && pb_membersize(openxc_VehicleMessage, control_command) < 256 && pb_membersize(openxc_VehicleMessage, command_response) < 256 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 256 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 256 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 256 && pb_membersize(openxc_ControlCommand, payload_format_command) < 256 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 256 && pb_membersize(openxc_ControlCommand, modem_configuration_command) < 256 && pb_membersize(openxc_ControlCommand, rtc_configuration_command) < 256 && pb_membersize(openxc_DiagnosticControlCommand, request) < 256 && pb_membersize(openxc_NetworkOperatorSettings, networkDescriptor) < 256 && pb_membersize(openxc_ModemConfigurationCommand, networkOperatorSettings) < 256 && pb_membersize(openxc_ModemConfigurationCommand, networkDataSettings) < 256 && pb_membersize(openxc_ModemConfigurationCommand, serverConnectSettings) < 256 && pb_membersize(openxc_SimpleMessage, value) < 256 && pb_membersize(openxc_SimpleMessage, event) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_CanMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_NetworkOperatorSettings_openxc_NetworkOperatorSettings_NetworkDescriptor_openxc_NetworkDataSettings_openxc_ServerConnectSettings_openxc_ModemConfigurationCommand_openxc_RTCConfigurationCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_SimpleMessage)
 #endif
 
 
index df7c312..cee3345 100644 (file)
@@ -1,5 +1,5 @@
 /* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.1 at Tue Oct 27 16:15:02 2015. */
+/* Generated by nanopb-0.3.1 at Thu Nov 19 16:37:50 2015. */
 
 #ifndef PB_OPENXC_PB_H_INCLUDED
 #define PB_OPENXC_PB_H_INCLUDED
@@ -35,7 +35,8 @@ typedef enum _openxc_ControlCommand_Type {
     openxc_ControlCommand_Type_ACCEPTANCE_FILTER_BYPASS = 5,
     openxc_ControlCommand_Type_PAYLOAD_FORMAT = 6,
     openxc_ControlCommand_Type_PREDEFINED_OBD2_REQUESTS = 7,
-    openxc_ControlCommand_Type_MODEM_CONFIGURATION = 8
+    openxc_ControlCommand_Type_MODEM_CONFIGURATION = 8,
+    openxc_ControlCommand_Type_RTC_CONFIGURATION = 9
 } openxc_ControlCommand_Type;
 
 typedef enum _openxc_DiagnosticControlCommand_Action {
@@ -186,6 +187,11 @@ typedef struct _openxc_PredefinedObd2RequestsCommand {
     bool enabled;
 } openxc_PredefinedObd2RequestsCommand;
 
+typedef struct _openxc_RTCConfigurationCommand {
+    bool has_unix_time;
+    uint32_t unix_time;
+} openxc_RTCConfigurationCommand;
+
 typedef struct _openxc_ServerConnectSettings {
     bool has_host;
     char host[128];
@@ -242,6 +248,8 @@ typedef struct _openxc_ControlCommand {
     openxc_PredefinedObd2RequestsCommand predefined_obd2_requests_command;
     bool has_modem_configuration_command;
     openxc_ModemConfigurationCommand modem_configuration_command;
+    bool has_rtc_configuration_command;
+    openxc_RTCConfigurationCommand rtc_configuration_command;
 } openxc_ControlCommand;
 
 typedef struct _openxc_VehicleMessage {
@@ -266,7 +274,7 @@ typedef struct _openxc_VehicleMessage {
 /* Initializer values for message structs */
 #define openxc_VehicleMessage_init_default       {false, (openxc_VehicleMessage_Type)0, false, openxc_CanMessage_init_default, false, openxc_SimpleMessage_init_default, false, openxc_DiagnosticResponse_init_default, false, openxc_ControlCommand_init_default, false, openxc_CommandResponse_init_default, false, 0}
 #define openxc_CanMessage_init_default           {false, 0, false, 0, false, {0, {0}}, false, (openxc_CanMessage_FrameFormat)0}
-#define openxc_ControlCommand_init_default       {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_default, false, openxc_PassthroughModeControlCommand_init_default, false, openxc_AcceptanceFilterBypassCommand_init_default, false, openxc_PayloadFormatCommand_init_default, false, openxc_PredefinedObd2RequestsCommand_init_default, false, openxc_ModemConfigurationCommand_init_default}
+#define openxc_ControlCommand_init_default       {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_default, false, openxc_PassthroughModeControlCommand_init_default, false, openxc_AcceptanceFilterBypassCommand_init_default, false, openxc_PayloadFormatCommand_init_default, false, openxc_PredefinedObd2RequestsCommand_init_default, false, openxc_ModemConfigurationCommand_init_default, false, openxc_RTCConfigurationCommand_init_default}
 #define openxc_DiagnosticControlCommand_init_default {false, openxc_DiagnosticRequest_init_default, false, (openxc_DiagnosticControlCommand_Action)0}
 #define openxc_PassthroughModeControlCommand_init_default {false, 0, false, 0}
 #define openxc_AcceptanceFilterBypassCommand_init_default {false, 0, false, 0}
@@ -277,6 +285,7 @@ typedef struct _openxc_VehicleMessage {
 #define openxc_NetworkDataSettings_init_default  {{{NULL}, NULL}}
 #define openxc_ServerConnectSettings_init_default {false, "", false, 0}
 #define openxc_ModemConfigurationCommand_init_default {false, openxc_NetworkOperatorSettings_init_default, false, openxc_NetworkDataSettings_init_default, false, openxc_ServerConnectSettings_init_default}
+#define openxc_RTCConfigurationCommand_init_default {false, 0}
 #define openxc_CommandResponse_init_default      {false, (openxc_ControlCommand_Type)0, false, "", false, 0}
 #define openxc_DiagnosticRequest_init_default    {false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0, false, 0, false, "", false, (openxc_DiagnosticRequest_DecodedType)0}
 #define openxc_DiagnosticResponse_init_default   {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0}
@@ -284,7 +293,7 @@ typedef struct _openxc_VehicleMessage {
 #define openxc_SimpleMessage_init_default        {false, "", false, openxc_DynamicField_init_default, false, openxc_DynamicField_init_default}
 #define openxc_VehicleMessage_init_zero          {false, (openxc_VehicleMessage_Type)0, false, openxc_CanMessage_init_zero, false, openxc_SimpleMessage_init_zero, false, openxc_DiagnosticResponse_init_zero, false, openxc_ControlCommand_init_zero, false, openxc_CommandResponse_init_zero, false, 0}
 #define openxc_CanMessage_init_zero              {false, 0, false, 0, false, {0, {0}}, false, (openxc_CanMessage_FrameFormat)0}
-#define openxc_ControlCommand_init_zero          {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_zero, false, openxc_PassthroughModeControlCommand_init_zero, false, openxc_AcceptanceFilterBypassCommand_init_zero, false, openxc_PayloadFormatCommand_init_zero, false, openxc_PredefinedObd2RequestsCommand_init_zero, false, openxc_ModemConfigurationCommand_init_zero}
+#define openxc_ControlCommand_init_zero          {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_zero, false, openxc_PassthroughModeControlCommand_init_zero, false, openxc_AcceptanceFilterBypassCommand_init_zero, false, openxc_PayloadFormatCommand_init_zero, false, openxc_PredefinedObd2RequestsCommand_init_zero, false, openxc_ModemConfigurationCommand_init_zero, false, openxc_RTCConfigurationCommand_init_zero}
 #define openxc_DiagnosticControlCommand_init_zero {false, openxc_DiagnosticRequest_init_zero, false, (openxc_DiagnosticControlCommand_Action)0}
 #define openxc_PassthroughModeControlCommand_init_zero {false, 0, false, 0}
 #define openxc_AcceptanceFilterBypassCommand_init_zero {false, 0, false, 0}
@@ -295,6 +304,7 @@ typedef struct _openxc_VehicleMessage {
 #define openxc_NetworkDataSettings_init_zero     {{{NULL}, NULL}}
 #define openxc_ServerConnectSettings_init_zero   {false, "", false, 0}
 #define openxc_ModemConfigurationCommand_init_zero {false, openxc_NetworkOperatorSettings_init_zero, false, openxc_NetworkDataSettings_init_zero, false, openxc_ServerConnectSettings_init_zero}
+#define openxc_RTCConfigurationCommand_init_zero {false, 0}
 #define openxc_CommandResponse_init_zero         {false, (openxc_ControlCommand_Type)0, false, "", false, 0}
 #define openxc_DiagnosticRequest_init_zero       {false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0, false, 0, false, "", false, (openxc_DiagnosticRequest_DecodedType)0}
 #define openxc_DiagnosticResponse_init_zero      {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0}
@@ -339,6 +349,7 @@ typedef struct _openxc_VehicleMessage {
 #define openxc_PassthroughModeControlCommand_enabled_tag 2
 #define openxc_PayloadFormatCommand_format_tag   1
 #define openxc_PredefinedObd2RequestsCommand_enabled_tag 1
+#define openxc_RTCConfigurationCommand_unix_time_tag 1
 #define openxc_ServerConnectSettings_host_tag    1
 #define openxc_ServerConnectSettings_port_tag    2
 #define openxc_DiagnosticControlCommand_request_tag 1
@@ -359,6 +370,7 @@ typedef struct _openxc_VehicleMessage {
 #define openxc_ControlCommand_payload_format_command_tag 5
 #define openxc_ControlCommand_predefined_obd2_requests_command_tag 6
 #define openxc_ControlCommand_modem_configuration_command_tag 7
+#define openxc_ControlCommand_rtc_configuration_command_tag 8
 #define openxc_VehicleMessage_type_tag           1
 #define openxc_VehicleMessage_can_message_tag    2
 #define openxc_VehicleMessage_simple_message_tag 3
@@ -370,7 +382,7 @@ typedef struct _openxc_VehicleMessage {
 /* Struct field encoding specification for nanopb */
 extern const pb_field_t openxc_VehicleMessage_fields[8];
 extern const pb_field_t openxc_CanMessage_fields[5];
-extern const pb_field_t openxc_ControlCommand_fields[8];
+extern const pb_field_t openxc_ControlCommand_fields[9];
 extern const pb_field_t openxc_DiagnosticControlCommand_fields[3];
 extern const pb_field_t openxc_PassthroughModeControlCommand_fields[3];
 extern const pb_field_t openxc_AcceptanceFilterBypassCommand_fields[3];
@@ -381,6 +393,7 @@ extern const pb_field_t openxc_NetworkOperatorSettings_NetworkDescriptor_fields[
 extern const pb_field_t openxc_NetworkDataSettings_fields[2];
 extern const pb_field_t openxc_ServerConnectSettings_fields[3];
 extern const pb_field_t openxc_ModemConfigurationCommand_fields[4];
+extern const pb_field_t openxc_RTCConfigurationCommand_fields[2];
 extern const pb_field_t openxc_CommandResponse_fields[4];
 extern const pb_field_t openxc_DiagnosticRequest_fields[10];
 extern const pb_field_t openxc_DiagnosticResponse_fields[9];
@@ -397,6 +410,7 @@ extern const pb_field_t openxc_SimpleMessage_fields[4];
 #define openxc_NetworkOperatorSettings_size      22
 #define openxc_NetworkOperatorSettings_NetworkDescriptor_size 12
 #define openxc_ServerConnectSettings_size        137
+#define openxc_RTCConfigurationCommand_size      6
 #define openxc_CommandResponse_size              139
 #define openxc_DiagnosticRequest_size            68
 #define openxc_DiagnosticResponse_size           56
index 3d3b50b..c1851f7 100644 (file)
@@ -1831,6 +1831,11 @@ public final class BinaryMessages {
     boolean hasModemConfigurationCommand();
     com.openxc.BinaryMessages.ModemConfigurationCommand getModemConfigurationCommand();
     com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder getModemConfigurationCommandOrBuilder();
+    
+    // optional .openxc.RTCConfigurationCommand rtc_configuration_command = 8;
+    boolean hasRtcConfigurationCommand();
+    com.openxc.BinaryMessages.RTCConfigurationCommand getRtcConfigurationCommand();
+    com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder getRtcConfigurationCommandOrBuilder();
   }
   public static final class ControlCommand extends
       com.google.protobuf.GeneratedMessage
@@ -1870,6 +1875,7 @@ public final class BinaryMessages {
       PAYLOAD_FORMAT(5, 6),
       PREDEFINED_OBD2_REQUESTS(6, 7),
       MODEM_CONFIGURATION(7, 8),
+      RTC_CONFIGURATION(8, 9),
       ;
       
       public static final int VERSION_VALUE = 1;
@@ -1880,6 +1886,7 @@ public final class BinaryMessages {
       public static final int PAYLOAD_FORMAT_VALUE = 6;
       public static final int PREDEFINED_OBD2_REQUESTS_VALUE = 7;
       public static final int MODEM_CONFIGURATION_VALUE = 8;
+      public static final int RTC_CONFIGURATION_VALUE = 9;
       
       
       public final int getNumber() { return value; }
@@ -1894,6 +1901,7 @@ public final class BinaryMessages {
           case 6: return PAYLOAD_FORMAT;
           case 7: return PREDEFINED_OBD2_REQUESTS;
           case 8: return MODEM_CONFIGURATION;
+          case 9: return RTC_CONFIGURATION;
           default: return null;
         }
       }
@@ -1924,7 +1932,7 @@ public final class BinaryMessages {
       }
       
       private static final Type[] VALUES = {
-        VERSION, DEVICE_ID, DIAGNOSTIC, PASSTHROUGH, ACCEPTANCE_FILTER_BYPASS, PAYLOAD_FORMAT, PREDEFINED_OBD2_REQUESTS, MODEM_CONFIGURATION, 
+        VERSION, DEVICE_ID, DIAGNOSTIC, PASSTHROUGH, ACCEPTANCE_FILTER_BYPASS, PAYLOAD_FORMAT, PREDEFINED_OBD2_REQUESTS, MODEM_CONFIGURATION, RTC_CONFIGURATION, 
       };
       
       public static Type valueOf(
@@ -2036,6 +2044,19 @@ public final class BinaryMessages {
       return modemConfigurationCommand_;
     }
     
+    // optional .openxc.RTCConfigurationCommand rtc_configuration_command = 8;
+    public static final int RTC_CONFIGURATION_COMMAND_FIELD_NUMBER = 8;
+    private com.openxc.BinaryMessages.RTCConfigurationCommand rtcConfigurationCommand_;
+    public boolean hasRtcConfigurationCommand() {
+      return ((bitField0_ & 0x00000080) == 0x00000080);
+    }
+    public com.openxc.BinaryMessages.RTCConfigurationCommand getRtcConfigurationCommand() {
+      return rtcConfigurationCommand_;
+    }
+    public com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder getRtcConfigurationCommandOrBuilder() {
+      return rtcConfigurationCommand_;
+    }
+    
     private void initFields() {
       type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
       diagnosticRequest_ = com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance();
@@ -2044,6 +2065,7 @@ public final class BinaryMessages {
       payloadFormatCommand_ = com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance();
       predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance();
       modemConfigurationCommand_ = com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance();
+      rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -2078,6 +2100,9 @@ public final class BinaryMessages {
       if (((bitField0_ & 0x00000040) == 0x00000040)) {
         output.writeMessage(7, modemConfigurationCommand_);
       }
+      if (((bitField0_ & 0x00000080) == 0x00000080)) {
+        output.writeMessage(8, rtcConfigurationCommand_);
+      }
       getUnknownFields().writeTo(output);
     }
     
@@ -2115,6 +2140,10 @@ public final class BinaryMessages {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(7, modemConfigurationCommand_);
       }
+      if (((bitField0_ & 0x00000080) == 0x00000080)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(8, rtcConfigurationCommand_);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
       return size;
@@ -2237,6 +2266,7 @@ public final class BinaryMessages {
           getPayloadFormatCommandFieldBuilder();
           getPredefinedObd2RequestsCommandFieldBuilder();
           getModemConfigurationCommandFieldBuilder();
+          getRtcConfigurationCommandFieldBuilder();
         }
       }
       private static Builder create() {
@@ -2283,6 +2313,12 @@ public final class BinaryMessages {
           modemConfigurationCommandBuilder_.clear();
         }
         bitField0_ = (bitField0_ & ~0x00000040);
+        if (rtcConfigurationCommandBuilder_ == null) {
+          rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+        } else {
+          rtcConfigurationCommandBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000080);
         return this;
       }
       
@@ -2373,6 +2409,14 @@ public final class BinaryMessages {
         } else {
           result.modemConfigurationCommand_ = modemConfigurationCommandBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
+          to_bitField0_ |= 0x00000080;
+        }
+        if (rtcConfigurationCommandBuilder_ == null) {
+          result.rtcConfigurationCommand_ = rtcConfigurationCommand_;
+        } else {
+          result.rtcConfigurationCommand_ = rtcConfigurationCommandBuilder_.build();
+        }
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -2410,6 +2454,9 @@ public final class BinaryMessages {
         if (other.hasModemConfigurationCommand()) {
           mergeModemConfigurationCommand(other.getModemConfigurationCommand());
         }
+        if (other.hasRtcConfigurationCommand()) {
+          mergeRtcConfigurationCommand(other.getRtcConfigurationCommand());
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
       }
@@ -2506,6 +2553,15 @@ public final class BinaryMessages {
               setModemConfigurationCommand(subBuilder.buildPartial());
               break;
             }
+            case 66: {
+              com.openxc.BinaryMessages.RTCConfigurationCommand.Builder subBuilder = com.openxc.BinaryMessages.RTCConfigurationCommand.newBuilder();
+              if (hasRtcConfigurationCommand()) {
+                subBuilder.mergeFrom(getRtcConfigurationCommand());
+              }
+              input.readMessage(subBuilder, extensionRegistry);
+              setRtcConfigurationCommand(subBuilder.buildPartial());
+              break;
+            }
           }
         }
       }
@@ -3076,6 +3132,96 @@ public final class BinaryMessages {
         return modemConfigurationCommandBuilder_;
       }
       
+      // optional .openxc.RTCConfigurationCommand rtc_configuration_command = 8;
+      private com.openxc.BinaryMessages.RTCConfigurationCommand rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          com.openxc.BinaryMessages.RTCConfigurationCommand, com.openxc.BinaryMessages.RTCConfigurationCommand.Builder, com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder> rtcConfigurationCommandBuilder_;
+      public boolean hasRtcConfigurationCommand() {
+        return ((bitField0_ & 0x00000080) == 0x00000080);
+      }
+      public com.openxc.BinaryMessages.RTCConfigurationCommand getRtcConfigurationCommand() {
+        if (rtcConfigurationCommandBuilder_ == null) {
+          return rtcConfigurationCommand_;
+        } else {
+          return rtcConfigurationCommandBuilder_.getMessage();
+        }
+      }
+      public Builder setRtcConfigurationCommand(com.openxc.BinaryMessages.RTCConfigurationCommand value) {
+        if (rtcConfigurationCommandBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          rtcConfigurationCommand_ = value;
+          onChanged();
+        } else {
+          rtcConfigurationCommandBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000080;
+        return this;
+      }
+      public Builder setRtcConfigurationCommand(
+          com.openxc.BinaryMessages.RTCConfigurationCommand.Builder builderForValue) {
+        if (rtcConfigurationCommandBuilder_ == null) {
+          rtcConfigurationCommand_ = builderForValue.build();
+          onChanged();
+        } else {
+          rtcConfigurationCommandBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000080;
+        return this;
+      }
+      public Builder mergeRtcConfigurationCommand(com.openxc.BinaryMessages.RTCConfigurationCommand value) {
+        if (rtcConfigurationCommandBuilder_ == null) {
+          if (((bitField0_ & 0x00000080) == 0x00000080) &&
+              rtcConfigurationCommand_ != com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance()) {
+            rtcConfigurationCommand_ =
+              com.openxc.BinaryMessages.RTCConfigurationCommand.newBuilder(rtcConfigurationCommand_).mergeFrom(value).buildPartial();
+          } else {
+            rtcConfigurationCommand_ = value;
+          }
+          onChanged();
+        } else {
+          rtcConfigurationCommandBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000080;
+        return this;
+      }
+      public Builder clearRtcConfigurationCommand() {
+        if (rtcConfigurationCommandBuilder_ == null) {
+          rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+          onChanged();
+        } else {
+          rtcConfigurationCommandBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000080);
+        return this;
+      }
+      public com.openxc.BinaryMessages.RTCConfigurationCommand.Builder getRtcConfigurationCommandBuilder() {
+        bitField0_ |= 0x00000080;
+        onChanged();
+        return getRtcConfigurationCommandFieldBuilder().getBuilder();
+      }
+      public com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder getRtcConfigurationCommandOrBuilder() {
+        if (rtcConfigurationCommandBuilder_ != null) {
+          return rtcConfigurationCommandBuilder_.getMessageOrBuilder();
+        } else {
+          return rtcConfigurationCommand_;
+        }
+      }
+      private com.google.protobuf.SingleFieldBuilder<
+          com.openxc.BinaryMessages.RTCConfigurationCommand, com.openxc.BinaryMessages.RTCConfigurationCommand.Builder, com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder> 
+          getRtcConfigurationCommandFieldBuilder() {
+        if (rtcConfigurationCommandBuilder_ == null) {
+          rtcConfigurationCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              com.openxc.BinaryMessages.RTCConfigurationCommand, com.openxc.BinaryMessages.RTCConfigurationCommand.Builder, com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder>(
+                  rtcConfigurationCommand_,
+                  getParentForChildren(),
+                  isClean());
+          rtcConfigurationCommand_ = null;
+        }
+        return rtcConfigurationCommandBuilder_;
+      }
+      
       // @@protoc_insertion_point(builder_scope:openxc.ControlCommand)
     }
     
@@ -7808,6 +7954,344 @@ public final class BinaryMessages {
     // @@protoc_insertion_point(class_scope:openxc.ModemConfigurationCommand)
   }
   
+  public interface RTCConfigurationCommandOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+    
+    // optional uint32 unix_time = 1;
+    boolean hasUnixTime();
+    int getUnixTime();
+  }
+  public static final class RTCConfigurationCommand extends
+      com.google.protobuf.GeneratedMessage
+      implements RTCConfigurationCommandOrBuilder {
+    // Use RTCConfigurationCommand.newBuilder() to construct.
+    private RTCConfigurationCommand(Builder builder) {
+      super(builder);
+    }
+    private RTCConfigurationCommand(boolean noInit) {}
+    
+    private static final RTCConfigurationCommand defaultInstance;
+    public static RTCConfigurationCommand getDefaultInstance() {
+      return defaultInstance;
+    }
+    
+    public RTCConfigurationCommand getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+    
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_descriptor;
+    }
+    
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable;
+    }
+    
+    private int bitField0_;
+    // optional uint32 unix_time = 1;
+    public static final int UNIX_TIME_FIELD_NUMBER = 1;
+    private int unixTime_;
+    public boolean hasUnixTime() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    public int getUnixTime() {
+      return unixTime_;
+    }
+    
+    private void initFields() {
+      unixTime_ = 0;
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+      
+      memoizedIsInitialized = 1;
+      return true;
+    }
+    
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeUInt32(1, unixTime_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+    
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+    
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(1, unixTime_);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+    
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+    
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data).buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data, extensionRegistry)
+               .buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data).buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data, extensionRegistry)
+               .buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input).buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input, extensionRegistry)
+               .buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      Builder builder = newBuilder();
+      if (builder.mergeDelimitedFrom(input)) {
+        return builder.buildParsed();
+      } else {
+        return null;
+      }
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      Builder builder = newBuilder();
+      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+        return builder.buildParsed();
+      } else {
+        return null;
+      }
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input).buildParsed();
+    }
+    public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input, extensionRegistry)
+               .buildParsed();
+    }
+    
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(com.openxc.BinaryMessages.RTCConfigurationCommand prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+    
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_descriptor;
+      }
+      
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable;
+      }
+      
+      // Construct using com.openxc.BinaryMessages.RTCConfigurationCommand.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+      
+      private Builder(BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+      
+      public Builder clear() {
+        super.clear();
+        unixTime_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        return this;
+      }
+      
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+      
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return com.openxc.BinaryMessages.RTCConfigurationCommand.getDescriptor();
+      }
+      
+      public com.openxc.BinaryMessages.RTCConfigurationCommand getDefaultInstanceForType() {
+        return com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+      }
+      
+      public com.openxc.BinaryMessages.RTCConfigurationCommand build() {
+        com.openxc.BinaryMessages.RTCConfigurationCommand result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+      
+      private com.openxc.BinaryMessages.RTCConfigurationCommand buildParsed()
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        com.openxc.BinaryMessages.RTCConfigurationCommand result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(
+            result).asInvalidProtocolBufferException();
+        }
+        return result;
+      }
+      
+      public com.openxc.BinaryMessages.RTCConfigurationCommand buildPartial() {
+        com.openxc.BinaryMessages.RTCConfigurationCommand result = new com.openxc.BinaryMessages.RTCConfigurationCommand(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.unixTime_ = unixTime_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+      
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof com.openxc.BinaryMessages.RTCConfigurationCommand) {
+          return mergeFrom((com.openxc.BinaryMessages.RTCConfigurationCommand)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+      
+      public Builder mergeFrom(com.openxc.BinaryMessages.RTCConfigurationCommand other) {
+        if (other == com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance()) return this;
+        if (other.hasUnixTime()) {
+          setUnixTime(other.getUnixTime());
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+      
+      public final boolean isInitialized() {
+        return true;
+      }
+      
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder(
+            this.getUnknownFields());
+        while (true) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              this.setUnknownFields(unknownFields.build());
+              onChanged();
+              return this;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                this.setUnknownFields(unknownFields.build());
+                onChanged();
+                return this;
+              }
+              break;
+            }
+            case 8: {
+              bitField0_ |= 0x00000001;
+              unixTime_ = input.readUInt32();
+              break;
+            }
+          }
+        }
+      }
+      
+      private int bitField0_;
+      
+      // optional uint32 unix_time = 1;
+      private int unixTime_ ;
+      public boolean hasUnixTime() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      public int getUnixTime() {
+        return unixTime_;
+      }
+      public Builder setUnixTime(int value) {
+        bitField0_ |= 0x00000001;
+        unixTime_ = value;
+        onChanged();
+        return this;
+      }
+      public Builder clearUnixTime() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        unixTime_ = 0;
+        onChanged();
+        return this;
+      }
+      
+      // @@protoc_insertion_point(builder_scope:openxc.RTCConfigurationCommand)
+    }
+    
+    static {
+      defaultInstance = new RTCConfigurationCommand(true);
+      defaultInstance.initFields();
+    }
+    
+    // @@protoc_insertion_point(class_scope:openxc.RTCConfigurationCommand)
+  }
+  
   public interface CommandResponseOrBuilder
       extends com.google.protobuf.MessageOrBuilder {
     
@@ -11311,6 +11795,11 @@ public final class BinaryMessages {
   private static
     com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_openxc_ModemConfigurationCommand_fieldAccessorTable;
+  private static com.google.protobuf.Descriptors.Descriptor
+    internal_static_openxc_RTCConfigurationCommand_descriptor;
+  private static
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
+      internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable;
   private static com.google.protobuf.Descriptors.Descriptor
     internal_static_openxc_CommandResponse_descriptor;
   private static
@@ -11359,7 +11848,7 @@ public final class BinaryMessages {
       "nMessage\022\013\n\003bus\030\001 \001(\005\022\n\n\002id\030\002 \001(\r\022\014\n\004dat" +
       "a\030\003 \001(\014\0224\n\014frame_format\030\004 \001(\0162\036.openxc.C" +
       "anMessage.FrameFormat\")\n\013FrameFormat\022\014\n\010" +
-      "STANDARD\020\001\022\014\n\010EXTENDED\020\002\"\231\005\n\016ControlComm" +
+      "STANDARD\020\001\022\014\n\010EXTENDED\020\002\"\364\005\n\016ControlComm" +
       "and\022)\n\004type\030\001 \001(\0162\033.openxc.ControlComman" +
       "d.Type\022<\n\022diagnostic_request\030\002 \001(\0132 .ope" +
       "nxc.DiagnosticControlCommand\022G\n\030passthro" +
@@ -11371,63 +11860,67 @@ public final class BinaryMessages {
       "mand\022O\n predefined_obd2_requests_command" +
       "\030\006 \001(\0132%.openxc.PredefinedObd2RequestsCo" +
       "mmand\022F\n\033modem_configuration_command\030\007 \001" +
-      "(\0132!.openxc.ModemConfigurationCommand\"\254\001" +
-      "\n\004Type\022\013\n\007VERSION\020\001\022\r\n\tDEVICE_ID\020\002\022\016\n\nDI" +
-      "AGNOSTIC\020\003\022\017\n\013PASSTHROUGH\020\004\022\034\n\030ACCEPTANC" +
-      "E_FILTER_BYPASS\020\005\022\022\n\016PAYLOAD_FORMAT\020\006\022\034\n",
-      "\030PREDEFINED_OBD2_REQUESTS\020\007\022\027\n\023MODEM_CON" +
-      "FIGURATION\020\010\"\236\001\n\030DiagnosticControlComman" +
-      "d\022*\n\007request\030\001 \001(\0132\031.openxc.DiagnosticRe" +
-      "quest\0227\n\006action\030\002 \001(\0162\'.openxc.Diagnosti" +
-      "cControlCommand.Action\"\035\n\006Action\022\007\n\003ADD\020" +
-      "\001\022\n\n\006CANCEL\020\002\"=\n\035PassthroughModeControlC" +
-      "ommand\022\013\n\003bus\030\001 \001(\005\022\017\n\007enabled\030\002 \001(\010\"<\n\035" +
-      "AcceptanceFilterBypassCommand\022\013\n\003bus\030\001 \001" +
-      "(\005\022\016\n\006bypass\030\002 \001(\010\"\214\001\n\024PayloadFormatComm" +
-      "and\022:\n\006format\030\001 \001(\0162*.openxc.PayloadForm",
-      "atCommand.PayloadFormat\"8\n\rPayloadFormat" +
-      "\022\010\n\004JSON\020\001\022\014\n\010PROTOBUF\020\002\022\017\n\013MESSAGEPACK\020" +
-      "\003\"0\n\035PredefinedObd2RequestsCommand\022\017\n\007en" +
-      "abled\030\001 \001(\010\"\321\003\n\027NetworkOperatorSettings\022" +
-      "\030\n\020allowDataRoaming\030\001 \001(\010\022N\n\022operatorSel" +
-      "ectMode\030\002 \001(\01622.openxc.NetworkOperatorSe" +
-      "ttings.OperatorSelectMode\022L\n\021networkDesc" +
-      "riptor\030\003 \001(\01321.openxc.NetworkOperatorSet" +
-      "tings.NetworkDescriptor\032\230\001\n\021NetworkDescr" +
-      "iptor\022\014\n\004PLMN\030\001 \001(\r\022R\n\013networkType\030\002 \001(\016",
-      "2=.openxc.NetworkOperatorSettings.Networ" +
-      "kDescriptor.NetworkType\"!\n\013NetworkType\022\007" +
-      "\n\003GSM\020\000\022\t\n\005UTRAN\020\002\"c\n\022OperatorSelectMode" +
-      "\022\r\n\tAUTOMATIC\020\000\022\n\n\006MANUAL\020\001\022\016\n\nDEREGISTE" +
-      "R\020\002\022\014\n\010SET_ONLY\020\003\022\024\n\020MANUAL_AUTOMATIC\020\004\"" +
-      "\"\n\023NetworkDataSettings\022\013\n\003APN\030\001 \001(\t\"3\n\025S" +
-      "erverConnectSettings\022\014\n\004host\030\001 \001(\t\022\014\n\004po" +
-      "rt\030\002 \001(\r\"\325\001\n\031ModemConfigurationCommand\022@" +
-      "\n\027networkOperatorSettings\030\001 \001(\0132\037.openxc" +
-      ".NetworkOperatorSettings\0228\n\023networkDataS",
-      "ettings\030\002 \001(\0132\033.openxc.NetworkDataSettin" +
-      "gs\022<\n\025serverConnectSettings\030\003 \001(\0132\035.open" +
-      "xc.ServerConnectSettings\"]\n\017CommandRespo" +
-      "nse\022)\n\004type\030\001 \001(\0162\033.openxc.ControlComman" +
-      "d.Type\022\017\n\007message\030\002 \001(\t\022\016\n\006status\030\003 \001(\010\"" +
-      "\375\001\n\021DiagnosticRequest\022\013\n\003bus\030\001 \001(\005\022\022\n\nme" +
-      "ssage_id\030\002 \001(\r\022\014\n\004mode\030\003 \001(\r\022\013\n\003pid\030\004 \001(" +
-      "\r\022\017\n\007payload\030\005 \001(\014\022\032\n\022multiple_responses" +
-      "\030\006 \001(\010\022\021\n\tfrequency\030\007 \001(\001\022\014\n\004name\030\010 \001(\t\022" +
-      ";\n\014decoded_type\030\t \001(\0162%.openxc.Diagnosti",
-      "cRequest.DecodedType\"!\n\013DecodedType\022\010\n\004N" +
-      "ONE\020\001\022\010\n\004OBD2\020\002\"\241\001\n\022DiagnosticResponse\022\013" +
-      "\n\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004mode\030" +
-      "\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007success\030\005 \001(\010\022\036\n\026n" +
-      "egative_response_code\030\006 \001(\r\022\017\n\007payload\030\007" +
-      " \001(\014\022\r\n\005value\030\010 \001(\001\"\242\001\n\014DynamicField\022\'\n\004" +
-      "type\030\001 \001(\0162\031.openxc.DynamicField.Type\022\024\n" +
-      "\014string_value\030\002 \001(\t\022\025\n\rnumeric_value\030\003 \001" +
-      "(\001\022\025\n\rboolean_value\030\004 \001(\010\"%\n\004Type\022\n\n\006STR" +
-      "ING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL\020\003\"g\n\rSimpleMessag",
-      "e\022\014\n\004name\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.openxc." +
-      "DynamicField\022#\n\005event\030\003 \001(\0132\024.openxc.Dyn" +
-      "amicFieldB\034\n\ncom.openxcB\016BinaryMessages"
+      "(\0132!.openxc.ModemConfigurationCommand\022B\n" +
+      "\031rtc_configuration_command\030\010 \001(\0132\037.openx" +
+      "c.RTCConfigurationCommand\"\303\001\n\004Type\022\013\n\007VE" +
+      "RSION\020\001\022\r\n\tDEVICE_ID\020\002\022\016\n\nDIAGNOSTIC\020\003\022\017",
+      "\n\013PASSTHROUGH\020\004\022\034\n\030ACCEPTANCE_FILTER_BYP" +
+      "ASS\020\005\022\022\n\016PAYLOAD_FORMAT\020\006\022\034\n\030PREDEFINED_" +
+      "OBD2_REQUESTS\020\007\022\027\n\023MODEM_CONFIGURATION\020\010" +
+      "\022\025\n\021RTC_CONFIGURATION\020\t\"\236\001\n\030DiagnosticCo" +
+      "ntrolCommand\022*\n\007request\030\001 \001(\0132\031.openxc.D" +
+      "iagnosticRequest\0227\n\006action\030\002 \001(\0162\'.openx" +
+      "c.DiagnosticControlCommand.Action\"\035\n\006Act" +
+      "ion\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\002\"=\n\035PassthroughM" +
+      "odeControlCommand\022\013\n\003bus\030\001 \001(\005\022\017\n\007enable" +
+      "d\030\002 \001(\010\"<\n\035AcceptanceFilterBypassCommand",
+      "\022\013\n\003bus\030\001 \001(\005\022\016\n\006bypass\030\002 \001(\010\"\214\001\n\024Payloa" +
+      "dFormatCommand\022:\n\006format\030\001 \001(\0162*.openxc." +
+      "PayloadFormatCommand.PayloadFormat\"8\n\rPa" +
+      "yloadFormat\022\010\n\004JSON\020\001\022\014\n\010PROTOBUF\020\002\022\017\n\013M" +
+      "ESSAGEPACK\020\003\"0\n\035PredefinedObd2RequestsCo" +
+      "mmand\022\017\n\007enabled\030\001 \001(\010\"\321\003\n\027NetworkOperat" +
+      "orSettings\022\030\n\020allowDataRoaming\030\001 \001(\010\022N\n\022" +
+      "operatorSelectMode\030\002 \001(\01622.openxc.Networ" +
+      "kOperatorSettings.OperatorSelectMode\022L\n\021" +
+      "networkDescriptor\030\003 \001(\01321.openxc.Network",
+      "OperatorSettings.NetworkDescriptor\032\230\001\n\021N" +
+      "etworkDescriptor\022\014\n\004PLMN\030\001 \001(\r\022R\n\013networ" +
+      "kType\030\002 \001(\0162=.openxc.NetworkOperatorSett" +
+      "ings.NetworkDescriptor.NetworkType\"!\n\013Ne" +
+      "tworkType\022\007\n\003GSM\020\000\022\t\n\005UTRAN\020\002\"c\n\022Operato" +
+      "rSelectMode\022\r\n\tAUTOMATIC\020\000\022\n\n\006MANUAL\020\001\022\016" +
+      "\n\nDEREGISTER\020\002\022\014\n\010SET_ONLY\020\003\022\024\n\020MANUAL_A" +
+      "UTOMATIC\020\004\"\"\n\023NetworkDataSettings\022\013\n\003APN" +
+      "\030\001 \001(\t\"3\n\025ServerConnectSettings\022\014\n\004host\030" +
+      "\001 \001(\t\022\014\n\004port\030\002 \001(\r\"\325\001\n\031ModemConfigurati",
+      "onCommand\022@\n\027networkOperatorSettings\030\001 \001" +
+      "(\0132\037.openxc.NetworkOperatorSettings\0228\n\023n" +
+      "etworkDataSettings\030\002 \001(\0132\033.openxc.Networ" +
+      "kDataSettings\022<\n\025serverConnectSettings\030\003" +
+      " \001(\0132\035.openxc.ServerConnectSettings\",\n\027R" +
+      "TCConfigurationCommand\022\021\n\tunix_time\030\001 \001(" +
+      "\r\"]\n\017CommandResponse\022)\n\004type\030\001 \001(\0162\033.ope" +
+      "nxc.ControlCommand.Type\022\017\n\007message\030\002 \001(\t" +
+      "\022\016\n\006status\030\003 \001(\010\"\375\001\n\021DiagnosticRequest\022\013" +
+      "\n\003bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004mode\030",
+      "\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007payload\030\005 \001(\014\022\032\n\022m" +
+      "ultiple_responses\030\006 \001(\010\022\021\n\tfrequency\030\007 \001" +
+      "(\001\022\014\n\004name\030\010 \001(\t\022;\n\014decoded_type\030\t \001(\0162%" +
+      ".openxc.DiagnosticRequest.DecodedType\"!\n" +
+      "\013DecodedType\022\010\n\004NONE\020\001\022\010\n\004OBD2\020\002\"\241\001\n\022Dia" +
+      "gnosticResponse\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_" +
+      "id\030\002 \001(\r\022\014\n\004mode\030\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007s" +
+      "uccess\030\005 \001(\010\022\036\n\026negative_response_code\030\006" +
+      " \001(\r\022\017\n\007payload\030\007 \001(\014\022\r\n\005value\030\010 \001(\001\"\242\001\n" +
+      "\014DynamicField\022\'\n\004type\030\001 \001(\0162\031.openxc.Dyn",
+      "amicField.Type\022\024\n\014string_value\030\002 \001(\t\022\025\n\r" +
+      "numeric_value\030\003 \001(\001\022\025\n\rboolean_value\030\004 \001" +
+      "(\010\"%\n\004Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL\020" +
+      "\003\"g\n\rSimpleMessage\022\014\n\004name\030\001 \001(\t\022#\n\005valu" +
+      "e\030\002 \001(\0132\024.openxc.DynamicField\022#\n\005event\030\003" +
+      " \001(\0132\024.openxc.DynamicFieldB\034\n\ncom.openxc" +
+      "B\016BinaryMessages"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
       new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -11455,7 +11948,7 @@ public final class BinaryMessages {
           internal_static_openxc_ControlCommand_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_ControlCommand_descriptor,
-              new java.lang.String[] { "Type", "DiagnosticRequest", "PassthroughModeRequest", "AcceptanceFilterBypassCommand", "PayloadFormatCommand", "PredefinedObd2RequestsCommand", "ModemConfigurationCommand", },
+              new java.lang.String[] { "Type", "DiagnosticRequest", "PassthroughModeRequest", "AcceptanceFilterBypassCommand", "PayloadFormatCommand", "PredefinedObd2RequestsCommand", "ModemConfigurationCommand", "RtcConfigurationCommand", },
               com.openxc.BinaryMessages.ControlCommand.class,
               com.openxc.BinaryMessages.ControlCommand.Builder.class);
           internal_static_openxc_DiagnosticControlCommand_descriptor =
@@ -11538,8 +12031,16 @@ public final class BinaryMessages {
               new java.lang.String[] { "NetworkOperatorSettings", "NetworkDataSettings", "ServerConnectSettings", },
               com.openxc.BinaryMessages.ModemConfigurationCommand.class,
               com.openxc.BinaryMessages.ModemConfigurationCommand.Builder.class);
-          internal_static_openxc_CommandResponse_descriptor =
+          internal_static_openxc_RTCConfigurationCommand_descriptor =
             getDescriptor().getMessageTypes().get(12);
+          internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable = new
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+              internal_static_openxc_RTCConfigurationCommand_descriptor,
+              new java.lang.String[] { "UnixTime", },
+              com.openxc.BinaryMessages.RTCConfigurationCommand.class,
+              com.openxc.BinaryMessages.RTCConfigurationCommand.Builder.class);
+          internal_static_openxc_CommandResponse_descriptor =
+            getDescriptor().getMessageTypes().get(13);
           internal_static_openxc_CommandResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_CommandResponse_descriptor,
@@ -11547,7 +12048,7 @@ public final class BinaryMessages {
               com.openxc.BinaryMessages.CommandResponse.class,
               com.openxc.BinaryMessages.CommandResponse.Builder.class);
           internal_static_openxc_DiagnosticRequest_descriptor =
-            getDescriptor().getMessageTypes().get(13);
+            getDescriptor().getMessageTypes().get(14);
           internal_static_openxc_DiagnosticRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_DiagnosticRequest_descriptor,
@@ -11555,7 +12056,7 @@ public final class BinaryMessages {
               com.openxc.BinaryMessages.DiagnosticRequest.class,
               com.openxc.BinaryMessages.DiagnosticRequest.Builder.class);
           internal_static_openxc_DiagnosticResponse_descriptor =
-            getDescriptor().getMessageTypes().get(14);
+            getDescriptor().getMessageTypes().get(15);
           internal_static_openxc_DiagnosticResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_DiagnosticResponse_descriptor,
@@ -11563,7 +12064,7 @@ public final class BinaryMessages {
               com.openxc.BinaryMessages.DiagnosticResponse.class,
               com.openxc.BinaryMessages.DiagnosticResponse.Builder.class);
           internal_static_openxc_DynamicField_descriptor =
-            getDescriptor().getMessageTypes().get(15);
+            getDescriptor().getMessageTypes().get(16);
           internal_static_openxc_DynamicField_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_DynamicField_descriptor,
@@ -11571,7 +12072,7 @@ public final class BinaryMessages {
               com.openxc.BinaryMessages.DynamicField.class,
               com.openxc.BinaryMessages.DynamicField.Builder.class);
           internal_static_openxc_SimpleMessage_descriptor =
-            getDescriptor().getMessageTypes().get(16);
+            getDescriptor().getMessageTypes().get(17);
           internal_static_openxc_SimpleMessage_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_openxc_SimpleMessage_descriptor,
index ae13d47..218e1ab 100644 (file)
@@ -11,7 +11,7 @@ from google.protobuf import descriptor_pb2
 DESCRIPTOR = descriptor.FileDescriptor(
   name='openxc.proto',
   package='openxc',
-  serialized_pb='\n\x0copenxc.proto\x12\x06openxc\"\x98\x03\n\x0eVehicleMessage\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.VehicleMessage.Type\x12\'\n\x0b\x63\x61n_message\x18\x02 \x01(\x0b\x32\x12.openxc.CanMessage\x12-\n\x0esimple_message\x18\x03 \x01(\x0b\x32\x15.openxc.SimpleMessage\x12\x37\n\x13\x64iagnostic_response\x18\x04 \x01(\x0b\x32\x1a.openxc.DiagnosticResponse\x12/\n\x0f\x63ontrol_command\x18\x05 \x01(\x0b\x32\x16.openxc.ControlCommand\x12\x31\n\x10\x63ommand_response\x18\x06 \x01(\x0b\x32\x17.openxc.CommandResponse\x12\x0e\n\x06uptime\x18\x07 \x01(\r\"V\n\x04Type\x12\x07\n\x03\x43\x41N\x10\x01\x12\n\n\x06SIMPLE\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x13\n\x0f\x43ONTROL_COMMAND\x10\x04\x12\x14\n\x10\x43OMMAND_RESPONSE\x10\x05\"\x94\x01\n\nCanMessage\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x34\n\x0c\x66rame_format\x18\x04 \x01(\x0e\x32\x1e.openxc.CanMessage.FrameFormat\")\n\x0b\x46rameFormat\x12\x0c\n\x08STANDARD\x10\x01\x12\x0c\n\x08\x45XTENDED\x10\x02\"\x99\x05\n\x0e\x43ontrolCommand\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12<\n\x12\x64iagnostic_request\x18\x02 \x01(\x0b\x32 .openxc.DiagnosticControlCommand\x12G\n\x18passthrough_mode_request\x18\x03 \x01(\x0b\x32%.openxc.PassthroughModeControlCommand\x12O\n acceptance_filter_bypass_command\x18\x04 \x01(\x0b\x32%.openxc.AcceptanceFilterBypassCommand\x12<\n\x16payload_format_command\x18\x05 \x01(\x0b\x32\x1c.openxc.PayloadFormatCommand\x12O\n predefined_obd2_requests_command\x18\x06 \x01(\x0b\x32%.openxc.PredefinedObd2RequestsCommand\x12\x46\n\x1bmodem_configuration_command\x18\x07 \x01(\x0b\x32!.openxc.ModemConfigurationCommand\"\xac\x01\n\x04Type\x12\x0b\n\x07VERSION\x10\x01\x12\r\n\tDEVICE_ID\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x0f\n\x0bPASSTHROUGH\x10\x04\x12\x1c\n\x18\x41\x43\x43\x45PTANCE_FILTER_BYPASS\x10\x05\x12\x12\n\x0ePAYLOAD_FORMAT\x10\x06\x12\x1c\n\x18PREDEFINED_OBD2_REQUESTS\x10\x07\x12\x17\n\x13MODEM_CONFIGURATION\x10\x08\"\x9e\x01\n\x18\x44iagnosticControlCommand\x12*\n\x07request\x18\x01 \x01(\x0b\x32\x19.openxc.DiagnosticRequest\x12\x37\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\'.openxc.DiagnosticControlCommand.Action\"\x1d\n\x06\x41\x63tion\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06\x43\x41NCEL\x10\x02\"=\n\x1dPassthroughModeControlCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"<\n\x1d\x41\x63\x63\x65ptanceFilterBypassCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0e\n\x06\x62ypass\x18\x02 \x01(\x08\"\x8c\x01\n\x14PayloadFormatCommand\x12:\n\x06\x66ormat\x18\x01 \x01(\x0e\x32*.openxc.PayloadFormatCommand.PayloadFormat\"8\n\rPayloadFormat\x12\x08\n\x04JSON\x10\x01\x12\x0c\n\x08PROTOBUF\x10\x02\x12\x0f\n\x0bMESSAGEPACK\x10\x03\"0\n\x1dPredefinedObd2RequestsCommand\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"\xd1\x03\n\x17NetworkOperatorSettings\x12\x18\n\x10\x61llowDataRoaming\x18\x01 \x01(\x08\x12N\n\x12operatorSelectMode\x18\x02 \x01(\x0e\x32\x32.openxc.NetworkOperatorSettings.OperatorSelectMode\x12L\n\x11networkDescriptor\x18\x03 \x01(\x0b\x32\x31.openxc.NetworkOperatorSettings.NetworkDescriptor\x1a\x98\x01\n\x11NetworkDescriptor\x12\x0c\n\x04PLMN\x18\x01 \x01(\r\x12R\n\x0bnetworkType\x18\x02 \x01(\x0e\x32=.openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType\"!\n\x0bNetworkType\x12\x07\n\x03GSM\x10\x00\x12\t\n\x05UTRAN\x10\x02\"c\n\x12OperatorSelectMode\x12\r\n\tAUTOMATIC\x10\x00\x12\n\n\x06MANUAL\x10\x01\x12\x0e\n\nDEREGISTER\x10\x02\x12\x0c\n\x08SET_ONLY\x10\x03\x12\x14\n\x10MANUAL_AUTOMATIC\x10\x04\"\"\n\x13NetworkDataSettings\x12\x0b\n\x03\x41PN\x18\x01 \x01(\t\"3\n\x15ServerConnectSettings\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\"\xd5\x01\n\x19ModemConfigurationCommand\x12@\n\x17networkOperatorSettings\x18\x01 \x01(\x0b\x32\x1f.openxc.NetworkOperatorSettings\x12\x38\n\x13networkDataSettings\x18\x02 \x01(\x0b\x32\x1b.openxc.NetworkDataSettings\x12<\n\x15serverConnectSettings\x18\x03 \x01(\x0b\x32\x1d.openxc.ServerConnectSettings\"]\n\x0f\x43ommandResponse\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x08\"\xfd\x01\n\x11\x44iagnosticRequest\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x1a\n\x12multiple_responses\x18\x06 \x01(\x08\x12\x11\n\tfrequency\x18\x07 \x01(\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12;\n\x0c\x64\x65\x63oded_type\x18\t \x01(\x0e\x32%.openxc.DiagnosticRequest.DecodedType\"!\n\x0b\x44\x65\x63odedType\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04OBD2\x10\x02\"\xa1\x01\n\x12\x44iagnosticResponse\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07success\x18\x05 \x01(\x08\x12\x1e\n\x16negative_response_code\x18\x06 \x01(\r\x12\x0f\n\x07payload\x18\x07 \x01(\x0c\x12\r\n\x05value\x18\x08 \x01(\x01\"\xa2\x01\n\x0c\x44ynamicField\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.openxc.DynamicField.Type\x12\x14\n\x0cstring_value\x18\x02 \x01(\t\x12\x15\n\rnumeric_value\x18\x03 \x01(\x01\x12\x15\n\rboolean_value\x18\x04 \x01(\x08\"%\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\"g\n\rSimpleMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.openxc.DynamicField\x12#\n\x05\x65vent\x18\x03 \x01(\x0b\x32\x14.openxc.DynamicFieldB\x1c\n\ncom.openxcB\x0e\x42inaryMessages')
+  serialized_pb='\n\x0copenxc.proto\x12\x06openxc\"\x98\x03\n\x0eVehicleMessage\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.VehicleMessage.Type\x12\'\n\x0b\x63\x61n_message\x18\x02 \x01(\x0b\x32\x12.openxc.CanMessage\x12-\n\x0esimple_message\x18\x03 \x01(\x0b\x32\x15.openxc.SimpleMessage\x12\x37\n\x13\x64iagnostic_response\x18\x04 \x01(\x0b\x32\x1a.openxc.DiagnosticResponse\x12/\n\x0f\x63ontrol_command\x18\x05 \x01(\x0b\x32\x16.openxc.ControlCommand\x12\x31\n\x10\x63ommand_response\x18\x06 \x01(\x0b\x32\x17.openxc.CommandResponse\x12\x0e\n\x06uptime\x18\x07 \x01(\r\"V\n\x04Type\x12\x07\n\x03\x43\x41N\x10\x01\x12\n\n\x06SIMPLE\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x13\n\x0f\x43ONTROL_COMMAND\x10\x04\x12\x14\n\x10\x43OMMAND_RESPONSE\x10\x05\"\x94\x01\n\nCanMessage\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x34\n\x0c\x66rame_format\x18\x04 \x01(\x0e\x32\x1e.openxc.CanMessage.FrameFormat\")\n\x0b\x46rameFormat\x12\x0c\n\x08STANDARD\x10\x01\x12\x0c\n\x08\x45XTENDED\x10\x02\"\xf4\x05\n\x0e\x43ontrolCommand\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12<\n\x12\x64iagnostic_request\x18\x02 \x01(\x0b\x32 .openxc.DiagnosticControlCommand\x12G\n\x18passthrough_mode_request\x18\x03 \x01(\x0b\x32%.openxc.PassthroughModeControlCommand\x12O\n acceptance_filter_bypass_command\x18\x04 \x01(\x0b\x32%.openxc.AcceptanceFilterBypassCommand\x12<\n\x16payload_format_command\x18\x05 \x01(\x0b\x32\x1c.openxc.PayloadFormatCommand\x12O\n predefined_obd2_requests_command\x18\x06 \x01(\x0b\x32%.openxc.PredefinedObd2RequestsCommand\x12\x46\n\x1bmodem_configuration_command\x18\x07 \x01(\x0b\x32!.openxc.ModemConfigurationCommand\x12\x42\n\x19rtc_configuration_command\x18\x08 \x01(\x0b\x32\x1f.openxc.RTCConfigurationCommand\"\xc3\x01\n\x04Type\x12\x0b\n\x07VERSION\x10\x01\x12\r\n\tDEVICE_ID\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x0f\n\x0bPASSTHROUGH\x10\x04\x12\x1c\n\x18\x41\x43\x43\x45PTANCE_FILTER_BYPASS\x10\x05\x12\x12\n\x0ePAYLOAD_FORMAT\x10\x06\x12\x1c\n\x18PREDEFINED_OBD2_REQUESTS\x10\x07\x12\x17\n\x13MODEM_CONFIGURATION\x10\x08\x12\x15\n\x11RTC_CONFIGURATION\x10\t\"\x9e\x01\n\x18\x44iagnosticControlCommand\x12*\n\x07request\x18\x01 \x01(\x0b\x32\x19.openxc.DiagnosticRequest\x12\x37\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\'.openxc.DiagnosticControlCommand.Action\"\x1d\n\x06\x41\x63tion\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06\x43\x41NCEL\x10\x02\"=\n\x1dPassthroughModeControlCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"<\n\x1d\x41\x63\x63\x65ptanceFilterBypassCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0e\n\x06\x62ypass\x18\x02 \x01(\x08\"\x8c\x01\n\x14PayloadFormatCommand\x12:\n\x06\x66ormat\x18\x01 \x01(\x0e\x32*.openxc.PayloadFormatCommand.PayloadFormat\"8\n\rPayloadFormat\x12\x08\n\x04JSON\x10\x01\x12\x0c\n\x08PROTOBUF\x10\x02\x12\x0f\n\x0bMESSAGEPACK\x10\x03\"0\n\x1dPredefinedObd2RequestsCommand\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"\xd1\x03\n\x17NetworkOperatorSettings\x12\x18\n\x10\x61llowDataRoaming\x18\x01 \x01(\x08\x12N\n\x12operatorSelectMode\x18\x02 \x01(\x0e\x32\x32.openxc.NetworkOperatorSettings.OperatorSelectMode\x12L\n\x11networkDescriptor\x18\x03 \x01(\x0b\x32\x31.openxc.NetworkOperatorSettings.NetworkDescriptor\x1a\x98\x01\n\x11NetworkDescriptor\x12\x0c\n\x04PLMN\x18\x01 \x01(\r\x12R\n\x0bnetworkType\x18\x02 \x01(\x0e\x32=.openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType\"!\n\x0bNetworkType\x12\x07\n\x03GSM\x10\x00\x12\t\n\x05UTRAN\x10\x02\"c\n\x12OperatorSelectMode\x12\r\n\tAUTOMATIC\x10\x00\x12\n\n\x06MANUAL\x10\x01\x12\x0e\n\nDEREGISTER\x10\x02\x12\x0c\n\x08SET_ONLY\x10\x03\x12\x14\n\x10MANUAL_AUTOMATIC\x10\x04\"\"\n\x13NetworkDataSettings\x12\x0b\n\x03\x41PN\x18\x01 \x01(\t\"3\n\x15ServerConnectSettings\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\"\xd5\x01\n\x19ModemConfigurationCommand\x12@\n\x17networkOperatorSettings\x18\x01 \x01(\x0b\x32\x1f.openxc.NetworkOperatorSettings\x12\x38\n\x13networkDataSettings\x18\x02 \x01(\x0b\x32\x1b.openxc.NetworkDataSettings\x12<\n\x15serverConnectSettings\x18\x03 \x01(\x0b\x32\x1d.openxc.ServerConnectSettings\",\n\x17RTCConfigurationCommand\x12\x11\n\tunix_time\x18\x01 \x01(\r\"]\n\x0f\x43ommandResponse\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x08\"\xfd\x01\n\x11\x44iagnosticRequest\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x1a\n\x12multiple_responses\x18\x06 \x01(\x08\x12\x11\n\tfrequency\x18\x07 \x01(\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12;\n\x0c\x64\x65\x63oded_type\x18\t \x01(\x0e\x32%.openxc.DiagnosticRequest.DecodedType\"!\n\x0b\x44\x65\x63odedType\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04OBD2\x10\x02\"\xa1\x01\n\x12\x44iagnosticResponse\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07success\x18\x05 \x01(\x08\x12\x1e\n\x16negative_response_code\x18\x06 \x01(\r\x12\x0f\n\x07payload\x18\x07 \x01(\x0c\x12\r\n\x05value\x18\x08 \x01(\x01\"\xa2\x01\n\x0c\x44ynamicField\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.openxc.DynamicField.Type\x12\x14\n\x0cstring_value\x18\x02 \x01(\t\x12\x15\n\rnumeric_value\x18\x03 \x01(\x01\x12\x15\n\rboolean_value\x18\x04 \x01(\x08\"%\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\"g\n\rSimpleMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.openxc.DynamicField\x12#\n\x05\x65vent\x18\x03 \x01(\x0b\x32\x14.openxc.DynamicFieldB\x1c\n\ncom.openxcB\x0e\x42inaryMessages')
 
 
 
@@ -107,11 +107,15 @@ _CONTROLCOMMAND_TYPE = descriptor.EnumDescriptor(
       name='MODEM_CONFIGURATION', index=7, number=8,
       options=None,
       type=None),
+    descriptor.EnumValueDescriptor(
+      name='RTC_CONFIGURATION', index=8, number=9,
+      options=None,
+      type=None),
   ],
   containing_type=None,
   options=None,
-  serialized_start=1080,
-  serialized_end=1252,
+  serialized_start=1148,
+  serialized_end=1343,
 )
 
 _DIAGNOSTICCONTROLCOMMAND_ACTION = descriptor.EnumDescriptor(
@@ -131,8 +135,8 @@ _DIAGNOSTICCONTROLCOMMAND_ACTION = descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=1384,
-  serialized_end=1413,
+  serialized_start=1475,
+  serialized_end=1504,
 )
 
 _PAYLOADFORMATCOMMAND_PAYLOADFORMAT = descriptor.EnumDescriptor(
@@ -156,8 +160,8 @@ _PAYLOADFORMATCOMMAND_PAYLOADFORMAT = descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=1625,
-  serialized_end=1681,
+  serialized_start=1716,
+  serialized_end=1772,
 )
 
 _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR_NETWORKTYPE = descriptor.EnumDescriptor(
@@ -177,8 +181,8 @@ _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR_NETWORKTYPE = descriptor.EnumDescript
   ],
   containing_type=None,
   options=None,
-  serialized_start=2065,
-  serialized_end=2098,
+  serialized_start=2156,
+  serialized_end=2189,
 )
 
 _NETWORKOPERATORSETTINGS_OPERATORSELECTMODE = descriptor.EnumDescriptor(
@@ -210,8 +214,8 @@ _NETWORKOPERATORSETTINGS_OPERATORSELECTMODE = descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=2100,
-  serialized_end=2199,
+  serialized_start=2191,
+  serialized_end=2290,
 )
 
 _DIAGNOSTICREQUEST_DECODEDTYPE = descriptor.EnumDescriptor(
@@ -231,8 +235,8 @@ _DIAGNOSTICREQUEST_DECODEDTYPE = descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=2822,
-  serialized_end=2855,
+  serialized_start=2959,
+  serialized_end=2992,
 )
 
 _DYNAMICFIELD_TYPE = descriptor.EnumDescriptor(
@@ -256,8 +260,8 @@ _DYNAMICFIELD_TYPE = descriptor.EnumDescriptor(
   ],
   containing_type=None,
   options=None,
-  serialized_start=3147,
-  serialized_end=3184,
+  serialized_start=3284,
+  serialized_end=3321,
 )
 
 
@@ -438,6 +442,13 @@ _CONTROLCOMMAND = descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None),
+    descriptor.FieldDescriptor(
+      name='rtc_configuration_command', full_name='openxc.ControlCommand.rtc_configuration_command', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
   ],
   extensions=[
   ],
@@ -449,7 +460,7 @@ _CONTROLCOMMAND = descriptor.Descriptor(
   is_extendable=False,
   extension_ranges=[],
   serialized_start=587,
-  serialized_end=1252,
+  serialized_end=1343,
 )
 
 
@@ -484,8 +495,8 @@ _DIAGNOSTICCONTROLCOMMAND = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1255,
-  serialized_end=1413,
+  serialized_start=1346,
+  serialized_end=1504,
 )
 
 
@@ -519,8 +530,8 @@ _PASSTHROUGHMODECONTROLCOMMAND = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1415,
-  serialized_end=1476,
+  serialized_start=1506,
+  serialized_end=1567,
 )
 
 
@@ -554,8 +565,8 @@ _ACCEPTANCEFILTERBYPASSCOMMAND = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1478,
-  serialized_end=1538,
+  serialized_start=1569,
+  serialized_end=1629,
 )
 
 
@@ -583,8 +594,8 @@ _PAYLOADFORMATCOMMAND = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1541,
-  serialized_end=1681,
+  serialized_start=1632,
+  serialized_end=1772,
 )
 
 
@@ -611,8 +622,8 @@ _PREDEFINEDOBD2REQUESTSCOMMAND = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1683,
-  serialized_end=1731,
+  serialized_start=1774,
+  serialized_end=1822,
 )
 
 
@@ -647,8 +658,8 @@ _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1946,
-  serialized_end=2098,
+  serialized_start=2037,
+  serialized_end=2189,
 )
 
 _NETWORKOPERATORSETTINGS = descriptor.Descriptor(
@@ -689,8 +700,8 @@ _NETWORKOPERATORSETTINGS = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=1734,
-  serialized_end=2199,
+  serialized_start=1825,
+  serialized_end=2290,
 )
 
 
@@ -717,8 +728,8 @@ _NETWORKDATASETTINGS = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=2201,
-  serialized_end=2235,
+  serialized_start=2292,
+  serialized_end=2326,
 )
 
 
@@ -752,8 +763,8 @@ _SERVERCONNECTSETTINGS = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=2237,
-  serialized_end=2288,
+  serialized_start=2328,
+  serialized_end=2379,
 )
 
 
@@ -794,8 +805,36 @@ _MODEMCONFIGURATIONCOMMAND = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=2291,
-  serialized_end=2504,
+  serialized_start=2382,
+  serialized_end=2595,
+)
+
+
+_RTCCONFIGURATIONCOMMAND = descriptor.Descriptor(
+  name='RTCConfigurationCommand',
+  full_name='openxc.RTCConfigurationCommand',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    descriptor.FieldDescriptor(
+      name='unix_time', full_name='openxc.RTCConfigurationCommand.unix_time', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  extension_ranges=[],
+  serialized_start=2597,
+  serialized_end=2641,
 )
 
 
@@ -836,8 +875,8 @@ _COMMANDRESPONSE = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=2506,
-  serialized_end=2599,
+  serialized_start=2643,
+  serialized_end=2736,
 )
 
 
@@ -921,8 +960,8 @@ _DIAGNOSTICREQUEST = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=2602,
-  serialized_end=2855,
+  serialized_start=2739,
+  serialized_end=2992,
 )
 
 
@@ -998,8 +1037,8 @@ _DIAGNOSTICRESPONSE = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=2858,
-  serialized_end=3019,
+  serialized_start=2995,
+  serialized_end=3156,
 )
 
 
@@ -1048,8 +1087,8 @@ _DYNAMICFIELD = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=3022,
-  serialized_end=3184,
+  serialized_start=3159,
+  serialized_end=3321,
 )
 
 
@@ -1090,8 +1129,8 @@ _SIMPLEMESSAGE = descriptor.Descriptor(
   options=None,
   is_extendable=False,
   extension_ranges=[],
-  serialized_start=3186,
-  serialized_end=3289,
+  serialized_start=3323,
+  serialized_end=3426,
 )
 
 _VEHICLEMESSAGE.fields_by_name['type'].enum_type = _VEHICLEMESSAGE_TYPE
@@ -1110,6 +1149,7 @@ _CONTROLCOMMAND.fields_by_name['acceptance_filter_bypass_command'].message_type
 _CONTROLCOMMAND.fields_by_name['payload_format_command'].message_type = _PAYLOADFORMATCOMMAND
 _CONTROLCOMMAND.fields_by_name['predefined_obd2_requests_command'].message_type = _PREDEFINEDOBD2REQUESTSCOMMAND
 _CONTROLCOMMAND.fields_by_name['modem_configuration_command'].message_type = _MODEMCONFIGURATIONCOMMAND
+_CONTROLCOMMAND.fields_by_name['rtc_configuration_command'].message_type = _RTCCONFIGURATIONCOMMAND
 _CONTROLCOMMAND_TYPE.containing_type = _CONTROLCOMMAND;
 _DIAGNOSTICCONTROLCOMMAND.fields_by_name['request'].message_type = _DIAGNOSTICREQUEST
 _DIAGNOSTICCONTROLCOMMAND.fields_by_name['action'].enum_type = _DIAGNOSTICCONTROLCOMMAND_ACTION
@@ -1144,6 +1184,7 @@ DESCRIPTOR.message_types_by_name['NetworkOperatorSettings'] = _NETWORKOPERATORSE
 DESCRIPTOR.message_types_by_name['NetworkDataSettings'] = _NETWORKDATASETTINGS
 DESCRIPTOR.message_types_by_name['ServerConnectSettings'] = _SERVERCONNECTSETTINGS
 DESCRIPTOR.message_types_by_name['ModemConfigurationCommand'] = _MODEMCONFIGURATIONCOMMAND
+DESCRIPTOR.message_types_by_name['RTCConfigurationCommand'] = _RTCCONFIGURATIONCOMMAND
 DESCRIPTOR.message_types_by_name['CommandResponse'] = _COMMANDRESPONSE
 DESCRIPTOR.message_types_by_name['DiagnosticRequest'] = _DIAGNOSTICREQUEST
 DESCRIPTOR.message_types_by_name['DiagnosticResponse'] = _DIAGNOSTICRESPONSE
@@ -1228,6 +1269,12 @@ class ModemConfigurationCommand(message.Message):
   
   # @@protoc_insertion_point(class_scope:openxc.ModemConfigurationCommand)
 
+class RTCConfigurationCommand(message.Message):
+  __metaclass__ = reflection.GeneratedProtocolMessageType
+  DESCRIPTOR = _RTCCONFIGURATIONCOMMAND
+  
+  # @@protoc_insertion_point(class_scope:openxc.RTCConfigurationCommand)
+
 class CommandResponse(message.Message):
   __metaclass__ = reflection.GeneratedProtocolMessageType
   DESCRIPTOR = _COMMANDRESPONSE
index 3734362..ec355e9 100644 (file)
@@ -37,6 +37,7 @@ message ControlCommand {
         PAYLOAD_FORMAT = 6;
         PREDEFINED_OBD2_REQUESTS = 7;
                MODEM_CONFIGURATION = 8;
+               RTC_CONFIGURATION = 9;
     }
 
     optional Type type = 1;
@@ -46,6 +47,7 @@ message ControlCommand {
     optional PayloadFormatCommand payload_format_command = 5;
     optional PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;
        optional ModemConfigurationCommand modem_configuration_command = 7;
+       optional RTCConfigurationCommand rtc_configuration_command = 8;
 }
 
 message DiagnosticControlCommand {
@@ -115,6 +117,10 @@ message ModemConfigurationCommand {
        optional ServerConnectSettings serverConnectSettings = 3;
 }
 
+message RTCConfigurationCommand {
+       optional uint32 unix_time = 1;
+}
+
 message CommandResponse {
     optional ControlCommand.Type type = 1;
     optional string message = 2;