aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DataFileFrame.pb-c.c
blob: afbafe2c02dbf37ac71809c84c5f4987be014244 (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
106
107
108
109
110
111
112
113
114
115
116
117
118
/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: DataFileFrame.proto */

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

#include "DataFileFrame.pb-c.h"
void   data_file_frame__init
                     (DataFileFrame         *message)
{
  static const DataFileFrame init_value = DATA_FILE_FRAME__INIT;
  *message = init_value;
}
size_t data_file_frame__get_packed_size
                     (const DataFileFrame *message)
{
  assert(message->base.descriptor == &data_file_frame__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t data_file_frame__pack
                     (const DataFileFrame *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &data_file_frame__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t data_file_frame__pack_to_buffer
                     (const DataFileFrame *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &data_file_frame__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
DataFileFrame *
       data_file_frame__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (DataFileFrame *)
     protobuf_c_message_unpack (&data_file_frame__descriptor,
                                allocator, len, data);
}
void   data_file_frame__free_unpacked
                     (DataFileFrame *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &data_file_frame__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor data_file_frame__field_descriptors[3] =
{
  {
    "Milliseconds",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT32,
    offsetof(DataFileFrame, has_milliseconds),
    offsetof(DataFileFrame, milliseconds),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "StartDiagnosticsResponse",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(DataFileFrame, startdiagnosticsresponse),
    &start_diagnostics_response__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "VideoFrames",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(DataFileFrame, n_videoframes),
    offsetof(DataFileFrame, videoframes),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned data_file_frame__field_indices_by_name[] = {
  0,   /* field[0] = Milliseconds */
  1,   /* field[1] = StartDiagnosticsResponse */
  2,   /* field[2] = VideoFrames */
};
static const ProtobufCIntRange data_file_frame__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor data_file_frame__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "DataFileFrame",
  "DataFileFrame",
  "DataFileFrame",
  "",
  sizeof(DataFileFrame),
  3,
  data_file_frame__field_descriptors,
  data_file_frame__field_indices_by_name,
  1,  data_file_frame__number_ranges,
  (ProtobufCMessageInit) data_file_frame__init,
  NULL,NULL,NULL    /* reserved[123] */
};
lass="n">_isUpgradeNowSelected = value; RaisePropertyChangedAuto(); } } private TangoVersion _selectedVersion; public TangoVersion SelectedVersion { get { return _selectedVersion; } set { _selectedVersion = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } private Machine _selectedMachine; public Machine SelectedMachine { get { return _selectedMachine; } set { _selectedMachine = value; RaisePropertyChangedAuto(); } } private RemoteUpgradeHandler _handler; public RemoteUpgradeHandler Handler { get { return _handler; } set { _handler = value; RaisePropertyChangedAuto(); } } private bool _isCompleted; public bool IsCompleted { get { return _isCompleted; } set { _isCompleted = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } private bool _suppressFirmwareUpgrade; public bool SuppressFirmwareUpgrade { get { return _suppressFirmwareUpgrade; } set { _suppressFirmwareUpgrade = value; RaisePropertyChangedAuto(); } } public RelayCommand StartUpgradeCommand { get; set; } public RelayCommand SaveTupFileCommand { get; set; } public RelayCommand SelectTupFileLocationCommand { get; set; } public ApplicationUpgradeGeneratedViewVM() { Handler = new RemoteUpgradeHandler("Ready"); StartUpgradeCommand = new RelayCommand(StartUpgrade, () => CanUpgradeNow && Handler.Status != RemoteUpgradeHandlerStatus.Completed); SaveTupFileCommand = new RelayCommand(SaveTupFile, () => TupFileLocation != null); SelectTupFileLocationCommand = new RelayCommand(SelectTupFileLocation, () => SelectedVersion != null && SelectedMachine != null); } public override void OnApplicationStarted() { base.OnApplicationStarted(); MachineProvider.MachineConnected += (_, __) => InvalidateCanUpgradeNow(); MachineProvider.MachineDisconnected += (_, __) => InvalidateCanUpgradeNow(); } private async void SelectTupFileLocation() { String fileName = $"{SelectedMachine.SerialNumber}_Update_{DateTime.Now.Date.ToFileName()}_v{SelectedVersion.Version}.tup"; var result = await StorageProvider.SaveFile("Select update package location", "Tango Update Package|*.tup", fileName, ".tup"); if (result) { TupFileLocation = result.SelectedItem; } } private void InvalidateCanUpgradeNow() { CanUpgradeNowError = null; //if (!IsUpgradeNowSelected) return; if (SelectedMachine == null) { CanUpgradeNow = false; IsUpgradeNowSelected = false; CanUpgradeNowError = "Target machine not specified."; return; } if (!MachineProvider.IsConnected) { CanUpgradeNow = false; IsUpgradeNowSelected = false; CanUpgradeNowError = "The selected machine is not currently connected."; return; } if (MachineProvider.Machine.Guid != SelectedMachine.Guid) { CanUpgradeNow = false; IsUpgradeNowSelected = false; CanUpgradeNowError = "The selected machine is different from the one currently connected."; return; } if (!MachineProvider.ConnectionType.IsRemote()) { CanUpgradeNow = false; IsUpgradeNowSelected = false; CanUpgradeNowError = "The current machine connection type does not support remote upgrade."; return; } CanUpgradeNow = true; } private async void StartUpgrade() { try { IsFree = false; Handler = await RemoteUpgradeManager.PerformRemoteApplicationUpgrade(TemporaryTupFile, !SuppressFirmwareUpgrade); await Handler.WaitForCompletion(); IsCompleted = true; await MachineProvider.DisconnectAndWaitForReconnection(TimeSpan.FromSeconds(20), TimeSpan.FromMinutes(1), "The remote machine is now performing final upgrade operations."); } catch (OperationCanceledException) { //Aborted... } catch (Exception ex) { LogManager.Log(ex, "Error occurred while executing remote application upgrade."); } finally { await TemporaryTupFile.DeleteAsync(); IsFree = true; InvalidateRelayCommands(); } } private async void SaveTupFile() { try { File.Copy(TemporaryTupFile, TupFileLocation, true); TemporaryTupFile.Delete(); IsCompleted = true; await NotificationProvider.ShowSuccess("Application upgrade package saved successfully."); await ModularNavigationManager.NavigateBack(); } catch (Exception ex) { LogManager.Log(ex, "Error copying temporary tup file to selected location."); await NotificationProvider.ShowError($"Error occurred while trying to save the application package file.\n{ex.FlattenMessage()}"); } } public void OnNavigatedToWithObject(NavigationObject obj) { SelectedVersion = obj.SelectedVersion; SelectedMachine = obj.SelectedMachine; IsUpgradeNow = obj.UpgradeNow; IsUpgradeNowSelected = IsUpgradeNow; TemporaryTupFile = obj.TemporaryTupFile; InvalidateCanUpgradeNow(); InvalidateRelayCommands(); } public override void OnBeforeNavigatedTo() { base.OnBeforeNavigatedTo(); Handler = new RemoteUpgradeHandler("Ready"); IsCompleted = false; SelectedVersion = null; SelectedMachine = null; IsUpgradeNow = false; IsUpgradeNowSelected = false; TemporaryTupFile = null; InvalidateRelayCommands(); } public async override Task<bool> OnNavigateBackRequest() { if (!IsCompleted) { var abort = await NotificationProvider.ShowWarningQuestion("Are you sure you want to abort the upgrade operation?"); if (Handler.Status == RemoteUpgradeHandlerStatus.Started) { if (Handler.CanAbort) { Handler.Abort(); } else { await NotificationProvider.ShowWarning("Cannot abort the operation at this stage."); return false; } } return abort; } return true; } } }