aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/StartThreadLoadingResponse.pb-c.c
blob: 37ff53e83b75cf117946ffe4bbbde284b51c071b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: StartThreadLoadingResponse.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "StartThreadLoadingResponse.pb-c.h"
void   start_thread_loading_response__init
                     (StartThreadLoadingResponse         *message)
{
  static const StartThreadLoadingResponse init_value = START_THREAD_LOADING_RESPONSE__INIT;
  *message = init_value;
}
size_t start_thread_loading_response__get_packed_size
                     (const StartThreadLoadingResponse *message)
{
  assert(message->base.descriptor == &start_thread_loading_response__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t start_thread_loading_response__pack
                     (const StartThreadLoadingResponse *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &start_thread_loading_response__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t start_thread_loading_response__pack_to_buffer
                     (const StartThreadLoadingResponse *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &start_thread_loading_response__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
StartThreadLoadingResponse *
       start_thread_loading_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (StartThreadLoadingResponse *)
     protobuf_c_message_unpack (&start_thread_loading_response__descriptor,
                                allocator, len, data);
}
void   start_thread_loading_response__free_unpacked
                     (StartThreadLoadingResponse *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &start_thread_loading_response__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor start_thread_loading_response__field_descriptors[2] =
{
  {
    "",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(StartThreadLoadingResponse, has_state),
    offsetof(StartThreadLoadingResponse, state),
    &thread_loading_state__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(StartThreadLoadingResponse, errorreason),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned start_thread_loading_response__field_indices_by_name[] = {
  1,   /* field[1] = ErrorReason */
  0,   /* field[0] = State */
};
static const ProtobufCIntRange start_thread_loading_response__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor start_thread_loading_response__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "",
  "",
  "",
  "",
  sizeof(StartThreadLoadingResponse),
  2,
  start_thread_loading_response__field_descriptors,
  start_thread_loading_response__field_indices_by_name,
  1,  start_thread_loading_response__number_ranges,
  (ProtobufCMessageInit) start_thread_loading_response__init,
  NULL,NULL,NULL    /* reserved[123] */
};
> /// </summary> public IMachineSetupManager MachineSetupManager { get; set; } private String _serialNumber; /// <summary> /// Gets or sets the serial number. /// </summary> public String SerialNumber { get { return _serialNumber; } set { _serialNumber = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } private String _hostAddress; /// <summary> /// Gets or sets the host address. /// </summary> public String HostAddress { get { return _hostAddress; } set { _hostAddress = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } private String _log; /// <summary> /// Gets or sets the log. /// </summary> public String Log { get { return _log; } set { _log = value; RaisePropertyChangedAuto(); } } private MachineSetupStates _state; /// <summary> /// Gets or sets the state. /// </summary> public MachineSetupStates State { get { return _state; } set { _state = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } private String _failedError; /// <summary> /// Gets or sets the setup failed error. /// </summary> public String FailedError { get { return _failedError; } set { _failedError = value; RaisePropertyChangedAuto(); } } /// <summary> /// Gets or sets the available time zones. /// </summary> public List<TimeZoneInfo> TimeZones { get; set; } private TimeZoneInfo _selectedTimeZone; /// <summary> /// Gets or sets the selected time zone. /// </summary> public TimeZoneInfo SelectedTimeZone { get { return _selectedTimeZone; } set { _selectedTimeZone = value; RaisePropertyChangedAuto(); } } private DeploymentSlot _deploymentSlot; /// <summary> /// Gets or sets the deployment slot. /// </summary> public DeploymentSlot DeploymentSlot { get { return _deploymentSlot; } set { _deploymentSlot = value; RaisePropertyChangedAuto(); } } private MachineSetupView _currentView; public MachineSetupView CurrentView { get { return _currentView; } set { _currentView = value; RaisePropertyChangedAuto(); } } #endregion #region Commands /// <summary> /// Gets or sets the complete command. /// </summary> public RelayCommand CompleteCommand { get; set; } /// <summary> /// Gets or sets the navigate to WiFi command. /// </summary> public RelayCommand NavigateToWiFiCommand { get; set; } /// <summary> /// Gets or sets the install command. /// </summary> public RelayCommand InstallCommand { get; set; } /// <summary> /// Gets or sets the restart command. /// </summary> public RelayCommand RestartCommand { get; set; } /// <summary> /// Gets or sets the time zone selected command. /// </summary> public RelayCommand TimeZoneSelectedCommand { get; set; } /// <summary> /// Gets or sets the environment selected command. /// </summary> public RelayCommand EnvironmentSelectedCommand { get; set; } #endregion #region Constructors /// <summary> /// Initializes a new instance of the <see cref="MachineSetupViewVM"/> class. /// </summary> /// <param name="applicationManager">The application manager.</param> /// <param name="machineSetupManager">The machine setup manager.</param> public MachineSetupViewVM(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineSetupManager machineSetupManager, IOperationSystemManager operationSystemManager) { _ppcWebClient = ppcWebClient; _appManager = applicationManager; MachineSetupManager = machineSetupManager; DeploymentSlot = Settings.DeploymentSlot; SerialNumber = ""; CompleteCommand = new RelayCommand(CompleteSetup, () => State == MachineSetupStates.Completed); applicationManager.SetupRequired += ApplicationManager_SetupRequired; NavigateToWiFiCommand = new RelayCommand(EnsureWiFi); InstallCommand = new RelayCommand(Install); RestartCommand = new RelayCommand(() => { NavigateTo(MachineSetupView.WelcomeView); }); TimeZoneSelectedCommand = new RelayCommand(() => { NavigateTo(MachineSetupView.EnvironmentView); }); EnvironmentSelectedCommand = new RelayCommand(() => { NavigateTo(MachineSetupView.SetupWelcomeView); Settings.DeploymentSlot = DeploymentSlot; HostAddress = Settings.GetMachineServiceAddress(); Settings.Save(); }); _operationSystemManager = operationSystemManager; TimeZones = _operationSystemManager.GetAvailableTimeZones().ToList(); SelectedTimeZone = TimeZones.SingleOrDefault(x => x.ToString() == "(UTC+02:00) Jerusalem"); } #endregion #region Event Handlers /// <summary> /// Handles the SetupRequired event of the ApplicationManager. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void ApplicationManager_SetupRequired(object sender, EventArgs e) { if (!LogManager.Categories.Contains(LogCategory.Debug)) { LogManager.Categories.Add(LogCategory.Debug); } var logger = new SimpleStringLogger(); logger.Categories.Remove(LogCategory.Debug); LogManager.RegisterLogger(logger); logger.LogReceived += Logger_LogReceived; LogManager.Log("SetupRequired event received. Navigating to MachineSetupView..."); NavigationManager.NavigateTo(NavigationView.MachineSetupView); } private void Logger_LogReceived(object sender, LogItemBase e) { AppendLog(e.Message); } #endregion #region Private Methods /// <summary> /// Appends the log. /// </summary> /// <param name="msg">The MSG.</param> private void AppendLog(String msg) { if (msg != null && !msg.Contains("SQL Examiner")) { InvokeUI(() => { View.AppendLog(msg + Environment.NewLine); }); } } /// <summary> /// Completes the setup. /// </summary> private void CompleteSetup() { LogManager.Log("Completing machine setup..."); String updater_exe = Path.Combine(_setup_result.UpdatePackagePath, "Tango.PPC.Updater.exe"); _appManager.UpdateApplication(updater_exe, PathHelper.GetStartupPath()); } /// <summary> /// Navigates to the specified view. /// </summary> /// <param name="view">The view.</param> private Task NavigateTo(MachineSetupView view) { CurrentView = view; return View.NavigateTo(view); } #endregion #region WiFi private async void EnsureWiFi() { await NavigateTo(MachineSetupView.WiFiTestView); await Task.Delay(2000); bool connected = await ConnectivityProvider.CheckInternetConnection(); if (connected) { await NavigateTo(MachineSetupView.TimeZoneView); } else { await NavigateTo(MachineSetupView.WiFiSelectionView); await ConnectivityProvider.RefreshAvailableWiFiNetworks(); ConnectivityProvider.ConnectionStateChanged += ConnectivityProvider_ConnectionStateChanged; } } private async void ConnectivityProvider_ConnectionStateChanged(object sender, Common.Connectivity.ConnectionStateEventArgs e) { if (e.IsConnected) { ConnectivityProvider.ConnectionStateChanged -= ConnectivityProvider_ConnectionStateChanged; await NavigateTo(MachineSetupView.WiFiTestView); await Task.Delay(5000); EnsureWiFi(); } } #endregion #region Setup private async void Install() { await NavigateTo(MachineSetupView.SetupProgressView); LogManager.Log("Starting machine setup..."); State = MachineSetupStates.Working; try { if (!App.StartupArgs.Contains("-webDebug")) { _ppcWebClient.Environment = DeploymentSlot; } await _operationSystemManager.ChangeTimeZone(SelectedTimeZone); _setup_result = await MachineSetupManager.Setup(SerialNumber); State = MachineSetupStates.Completed; LogManager.Log("Machine setup completed."); await NavigateTo(MachineSetupView.SetupCompletedView); } catch (Exception ex) { LogManager.Log(ex, "Machine setup failed."); FailedError = ex.FlattenMessage(); State = MachineSetupStates.Failed; await NavigateTo(MachineSetupView.SetupFailedView); } } #endregion } }