From c43ae0dac975480722cff35911641b3b7535feed Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Mon, 5 Dec 2022 19:38:04 +0300 Subject: [PATCH 001/159] VC4 package added. --- mappFramework/Logical/Package.pkg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mappFramework/Logical/Package.pkg b/mappFramework/Logical/Package.pkg index 14fe8461..999db57b 100644 --- a/mappFramework/Logical/Package.pkg +++ b/mappFramework/Logical/Package.pkg @@ -7,9 +7,10 @@ Libraries ChineseHelp Infrastructure - mappView + mappView MachineControl UserPartition UnitTest + VC4 \ No newline at end of file From 0bfb5efffd710c254553f181c1ffe7d4a8bf41a9 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Wed, 7 Dec 2022 14:58:30 +0300 Subject: [PATCH 002/159] -AlarmXList and AlarmXHistoryList was linked to VC4 screen. - The alarms was reviewed and it looks same alarms which is saw at mappView screen. --- mappFramework/Physical/Simulation/Hardware.hw | 5 +++++ mappFramework/Physical/Simulation/PC/Cpu.pkg | 3 ++- mappFramework/Physical/Simulation/PC/Cpu.sw | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mappFramework/Physical/Simulation/Hardware.hw b/mappFramework/Physical/Simulation/Hardware.hw index e1171d33..9bf717bf 100644 --- a/mappFramework/Physical/Simulation/Hardware.hw +++ b/mappFramework/Physical/Simulation/Hardware.hw @@ -2,6 +2,11 @@ + + + + + diff --git a/mappFramework/Physical/Simulation/PC/Cpu.pkg b/mappFramework/Physical/Simulation/PC/Cpu.pkg index e5578776..2e3e0525 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.pkg +++ b/mappFramework/Physical/Simulation/PC/Cpu.pkg @@ -17,6 +17,7 @@ mappView mappVision mappCockpit + VC @@ -24,6 +25,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index eb4ccbd3..e074c21c 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -24,6 +24,9 @@ + + + From aa5917af8f85c95451eb071ca9097f57e699b0c4 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Thu, 8 Dec 2022 13:54:04 +0300 Subject: [PATCH 003/159] - Alarm History Export Button have added and tested. - The pages have deleted which is not belong mapp. --- .../Diagnosis/Simulation/PC/AlarmMgr.PVM | 207 - .../Diagnosis/Simulation/PC/BackupMgr.PVM | 22 - .../Diagnosis/Simulation/PC/ReportMgr.PVM | 782 - mappFramework/Logical/VC4/Package.pkg | 7 + .../MpAlarmAcknowledgeState.bmgrp | 19 + .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 21 + .../Visu/BitmapGroups/MpAlarmXStates.bmgrp | 21 + .../Visu/BitmapGroups/MpAuditCheckbox.bmgrp | 15 + .../Visu/BitmapGroups/MpAuditEventsID.bmgrp | 39 + .../VC4/Visu/BitmapGroups/MpBorders.bmgrp | 151 + .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 39 + .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 19 + .../BitmapGroups/MpDataLimitViolation.bmgrp | 19 + .../VC4/Visu/BitmapGroups/MpFileIcons.bmgrp | 65 + .../VC4/Visu/BitmapGroups/MpIcons.bmgrp | 71 + .../VC4/Visu/BitmapGroups/MpIconsClick.bmgrp | 83 + .../VC4/Visu/BitmapGroups/MpListbox.bmgrp | 17 + .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 23 + .../VC4/Visu/BitmapGroups/MpPads.bmgrp | 57 + .../VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp | 37 + .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 15 + .../VC4/Visu/BitmapGroups/MpUserIcons.bmgrp | 63 + .../Visu/Bitmaps/MpAlarmX_Backtrace.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAlarmX_Backtrace.png | Bin 0 -> 1890 bytes .../VC4/Visu/Bitmaps/MpAlarmX_History.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAlarmX_History.png | Bin 0 -> 2132 bytes .../VC4/Visu/Bitmaps/MpAlarmX_List.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAlarmX_List.png | Bin 0 -> 2101 bytes .../Visu/Bitmaps/MpAlarmX_ListDetail.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAlarmX_ListDetail.png | Bin 0 -> 1964 bytes .../Visu/Bitmaps/MpAlarmX_ListHistory.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAlarmX_ListHistory.png | Bin 0 -> 2132 bytes .../Bitmaps/MpAlarm_AcknowledgeReset.bminfo | 15 + .../Visu/Bitmaps/MpAlarm_AcknowledgeReset.png | Bin 0 -> 917 bytes .../VC4/Visu/Bitmaps/MpAlarm_Active.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAlarm_Active.png | Bin 0 -> 775 bytes .../VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAlarm_BypassON.png | Bin 0 -> 832 bytes .../VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAlarm_Inactive.png | Bin 0 -> 684 bytes .../VC4/Visu/Bitmaps/MpAlarm_NotQuit.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAlarm_NotQuit.png | Bin 0 -> 627 bytes .../VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo | 14 + .../Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.png | Bin 0 -> 735 bytes .../VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAlarm_QuitAll.png | Bin 0 -> 1555 bytes .../Bitmaps/MpAlarm_ResetAcknowledge.bminfo | 15 + .../Visu/Bitmaps/MpAlarm_ResetAcknowledge.png | Bin 0 -> 916 bytes .../Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo | 15 + .../Visu/Bitmaps/MpAudit_3rdPartyEvent.png | Bin 0 -> 254 bytes .../Visu/Bitmaps/MpAudit_AlarmEvent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_AlarmEvent.png | Bin 0 -> 402 bytes .../VC4/Visu/Bitmaps/MpAudit_CheckBox.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAudit_CheckBox.png | Bin 0 -> 234 bytes .../Bitmaps/MpAudit_CheckBox_checked.bminfo | 14 + .../Visu/Bitmaps/MpAudit_CheckBox_checked.png | Bin 0 -> 422 bytes .../Visu/Bitmaps/MpAudit_CustomEvent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_CustomEvent.png | Bin 0 -> 259 bytes .../Visu/Bitmaps/MpAudit_PackMLEvent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_PackMLEvent.png | Bin 0 -> 437 bytes .../Visu/Bitmaps/MpAudit_RecipeEvents.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_RecipeEvents.png | Bin 0 -> 482 bytes .../Visu/Bitmaps/MpAudit_TweetEvent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_TweetEvent.png | Bin 0 -> 281 bytes .../VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_UserEvent.png | Bin 0 -> 254 bytes .../VC4/Visu/Bitmaps/MpAudit_VC4Event.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAudit_VC4Event.png | Bin 0 -> 239 bytes .../VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo | 14 + .../Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.png | Bin 0 -> 2035 bytes .../VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAxis_Gear_Off.png | Bin 0 -> 822 bytes .../VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAxis_Gear_On.png | Bin 0 -> 863 bytes .../VC4/Visu/Bitmaps/MpAxis_Warning.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAxis_Warning.png | Bin 0 -> 1527 bytes .../VC4/Visu/Bitmaps/MpBackTransparent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpBackTransparent.png | Bin 0 -> 8925 bytes .../MpBackgroundSemiTransparent.bminfo | 15 + .../Bitmaps/MpBackgroundSemiTransparent.png | Bin 0 -> 3235 bytes .../Visu/Bitmaps/MpBackgroundVGA_Logo.bminfo | 15 + .../VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.png | Bin 0 -> 7253 bytes .../Bitmaps/MpBackgroundVGA_Logo_0.bminfo | 14 + .../Visu/Bitmaps/MpBackgroundVGA_Logo_0.png | Bin 0 -> 7253 bytes .../Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo | 15 + .../Visu/Bitmaps/MpBackgroundWVGA_Logo.png | Bin 0 -> 5660 bytes .../VC4/Visu/Bitmaps/MpBorderSlider09x09.PNG | Bin 0 -> 1169 bytes .../Visu/Bitmaps/MpBorderSlider09x09.bminfo | 15 + .../VC4/Visu/Bitmaps/MpButton_control.bminfo | 15 + .../Bitmaps/MpButton_control_pressed.bminfo | 15 + .../Visu/Bitmaps/MpButton_control_pressed.png | Bin 0 -> 1339 bytes .../VC4/Visu/Bitmaps/MpButton_decrease.bminfo | 14 + .../VC4/Visu/Bitmaps/MpButton_decrease.png | Bin 0 -> 320 bytes .../Bitmaps/MpButton_decrease_pressed.bminfo | 14 + .../Bitmaps/MpButton_decrease_pressed.png | Bin 0 -> 321 bytes .../VC4/Visu/Bitmaps/MpButton_default.bminfo | 19 + .../VC4/Visu/Bitmaps/MpButton_default.png | Bin 0 -> 372 bytes .../Bitmaps/MpButton_default_pressed.bminfo | 14 + .../Visu/Bitmaps/MpButton_default_pressed.png | Bin 0 -> 370 bytes .../MpButton_device_selected_left.bminfo | 15 + .../Bitmaps/MpButton_device_selected_left.png | Bin 0 -> 239 bytes .../MpButton_device_unselected_left.bminfo | 15 + .../MpButton_device_unselected_left.png | Bin 0 -> 201 bytes .../VC4/Visu/Bitmaps/MpButton_error.bminfo | 15 + .../VC4/Visu/Bitmaps/MpButton_error.png | Bin 0 -> 9591 bytes .../Visu/Bitmaps/MpButton_global_area.bminfo | 14 + .../VC4/Visu/Bitmaps/MpButton_global_area.png | Bin 0 -> 468 bytes .../MpButton_global_area_bottom.bminfo | 15 + .../Bitmaps/MpButton_global_area_bottom.png | Bin 0 -> 327 bytes .../Bitmaps/MpButton_global_area_left.bminfo | 15 + .../Bitmaps/MpButton_global_area_left.png | Bin 0 -> 331 bytes .../MpButton_global_area_pres_bottom.bminfo | 15 + .../MpButton_global_area_pres_bottom.png | Bin 0 -> 357 bytes .../MpButton_global_area_pres_top.bminfo | 14 + .../Bitmaps/MpButton_global_area_pres_top.png | Bin 0 -> 221 bytes .../MpButton_global_area_press_left.bminfo | 15 + .../MpButton_global_area_press_left.png | Bin 0 -> 360 bytes .../MpButton_global_area_pressed.bminfo | 14 + .../Bitmaps/MpButton_global_area_pressed.png | Bin 0 -> 497 bytes .../Bitmaps/MpButton_global_area_top.bminfo | 14 + .../Visu/Bitmaps/MpButton_global_area_top.png | Bin 0 -> 219 bytes .../VC4/Visu/Bitmaps/MpButton_increase.bminfo | 14 + .../VC4/Visu/Bitmaps/MpButton_increase.png | Bin 0 -> 330 bytes .../Bitmaps/MpButton_increase_pressed.bminfo | 14 + .../Bitmaps/MpButton_increase_pressed.png | Bin 0 -> 334 bytes .../VC4/Visu/Bitmaps/MpButton_off.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpButton_off.png | Bin 0 -> 6207 bytes .../VC4/Visu/Bitmaps/MpButton_on.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpButton_on.png | Bin 0 -> 9744 bytes .../Bitmaps/MpButton_radio_selected.bminfo | 14 + .../Visu/Bitmaps/MpButton_radio_selected.png | Bin 0 -> 1212 bytes .../Bitmaps/MpButton_radio_unselected.bminfo | 14 + .../Bitmaps/MpButton_radio_unselected.png | Bin 0 -> 954 bytes .../VC4/Visu/Bitmaps/MpButton_ready.bminfo | 15 + .../VC4/Visu/Bitmaps/MpButton_ready.png | Bin 0 -> 9346 bytes .../Visu/Bitmaps/MpButton_scroll_down.bminfo | 14 + .../VC4/Visu/Bitmaps/MpButton_scroll_down.png | Bin 0 -> 608 bytes .../Bitmaps/MpButton_scroll_down_multi.bminfo | 14 + .../Bitmaps/MpButton_scroll_down_multi.png | Bin 0 -> 698 bytes .../MpButton_scroll_down_multi_press.bminfo | 14 + .../MpButton_scroll_down_multi_press.png | Bin 0 -> 943 bytes .../MpButton_scroll_down_pressed.bminfo | 15 + .../Bitmaps/MpButton_scroll_down_pressed.png | Bin 0 -> 876 bytes .../Visu/Bitmaps/MpButton_scroll_left.bminfo | 14 + .../VC4/Visu/Bitmaps/MpButton_scroll_left.png | Bin 0 -> 628 bytes .../Bitmaps/MpButton_scroll_left_multi.bminfo | 14 + .../Bitmaps/MpButton_scroll_left_multi.png | Bin 0 -> 672 bytes .../MpButton_scroll_left_multi_press.bminfo | 14 + .../MpButton_scroll_left_multi_press.png | Bin 0 -> 957 bytes .../MpButton_scroll_left_pressed.bminfo | 14 + .../Bitmaps/MpButton_scroll_left_pressed.png | Bin 0 -> 899 bytes .../Visu/Bitmaps/MpButton_scroll_right.bminfo | 14 + .../Visu/Bitmaps/MpButton_scroll_right.png | Bin 0 -> 619 bytes .../MpButton_scroll_right_multi.bminfo | 14 + .../Bitmaps/MpButton_scroll_right_multi.png | Bin 0 -> 671 bytes .../MpButton_scroll_right_multi_pres.bminfo | 14 + .../MpButton_scroll_right_multi_pres.png | Bin 0 -> 945 bytes .../MpButton_scroll_right_pressed.bminfo | 14 + .../Bitmaps/MpButton_scroll_right_pressed.png | Bin 0 -> 888 bytes .../Visu/Bitmaps/MpButton_scroll_up.bminfo | 14 + .../VC4/Visu/Bitmaps/MpButton_scroll_up.png | Bin 0 -> 606 bytes .../Bitmaps/MpButton_scroll_up_multi.bminfo | 14 + .../Visu/Bitmaps/MpButton_scroll_up_multi.png | Bin 0 -> 702 bytes .../MpButton_scroll_up_multi_pressed.bminfo | 14 + .../MpButton_scroll_up_multi_pressed.png | Bin 0 -> 937 bytes .../Bitmaps/MpButton_scroll_up_pressed.bminfo | 14 + .../Bitmaps/MpButton_scroll_up_pressed.png | Bin 0 -> 877 bytes .../VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo | 15 + .../VC4/Visu/Bitmaps/MpCheckBoxGray.png | Bin 0 -> 717 bytes .../VC4/Visu/Bitmaps/MpCheckBoxOrange.bminfo | 15 + .../VC4/Visu/Bitmaps/MpCheckBoxOrange.png | Bin 0 -> 671 bytes .../VC4/Visu/Bitmaps/MpCheckbox_small.bminfo | 14 + .../VC4/Visu/Bitmaps/MpCheckbox_small.png | Bin 0 -> 234 bytes .../Bitmaps/MpCheckbox_small_checked.bminfo | 14 + .../Visu/Bitmaps/MpCheckbox_small_checked.png | Bin 0 -> 422 bytes .../Visu/Bitmaps/MpCheckbox_small_gray.bminfo | 15 + .../Visu/Bitmaps/MpCheckbox_small_gray.png | Bin 0 -> 224 bytes .../Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpClickMe.png | Bin 0 -> 506 bytes .../VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo | 15 + .../VC4/Visu/Bitmaps/MpComLoggerAlarm.png | Bin 0 -> 1838 bytes .../Visu/Bitmaps/MpComLoggerAlarm_0.bminfo | 15 + .../VC4/Visu/Bitmaps/MpComLoggerAlarm_0.png | Bin 0 -> 1838 bytes .../Bitmaps/MpComLoggerInformation.bminfo | 15 + .../Visu/Bitmaps/MpComLoggerInformation.png | Bin 0 -> 384 bytes .../Bitmaps/MpComLoggerInformation_0.bminfo | 15 + .../Visu/Bitmaps/MpComLoggerInformation_0.png | Bin 0 -> 384 bytes .../VC4/Visu/Bitmaps/MpComLoggerUI.bminfo | 15 + .../VC4/Visu/Bitmaps/MpComLoggerUI.png | Bin 0 -> 607 bytes .../VC4/Visu/Bitmaps/MpComLoggerUI_0.bminfo | 15 + .../VC4/Visu/Bitmaps/MpComLoggerUI_0.png | Bin 0 -> 607 bytes .../Visu/Bitmaps/MpComLoggerWarning.bminfo | 15 + .../VC4/Visu/Bitmaps/MpComLoggerWarning.png | Bin 0 -> 1017 bytes .../Visu/Bitmaps/MpComLoggerWarning_0.bminfo | 15 + .../VC4/Visu/Bitmaps/MpComLoggerWarning_0.png | Bin 0 -> 1017 bytes .../VC4/Visu/Bitmaps/MpData_DevBorder.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_DevBorder.png | Bin 0 -> 515 bytes .../VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_LowerLimit.png | Bin 0 -> 296 bytes .../VC4/Visu/Bitmaps/MpData_MaxBorder.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_MaxBorder.png | Bin 0 -> 486 bytes .../VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_MeanBorder.png | Bin 0 -> 534 bytes .../VC4/Visu/Bitmaps/MpData_MinBorder.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_MinBorder.png | Bin 0 -> 427 bytes .../VC4/Visu/Bitmaps/MpData_NoLimit.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_NoLimit.png | Bin 0 -> 195 bytes .../Visu/Bitmaps/MpData_RangeBorder.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_RangeBorder.png | Bin 0 -> 541 bytes .../VC4/Visu/Bitmaps/MpData_UpperLimit.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_UpperLimit.png | Bin 0 -> 297 bytes .../Visu/Bitmaps/MpData_UpperLimit_0.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_UpperLimit_0.png | Bin 0 -> 297 bytes .../Visu/Bitmaps/MpData_WithinLimit.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_WithinLimit.png | Bin 0 -> 279 bytes .../Visu/Bitmaps/MpData_WithinLimit_0.bminfo | 14 + .../VC4/Visu/Bitmaps/MpData_WithinLimit_0.png | Bin 0 -> 279 bytes .../VC4/Visu/Bitmaps/MpFile_ArrowDown.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_ArrowDown.png | Bin 0 -> 162 bytes .../VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_ArrowLeft.png | Bin 0 -> 264 bytes .../VC4/Visu/Bitmaps/MpFile_ArrowRight.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_ArrowRight.png | Bin 0 -> 259 bytes .../VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_ArrowUp.png | Bin 0 -> 154 bytes .../VC4/Visu/Bitmaps/MpFile_BMP.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_BMP.png | Bin 0 -> 464 bytes .../VC4/Visu/Bitmaps/MpFile_CSV.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_CSV.png | Bin 0 -> 593 bytes .../VC4/Visu/Bitmaps/MpFile_Cancel.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_Cancel.png | Bin 0 -> 1353 bytes .../VC4/Visu/Bitmaps/MpFile_DOC.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_DOC.png | Bin 0 -> 498 bytes .../VC4/Visu/Bitmaps/MpFile_FILE.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_FILE.png | Bin 0 -> 361 bytes .../VC4/Visu/Bitmaps/MpFile_FOLDER.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_FOLDER.png | Bin 0 -> 369 bytes .../VC4/Visu/Bitmaps/MpFile_HTML.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_HTML.png | Bin 0 -> 437 bytes .../VC4/Visu/Bitmaps/MpFile_JPG.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_JPG.png | Bin 0 -> 455 bytes .../Logical/VC4/Visu/Bitmaps/MpFile_OK.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_OK.png | Bin 0 -> 1157 bytes .../VC4/Visu/Bitmaps/MpFile_PDF.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_PDF.png | Bin 0 -> 588 bytes .../VC4/Visu/Bitmaps/MpFile_TXT.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_TXT.png | Bin 0 -> 578 bytes .../VC4/Visu/Bitmaps/MpFile_UNKOWN.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_UNKOWN.png | Bin 0 -> 454 bytes .../VC4/Visu/Bitmaps/MpFile_USER1.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER1.png | Bin 0 -> 633 bytes .../VC4/Visu/Bitmaps/MpFile_USER10.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFile_USER10.png | Bin 0 -> 712 bytes .../VC4/Visu/Bitmaps/MpFile_USER2.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER2.png | Bin 0 -> 644 bytes .../VC4/Visu/Bitmaps/MpFile_USER3.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER3.png | Bin 0 -> 647 bytes .../VC4/Visu/Bitmaps/MpFile_USER4.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER4.png | Bin 0 -> 637 bytes .../VC4/Visu/Bitmaps/MpFile_USER5.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER5.png | Bin 0 -> 648 bytes .../VC4/Visu/Bitmaps/MpFile_USER6.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER6.png | Bin 0 -> 652 bytes .../VC4/Visu/Bitmaps/MpFile_USER7.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER7.png | Bin 0 -> 641 bytes .../VC4/Visu/Bitmaps/MpFile_USER8.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER8.png | Bin 0 -> 653 bytes .../VC4/Visu/Bitmaps/MpFile_USER9.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_USER9.png | Bin 0 -> 647 bytes .../VC4/Visu/Bitmaps/MpFile_XLS.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_XLS.png | Bin 0 -> 499 bytes .../VC4/Visu/Bitmaps/MpFile_XML.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFile_XML.png | Bin 0 -> 594 bytes .../VC4/Visu/Bitmaps/MpFrameHeader.bminfo | 14 + .../VC4/Visu/Bitmaps/MpFrameHeader.png | Bin 0 -> 571 bytes .../VC4/Visu/Bitmaps/MpFrameInvisible.bminfo | 15 + .../VC4/Visu/Bitmaps/MpFrameInvisible.png | Bin 0 -> 186 bytes .../VC4/Visu/Bitmaps/MpGroupControl.bminfo | 15 + .../VC4/Visu/Bitmaps/MpGroupControl.png | Bin 0 -> 1106 bytes .../VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAlarm.png | Bin 0 -> 1613 bytes .../Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.png | Bin 0 -> 1971 bytes .../VC4/Visu/Bitmaps/MpIcon_MpAlarmX.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAlarmX.png | Bin 0 -> 1680 bytes .../Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.png | Bin 0 -> 2048 bytes .../Bitmaps/MpIcon_MpAlarmXHistory.bminfo | 14 + .../Visu/Bitmaps/MpIcon_MpAlarmXHistory.png | Bin 0 -> 2116 bytes .../MpIcon_MpAlarmXHistoryClick.bminfo | 14 + .../Bitmaps/MpIcon_MpAlarmXHistoryClick.png | Bin 0 -> 2490 bytes .../MpIcon_MpAlarmXHistoryExport.bminfo | 15 + .../Bitmaps/MpIcon_MpAlarmXHistoryExport.png | Bin 0 -> 1947 bytes .../VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAudit.png | Bin 0 -> 1674 bytes .../Visu/Bitmaps/MpIcon_MpAuditClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAuditClick.png | Bin 0 -> 2003 bytes .../VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAxis.png | Bin 0 -> 1696 bytes .../VC4/Visu/Bitmaps/MpIcon_MpAxis1.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAxis1.png | Bin 0 -> 1654 bytes .../Visu/Bitmaps/MpIcon_MpAxis1Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.png | Bin 0 -> 2038 bytes .../Visu/Bitmaps/MpIcon_MpAxisClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpAxisClick.png | Bin 0 -> 2078 bytes .../VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.png | Bin 0 -> 588 bytes .../VC4/Visu/Bitmaps/MpIcon_MpCnc1.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpCnc1.png | Bin 0 -> 594 bytes .../Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.png | Bin 0 -> 959 bytes .../Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.png | Bin 0 -> 959 bytes .../VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.png | Bin 0 -> 1048 bytes .../VC4/Visu/Bitmaps/MpIcon_MpComClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpComClick.png | Bin 0 -> 1425 bytes .../VC4/Visu/Bitmaps/MpIcon_MpData.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpData.png | Bin 0 -> 1821 bytes .../Visu/Bitmaps/MpIcon_MpDataClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpDataClick.png | Bin 0 -> 2169 bytes .../VC4/Visu/Bitmaps/MpIcon_MpDelta.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpDelta.png | Bin 0 -> 1657 bytes .../VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpDelta1.png | Bin 0 -> 1635 bytes .../Visu/Bitmaps/MpIcon_MpDelta3Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.png | Bin 0 -> 1996 bytes .../Visu/Bitmaps/MpIcon_MpDelta4Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.png | Bin 0 -> 1981 bytes .../VC4/Visu/Bitmaps/MpIcon_MpEnergy.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpEnergy.png | Bin 0 -> 1573 bytes .../Visu/Bitmaps/MpIcon_MpEnergyClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.png | Bin 0 -> 1670 bytes .../VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpFile.png | Bin 0 -> 1640 bytes .../Visu/Bitmaps/MpIcon_MpFileClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpFileClick.png | Bin 0 -> 2013 bytes .../VC4/Visu/Bitmaps/MpIcon_MpHeat.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpHeat.png | Bin 0 -> 651 bytes .../VC4/Visu/Bitmaps/MpIcon_MpOee.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.png | Bin 0 -> 1665 bytes .../VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpOeeClick.png | Bin 0 -> 2053 bytes .../VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpOeeList.png | Bin 0 -> 2385 bytes .../Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.png | Bin 0 -> 2385 bytes .../VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.png | Bin 0 -> 2367 bytes .../VC4/Visu/Bitmaps/MpIcon_MpPackML.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpPackML.png | Bin 0 -> 570 bytes .../Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.png | Bin 0 -> 942 bytes .../VC4/Visu/Bitmaps/MpIcon_MpRecipe.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpRecipe.png | Bin 0 -> 1545 bytes .../Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.png | Bin 0 -> 1925 bytes .../VC4/Visu/Bitmaps/MpIcon_MpRecipeX.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpRecipeX.png | Bin 0 -> 1695 bytes .../Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo | 15 + .../Visu/Bitmaps/MpIcon_MpRecipeXClick.png | Bin 0 -> 2066 bytes .../VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.png | Bin 0 -> 1189 bytes .../Bitmaps/MpIcon_MpRoboArm4Click.bminfo | 15 + .../Visu/Bitmaps/MpIcon_MpRoboArm4Click.png | Bin 0 -> 1550 bytes .../VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.png | Bin 0 -> 1215 bytes .../Bitmaps/MpIcon_MpRoboArm5Click.bminfo | 15 + .../Visu/Bitmaps/MpIcon_MpRoboArm5Click.png | Bin 0 -> 1572 bytes .../VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.png | Bin 0 -> 1214 bytes .../Bitmaps/MpIcon_MpRoboArm6Click.bminfo | 15 + .../Visu/Bitmaps/MpIcon_MpRoboArm6Click.png | Bin 0 -> 1569 bytes .../Visu/Bitmaps/MpIcon_MpSafetyXClick.bminfo | 15 + .../Visu/Bitmaps/MpIcon_MpSafetyXClick.png | Bin 0 -> 1898 bytes .../VC4/Visu/Bitmaps/MpIcon_MpScara.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpScara.png | Bin 0 -> 1261 bytes .../VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpScara1.png | Bin 0 -> 1241 bytes .../Visu/Bitmaps/MpIcon_MpScara2Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpScara2Click.png | Bin 0 -> 1620 bytes .../Visu/Bitmaps/MpIcon_MpScara4Click.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpScara4Click.png | Bin 0 -> 1602 bytes .../VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpSpindle.png | Bin 0 -> 516 bytes .../Visu/Bitmaps/MpIcon_MpSpindleClick.bminfo | 15 + .../Visu/Bitmaps/MpIcon_MpSpindleClick.png | Bin 0 -> 884 bytes .../VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpTeach.png | Bin 0 -> 1303 bytes .../Visu/Bitmaps/MpIcon_MpTeachClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpTeachClick.png | Bin 0 -> 1656 bytes .../VC4/Visu/Bitmaps/MpIcon_MpTrend.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpTrend.png | Bin 0 -> 1788 bytes .../Visu/Bitmaps/MpIcon_MpTrendClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpTrendClick.png | Bin 0 -> 2149 bytes .../Visu/Bitmaps/MpIcon_MpTweetClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpTweetClick.png | Bin 0 -> 2265 bytes .../VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpUser.png | Bin 0 -> 1266 bytes .../VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo | 14 + .../VC4/Visu/Bitmaps/MpIcon_MpUser1.png | Bin 0 -> 2073 bytes .../Visu/Bitmaps/MpIcon_MpUserClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpUserClick.png | Bin 0 -> 1615 bytes .../Visu/Bitmaps/MpIcon_MpUserClick1.bminfo | 14 + .../VC4/Visu/Bitmaps/MpIcon_MpUserClick1.png | Bin 0 -> 2446 bytes .../Visu/Bitmaps/MpIcon_MpUserClick2.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpUserClick2.png | Bin 0 -> 2128 bytes .../Visu/Bitmaps/MpIcon_MpUserXClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpUserXClick.png | Bin 0 -> 1904 bytes .../VC4/Visu/Bitmaps/MpIcon_MpWebXs.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpWebXs.png | Bin 0 -> 1672 bytes .../Visu/Bitmaps/MpIcon_MpWebXsClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.png | Bin 0 -> 2036 bytes .../VC4/Visu/Bitmaps/MpIcon_MpWinder.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpWinder.png | Bin 0 -> 1857 bytes .../Visu/Bitmaps/MpIcon_MpWinderClick.bminfo | 15 + .../VC4/Visu/Bitmaps/MpIcon_MpWinderClick.png | Bin 0 -> 2222 bytes .../VC4/Visu/Bitmaps/MpIcon_mapp.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpIcon_mapp.png | Bin 0 -> 493 bytes .../Visu/Bitmaps/MpImg_ActiveWarning.bminfo | 15 + .../VC4/Visu/Bitmaps/MpImg_ActiveWarning.png | Bin 0 -> 1066 bytes .../VC4/Visu/Bitmaps/MpImg_Config.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpImg_Config.png | Bin 0 -> 987 bytes .../VC4/Visu/Bitmaps/MpImg_Diagnostics.bminfo | 15 + .../VC4/Visu/Bitmaps/MpImg_Diagnostics.png | Bin 0 -> 997 bytes .../VC4/Visu/Bitmaps/MpImg_Home.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpImg_Home.png | Bin 0 -> 939 bytes .../VC4/Visu/Bitmaps/MpImg_Warning.bminfo | 15 + .../VC4/Visu/Bitmaps/MpImg_Warning.png | Bin 0 -> 749 bytes .../VC4/Visu/Bitmaps/MpInputBorder.bminfo | 15 + .../VC4/Visu/Bitmaps/MpInputBorder.png | Bin 0 -> 445 bytes .../Bitmaps/MpInputBorderCenterless.bminfo | 15 + .../Visu/Bitmaps/MpInputBorderCenterless.png | Bin 0 -> 316 bytes .../Visu/Bitmaps/MpInputBorderInactive.bminfo | 15 + .../Visu/Bitmaps/MpInputBorderInactive.png | Bin 0 -> 442 bytes .../MpInputBorderInactiveCenterless.bminfo | 15 + .../MpInputBorderInactiveCenterless.png | Bin 0 -> 311 bytes .../Visu/Bitmaps/MpKey_AlphaPad_lower.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.png | Bin 0 -> 7259 bytes .../MpKey_AlphaPad_lowerPressed.bminfo | 15 + .../Bitmaps/MpKey_AlphaPad_lowerPressed.png | Bin 0 -> 7204 bytes .../Bitmaps/MpKey_AlphaPad_numeric.bminfo | 15 + .../Visu/Bitmaps/MpKey_AlphaPad_numeric.png | Bin 0 -> 6491 bytes .../Bitmaps/MpKey_AlphaPad_numeric2.bminfo | 15 + .../Visu/Bitmaps/MpKey_AlphaPad_numeric2.png | Bin 0 -> 5863 bytes .../MpKey_AlphaPad_numeric2Pressed.bminfo | 15 + .../MpKey_AlphaPad_numeric2Pressed.png | Bin 0 -> 5903 bytes .../MpKey_AlphaPad_numericPressed.bminfo | 15 + .../Bitmaps/MpKey_AlphaPad_numericPressed.png | Bin 0 -> 6519 bytes .../Visu/Bitmaps/MpKey_AlphaPad_upper.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.png | Bin 0 -> 7807 bytes .../MpKey_AlphaPad_upperPressed.bminfo | 15 + .../Bitmaps/MpKey_AlphaPad_upperPressed.png | Bin 0 -> 7731 bytes .../Visu/Bitmaps/MpKey_EditPad_lower.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_EditPad_lower.png | Bin 0 -> 9025 bytes .../Bitmaps/MpKey_EditPad_lowerPressed.bminfo | 15 + .../Bitmaps/MpKey_EditPad_lowerPressed.png | Bin 0 -> 16690 bytes .../Visu/Bitmaps/MpKey_EditPad_numeric.bminfo | 15 + .../Visu/Bitmaps/MpKey_EditPad_numeric.png | Bin 0 -> 9137 bytes .../Bitmaps/MpKey_EditPad_numeric2.bminfo | 15 + .../Visu/Bitmaps/MpKey_EditPad_numeric2.png | Bin 0 -> 8631 bytes .../MpKey_EditPad_numeric2Pressed.bminfo | 15 + .../Bitmaps/MpKey_EditPad_numeric2Pressed.png | Bin 0 -> 16309 bytes .../MpKey_EditPad_numericPressed.bminfo | 15 + .../Bitmaps/MpKey_EditPad_numericPressed.png | Bin 0 -> 16934 bytes .../Visu/Bitmaps/MpKey_EditPad_upper.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_EditPad_upper.png | Bin 0 -> 9590 bytes .../Bitmaps/MpKey_EditPad_upperPressed.bminfo | 15 + .../Bitmaps/MpKey_EditPad_upperPressed.png | Bin 0 -> 17416 bytes .../VC4/Visu/Bitmaps/MpKey_ListPadHor.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_ListPadHor.png | Bin 0 -> 2022 bytes .../Bitmaps/MpKey_ListPadHor_pressed.bminfo | 15 + .../Visu/Bitmaps/MpKey_ListPadHor_pressed.png | Bin 0 -> 2006 bytes .../VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_ListPadVer.png | Bin 0 -> 1903 bytes .../Bitmaps/MpKey_ListPadVer_pressed.bminfo | 15 + .../Visu/Bitmaps/MpKey_ListPadVer_pressed.png | Bin 0 -> 1873 bytes .../VC4/Visu/Bitmaps/MpKey_Numpad.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpKey_Numpad.png | Bin 0 -> 4458 bytes .../Visu/Bitmaps/MpKey_Numpad_pressed.bminfo | 15 + .../VC4/Visu/Bitmaps/MpKey_Numpad_pressed.png | Bin 0 -> 4484 bytes .../VC4/Visu/Bitmaps/MpLabelBorder.bminfo | 15 + .../VC4/Visu/Bitmaps/MpLabelBorder.png | Bin 0 -> 443 bytes .../VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo | 15 + .../VC4/Visu/Bitmaps/MpLabelBorderDown.png | Bin 0 -> 432 bytes .../Bitmaps/MpLabelBorderDown_Orange.bminfo | 15 + .../Visu/Bitmaps/MpLabelBorderDown_Orange.png | Bin 0 -> 554 bytes .../VC4/Visu/Bitmaps/MpLabelBorderLeft.bminfo | 15 + .../VC4/Visu/Bitmaps/MpLabelBorderLeft.png | Bin 0 -> 445 bytes .../VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo | 14 + .../VC4/Visu/Bitmaps/MpLabelBorderSlim.png | Bin 0 -> 398 bytes .../Visu/Bitmaps/MpListboxFrameCenter.bminfo | 15 + .../VC4/Visu/Bitmaps/MpListboxFrameCenter.png | Bin 0 -> 208 bytes .../Visu/Bitmaps/MpListboxFrameLeft.bminfo | 15 + .../VC4/Visu/Bitmaps/MpListboxFrameLeft.png | Bin 0 -> 231 bytes .../Visu/Bitmaps/MpListboxFrameRight.bminfo | 15 + .../VC4/Visu/Bitmaps/MpListboxFrameRight.png | Bin 0 -> 233 bytes .../VC4/Visu/Bitmaps/MpLogoTransparent.bminfo | 15 + .../VC4/Visu/Bitmaps/MpLogoTransparent.png | Bin 0 -> 18334 bytes .../Logical/VC4/Visu/Bitmaps/MpOeeCore.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpOeeCore.png | Bin 0 -> 20622 bytes .../Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpOeeList.png | Bin 0 -> 25746 bytes .../VC4/Visu/Bitmaps/MpOeeList_64x64.bminfo | 15 + .../VC4/Visu/Bitmaps/MpOeeList_64x64.png | Bin 0 -> 7901 bytes .../VC4/Visu/Bitmaps/MpOeeTimeline.bminfo | 15 + .../VC4/Visu/Bitmaps/MpOeeTimeline.png | Bin 0 -> 25684 bytes .../Visu/Bitmaps/MpOeeTimeline_64x64.bminfo | 15 + .../VC4/Visu/Bitmaps/MpOeeTimeline_64x64.png | Bin 0 -> 7522 bytes .../VC4/Visu/Bitmaps/MpOeeTrend.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpOeeTrend.png | Bin 0 -> 25007 bytes .../VC4/Visu/Bitmaps/MpOeeTrend_64x64.bminfo | 15 + .../VC4/Visu/Bitmaps/MpOeeTrend_64x64.png | Bin 0 -> 7356 bytes .../VC4/Visu/Bitmaps/MpOutputBorder.bminfo | 15 + .../VC4/Visu/Bitmaps/MpOutputBorder.png | Bin 0 -> 296 bytes .../Visu/Bitmaps/MpOutputBorderActive.bminfo | 15 + .../VC4/Visu/Bitmaps/MpOutputBorderActive.png | Bin 0 -> 264 bytes .../VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_BlueOFF.png | Bin 0 -> 2423 bytes .../VC4/Visu/Bitmaps/MpPackML_BlueON.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_BlueON.png | Bin 0 -> 5435 bytes .../VC4/Visu/Bitmaps/MpPackML_GreenOFF.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_GreenOFF.png | Bin 0 -> 2342 bytes .../VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_GreenON.png | Bin 0 -> 3194 bytes .../VC4/Visu/Bitmaps/MpPackML_Main.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_Main.png | Bin 0 -> 65220 bytes .../Visu/Bitmaps/MpPackML_YellowOFF.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_YellowOFF.png | Bin 0 -> 2491 bytes .../VC4/Visu/Bitmaps/MpPackML_YellowON.bminfo | 15 + .../VC4/Visu/Bitmaps/MpPackML_YellowON.png | Bin 0 -> 4402 bytes .../VC4/Visu/Bitmaps/MpProgressBorder.bminfo | 14 + .../VC4/Visu/Bitmaps/MpProgressBorder.png | Bin 0 -> 173 bytes .../Visu/Bitmaps/MpSafetyButton_off.bminfo | 15 + .../VC4/Visu/Bitmaps/MpSafetyButton_off.png | Bin 0 -> 1708 bytes .../VC4/Visu/Bitmaps/MpSafetyButton_on.bminfo | 15 + .../VC4/Visu/Bitmaps/MpSafetyButton_on.png | Bin 0 -> 2579 bytes .../VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo | 15 + .../VC4/Visu/Bitmaps/MpSlider_BallGray.png | Bin 0 -> 800 bytes .../Bitmaps/MpSlider_BallGray_small.bminfo | 15 + .../Visu/Bitmaps/MpSlider_BallGray_small.png | Bin 0 -> 489 bytes .../VC4/Visu/Bitmaps/MpTeach_Add.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpTeach_Add.png | Bin 0 -> 980 bytes .../VC4/Visu/Bitmaps/MpTeach_Copy.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpTeach_Copy.png | Bin 0 -> 1206 bytes .../VC4/Visu/Bitmaps/MpTeach_Cut.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpTeach_Cut.png | Bin 0 -> 1410 bytes .../VC4/Visu/Bitmaps/MpTeach_Delete.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Delete.png | Bin 0 -> 1199 bytes .../VC4/Visu/Bitmaps/MpTeach_Export.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Export.png | Bin 0 -> 1662 bytes .../VC4/Visu/Bitmaps/MpTeach_Generate.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Generate.png | Bin 0 -> 1018 bytes .../VC4/Visu/Bitmaps/MpTeach_Import.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Import.png | Bin 0 -> 1705 bytes .../VC4/Visu/Bitmaps/MpTeach_Insert.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Insert.png | Bin 0 -> 997 bytes .../VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_MoveDown.png | Bin 0 -> 1402 bytes .../VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_MoveUp.png | Bin 0 -> 1411 bytes .../VC4/Visu/Bitmaps/MpTeach_Paste.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Paste.png | Bin 0 -> 1344 bytes .../Bitmaps/MpTeach_Point_selected.bminfo | 14 + .../Visu/Bitmaps/MpTeach_Point_selected.png | Bin 0 -> 290 bytes .../MpTeach_Point_unselected_even.bminfo | 14 + .../Bitmaps/MpTeach_Point_unselected_even.png | Bin 0 -> 307 bytes .../MpTeach_Point_unselected_odd.bminfo | 14 + .../Bitmaps/MpTeach_Point_unselected_odd.png | Bin 0 -> 293 bytes .../VC4/Visu/Bitmaps/MpTeach_Replace.bminfo | 15 + .../VC4/Visu/Bitmaps/MpTeach_Replace.png | Bin 0 -> 1324 bytes .../VC4/Visu/Bitmaps/MpUserGroup_add.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUserGroup_add.png | Bin 0 -> 5129 bytes .../Bitmaps/MpUserGroup_add_locked.bminfo | 15 + .../Visu/Bitmaps/MpUserGroup_add_locked.png | Bin 0 -> 3900 bytes .../Visu/Bitmaps/MpUserGroup_delete.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUserGroup_delete.png | Bin 0 -> 5481 bytes .../Bitmaps/MpUserGroup_delete_locked.bminfo | 15 + .../Bitmaps/MpUserGroup_delete_locked.png | Bin 0 -> 3983 bytes .../VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUserGroup_edit.png | Bin 0 -> 5398 bytes .../Bitmaps/MpUserGroup_edit_locked.bminfo | 15 + .../Visu/Bitmaps/MpUserGroup_edit_locked.png | Bin 0 -> 3986 bytes .../Visu/Bitmaps/MpUser_CriteriaError.bminfo | 14 + .../VC4/Visu/Bitmaps/MpUser_CriteriaError.png | Bin 0 -> 2035 bytes .../VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo | 14 + .../VC4/Visu/Bitmaps/MpUser_CriteriaOK.png | Bin 0 -> 1157 bytes .../VC4/Visu/Bitmaps/MpUser_Exit.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpUser_Exit.png | Bin 0 -> 3301 bytes .../Visu/Bitmaps/MpUser_Exit_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_Exit_locked.png | Bin 0 -> 3080 bytes .../VC4/Visu/Bitmaps/MpUser_Export.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_Export.png | Bin 0 -> 1662 bytes .../Visu/Bitmaps/MpUser_Export_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_Export_locked.png | Bin 0 -> 1458 bytes .../VC4/Visu/Bitmaps/MpUser_Import.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_Import.png | Bin 0 -> 1705 bytes .../Visu/Bitmaps/MpUser_Import_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_Import_locked.png | Bin 0 -> 1457 bytes .../VC4/Visu/Bitmaps/MpUser_UserEdit.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_UserEdit.png | Bin 0 -> 5211 bytes .../Visu/Bitmaps/MpUser_UserGroupEdit.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_UserGroupEdit.png | Bin 0 -> 5954 bytes .../VC4/Visu/Bitmaps/MpUser_add.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpUser_add.png | Bin 0 -> 3953 bytes .../VC4/Visu/Bitmaps/MpUser_add_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_add_locked.png | Bin 0 -> 3051 bytes .../VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_clock_stop.png | Bin 0 -> 1000 bytes .../VC4/Visu/Bitmaps/MpUser_delete.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_delete.png | Bin 0 -> 4344 bytes .../Visu/Bitmaps/MpUser_delete_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_delete_locked.png | Bin 0 -> 3157 bytes .../VC4/Visu/Bitmaps/MpUser_edit.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpUser_edit.png | Bin 0 -> 4347 bytes .../Visu/Bitmaps/MpUser_edit_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_edit_locked.png | Bin 0 -> 3459 bytes .../VC4/Visu/Bitmaps/MpUser_lock.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpUser_lock.png | Bin 0 -> 4485 bytes .../Visu/Bitmaps/MpUser_lock_locked.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_lock_locked.png | Bin 0 -> 3424 bytes .../VC4/Visu/Bitmaps/MpUser_pw_change.bminfo | 15 + .../VC4/Visu/Bitmaps/MpUser_pw_change.png | Bin 0 -> 4225 bytes .../Bitmaps/MpUser_pw_change_locked.bminfo | 15 + .../Visu/Bitmaps/MpUser_pw_change_locked.png | Bin 0 -> 3221 bytes .../VC4/Visu/Bitmaps/Mpbutton_control.png | Bin 0 -> 1013 bytes .../VC4/Visu/Bitmaps/mappSERVICES_logo.bminfo | 15 + .../VC4/Visu/Bitmaps/mappSERVICES_logo.png | Bin 0 -> 21997 bytes .../VC4/Visu/Borders/Mp_AttentionOff.bdr | 14 + .../VC4/Visu/Borders/Mp_AttentionOn.bdr | 14 + .../VC4/Visu/Borders/Mp_BitmapFrame.bdr | 9 + .../Logical/VC4/Visu/Borders/Mp_Button.bdr | 15 + .../VC4/Visu/Borders/Mp_Button_Control.bdr | 15 + .../Borders/Mp_Button_Control_pressed.bdr | 15 + .../Borders/Mp_Button_Device_Select_Left.bdr | 14 + .../Mp_Button_Device_Unselect_Left.bdr | 14 + .../VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr | 15 + .../VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr | 15 + .../Borders/Mp_Button_Multi_Scroll_Down.bdr | 15 + .../Mp_Button_Multi_Scroll_Dwn_press.bdr | 15 + .../Borders/Mp_Button_Multi_Scroll_Up.bdr | 15 + .../Mp_Button_Multi_Scroll_Up_press.bdr | 15 + .../Visu/Borders/Mp_Button_Safety_ACK_off.bdr | 14 + .../Visu/Borders/Mp_Button_Safety_ACK_on.bdr | 14 + .../VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr | 15 + .../Borders/Mp_Button_Scoll_Up_pressed.bdr | 15 + .../Visu/Borders/Mp_Button_Scroll_Down.bdr | 15 + .../Borders/Mp_Button_Scroll_Down_pressed.bdr | 15 + .../Visu/Borders/Mp_Button_Scroll_Left.bdr | 15 + .../Borders/Mp_Button_Scroll_Left_Multi.bdr | 15 + .../Mp_Button_Scroll_Left_Multi_pres.bdr | 15 + .../Borders/Mp_Button_Scroll_Left_pressed.bdr | 15 + .../Visu/Borders/Mp_Button_Scroll_Right.bdr | 15 + .../Borders/Mp_Button_Scroll_Right_Multi.bdr | 15 + .../Mp_Button_Scroll_Right_Multi_pr.bdr | 15 + .../Mp_Button_Scroll_Right_pressed.bdr | 15 + .../VC4/Visu/Borders/Mp_Button_pressed.bdr | 15 + .../VC4/Visu/Borders/Mp_CheckBox_checked.bdr | 15 + .../VC4/Visu/Borders/Mp_DataDevBorder.bdr | 15 + .../VC4/Visu/Borders/Mp_DataMaxBorder.bdr | 15 + .../VC4/Visu/Borders/Mp_DataMeanBorder.bdr | 15 + .../VC4/Visu/Borders/Mp_DataMinBorder.bdr | 15 + .../VC4/Visu/Borders/Mp_DataNameFrame.bdr | 9 + .../VC4/Visu/Borders/Mp_DataRangeBorder.bdr | 15 + .../Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr | 9 + .../VC4/Visu/Borders/Mp_FrameInvisible.bdr | 14 + .../VC4/Visu/Borders/Mp_GroupControl.bdr | 15 + .../VC4/Visu/Borders/Mp_InputBorder.bdr | 15 + .../Visu/Borders/Mp_InputBorderInactive.bdr | 15 + .../VC4/Visu/Borders/Mp_LabelBorder.bdr | 15 + .../VC4/Visu/Borders/Mp_LabelBorderDown.bdr | 14 + .../VC4/Visu/Borders/Mp_LabelBorderSlim.bdr | 15 + .../Visu/Borders/Mp_LabelBorder_Orange.bdr | 14 + .../VC4/Visu/Borders/Mp_ListBoxCenter.bdr | 15 + .../VC4/Visu/Borders/Mp_ListBoxLeft.bdr | 15 + .../VC4/Visu/Borders/Mp_ListBoxRight.bdr | 15 + .../Logical/VC4/Visu/Borders/Mp_MoveOff.bdr | 14 + .../Logical/VC4/Visu/Borders/Mp_MoveOn.bdr | 14 + .../VC4/Visu/Borders/Mp_OutputBorder.bdr | 15 + .../VC4/Visu/Borders/Mp_PackML_States.bdr | 15 + .../Logical/VC4/Visu/Borders/Mp_RangeBar.bdr | 9 + .../VC4/Visu/Borders/Mp_SliderBorder09.bdr | 14 + .../Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr | 15 + .../VC4/Visu/Borders/Mp_SunkenNGgray.bdr | 15 + .../Logical/VC4/Visu/Borders/Mp_TabActive.bdr | 9 + .../Logical/VC4/Visu/Borders/Mp_TabSelect.bdr | 15 + .../VC4/Visu/Borders/Mp_TabUnSelect.bdr | 15 + .../Visu/Borders/Mp_TeachPointSelected.bdr | 15 + .../Borders/Mp_TeachPointUnselectedEven.bdr | 15 + .../Borders/Mp_TeachPointUnselectedOdd.bdr | 15 + .../VC4/Visu/ColorMaps/MpEnergyChartData.clm | 71 + .../VC4/Visu/ColorMaps/MpPMLStateColors.clm | 47 + .../Logical/VC4/Visu/Fonts/MpButton.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpDefault.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpHeader.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpHeader2.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpInfo.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpInput.fninfo | 20 + .../VC4/Visu/Fonts/MpMenuButtons.fninfo | 20 + .../VC4/Visu/Fonts/MpPackMLStateNames.fninfo | 20 + .../Logical/VC4/Visu/Fonts/MpPads.fninfo | 20 + .../VC4/Visu/Layers/MpBackground.layer | 118 + .../VC4/Visu/Layers/MpOeeControl.layer | 192 + .../VC4/Visu/Layers/MpPageControl.layer | 176 + .../Logical/VC4/Visu/Layers/MpUserXSign.layer | 182 + .../Visu/Layers/MpUserXSignMessageBox.layer | 144 + mappFramework/Logical/VC4/Visu/Package.vcp | 485 + .../VC4/Visu/Pages/MpAlarmXHistory.page | 1115 ++ .../Logical/VC4/Visu/Pages/MpAlarmXList.page | 1179 ++ .../Visu/Pages/MpAlarmXListUI_Backtrace.page | 549 + .../VC4/Visu/Pages/MpAuditTrailUI.page | 2138 +++ .../Logical/VC4/Visu/Pages/MpComLoggerUI.page | 1122 ++ .../VC4/Visu/Pages/MpDataStatisticsUI.page | 1431 ++ .../Logical/VC4/Visu/Pages/MpDataTableUI.page | 3344 ++++ .../Logical/VC4/Visu/Pages/MpEnergyUI.page | 2522 +++ .../VC4/Visu/Pages/MpFileManagerUI.page | 2048 ++ .../Logical/VC4/Visu/Pages/MpOeeCoreUI.page | 774 + .../Logical/VC4/Visu/Pages/MpOeeListUI.page | 2577 +++ .../VC4/Visu/Pages/MpOeeTimelineUI.page | 1931 ++ .../Logical/VC4/Visu/Pages/MpOeeTrendUI.page | 1092 ++ .../VC4/Visu/Pages/MpPackMLBasicUI.page | 1961 ++ .../VC4/Visu/Pages/MpPackMLStatisticsUI.page | 2314 +++ .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 1101 ++ .../Logical/VC4/Visu/Pages/MpSetup.page | 639 + .../VC4/Visu/Pages/MpSystemDiagnostics.page | 90 + .../VC4/Visu/Pages/MpTweetCoreUI_Alarm.page | 1421 ++ .../Visu/Pages/MpTweetCoreUI_Receiver.page | 1189 ++ .../VC4/Visu/Pages/MpUserXLoginUI.page | 869 + .../Visu/Pages/MpUserXManagerUI_Roles.page | 2630 +++ .../Visu/Pages/MpUserXManagerUI_Users.page | 3428 ++++ .../VC4/Visu/Pages/mapp1StartPage.page | 640 + mappFramework/Logical/VC4/Visu/Palette.vcr | 260 + .../Logical/VC4/Visu/StyleSheets/Color.vcs | 2316 +++ .../Logical/VC4/Visu/StyleSheets/mapp.vcs | 2316 +++ .../TextGroups/MpAuditEventTextSetup.txtgrp | 55 + .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 10 + .../TextGroups/MpButtons_PageTexts.txtgrp | 94 + .../VC4/Visu/TextGroups/ShiftGroup.txtgrp | 43 + .../Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr | 1247 ++ .../Visu/TouchPads/MpNavigationPad_ver.tpr | 70 + .../Logical/VC4/Visu/TouchPads/MpNumPad.tpr | 176 + .../Logical/VC4/Visu/Trends/MpOeeTrendUI.tre | 193 + .../Visu/Trends/MpOeeTrendUI_Availability.trd | 19 + .../VC4/Visu/Trends/MpOeeTrendUI_OEE.trd | 19 + .../Visu/Trends/MpOeeTrendUI_Performance.trd | 19 + .../VC4/Visu/Trends/MpOeeTrendUI_Quality.trd | 19 + .../Logical/VC4/Visu/Trends/TrendData.tdc | 5 + mappFramework/Logical/VC4/Visu/VCObject.vc | 8 + mappFramework/Logical/VC4/Visu/Vc.dob | 7 + .../Logical/VC4/Visu/VirtualKeys.vcvk | 2501 +++ .../VCShared/AlarmGroups/AlarmSystem.alcfg | 20 + .../AlarmGroups/MpAuditTrailAlarms.algrp | 96 + .../AlarmGroups/MpAxisBasicAlarms.algrp | 432 + .../VCShared/AlarmGroups/MpCncAlarms.algrp | 252 + .../AlarmGroups/MpDataRecorderAlarms.algrp | 96 + .../AlarmGroups/MpFileManagerAlarms.algrp | 120 + .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 120 + .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 120 + .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 153 + .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 252 + .../AlarmGroups/MpSpindleAlarms.algrp | 504 + .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 72 + .../VCShared/AlarmGroups/MpUserAlarms.algrp | 72 + .../VCShared/AlarmGroups/SystemAlarms.algrp | 161 + .../Logical/VCShared/ControlVersion.cvinfo | 250 + .../VCShared/DataSources/DataSource.dso | 16000 ++++++++++++++++ .../Logical/VCShared/DataSources/Internal.dso | 191 + mappFramework/Logical/VCShared/Languages.vcr | 20 + mappFramework/Logical/VCShared/Package.vcp | 127 + .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 37 + .../TextGroups/MpAlarmBasicUIText.txtgrp | 25 + .../TextGroups/MpAlarmBypassState.txtgrp | 25 + .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 49 + .../TextGroups/MpAlarmSeparator.txtgrp | 19 + .../VCShared/TextGroups/MpAlarmState.txtgrp | 25 + .../TextGroups/MpAlarmXHistoryCode.txtgrp | 314 + .../TextGroups/MpAlarmXHistoryExport.txtgrp | 16 + .../TextGroups/MpAlarmXHistoryState.txtgrp | 73 + .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 19 + .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 61 + .../TextGroups/MpAlarmXListCode.txtgrp | 314 + .../TextGroups/MpAlarmXListEventID.txtgrp | 89 + .../TextGroups/MpAlarmXListRecordID.txtgrp | 89 + .../TextGroups/MpAlarmXListState.txtgrp | 73 + .../TextGroups/MpAlarmXListStatus.txtgrp | 19 + .../TextGroups/MpAlarmXListUIText.txtgrp | 88 + .../TextGroups/MpAuditEventsOutput.txtgrp | 234 + .../TextGroups/MpAuditSignatureEvent.txtgrp | 25 + .../TextGroups/MpAuditTrailUIText.txtgrp | 49 + .../TextGroups/MpAuditTweetEvent.txtgrp | 19 + .../TextGroups/MpAuditUIErrorText.txtgrp | 22 + .../TextGroups/MpAuditUIMessageBox.txtgrp | 30 + .../TextGroups/MpAuditUserAction.txtgrp | 52 + .../TextGroups/MpAuditUserIDText.txtgrp | 28 + .../TextGroups/MpComLoggerUIText.txtgrp | 37 + .../MpDataStatisticsUIStatus.txtgrp | 22 + .../TextGroups/MpDataStatisticsUIText.txtgrp | 61 + .../TextGroups/MpDataTableHeader.txtgrp | 284 + .../TextGroups/MpDataTableUIStatus.txtgrp | 22 + .../TextGroups/MpDataTableUIText.txtgrp | 61 + .../TextGroups/MpDateTimeFormats.txtgrp | 25 + .../TextGroups/MpEnergyCoreStatus.txtgrp | 19 + .../TextGroups/MpEnergyCoreUIText.txtgrp | 112 + .../TextGroups/MpEnergyForwardEnergy.txtgrp | 314 + .../TextGroups/MpEnergyReverseEnergy.txtgrp | 314 + .../TextGroups/MpFileManagerUIDevices.txtgrp | 124 + .../TextGroups/MpFileManagerUIFiles.txtgrp | 124 + .../MpFileManagerUIMessageBox.txtgrp | 37 + .../TextGroups/MpFileManagerUIStatus.txtgrp | 52 + .../TextGroups/MpFileManagerUIText.txtgrp | 117 + .../VCShared/TextGroups/MpLanguages.txtgrp | 19 + .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 76 + .../TextGroups/MpOeeCoreUIText.txtgrp | 76 + .../TextGroups/MpOeeCoreUITime.txtgrp | 182 + .../TextGroups/MpOeeListUIText.txtgrp | 64 + .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 248 + .../MpOeeTimelineUIProductionState.txtgrp | 25 + .../TextGroups/MpOeeTimelineUIText.txtgrp | 61 + .../TextGroups/MpOeeTrendUIText.txtgrp | 61 + .../TextGroups/MpPackMLBasicUIText.txtgrp | 37 + .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 46 + .../TextGroups/MpPackMLModesNames.txtgrp | 22 + .../TextGroups/MpPackMLStateNames.txtgrp | 67 + .../TextGroups/MpPackMLStatisticsText.txtgrp | 1649 ++ .../MpPackMLStatisticsUIText.txtgrp | 37 + .../TextGroups/MpRecipeAuditText.txtgrp | 28 + .../TextGroups/MpRecipeUIMessageBox.txtgrp | 34 + .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 314 + .../TextGroups/MpRecipeUIStatus.txtgrp | 34 + .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 117 + .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 28 + .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 42 + .../TextGroups/MpTweetCoreUITexts.txtgrp | 85 + .../TextGroups/MpTweetCoreUIType.txtgrp | 19 + .../VCShared/TextGroups/MpUnits.txtgrp | 19 + .../TextGroups/MpUserConfirmText.txtgrp | 28 + .../TextGroups/MpUserDialogHeader.txtgrp | 31 + .../VCShared/TextGroups/MpUserGroups.txtgrp | 124 + .../VCShared/TextGroups/MpUserNoYes.txtgrp | 19 + .../TextGroups/MpUserPasswordCriteria.txtgrp | 25 + .../VCShared/TextGroups/MpUserRight.txtgrp | 43 + .../TextGroups/MpUserRightLevel.txtgrp | 28 + .../TextGroups/MpUserUIErrorText.txtgrp | 121 + .../TextGroups/MpUserUIMessageBox.txtgrp | 74 + .../VCShared/TextGroups/MpUserUITexts.txtgrp | 204 + .../TextGroups/MpUserXConfirmText.txtgrp | 28 + .../TextGroups/MpUserXDialogHeader.txtgrp | 31 + .../VCShared/TextGroups/MpUserXGroups.txtgrp | 124 + .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 19 + .../TextGroups/MpUserXPasswordCriteria.txtgrp | 25 + .../VCShared/TextGroups/MpUserXRight.txtgrp | 43 + .../TextGroups/MpUserXRightLevel.txtgrp | 28 + .../VCShared/TextGroups/MpUserXRoles.txtgrp | 40 + .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 27 + .../TextGroups/MpUserXSignUIText.txtgrp | 25 + .../TextGroups/MpUserXUIErrorText.txtgrp | 145 + .../TextGroups/MpUserXUIMessageBox.txtgrp | 74 + .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 194 + .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 16 + .../VCShared/TextGroups/mappComponents.txtgrp | 124 + .../VCShared/TextGroups/mappTopics.txtgrp | 85 + .../Logical/VCShared/UnitGroups/Energy.vcug | 87 + .../Logical/VCShared/UnitGroups/Length.vcug | 180 + .../Logical/VCShared/UnitGroups/Mass.vcug | 106 + .../Logical/VCShared/UnitGroups/Memory.vcug | 106 + .../Logical/VCShared/UnitGroups/Power.vcug | 87 + .../Logical/VCShared/UnitGroups/Pressure.vcug | 163 + .../VCShared/UnitGroups/Temperatures.vcug | 108 + .../Logical/VCShared/UnitGroups/Volume.vcug | 127 + .../Simulation/PC/VC/PS2-Keyboard.dis | 326 + .../Physical/Simulation/PC/VC/Package.pkg | 7 + 872 files changed, 84242 insertions(+), 1011 deletions(-) delete mode 100644 mappFramework/Diagnosis/Simulation/PC/AlarmMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM create mode 100644 mappFramework/Logical/VC4/Package.pkg create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.PNG create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/Mpbutton_control.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.png create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr create mode 100644 mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm create mode 100644 mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo create mode 100644 mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer create mode 100644 mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer create mode 100644 mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer create mode 100644 mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer create mode 100644 mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer create mode 100644 mappFramework/Logical/VC4/Visu/Package.vcp create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpSetup.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page create mode 100644 mappFramework/Logical/VC4/Visu/Palette.vcr create mode 100644 mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs create mode 100644 mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs create mode 100644 mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp create mode 100644 mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp create mode 100644 mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp create mode 100644 mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp create mode 100644 mappFramework/Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr create mode 100644 mappFramework/Logical/VC4/Visu/TouchPads/MpNavigationPad_ver.tpr create mode 100644 mappFramework/Logical/VC4/Visu/TouchPads/MpNumPad.tpr create mode 100644 mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre create mode 100644 mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Availability.trd create mode 100644 mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_OEE.trd create mode 100644 mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Performance.trd create mode 100644 mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Quality.trd create mode 100644 mappFramework/Logical/VC4/Visu/Trends/TrendData.tdc create mode 100644 mappFramework/Logical/VC4/Visu/VCObject.vc create mode 100644 mappFramework/Logical/VC4/Visu/Vc.dob create mode 100644 mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp create mode 100644 mappFramework/Logical/VCShared/ControlVersion.cvinfo create mode 100644 mappFramework/Logical/VCShared/DataSources/DataSource.dso create mode 100644 mappFramework/Logical/VCShared/DataSources/Internal.dso create mode 100644 mappFramework/Logical/VCShared/Languages.vcr create mode 100644 mappFramework/Logical/VCShared/Package.vcp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Energy.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Length.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Mass.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Memory.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Power.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug create mode 100644 mappFramework/Logical/VCShared/UnitGroups/Volume.vcug create mode 100644 mappFramework/Physical/Simulation/PC/VC/PS2-Keyboard.dis create mode 100644 mappFramework/Physical/Simulation/PC/VC/Package.pkg diff --git a/mappFramework/Diagnosis/Simulation/PC/AlarmMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/AlarmMgr.PVM deleted file mode 100644 index d56318ff..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/AlarmMgr.PVM +++ /dev/null @@ -1,207 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AlarmMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=8 ASCIIString=0 - name type force value level type len format place expand specs - HmiAlarmX AlarmHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands AlarmCommandsType 0 " *" 1 24 1 0 0 0 - ExportAlarms BOOL 0 " FALSE" 2 1 1 2 0 0 - RunQuery BOOL 0 " FALSE" 2 1 1 2 0 0 - Status AlarmStatusType 0 " *" 1 24 1 0 0 1 - AlarmHistSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - AlarmHistFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - AlarmSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - AlarmFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 - TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":0,"to":19, "visible":false}]}'" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " ''" 3 9 121 1 0 0 - Query AlarmQueryHMIType 0 " *" 2 24 1 0 0 0 - Active BOOL[0..19] 0 " *" 3 1 20 0 0 0 - Active[0] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[1] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[2] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[3] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[4] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[5] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[6] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[7] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[8] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[9] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[10] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[11] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[12] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[13] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[14] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[15] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[16] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[17] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[18] BOOL 0 " FALSE" 4 1 1 2 0 0 - Active[19] BOOL 0 " FALSE" 4 1 1 2 0 0 - Acknowledged BOOL[0..19] 0 " *" 3 1 20 0 0 0 - Acknowledged[0] BOOL 0 " FALSE" 4 1 1 2 0 0 - Acknowledged[1] BOOL 0 " FALSE" 4 1 1 2 0 0 - Acknowledged[2] BOOL 0 " FALSE" 4 1 1 2 0 0 - Acknowledged[3] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[4] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[5] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[6] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[7] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[8] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[9] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[10] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[11] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[12] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[13] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[14] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[15] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[16] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[17] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[18] BOOL 0 " *" 4 1 1 2 0 0 - Acknowledged[19] BOOL 0 " *" 4 1 1 2 0 0 - Scope WSTRING[80][0..19] 0 " *" 3 21 162 0 0 0 - Scope[0] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[1] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[2] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[3] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[4] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[5] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[6] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[7] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[8] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[9] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[10] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[11] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[12] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[13] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[14] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[15] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[16] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[17] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[18] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Scope[19] WSTRING[80] 0 " *" 4 21 162 1 0 0 - Name STRING[80][0..19] 0 " *" 3 9 81 0 0 0 - Name[0] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[1] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[2] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[3] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[4] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[5] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[6] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[7] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[8] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[9] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[10] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[11] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[12] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[13] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[14] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[15] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[16] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[17] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[18] STRING[80] 0 " *" 4 9 81 1 0 0 - Name[19] STRING[80] 0 " *" 4 9 81 1 0 0 - Message WSTRING[255][0..19] 0 " *" 3 21 512 0 0 0 - Message[0] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[1] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[2] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[3] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[4] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[5] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[6] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[7] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[8] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[9] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[10] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[11] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[12] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[13] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[14] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[15] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[16] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[17] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[18] WSTRING[255] 0 " *" 4 21 512 1 0 0 - Message[19] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo WSTRING[255][0..19] 0 " *" 3 21 512 0 0 0 - AdditionalInfo[0] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[1] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[2] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[3] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[4] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[5] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[6] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[7] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[8] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[9] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[10] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[11] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[12] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[13] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[14] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[15] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[16] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[17] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[18] WSTRING[255] 0 " *" 4 21 512 1 0 0 - AdditionalInfo[19] WSTRING[255] 0 " *" 4 21 512 1 0 0 - TimeStamp DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 0 - TimeStamp[0] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[1] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[2] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[3] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[4] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[5] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[6] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[7] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[8] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[9] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[10] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[11] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[12] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[13] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[14] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[15] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[16] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[17] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[18] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - TimeStamp[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - Code UDINT[0..19] 0 " *" 3 7 20 0 0 0 - Code[0] UDINT 0 " *" 4 7 1 10 0 0 - Code[1] UDINT 0 " *" 4 7 1 10 0 0 - Code[2] UDINT 0 " *" 4 7 1 10 0 0 - Code[3] UDINT 0 " *" 4 7 1 10 0 0 - Code[4] UDINT 0 " *" 4 7 1 10 0 0 - Code[5] UDINT 0 " *" 4 7 1 10 0 0 - Code[6] UDINT 0 " *" 4 7 1 10 0 0 - Code[7] UDINT 0 " *" 4 7 1 10 0 0 - Code[8] UDINT 0 " *" 4 7 1 10 0 0 - Code[9] UDINT 0 " *" 4 7 1 10 0 0 - Code[10] UDINT 0 " *" 4 7 1 10 0 0 - Code[11] UDINT 0 " *" 4 7 1 10 0 0 - Code[12] UDINT 0 " *" 4 7 1 10 0 0 - Code[13] UDINT 0 " *" 4 7 1 10 0 0 - Code[14] UDINT 0 " *" 4 7 1 10 0 0 - Code[15] UDINT 0 " *" 4 7 1 10 0 0 - Code[16] UDINT 0 " *" 4 7 1 10 0 0 - Code[17] UDINT 0 " *" 4 7 1 10 0 0 - Code[18] UDINT 0 " *" 4 7 1 10 0 0 - Code[19] UDINT 0 " *" 4 7 1 10 0 0 - Severity UDINT[0..19] 0 " *" 3 7 20 0 0 0 - Severity[0] UDINT 0 " *" 4 7 1 10 0 0 - Severity[1] UDINT 0 " *" 4 7 1 10 0 0 - Severity[2] UDINT 0 " *" 4 7 1 10 0 0 - Severity[3] UDINT 0 " *" 4 7 1 10 0 0 - Severity[4] UDINT 0 " *" 4 7 1 10 0 0 - Severity[5] UDINT 0 " *" 4 7 1 10 0 0 - Severity[6] UDINT 0 " *" 4 7 1 10 0 0 - Severity[7] UDINT 0 " *" 4 7 1 10 0 0 - Severity[8] UDINT 0 " *" 4 7 1 10 0 0 - Severity[9] UDINT 0 " *" 4 7 1 10 0 0 - Severity[10] UDINT 0 " *" 4 7 1 10 0 0 - Severity[11] UDINT 0 " *" 4 7 1 10 0 0 - Severity[12] UDINT 0 " *" 4 7 1 10 0 0 - Severity[13] UDINT 0 " *" 4 7 1 10 0 0 - Severity[14] UDINT 0 " *" 4 7 1 10 0 0 - Severity[15] UDINT 0 " *" 4 7 1 10 0 0 - Severity[16] UDINT 0 " *" 4 7 1 10 0 0 - Severity[17] UDINT 0 " *" 4 7 1 10 0 0 - Severity[18] UDINT 0 " *" 4 7 1 10 0 0 - Severity[19] UDINT 0 " *" 4 7 1 10 0 0 - QueryCount USINT 0 " *" 3 5 1 10 0 0 - InstanceID UINT 0 " 0" 2 6 1 10 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM deleted file mode 100644 index 1da8d244..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM +++ /dev/null @@ -1,22 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=BackupMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=1 ASCIIString=0 - name type force value level type len format place expand specs - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 1 - DeviceNames[0] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 - DeviceNames[1] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[2] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[3] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[4] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[5] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 - SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 - HmiBackup BackupHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Status BackupHmiStatusType 0 " *" 1 24 1 0 0 1 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 - TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":1,"to":9, "visible":false}]}'" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":0,"to":50, "visible":false}]}'" 3 9 121 1 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM deleted file mode 100644 index f3bf73fa..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM +++ /dev/null @@ -1,782 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=ReportMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=32 ASCIIString=0 - name type force value level type len format place expand specs - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI - - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 0 - DeviceNames[0] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[1] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[2] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[3] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[4] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[5] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[6] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[7] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[8] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[9] STRING[50] 0 " *" 3 9 51 1 0 0 - SelectedIndex UINT 0 " *" 2 6 1 10 0 0 - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Images'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2022-10-06-12:45:43" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Report_21CFR1_DE.pdf'" 5 9 256 1 0 0 - Size UDINT 0 " 112760" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2022-10-05-13:49:07" 5 11 1 1 0 0 - ItemType DINT 0 " 89" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Report_21CFR1_EN.pdf'" 5 9 256 1 0 0 - Size UDINT 0 " 112493" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2022-10-05-13:49:07" 5 11 1 1 0 0 - ItemType DINT 0 " 89" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 - StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 - PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 - StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 - RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 - RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 - SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 - CurrentDir STRING[255] 0 " *" 3 9 256 1 0 0 - FileCount UDINT 0 " *" 3 7 1 10 0 0 - FolderCount UDINT 0 " *" 3 7 1 10 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - Copy BOOL 0 " FALSE" 2 1 1 2 0 0 - Cut BOOL 0 " FALSE" 2 1 1 2 0 0 - Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 0 - LayerStatus UINT 0 " *" 2 6 1 10 0 0 - Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - - ErrorNumber UINT 0 " *" 2 6 1 10 0 0 - Confirm BOOL 0 " *" 2 1 1 2 0 0 - Cancel BOOL 0 " *" 2 1 1 2 0 0 - DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 - HmiReport ReportHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands ReportCommandsType 0 " *" 1 24 1 0 0 0 - Generate BOOL 0 " *" 2 1 1 2 0 0 - Parameters ReportParametersType 0 " *" 1 24 1 0 0 0 - Name STRING[50] 0 " *" 2 9 51 1 0 0 - FormatTo21CFR1 BOOL 0 " *" 2 1 1 2 0 0 - PathOfReportToView STRING[255] 0 " *" 2 9 256 1 0 0 - Status ReportStatusType 0 " *" 1 24 1 0 0 1 - FileNames STRING[50][0..49] 0 " *" 2 9 51 0 0 0 - FileNames[0] STRING[50] 0 " 'Images'" 3 9 51 1 0 0 - FileNames[1] STRING[50] 0 " 'Report_21CFR1_DE.pdf'" 3 9 51 1 0 0 - FileNames[2] STRING[50] 0 " 'Report_21CFR1_EN.pdf'" 3 9 51 1 0 0 - FileNames[3] STRING[50] 0 " 'SimpleReport_2022_10_06_10_27_58.pdf'" 3 9 51 1 0 0 - FileNames[4] STRING[50] 0 " 'SimpleReport_DE.pdf'" 3 9 51 1 0 0 - FileNames[5] STRING[50] 0 " 'SimpleReport_EN.pdf'" 3 9 51 1 0 0 - FileNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[10] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[11] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[12] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[13] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[14] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[15] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[16] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[17] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[18] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[19] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[20] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[21] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[22] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[23] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[24] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[25] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[26] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[27] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[28] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[29] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[30] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[31] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[32] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[33] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[34] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[35] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[36] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[37] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[38] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[39] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[40] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[41] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[42] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[43] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[44] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[45] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[46] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[47] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[48] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[49] STRING[50] 0 " *" 3 9 51 1 0 0 - TempFilePath STRING[255][0..49] 0 " *" 2 9 256 0 0 0 - TempFilePath[0] STRING[255] 0 " '/FileDevice:mappReportFiles/Images'" 3 9 256 1 0 0 - TempFilePath[1] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_DE.pdf'" 3 9 256 1 0 0 - TempFilePath[2] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_EN.pdf'" 3 9 256 1 0 0 - TempFilePath[3] STRING[255] 0 "'/FileDevice:mappReportFiles/SimpleReport_2022_10_06_10_27_58.pdf'" 3 9 256 1 0 0 - TempFilePath[4] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_DE.pdf'" 3 9 256 1 0 0 - TempFilePath[5] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_EN.pdf'" 3 9 256 1 0 0 - TempFilePath[6] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[7] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[8] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[9] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[10] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[11] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[12] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[13] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[14] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[15] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[16] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[17] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[18] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[19] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[20] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[21] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[22] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[23] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[24] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[25] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[26] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[27] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[28] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[29] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[30] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[31] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[32] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[33] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[34] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[35] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[36] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[37] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[38] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[39] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[40] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[41] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[42] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[43] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[44] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[45] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[46] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[47] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[48] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[49] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath STRING[255][0..49] 0 " *" 2 9 256 0 0 0 - FilePath[0] STRING[255] 0 " '/FileDevice:mappReportFiles/Images'" 3 9 256 1 0 0 - FilePath[1] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_DE.pdf'" 3 9 256 1 0 0 - FilePath[2] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_EN.pdf'" 3 9 256 1 0 0 - FilePath[3] STRING[255] 0 "'/FileDevice:mappReportFiles/SimpleReport_2022_10_06_10_27_58.pdf'" 3 9 256 1 0 0 - FilePath[4] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_DE.pdf'" 3 9 256 1 0 0 - FilePath[5] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_EN.pdf'" 3 9 256 1 0 0 - FilePath[6] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[7] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[8] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[9] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[10] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[11] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[12] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[13] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[14] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[15] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[16] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[17] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[18] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[19] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[20] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[21] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[22] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[23] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[24] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[25] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[26] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[27] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[28] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[29] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[30] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[31] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[32] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[33] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[34] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[35] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[36] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[37] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[38] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[39] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[40] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[41] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[42] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[43] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[44] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[45] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[46] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[47] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[48] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[49] STRING[255] 0 " *" 3 9 256 1 0 0 - TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 0 - TimeStamps[0] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[1] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[2] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[3] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[4] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[5] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[6] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[7] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[8] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[9] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[10] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[11] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[12] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[13] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[14] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[15] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[16] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[17] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[18] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[19] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[20] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[21] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[22] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[23] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[24] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[25] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[26] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[27] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[40] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[41] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[42] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[43] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[44] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[45] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[46] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[47] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[48] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[49] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - Size UDINT[0..49] 0 " *" 2 7 50 0 0 0 - Size[0] UDINT 0 " *" 3 7 1 10 0 0 - Size[1] UDINT 0 " *" 3 7 1 10 0 0 - Size[2] UDINT 0 " *" 3 7 1 10 0 0 - Size[3] UDINT 0 " *" 3 7 1 10 0 0 - Size[4] UDINT 0 " *" 3 7 1 10 0 0 - Size[5] UDINT 0 " *" 3 7 1 10 0 0 - Size[6] UDINT 0 " *" 3 7 1 10 0 0 - Size[7] UDINT 0 " *" 3 7 1 10 0 0 - Size[8] UDINT 0 " *" 3 7 1 10 0 0 - Size[9] UDINT 0 " *" 3 7 1 10 0 0 - Size[10] UDINT 0 " *" 3 7 1 10 0 0 - Size[11] UDINT 0 " *" 3 7 1 10 0 0 - Size[12] UDINT 0 " *" 3 7 1 10 0 0 - Size[13] UDINT 0 " *" 3 7 1 10 0 0 - Size[14] UDINT 0 " *" 3 7 1 10 0 0 - Size[15] UDINT 0 " *" 3 7 1 10 0 0 - Size[16] UDINT 0 " *" 3 7 1 10 0 0 - Size[17] UDINT 0 " *" 3 7 1 10 0 0 - Size[18] UDINT 0 " *" 3 7 1 10 0 0 - Size[19] UDINT 0 " *" 3 7 1 10 0 0 - Size[20] UDINT 0 " *" 3 7 1 10 0 0 - Size[21] UDINT 0 " *" 3 7 1 10 0 0 - Size[22] UDINT 0 " *" 3 7 1 10 0 0 - Size[23] UDINT 0 " *" 3 7 1 10 0 0 - Size[24] UDINT 0 " *" 3 7 1 10 0 0 - Size[25] UDINT 0 " *" 3 7 1 10 0 0 - Size[26] UDINT 0 " *" 3 7 1 10 0 0 - Size[27] UDINT 0 " *" 3 7 1 10 0 0 - Size[28] UDINT 0 " *" 3 7 1 10 0 0 - Size[29] UDINT 0 " *" 3 7 1 10 0 0 - Size[30] UDINT 0 " *" 3 7 1 10 0 0 - Size[31] UDINT 0 " *" 3 7 1 10 0 0 - Size[32] UDINT 0 " *" 3 7 1 10 0 0 - Size[33] UDINT 0 " *" 3 7 1 10 0 0 - Size[34] UDINT 0 " *" 3 7 1 10 0 0 - Size[35] UDINT 0 " *" 3 7 1 10 0 0 - Size[36] UDINT 0 " *" 3 7 1 10 0 0 - Size[37] UDINT 0 " *" 3 7 1 10 0 0 - Size[38] UDINT 0 " *" 3 7 1 10 0 0 - Size[39] UDINT 0 " *" 3 7 1 10 0 0 - Size[40] UDINT 0 " *" 3 7 1 10 0 0 - Size[41] UDINT 0 " *" 3 7 1 10 0 0 - Size[42] UDINT 0 " *" 3 7 1 10 0 0 - Size[43] UDINT 0 " *" 3 7 1 10 0 0 - Size[44] UDINT 0 " *" 3 7 1 10 0 0 - Size[45] UDINT 0 " *" 3 7 1 10 0 0 - Size[46] UDINT 0 " *" 3 7 1 10 0 0 - Size[47] UDINT 0 " *" 3 7 1 10 0 0 - Size[48] UDINT 0 " *" 3 7 1 10 0 0 - Size[49] UDINT 0 " *" 3 7 1 10 0 0 - SelectedIndex USINT 0 " 1" 2 5 1 10 0 0 - LastSelectedIndex USINT 0 " 255" 2 5 1 10 0 0 - LastSelectedDeviceIndex UINT 0 " 0" 2 6 1 10 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 - TableConfig[0] STRING[120] 0 " *" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " *" 3 9 121 1 0 0 - FileOverMax BOOL 0 " FALSE" 2 1 1 2 0 0 - ViewAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - Info MpBackupProjectInfoRequestType 0 " *" 2 24 1 0 0 0 - Name STRING[255] 0 " *" 3 9 256 1 0 0 - ConfigurationID STRING[255] 0 " *" 3 9 256 1 0 0 - ConfigurationVersion STRING[64] 0 " *" 3 9 65 1 0 0 - Busy BOOL 0 " FALSE" 2 1 1 2 0 0 - Error BOOL 0 " FALSE" 2 1 1 2 0 0 - DeleteAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - CreateAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - FilterString STRING[1000] 0 " ''" 2 9 1001 1 0 0 - MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 0 - MpLink UDINT 0 " 108715760" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 0 - FileListSize UINT 0 " *" 2 6 1 10 0 0 - FileListScrollWindow USINT 0 " *" 2 5 1 10 0 0 - UIConnect UDINT 0 " 142429730" 1 7 1 10 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 - Info MpFileInfoType 0 " *" 1 24 1 0 0 0 - Diag MpFileDiagType 0 " *" 2 24 1 0 0 0 - StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpFI - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 - MpReportCore_0 MpReportCore 0 " *" 0 24 1 0 1 0 - MpLink UDINT 0 " 108715768" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - Name UDINT 0 " 142391636" 1 7 1 10 0 0 - Language UDINT 0 " 142391676" 1 7 1 10 0 0 - DeviceName UDINT 0 " 142391694" 1 7 1 10 0 0 - Generate BOOL 0 " FALSE" 1 1 1 2 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 - CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 - CommandDone BOOL 0 " FALSE" 1 1 1 2 0 0 - Info MpReportCoreInfoType 0 " *" 1 24 1 0 0 0 - NumberOfReports UDINT 0 " *" 2 7 1 10 0 0 - GeneratedFileName STRING[50] 0 " *" 2 9 51 1 0 0 - Diag MpReportDiagType 0 " *" 2 24 1 0 0 0 - StatusID MpReportStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpRE - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 diff --git a/mappFramework/Logical/VC4/Package.pkg b/mappFramework/Logical/VC4/Package.pkg new file mode 100644 index 00000000..e2bf3571 --- /dev/null +++ b/mappFramework/Logical/VC4/Package.pkg @@ -0,0 +1,7 @@ + + + + + Visu + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp new file mode 100644 index 00000000..2c76da2e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp new file mode 100644 index 00000000..9275673d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp new file mode 100644 index 00000000..7c092b71 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp new file mode 100644 index 00000000..fdadfd8c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp new file mode 100644 index 00000000..6a8acaa4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp new file mode 100644 index 00000000..e0430d00 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp new file mode 100644 index 00000000..afbf100c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp new file mode 100644 index 00000000..c5e655ce --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp new file mode 100644 index 00000000..70bcf4b1 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp new file mode 100644 index 00000000..9383b7c5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp new file mode 100644 index 00000000..a8006a02 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp new file mode 100644 index 00000000..0b94b76d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp new file mode 100644 index 00000000..980a87f3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp new file mode 100644 index 00000000..9130b02a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp new file mode 100644 index 00000000..3347ee45 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp new file mode 100644 index 00000000..7f753a73 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp new file mode 100644 index 00000000..e465685c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp new file mode 100644 index 00000000..5ad94c3f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.bminfo new file mode 100644 index 00000000..42d9ba4e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.png new file mode 100644 index 0000000000000000000000000000000000000000..389bc36f4e31bc1bb9c05b3a3015e55070488622 GIT binary patch literal 1890 zcmV-o2c7tdP)3pBF3ZzB9wR^p>&{~SKGPwy7!rxcKU)sKRnHuJNKM3XRovO zTKnt*|8tZ2yvsXEcb&629GTE~QtMeL_5MN6yG{&tc7#z?S=oH~YU_L7?A-AsO59}pL>4(>-l*(x9Ls^NlD3)!RnlH$LKLR z7n?2~YxDW8)08&YZ}j~}Gz_cBl7?whr^4lQ&e7}T^dI-{f2F48r#hPI8WI5A@a#jT z4J>*McNb2C!|A$DZ!mrBN*S?q-=5t^XgYjT0K;*Bs;abs3cFc`)S)8#&I~Mg;iXKg z%~tAmyNgRpHkZ>f{|x~Qr!jzz&Q3Hn{fmgAqN_^-IRmpFFLE0V#!X#;fPMF_((Sag z?UqB((b0kC=4RB@)qx0)NF)NQ)ryvu7Nn%4AQTFrpr8O(E?>cQlL=v39}aU5i|)4S zjW(NQC2e(xdVAd2{X;Ma0uybTmX;>^jT(c|8;sCNGE^Puf})}lF%5bhLcvh>){-qY zMAON@01{hmZ7sR6OSo32(}^daIv5PXZnujkkIS-*_V#ud3H zo;@p!O0i$_cZb6vSk0jPe!noz^9+!^5h3F?n;pK^YjC>VaJpPbO-&=9^3VWi2}pBu zbH!=7aVYqEJnsDDF$TZ{EZ?&i-&a(SEUySaBRn2FJYxpt%$XZYP}juK`{B&ELnp4XUxXDCCibU4A^B-3x{o5KKA90$9I+G zc;~IR@zL6K1X{j1fJBjS(qThp(seu(aV{{R^&2+A?n%XhWy>*|(hCc&Bch>`4r-+3 zk4?#=FF^j!qE=iQpKC^~aCa zpsKnWkIgC)z*#|Bf*c2}33*LU?l_8DG{=im@jVbz0IQ<7xERYJ7sCR z`l!)(=;4{DJFpe^Wav@!>~rv6IEpo&9co0_Jn?X2`*j8}Ab?qq&my-g30AcpCX7z(uGgB5d;;a2eE^Yd}}_aj)l^~i6UPrLWa3 zF8SDlV7&}gBm&^Q+} zp*E~u`UujkK`eNA87fLQ;pe)RbNv96Y}FK4Cy5^A zTa@aDw${eI>sP9oUO8hz;doRWJlW6}09UM8)SVdqKS{kB5mO}z`m?i>TGG*Wz@UT4 c-=)s|4-wgn#X0p+tpET307*qoM6N<$f@k1| + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3246cb27990c00ab14e0a79b8b2c608d21d23a GIT binary patch literal 2132 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 KMNUMnLSTZJq68@b literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.bminfo new file mode 100644 index 00000000..58eb5abe --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.png new file mode 100644 index 0000000000000000000000000000000000000000..64f39821a088edb8d2047c68ead29ae8fcaf6cf4 GIT binary patch literal 2101 zcmV-52+H?~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;js(W8VM(2c}6xK~z{r%~xw|n`adU3XHO)o{&IPLQG{9 z2%&0%35HnP!AJ`lm#ym(RaHB*0@FG)tsUyt3DI^d*_z(Fu1%Y)1iGwaExFloocNN9 zlQ`EpYZxnQ;@FPwb{r?ZB))zR&->ZVI*~MK`-hV}de8Sce$R6*?>TQi_5UVIE?lf0 zRcf?QHfo`2Y@S7fCJS{AjZIl-nsm@K>rk&$Vf*%Hy-yTxdXD?to!#!{<<4ql6K+)` z{+v2jCGFh3_YLm#)$EoxCyHuiV{W@!lVPh9mm1r!bN8OQuibm^O76KNyY=EkQC)v~ z1V(KR_#zo-JI&bjr+s}7Jh1wH?)$my_6v)m_BILF#~cXHq~VXG(LH3r?tQP1uK(4B zb=><4Sra!FMa^vx$Ye6G+wH6bAQI0Y5X;~LTLAkHoeUK{`P3Hfe^=Jb{Bm0aQmGWK z4G+WRcERp&U}SU*|FMk0{Gk=4C(a}u+gS7rZ7j>0np+fg^AL!~$Gqggb*5FcgEzVY)!$aWuSa`(J6c*=(8YIJtsd_WeE^5kgIGKb@`19U3AFKj;zk5C zIrD(u??)gI!1(w$g25nsKA-$7bn)55#Du(x&&6k6uNQ8&2X2oSPL~HB-#ErYVVMAb zQO6!b8$TfCCs5z;F#&_Y0F6c?uOiP44GnVM1;l#+;k9@c5fIPytOcd20XlsPX6W{G zB0Wo>_G1F`HYY{hbp-OBMTGZJd_4Gdz$I)>;> ziiNmH0`)vLc@a4kITmm_oy@OW*7K{&<&r%YtA}~F*&TB39fXy-#WqGb5TW(>tq>3% ziV7Fr3%#|qRrXj!LYx5c+|kiNoe^M-H0$)tzZ!;?HW*rs&=bb4Ubf~Grdb0uiyM{s2!xAc!EV-s5G|#zS!X0z3%;Ohprj zCM1YKM;i+eU=H&l8cQq|lY9L2B1xS5L?$C4O{CHpB-w04;Z3suqtgkP`_-r_FUC6+ zPoT$ChcFAVx?a67frje{i17CJ_sbz492}IJj7Wh1((f(P_cO1JG#(j z>_oe<377u18JTDs;=zBQ_WVZJtyfX6*4`WeQG}wvL@Gq1$rhel9=SIA7@TZ6V-6QA zR;Fsqg;5rsjn5Yn~aEn zSWUhCs4RO9-r-j<=_+CPMCi9-)vE8{>-T(<`Zjv>NBBQl34701aCqONJ+w9Fr9@H3 z`vB)jc8cXDSsr4j2#D4yFcnK86piEk!8Yh>ev61}FOtzWfmjiZZp4O1e~5?H+)w=v zyi)BzD$LVy^|R2t^Ie>Lt@x>&%}YpyI?9 zL_G%(@xIE?{f1wDoHeiormk(Mdi!@I@B-hz#K@Fj%DEPk!v#39uh6&m`G@}JKPZJ5 z7_^x+lrxrxFe)$^OJO3CKsTq|#dnWmsPhGcT{|JgUZnRlKD|};x?tHoY&>72Udj}_ zLIS0b5^rG2s=%P`8`!h!7bkLdXGKxVYZC_-Xh$Z(D9>V=i1Iya4z$mRq)~D7aik`X z(EA-oOcWv+`X$#5$b>h+^5O6C(a?5w#O)0K^GHTsL@M?QVu4>H=`X<1JwJ-&?9Phf zeARna@sDX8iPWhHRTj0XW# z+uu6!bE*7bp;U2jom5`>Q|WB!!&2FSpGak|JuICm`LT4mWQ|l-vRXQ||3T`jrPp__ fAKCxXy0!lW2S)8Uua%0<00000NkvXXu0mjf + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.png new file mode 100644 index 0000000000000000000000000000000000000000..d0096b78847c1fb5272a9729bbceadfec39dfa9d GIT binary patch literal 1964 zcmV;d2UGZoP)h8Gir0Pgs#dHw&2M9JLiRmx_pOh{piZ&_!xf3#P*{o6ty!Ws(Snm}G1-jgf>J zIx*NdriP{%nbg{PWJn!bktpaO;Bu}|BEl}a?D-#W-)*-U$LX~gzL{sg??3i?p7(jb z>u2C=Dp`4X4@ns)27%ciS1S?~Qkm4_^LbdGw+BFa+Rb?n|M}BT2k-sgeG7<>k6)~g zjC@D0*XJjtrZC3T6(CnH0G8vy<8p!weK0XT0s|Hc>v1{{$pLEG+S=S-ivStGH#O1G zrxFtr^+n~?uypMflquxAQVNU&K*R|EH!Qcn($mGTwgK?i#-Xpb_X@*^HvO@+_4a+n zu8gCfi6u*x;E78X;k*^?H|^;3vdE!;f|o90KR&fb(&{6IfONE>a4(Bg23{ zEPIyionRpaJ)We0Y;-SCp;p2ea+tepo%tHR>pubOb(17fFKnCB7mQg>nAZj zo(GnMa8zS!qjgmQ;uMICvPckwo4{xx=g^B!h3!@YuAD97) zObjw9LBdci0V#t70i-MgbPFW8Ym$AJK7U9$(Ah3^+H5<;Ay2ogEQwsJeRplfdYLYM z`L(5b?E)_+n!Y*(Ju0$V!~jpP3FLr4pLl$a4Ix~AchLJShhHyI5o8G?d{l_D`HL)z_I@$u?o=q%4hl}}<0>qQY`^*Tx>j8A{MGb9)wc4$Q?+oW5x#8`i7j{eS>x)aS)kk|zm)Gm{Y1InQhU@$x3y4swM>y8+=Q%$!VI5NS_w`E^GH{T+ z4vKV!L`>2&oFwu)JO@*BJk z`ztPp>(0;1=}TRj?DPvD7IBmW8u1EB16ds=5`mTmr-tm;$i<*?v*2nyel(}I>!O@i z#fCXeL$}?2GhywzRUKEauhcG#?fmWUP8cc{mUc(R=v@C0!GPF{FzXY*Mr*&)BY=WO zph*e-zx?4;_VmQ4+~x73N~dm~lLNUXQ-%VV_APliOv~@jjktBj77>Sh{*!sV>oU{q z&RGy6`%fVp0jRAB1M$VP?JK&@oiHz2v{2lAt^4D)mXE$0@))QyMJ2L~=$K2PW4d|= z;5!@F$Lkqeft);V{`H56b#(`fe>!zW-P7L#!((Io$nZEXQi8YX=WjgHdiX%O@j-*w zIyyY2k%-M9?}jxdLn5$vKJ$sq2JN~%(0SzwT<^F5*;%Wh%QD2GT>IJN4BtKD=B$!1 zwJTf#D%aF_!r=AJjT#Z8Y~J)Z+_=#@VfWgzkH7c9bqJOG`K<mRtPmO)nd!ZlX$r0W2`^eAUwC{W#O6KFW^h{uVQ0U6CQl0Q7AW?&lZ)G z#D<*n$^v83SLBXfY;Uf>L)9DblcqgbP_%s{VR_n`h{c9u1*UBs_4{7+z18qG9(tEZ z8{QUb>+79W)zv2|&E_q0+IA~*j7hr#GqLrJQmie`7_E6KD-q_a zR2CSLp3gT}uQnH=FnN(8FT=Nz-WoG&V(O#bqJZ?9jSViQ%v3{$g_{!jnD@e=)JNE|RxeI~oz|ou!h4`x!a12v* z;oA5IDKQd;XXMa7=9s*E)7~&{^T*S3A0Z&Z5jcks>;z}9?Yk@D`zx6#il-l6rm}5G z(@hv6q@{E#gRqQXAm{>z;rscF`)}p%#&dklrDq-y0000hbVXQnLvL_-a%pF1bO1wd yaCvfRXJ~XFsUR{iFgPtTFflP8NlrsgQd1yDZDL3ejv-F~0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3246cb27990c00ab14e0a79b8b2c608d21d23a GIT binary patch literal 2132 zcmV-a2&?yrP)N2bZe?^J zG%heMHvEiZ-v9sy(n&-?R9HvNS6OV7*A=D>m8z!d@K~hsltKy;0=X@DXc1B)^3sMl zEiQ}F&^A~x6%8eX)(R9y0;wUPPFmVPN)5(XNx;}1&x}3enX$*qc#J*X7i^C`o_*gp zd-kvA-dTbbn?QK!u|MDY|1-Ydx#v6goc~|<|7K5pa;I@oB$Y$dCWpAKy$Fdkht@pW zWI0G>3P{@(Xc38V?ARZi`+t4#kF?H)+;Wd^PdAEW_^OtrpMTfXXHQmE{gc-EZf?oP zGeM)MEx+7Xvw4FR4Q*XGS$R(Qy=R{JKCSswZs|ueL1W94Ik0H7z!k|rt{%bZGw%#O z_uNl^Nb7zhxBQozp!o?MFqtg~FQ?&-q|ra2N98+zTYTZgm-o`z-^@`w+yqTe;6Nsm zfyrc|OaLPB3_P(6ri>n(fB$lz?A71BLhFA!N3*s)kprnz3cC4u*z7i#EEX&*nlY<4 zW8}U87yofJQTnU03gY-qj%sxi2-k2R9*^_giN#`wL?SdbH9;nmp}xKz3Wb8-)9dx< z>(f9xG>l#v6&)&wTcv1dY{tjeYVgW$UeyuDvxKj4wpC2fEM7YT$z<|N5sgL>Pq29g z@pKl6WERV*4AS)fAAEQ@OB^MHuXDClY=r{@0|QX2)#&NzDUL%!Lwp<=8R7Rd8V&!R zQmI6DcQ-maJJCn?m(CZ=GqIuMJeLHcq>BzTf9}AV#YrH1z=6Wf zBasN77j_>A1d5-rd%<9kkMVc{DbhWjNFh$-%gHo%AWG~BlHidX5Ix`k)0*v&jfFYW zp6SkVp{uKl&-?oNNOL*quR?2^6lzUBMWPjhL!($Qm=Rr0Q6fH~11)rH3dS^L8Z%g} zR?^qb=Y`Q`v+Zn|Ea0P zmH%Ex^@o@7=BZOSa^wj1?b|2XvuDqmC0QUQ4GYE!ODq=SHU2@%W~uWNGMOwTT?VnG zWz^Nx;e+aG+^DO^^o$NhlNk&8Ma=5vF)=*@&CnRCFJHxhg9or{*RI};8#jI{&$+?` zk_Q}M;nixjJmjOJqrAv4378}*RTmGvno4d%Lj$UbTtZJrjMz*a(aUOu$4j~4<~cDw zbsxjy(`b>Y@Z!&Zfz6vY*W@`@*a`<&60!tiQm{gkOFTPoxs1p{^NGnR9`@Q>pYSB~ zdVCn2p63z;0)F^NA{RMgce-FO+o2u5kK4jlY}v9UyJ^#=ALV(AR&;=cm=zZd9Vu3X z3Okl7lsw^jDB+aUY;IEM-y_YZDD3)011Hs6oS2@c<41iV!ty5=g4-8>-9^q#&EekI zEKa?3nnmGSp0{YlButaOR@$M(LPv>UFq*igCbO0Abdg}TSb6BL-KfKy-augwP-2FO zID-DkMa&s<$90JcR45jQ(Moc-gBTc_!Ck5eJ9qBX=Xr}J5ak_6QgZdsQRA(ZcCH;B z!M#B(M#m@7*FS)f@d*rShv|r&$E{EAKu6B`0wMSVL4Hco=@f2v45R$$QT(OyZJd1b z6i!#3fx{o;5m59D;Dx<=Q+eK^6)RzaTByTK<<}P^{XEoQ+;DpQaJqf4u{n({!e7sx z#jVfoVs^m@7kxJzi6NOv^XR?)dIeOyn%sJHkRl1d6HZ}d#t2paFn;-R>FN%!-pv{b z+o?jSBE6}-(s*xh7@ghJg6|DMsp>)hz!1(+p}AUflP8`(5~sRPeIS*^yxxdAckc2g z6rn$XXp+bi^uU_L=&S{@&R&%5-~UAkg!DW>{Uq1L@|~;z)>IfGRM;7UM0ov1E#5l) zXWTb9pflL`11Wt4*RI!MDG7e=ro5Ia@?IPVL=B=E3T<@S#{Vt9lKYl&Wxxxg^^w>n56U4(EiBT8}U?Gjt z{TL+^ODKvgf=iUF-Y|au+EJ9gR0^ef5Hl7(#))if&O&;dxaMOE4)kcpiToleDk{`f zRaL8(;=20V2KHhqBu9j;1aS_{;&y^G2ayy_d9XJrVXK^8T;=4%YuNgOXYux#vpmWA zhNqw&o`k$xgO9F!j6aN>&>=A;-QgWOcCa_+{4?RYb^ilR8YDdQ_N~7F0000< KMNUMnLSTZJq68@b literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo new file mode 100644 index 00000000..11c45b38 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.png new file mode 100644 index 0000000000000000000000000000000000000000..e17db2714a08fc7ec9691e575f3094192aaa2380 GIT binary patch literal 917 zcmW+!KWJBB3_R&lD=GyC5ru$)ql$HMiM6Fxq!uaS;E>s+gQ)8vE)EWkE}DY42z3$X zAn4$r;vZa!WN~n^B2ErJ@9PKe<-L&Pa(CbT)s>~aGlymX>|MUFa7A%e&;IEtz0a(F zIjXSh=9Q&+Y`#DI6PUv4rL{#Rx$|%*P=93UY}K=O+inO04QVJt8{ja9JHkOnI?B-w z1T5fz2r!U=3Uom8jBp~T!APQr7FNO%o`?h!nW#i3P_Tj*qQF8Hs?Y^Atl^Dlu#t^w zbOUf3>v#+h&(Z1)*Oq4P=3!3rG%xcuSFO@I;ZFB-FZb4faEp5{{042^P@XL*%(xiqqNAw@gev%T889YbA>V+?tigESkI zYGwmFj5MaPjBUhVGZu=mj*tbSd6d2uW6KCKn86BmXr#JTsN6V77TKhnu%!5eQprqK zvXipMiXs`RD`v5ZU6g0m6!TDXGn>`yCdR!GJ-MwSc__Q&%y7|cXc0Chrd3(B$sGAG z1PUK8IpmQN!*7eBTExK4sEX>47~(C8Vlx&>R#C{~W>^k=BgdARRau<^7mh}%TZPKi zh&9&-(KB&eDVCRKM%kD`2FJa)WbVZUcGsF; + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.png new file mode 100644 index 0000000000000000000000000000000000000000..3da3354bbd6aecfa3851662a3409ab945ad343ad GIT binary patch literal 775 zcmV+i1Ni)jP)}kCo!1im$!`eWY!gbTTvE1l+W7)ekOrIQQOj?wpSg*ydsX zE8MyeI_>p3t}%nLnVID)!#BR&F4V^t9KIN8iAF+?Y9flLC_yt=`ao-wIPqk1;pgUF zuE0EJ;h+(0TYC4js8pJGu!I^9$QN$BCRn zSC{J6Ra;yLlo$7h!zviZ!N`1oPECf+!09PWeLMx7l=Tgj2t^nWs80qjA4F}#Q}{h{ zuaHV*QVbSJw*EqLJ`Tn>3KFC!u^9Q+l373=$YHsfDDWg?###zX?CgNIv&3#4^ZJ8+ zjf^6BQlbw%mkml;GEIk0k4zU{td`~}-^*&q5OhC%=U002ovPDHLk FV1nDZU=jcT literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo new file mode 100644 index 00000000..99d3480f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.png new file mode 100644 index 0000000000000000000000000000000000000000..2d42f7e5db339657c13325826aaa5774ebad4293 GIT binary patch literal 832 zcmV-G1Hb%|G3R?G|C?XdTEs`Rrh@hagP>VL&riCq{ zRDz%&qQWA2G1+9M7-U&7GnI`_Bjdeu-+$LdF*Ww>J~-!m-#P#H6Z})#4j!0S$kRg= z<$<jy(SdM($Lu46p2QVomP>_W-<2RBffnZ zQ}Z)g+tse~w~IMUapQ2gb9;8}XxhA~6$67KxcA^5-VVM-b#)DbH7k6Q$Y0%ipnXX( zhbwMs7lw95>l<*fyAL;STpwax=M*nVt9ePjBrARdt7_+GrzTH$(35j+Ap3mP)0&BR zA^};Jj>R9|>31mK_w?cY!xPDI@RBm?dh35J*bXIzX+aPra2!7|i+*vpcS@4w365bv zy~J3K56@}gLdWS%x@8K9;dhWk0gY8}pEVy{s)$PY*R1g)&9Mz2%6;{I%TG8441!LnmFf0R65@yerlx*OcwG}prBZp&n z^z;pq-z^lp^k&o?BK0kp%8nwWFrGce%j1uOq7V&!Y-A`Nu3hp8yEg-xs^N2*;``44 zsM(9k5QVLIcfb=^rkgJj$ZJkpU(f4ymaxr%pb!gG$ib>g1&hPqP+l&2Oct3L8v}`) zo0-)2&-ojR>v;RBWdvf3C2owcBo+)wv4Un=$y9dxm7dhVZ`?262q-?iI9^Bq0000< KMNUMnLSTY6LUyqL literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo new file mode 100644 index 00000000..0d905ad6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..86b55d76c720d4afc3b36deabd3feb8f86c4d360 GIT binary patch literal 684 zcmV;d0#p5oP)t#rQ4q#&Oko=q z_TR8bvmmJhT3HK96ca&2aYa!C9|%61fW?XuEJY9%1h>;p@$Ignh1!Yl_X7!JGdVMb zMMz>&2#XhkH;gd*J}_8g&+_J=zX0N2LjF_jXHMnS99ej + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.png new file mode 100644 index 0000000000000000000000000000000000000000..67d597d0bb2715772300c244539630405fd65d15 GIT binary patch literal 627 zcmV-(0*w8MP)t<9-AP12R5(wSk~?T(VGxB4l42pn zcCiavq}wJ7DH5g58%vusX~MGAvZUUSE|7!- zf@jZMuvinKUii7(x$}Q>=FDuU)_k;D?S@99DFZlBtJSCNcKdQogi2+xSbq5Zeq=Hk zSgqE3o6UBx7K8w&$K#px`+bzlWyIrg5OTLN#B4V25%O5C*C8jD%OMtvfwAkAAbP$2 zv%z4vNu^R~wOS~ZN=PIU0=T7;o&O*V?uc=VWRuC%4~0VLcDtxntEf~eaJgL1cDwy> z5%8VV8D)2A*yj8vzt8xf*Xt>l1?2U5#f!5=z>&k@c$Hp#J|9?lKt*c8cB$?`;-a9_ z=^z{qOB>ZUK1gqcLP1HAY64=cL?13?0^9{O8VzK#Ss0DR-;8g)2l*L|Miof0SVTIV zhO`g}1TY$n&}=p_7!1UR7s9{2I}OU;=J_QflN}KEWtnQVngSk=#|Q?4;=}oeHknM|cDrAkPUqL9fO!IEzt0Pg zqF_3mA`*#!v5S=f^F)r@N@HiT6I6Di)9F5~4Ur419%6e>d>=0Z`~yC9A&hAmzk>h( N002ovPDHLkV1kM11=|1s literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo new file mode 100644 index 00000000..4d56b1a2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9a016f3789e4e18ba7b1155d831f3575646a27 GIT binary patch literal 735 zcmV<50wDc~P)t-hEgGfxYqUA;{ENQ?88$DBQw2tisE9#dxnb?XT7U|DL+23Td zLzinhCE{!@hRBQ;U9(PDedRwb^_0Iz%ShBHFVm}9+0(>N=)$8}q*C^v73Xsa#HLil z<`vkFaNuM^st90q>)I@y@?WRNBd85mf)%J4O`zMVkQzp!zYk}Q;rQesM4u>-FI0mU z4ViU0a1y=Lf2$oM(=j9`g4h$bto`?nd7o~fE3G2+uoJy`1;LB}X21Re5y_Ty5G~=i z>ZKYa^DPM9R}i`_z}CS)IJy((9!C+I^Pz9Si%P#~g_UUcKf6&OlI^TOziUj}k(l?Q zJ1ZeH?m%*~4gHS}BKcZ{(^%EvF4Vnz;D66!$&xG RfnWdt002ovPDHLkV1m%8N>=~? literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo new file mode 100644 index 00000000..e81e2442 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.png new file mode 100644 index 0000000000000000000000000000000000000000..d388e06ff74962e8dce2ee900c97bcfb296c9a9f GIT binary patch literal 1555 zcmV+u2JHEXP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7<5HgbW?9;ba!ELWdKlNX>N2bPDNB8b}}wDGHXG#8~^|XZAnBy zR7gwhm3uJNX&lCXf3#cdDpRQA61kjQa;l%>xEz;oI!CTcVIoB;*4hxsCAlV-TuK+Y zEL%&(mTZzZa>?YZiq%CHr;}T3Zc`E~$Fug2-Pzg6l-;J8o!R%_ci#Ct-{<+x^Ag1W z=Oa15Y$WN{#hhB3GM3CoK`NF|==4*xTJ0PS8H0PImRqT_a0-*~t?+DN=8)1KT!csl zL6-@atd)&jDx*|N(c)y82)iZ(*mBmY-KqEs;R}qQp#57sLl5**=?|ERA5es77NJFp zRu%G|+y*m2tKI07j<9X?5t3`;ac{5@tYl-HY)M5>{ns$aXP|oc28^ThTgWI<{9ijE zl1;$V3YT#L3q>8KnE9_E1_N`u}H>!4pvBIuqEtfDO* zlK%4)VA4X08((E)vLES?zbhBbAV~E{rRl22mGCe83asNyhz2Y`a^(@oxJyFe%yO(M zpun|sGqgk2!=#xGyBapE;w(FD;@)E!Rm&;j)J(ZdP3}sPY$C;2Rk}4oOu?nWzE}RT zG@r##wdU*D2H#= zZm^1VA(lm8X~6=>r$|7~LmJw(R4@zIg6g*lTYD|w(r61tFrCi~C1u~9dp04qH0jft zI|DqZos{p>%v0vIy?KDA6CId=5F1Mjad+%CiU%)1JwXxN-s|w=d16zg5mpq6K%q<= zipQiN=ClYK?yQGt2?NvsMR*K5z^%yjJ>07@ak{{BW@OcZVosRK`howAghbo@^Mp8f%9!=aiRSjdR}!wBUb?hgSjXh zzk-Z`G^|TkL+v0JVXgjfX|l!oTZ+(c)&MPA8H=}n28SLFZ0lH1i&R0#OKq{x!|*5EDR^SXpqN5IdVdluzuAb|5iTM- z55VKGBMh5qV0Y+%aZv-}Uw#g^Q9C#`TY+{&6)~>^5InsXMj85iYXNhP%>S|p+VM1w zMG||EQK|~}CI@5*P9XE?ah&c>gLpq z33I9N#Y3E*^kCO*iUR{aNES{yh<)&Y|BMHsXLEHDSVKLP zilXUUL`?-_LykfJjt1w^Oq_sosRO?Q_y76ie;1`xB5A%dY57p-h##_%2CuFiSRJd> z&n__;jd~silPm*%9d5{kz{}F+drRIWDN4g$Ejytat;D}LlPBXg zYHO*TPV!FR=!XZsO(Cb1VJRC*;f2ivd>r7sZThc2_zkD+6M%OW#()3-002ovPDHLk FV1oOB$d>>B literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo new file mode 100644 index 00000000..73b0cfc7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.png new file mode 100644 index 0000000000000000000000000000000000000000..930eeff24b0b013675d0eb34fe3526b38dd45da8 GIT binary patch literal 916 zcmW+!&x?<75Pr0mwel+$gr+!HM^O%9cKdE?3!yE_WsXvEaBz|*PL7UTjFO`wf57CT z9BhkR>|x4@3pWSq>-p@b-gn-2nwe*w=lMLkba8q6-2OQL+gHv_t|;!-vvYPv?~}K` z99GzJ=gRUTUVS|91DL_3^Q%ira`WM4p#I3x*{GKve!C$IG^C*nZGgiZ?g$4R=_p4# z5U_v;BEUcfD$oJVGs20W1|x|gT3887cp?%^WTFzCK*0)Lhyn{)s6rReu!c9H!A3T! z(G9?Dtm832JV&cHTw9vCn}<2g)4a^vT(wH;ggf2Sz1&*^!YxKN!Wo|772e?@X&j|N zCq3y!Z@QRUj{ZnzdZt%;r%Mj2F*M3qp5;~E<pFSS!9!P!jj?>N+mN{ z$xg~1D~e>Ou9(Ftc2S;LQ_Mrn&1_b)n;7>(^yIdR748JXgY7qlFqbjOHVu-gWip^LkSw$g_n_)ThjT~EMR%LYxTsRu3ZWSt5 z)4#tnUyz*YvP?1E42t^Fx%TPAMES*)$-?U1&-d0A=3ujv_50IpYws@HxO{W{?d+k4 zM>k$Soxi@c=lQW6%m414JGkrC@ylDEtbIMSKL7pOnX@bJPyhP4@9LjtZ?-%>a!S*% MvUG9sYB3)C2U>D+Z~y=R literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo new file mode 100644 index 00000000..17001a6e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..4684ee4a046524773118f34193736725a47af279 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW? + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..440cddb03fba5c24c24b80b5828a0650c510858a GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4v7|ftIx;Y9?C1WI$O`0h7I;J! zGca%qfH31)<-MgqLG}_)Usv`UEd0E@rX}-Ndjf?dN?apKg7ec#$`gxH8440J^Gfvc zQcDy}^bGVYbByc!fNK7Fx;Tbt1SdN%`#9+E9`SNG!zFZp>&8q;om7<@_1zpB|9&qK zdegv_%n()>cx=1FFMAGe&kg^XFU?Wl6j`wDnAD-eXBj5#VLc-K^XH9!?Umf~nZ1=5 z{Y+i^{2ioHqBuJEld@MC{OkQFzL8;*;(=pLxr!5*qB)N=I`DiFnUSA`3o*Zc8p=uDqELqZ}lqM^pGW5+hO&+%-^wqeGhuJ2}VOAA^ayJo4sL + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.png new file mode 100644 index 0000000000000000000000000000000000000000..321dcb67d52e5f8e399954b150c699ac31276dfb GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g+j7N zkS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0x&hS|c)B=-RNQ)VZ6ogi z1s<1+`7JYA-aI_nGo#1xgi3%#s9D3g_+7uYs=xEg&V4p#bw|Ofz29$F*Bfl+{PA+- zs@XSvve$Awc;{|@jA6yfDTmGqP3KlxSG*6H85sWm aXJ+vFSa|29DQ7j%ZU#?RKbLh*2~7aE)>2gf literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.bminfo new file mode 100644 index 00000000..8917a4eb --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..15948d081356e1687dbc858d6be93dfa909d2d9e GIT binary patch literal 422 zcmV;X0a^ZuP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-EJ;K`RCwC#mOYNbFc3zcBP&ggkT%>S4VIEipl}5`gA!4MlqrG&b&h}p0vc|> z1)$^<{K#AFR%pqxamOcp)r{tiJtND)7(JKUatXwF{V==4hMk1aa|Xia>f}Q1(V4Hr4-xk zwp+k#HbZMozu$ja{9k~gC>W2&D5co%_wNmPI2YJ$aocO QNdN!<07*qoM6N<$f>{BoHvj+t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.bminfo new file mode 100644 index 00000000..3c6ea111 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b403cd6bceac8c9002c2471dd9a0bd437974d9 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?a{zP_>m+RotV>gTe~DWM4fODb9s literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.bminfo new file mode 100644 index 00000000..8cfdf671 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..77b169cbba06707f8f9deb832288683ae59129c7 GIT binary patch literal 437 zcmV;m0ZRUfP)lQO#`AlC-{G_#a&DvZLnR7`+1(q)BW&UZD z3DuZTND-E@gkp-34;g{yLBJ2?F} zbelc`LpbhauvHTYr1#zw_MF8rq+38;q$oe=FhBTR~VGeASs zi_&OlqGq;tPJQIF9%UoKtTfh_3AGZTly++C+U{lN>G9z1WZ;;!-ews($=+jV%r~*Q fNhG2frIh*wjKqbcPWxj}00000NkvXXu0mjf)#9(> literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.bminfo new file mode 100644 index 00000000..98b0bb84 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f7d3e14864ecfed8874713cf0dd644fbecead8 GIT binary patch literal 482 zcmV<80UiE{P)1yQE7 zL%Law_*0hAhUSE$PJJXBeK=zKU_-}@z@{Wq;my# zI1S5k6f=%hNL41-ef;le`gjCg{t(tv0=64XI3qa_djJeEft72 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..5494758c7d32464424bbc8f6e6044f0ae90e904f GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4v7|ftIx;Y9?C1WI$O`0h7I;J! zGcX7hfiPoSYV>2Epk#?_L`iUdT1k0gQ7S`0VrE{6US4X6f{C7io}sY`b95C@(KJsN z#}JL+8?6aRRQ)HhaeTU$2^85{@@a5FD^FjV9cD*xx7)rRnSO)W!A45ot>JZr;c+jY4~9waJ;c{2_qXD!y`qp V8B^m+<^f&E;OXk;vd$@?2>?SoSqcCE literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo new file mode 100644 index 00000000..7b43fcdf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..0ee7e0b45a38ea5ee7d032ebbc75930931ec15f8 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW? + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.png new file mode 100644 index 0000000000000000000000000000000000000000..8e291b3268ce1859b715f68af985251799db1260 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl}2EbxddW?m3j`PbEIc$D?_u}L-}pM$d euU(^bDekV#uIZb;D0KsEV(@hJb6Mw<&;$VYd{6ZN literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo new file mode 100644 index 00000000..9f3e9deb --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.png new file mode 100644 index 0000000000000000000000000000000000000000..447c12ce3c4430bc9dca58e8888fd94a05849cef GIT binary patch literal 2035 zcmVtQuq`1*k;(N>`)|ZRav)`X{Q2@{1hb|BR{bAf>MBKb z)e2$vRz*I6ydEjkt}VXaMTeC-tM*+O`>w*!^*;3Kb1-%kqU?=@rlld%R}#qWQ9+H% zOjf>q=hJAIbk_*;9tL`T3vFu|RgBte;ZW_I_W@z%JPII5;&w%7MNzQBK5)eeV^E(3 zPzPN{3Hq82LEn;vsuN3uwX5cCB9L^np(f<)Res!2n~5RK1?W2~U^86>Z1j=wL-aOg zpuZ^ttv4f(nWC&2KVeKDfyRy&lq4;FL1gurX9bJ?3SrJ*p!*EqxCB^F0`~LtQ6ZsJ z&^9IEQq?jcYJ+S)VWy7?Q1}X&XMVb(Mc-b+R8>OPRsy^EiVMbC#wZ=fH!-+=wEVJIb_mQLf>(m)szRp`T-#-@Wt&5`193s zxN-e=fKU#>ah?&{gswX)p{Y^gc%(x`Qxu6c8vIWQYVb4uWAkhmY)Nr*V#0a z(DB(ssBce3^QUu=5g**>;W=U6_h|!TlVjy^7c0XAQ~zng9Av3;Lea<;0$DQH5c3|u zh(J0`5nzra&^CU*pDiF5>RayUt(D?J`2uVX4?OZ8?{n+I1HJOn$V%Z?|7iQW(JO=hUn!19xDhn z@nKUpHZ?A&=*Hy;7&RxLYt3L2%x82?bF$rpd7gTipChsCnN?1pS+o5JnB#&m?IKVj z;SX>z&!Oi_Df;hv;QD(3*ttn@j=z86VSpsNwgk*C%~e<|{S`EE2DB|IILu6yDTN@b zsddzP`e*|pA~rgKL@+oAYl?Tlm{m;MJ_r`}r8*Dv)_FqL@HmRIgB@W{&kX07N&ha? z`1E-BhxLC|VW8^}fmGbL3bH1DDI zIei4%A&!qiU%flD_okrsPd-T8s`v|G{3*$IK}nLgD}Gj4vP7`z&OlEXU28J`_!L22 zbio)2V-zci=0z?-LPA|Bo8{y3mz6M#j1$I^O>rUilic5)K!2kr23n`0sz52c@`7(N z$4&WGAemy8`+=l@I!)tI40NV4IteUaZVBS#L+meqhcRyE#9Pr&Tlh~^cKIT!(2+)n zOc#t8RcjujR0xZHAE73}&^#5LH@%S&t7!9@F)4&V5RCiIrrDp+5>(Wxh@*i9`y0|F1c@2y^fsFxI1t&|A)eFmwb%-|Pvq zdKxa32V(Qf{zV)+b2uQk>|}ZUVE5Y`xSQ#UW!WC57dBF_QBkgvCI~F7A`6XcOT?hI z4At-FqrZn0XlGPxjEG%?I7TtL4yMuZE9bsvH=l%|MT()0X*BpOF-l#85u4?|^pdnR z+fNY8AHmQbL!ce>&yUf6Pt5&XK6v@ilutqXwI4(84{fsyy5<0;K!$-fUR&kRw<?@)grG%X9l&*>TdNNbulA*~ zR8NJuXF4=rdLw0O21+g1*1Uk*e2B2N;OdM%8dtEuOypHe^J zv4>KJ-Pa13yPxH%ms86);nT2ohr-gm1QyL=Sb7%0*0T_{-ubX;=CM)wq9`*+ShakH z_(b{Sa6n=^pR;zAcif&Bzng_wf%f7onNUI%?UxHhnR4M+Mu6}ZuZ7|@JwPZFl@|Cw z$5I1@qx%AcqpA0`H$ZrE58tZ-gf~<&zLyF4DKa7Hb$NYQ=u8nt^v`3%c}O&t_@ziJ zmg90t+;>J=;{S@i@u9?1$+sQ?M5qarJ0(85c#e`p5b+>6YA2H6TFFD-{~JXcwBEu~ R!}0(C002ovPDHLkV1lq*zh?jd literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo new file mode 100644 index 00000000..105028d4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..916712bc4799d36f163077dc3e2b6b674bc7d664 GIT binary patch literal 822 zcmV-61Ihe}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0007|Nkl6uwc^O|e>qs##dh3-{|yFzs(+A3lfE>sZRh*YxDqD1>m zdT#FR+}o?IX+AjI%b9P!nK^T2&ItdCR4O&sZnwX5yWKy`n$6}$E|+sq^Y~D&*YAmg zh}LK{9#iw)VKf?#rPJvf(P;FF)9ECyAV9ds4^*vISEzZ2Y&Lr_pU*D@gTZNXsUw+8 z9!GdqL?NuA0Jkm{i=Aw>TJPn9FhltIHk<7n>l+9JT;P0X{&KmzYPDKtnO_0SWD3Nm zoY(-fegpqk&Ob7QZv%awbvm7&a(}5*dWDFbB6$f|_M)6P4#UctBrhQzk6%_J|BoRn z7f4s`mOvQr9YjO>yGo^Uw^pm&#{XM{>z5i2_8Wt=^m@IHt@C_XAMJ;?X)5q|Jg51M#~`20X7d@MD8Nz~3G-au2eugsg)R_f z8Vovq;cy%!JuT>v=KQKg z#>QYLUbT@KX7Y%H{t8U$rkaLmlN)Gap~HPPnPiY-xAZodOlOIrfY<9if%JYM?*rS6 zL?Y*jqK*SUu!%&1ZDsm*E6+Xtn|BjHO@V#`oTr(uU6WAwK%147iBoDVP91hQ*Y=4jo zF~bD^f>hibZ@!vFvP07*qoM6N<$f+MeP Ai~s-t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo new file mode 100644 index 00000000..99179370 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.png new file mode 100644 index 0000000000000000000000000000000000000000..26f52465502235745612fff469724d31d9768d88 GIT binary patch literal 863 zcmV-l1EBngP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0008cNkloi@>X5q)Bt^ z@X?9ON)SZ`s?aFSe~*kL%xkeD<8CgJD|bmHL1K?K(EAE_rFk4Li?G^X0&BwoBuJGp z9vwwIx5ujx^*dps+VUVD3j)>XQU?+8xf((HRxA@^uV-W1kPF|0zQ=)`0wX-{WS6$sl^zBoLsXU7D=zi zhe|xx4kTeO_32mlVUBbYnAKK@^*leH)}Mibw9gK^8K8a-7HJQjtL)3$geB5Nha1^Q z=q<-n^%%19K&x87!<4+Eq=6h#_vgp;1WJ8QhXYQ-YH^Z^WU<%mtdUtz$h)WjanvGK{E` zL5*nXeP|<=N*5ij?8SVh_cQev%IKXOtduUsFuJe|7WKlig6l7=+vLJF7XU0PxpXuw zL7e?XHo-d666D5M$7$F%tS~4+>^U(nsyv&Wl0JgzXcO#ZCnS9YqVX|Pnl#QKR%@Tx z6%dV2`0#(ymNQ%1&SfD{(oaTH0piucNRm&rrSUKl`ReIb6A9r2f~V5Mt=wxv78B#U z(7$z{^+;NjR<7W6DdNNf<6a(;>vl^eK?2?5q`wOHrFk5!b|mpmWnSAq#pA>bOz(Pa pAg + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png new file mode 100644 index 0000000000000000000000000000000000000000..728814b1a7e6b12d6de56a9e5a89879c46d97bde GIT binary patch literal 1527 zcmVN2bPDNB8 zb~7$DE;u(kfL#Cp1$0S7K~z{r?U!#zS7#K*`~9-HEvvC*EVoHev=?JC9XN6f#5c+y z5hOB{G+O>iF|E{c_NFnkB6?+z4PVJ{5z&w#QS(n)nVF_pnr51%=D*aEF`V49^LgMA z7yGrj)VcrKzc@-&Isp7|#In`0-=8fB(L8c6Q3eix*|*&YeFh zjQ?T)xl|{g6%-UqKYjXi#xqk>Q_|JdC2ehOa_`YDyp$&FE6hT70A6%P_Cq;q_|V3PC0}M znBLxAnVg)Iv9U3E{`|Q-c%_OG`_O+`M^Hbo`LNzkjd-dCfPJJ2^S|o3m%n%9AHgj9w7(vuDo?6lOz5 zw%xjQ%RrTumWpO%k;3@RD^N^K%!WgU4oy;X2unvthk?QH1esM`U2VdK0aRC4Cs(dq z5uG;`6cqHO0=+(8P)k!%QhunctTdql20`PMp`js(i;E-8Wy_W=g4ns%-rg?d<>hke z(j_^6{=DqivEyfjSvMa*u3fu!h0z)a6)@I2=ms!gR9~VmGY|s<1ExM*zI@pLRaI5V z(W6J5h=_({RvAPjF>pbHl+h-$EN z#flXly-FEy>*`ZTUpxT}Q0Ru5Gdw(OfGiA01Z{!1-_Xz?gu1r2R!*KgDN#{T-~Qu1 zw|VnsUrpNq`V%byT@VU9WBV89zP`RQPzajPVvOMk5aGl2?%g}Se*O9{6za9PhR&_p zIe{SQRd@$5Ji<$C|3bhaAt46H&(F_-|4HVoGY9}l0MW#`VFGoAzp5Y92e&3rrr7_})eF|l{` z>eYcdf2k)Z(mb=cxY(>7?~q+Q_(d4*1H{YLtXX5A+-|oS$F&z>Y|UaP01$nSG7uRV zc|zyD>j}tPcY^JVTyYU|4E>;cA#7CoIgbH>yl>kZreZNnuysbAa&h+c=c)Jp>j zL$Ul*E%_Wgc+g=YFc>SkapT5}t9cmBlq2E7=wDQFUV_=}2VP)4Y0v%$BU|lw?qy_T zI12Nrr|P{@n`npKu=4;ijVepp+SH| + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.png new file mode 100644 index 0000000000000000000000000000000000000000..f99d325d6439aa1a3f62843915a2302b58030c3b GIT binary patch literal 8925 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1{8^9=llw!SkfJR9T^xl_H+M9WCij$ z3p^r=85sBuf-vKbiP>*~f>I@}5hcO-X(i=}MX3w{iJ5sNdVa1U3T4K6rh0}3249L6 zGB7Abdb&7QEZcZyUp@TlAY8A414{=(B20xuf`YMvL&E6| zkv2MVFw+^BnOqt;1TYOcdic?(L9l2T4WrR?G@3@80|ugb|FT) z5TjiPNC=FMv5k(gjn34JHjhV}$D_^T(dO}J^LTWcesn1Vp;a0M+CLmkHc#tG1TIBk N@O1TaS?83{1OPGZadQ9w literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.bminfo new file mode 100644 index 00000000..aadda574 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.png new file mode 100644 index 0000000000000000000000000000000000000000..edbb2deb562834d16c4aa874bfd23e9bd73c3906 GIT binary patch literal 3235 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i1B%QlYbpRzEa{HEjtmSN`?>!lvI6;> z1s;*b3=Dh+L6~vJ#O${~L8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3Q$0figD*u3 z85nrvJzX3_D&pQ=Hxy(r5MWvOL;TC9yhlmeTrMBB$uclFI65#eH1sq8&68wgWMD92 zVq#!OVPRolIKjcez%W5jfPq0lSplffZB*fC@Qfyk(X239QjC_5qqV|lr8(ME7;PYp gHVcP#t9jFJDgUK + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3a7699b4847c7a77703ff1aa29e62ca4f2e535aa GIT binary patch literal 7253 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 OPC2@ssQT6a`u_kH;QaUi literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo new file mode 100644 index 00000000..10173134 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3a7699b4847c7a77703ff1aa29e62ca4f2e535aa GIT binary patch literal 7253 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 OPC2@ssQT6a`u_kH;QaUi literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo new file mode 100644 index 00000000..3ffee873 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..031a50175b25e2f1852af9bc1b0543932e18dfef GIT binary patch literal 5660 zcmeI0`&&}!+Q&&VYaC^I9d*>oX;KW4 zT?{;v0{~dHY+RcT9`@@nLUUA5=t=X*Ee>1v?CA}q-Tr`1#-aStsB_3{zys=Fpb>qF zGNKb{IjPyOizpZp0kGb-dykQSvcZodFXm^%GR~m@6yTuOe;0rt(b=hKfE7cr#E7>3 z=Rr6;4S@ov25@d{lxKyd)p#Cj{i@p&FF~jX~;;_<{5CyVu`k3 zRXgbf&duUtmdOiC3x_pYTp>R9-n05v?fC2Oq$YqbD|<}<4!hladd7U`NpK05KM&ES z!JhexGLfg?PJzI%5bq?4j38J4Efw)AxRrUtX4b)>9hJyQ-XkUhj%-Jc7fReZ>hqsf zy<`6lPG3K0JzTw39FM1^vdhGCUfy}KZkbS$p5(11IwJdHW1FCd(fy;=W!@tebiBlBN45N$^uKS~b2F5fsHtn4 zj(=6}n>BF5jc1A(WTeNi(C>E_FW(7UANvglo*0Wr&6$Z_wT%NDEk+38TAR-hCg$h>uYkHUyl|9=I97_#HKFtyVhaQ_Z4R3*rvqR^iVd) zOUUBI_@zwQlNus?iSceU#V?i)-_1HgZs-cm=+A|NSCqbB=6o9@+yy)_;(y#JQFW2k zvmvd&_~EhLyWyBduf-d?sv`>SHEQ{&*&1#;nrAu5Ddt`QVPw@fiNzqhYHn;MVSb2BUNTWKIe?l1ukU(Esw5A5zWf6U3DGMv8+8J=Cp~5dB^r zQ^-t<3psNPi}S^1WMrtN-6=zTjdvKm{pCVh%5gM<#CM4wh|;7>Jjq7tB^~89-tmPC z+hA)W(`qZXlJ*(0i3Q-?uiw&GoXQwCN|^XA8R&{&Qua4V@0W@1?#D+=RKL5x<|}?& zo*S|*tA0Pdj99G{C%r4nu9x-ce^*#!`-?57vKP$mYg z4yI`2yZI)W`ffEZ!fC!PCy^DN$a19t{`Jd!GrlH(T;bJankiZ4MbsrZ#yNT-)}x(t zoB0dd?~w2KX@Hb?R$d5tl&zkxZ;)3IKo%PbRrx3T>PEQ@J}VWeDmS3ok}&LPgpL3g|M+ebIPLkiEFqn*aJer`uJ zg<uJlBYR-Zu|V<`?!FKkm=4Vl&~ z|0nC`l6i⩔C9;arH`0_PM1iD22))F2BOPHmZ&<5{oq>V{dE9kGvG)=abboluR@(fP!PBb2X{ANj+R4{>vZbY0YdNUWR{aJRaJ`J5bZIBlK#{k z3x^uw&{58GW>@EmA+c+pNJ%62>6HvJF zB**=G`6W%A;odT~PANQTcQy*Q#kj)Q>q_v+webtt+=aPS;KK4dtPc5ns<8C*#`MdH zbfx2>OK56hezN7xLv5PPVw23l=LdPO1|a&z+8uGr^Fz&Lnhg>EGmtFP!#gxGb}aR| zAwMntQH$nN#r!pnqHH#Qr3A!gpe6n0h%wr2FEPPrqpe@j0Dw!|jLysA%q88+AP}#T z8_C}7cUQ_~4@a*fo80Fu61=Z;!Ozw)yaq}tInSI+k!x^jp(q=Z1%bA@Hc7w6+azZx zo}_j)crb>_+yrg?@&|OJ<>3}4LC_)Cc z0z+Q!swMWgpb;Re_#~zlHgDw`jOeo#^$SSf+|DlD z@J<$ccF2de7WPAUvQ+3n3l>RmtV?LY8Q9|tg>{Tzb>BvSfkMW2ld5JB<2a`RObsi{ zI)2{w%TVywbhMm0Y+G`K76Upp?7E*-@_pV<80FmC_W=!|^g7ef%UI-f zHRP&#Wp^rN%&+OJBW}!Zr4#S=El+PYek`1RI;wBtOcKzK&#vg47NancX8&O#q2!G0^8qXED#UIF|SS7IRh#rl|@nV?a-} zPlgdx>Z0jJSNZwvNm+OK{XaQ~<^V>^T?drTKF~>w&Hqpk@u83Edl^@y4 zzA}OQ;$}VW7NdLNPvzJuS6SRhruUx5VlmT8;`j3&+=Qo&UP{a#*zIxL#D;dCqy*f$ zxkxiTJB#z*=+u7-o$s~dgFEW4rFVmL%H^j)>eUxaKk7DD4-b#lHy?-ppA?KVon10~pRCq4S3KVM Q>k9}v8FqqtEcw#^0;Rjt6951J literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.PNG b/mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5b9e9122b818241afe25164b1519f30b1473dc6d GIT binary patch literal 1169 zcmV;C1aA9@P)pF8gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^4L^m3s900a$5L_t(oNA1{0Xlzv+$MH!XhG+gL2nr%D+zGByCXN8nK$+d3jkVmX?-GEG{kzh5T4pSP-)L`FUY(Zf;Ke(`IL9 zg_fC_8SxO))6?RK%;WXmU>&-!juF_q@6qF@XJ==22>j2WCnqOgPfbk)*VfkV6c-oY zwYRrhS=Yci1J7UvIy*am?(gsaVr*>e<;28~$Va22qhICa<>{?KKcCIChG*R?UteDz_y#@% zTOS`Eoo;w|_ywZ2htKi+HT(#_4h;>lYH)CnWdj2PEW@$S<_rb{EA)E3iN3x*mi6}b zvZ|-2hZWu3-6p!ax>$x=4VHCubg&i-KC9Z=+E~%r+G^C&(xR!kxtW`qnv8HOW1^v< zffe=j^%m9D)v+b`Si`cKni^JBS68#Ds;Y`rm6esOs;H=774E25R#sNVveMF0mX(y0 zusK}7*<4Xk5i1G{3-1*a6tF5kKc8{&=iJ;}&dJH)?CfmL%F5!*%uLS6$l$cJG)_%T zWtRd4-evp$q*~45GyGVstLqO3PfrGk&+65k_>T@3}KQ2alQqCk|hY16o~d7;w1$FCIn0f z*a!hrdU`q`VnW1(hzS7`0wx4Z2$&EsAz+G$i6KNxh?o#CAz(tlgn$VF69Og#ObD0| zFd<+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control.bminfo new file mode 100644 index 00000000..814d6f91 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.bminfo new file mode 100644 index 00000000..1adb1322 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..ee29972062d81b87a21d41b7cd6379f932dea3ec GIT binary patch literal 1339 zcmV-B1;qM^P)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck0003k zX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHyu&tqU?a_05zrGr z_7{-)bTFHV18fe2Edyegq*j3JWpK_fs4U7%&nQtaw6wHTa7@WhN>vE1EG|jSEmrW% zOU^GU$S+DPNlgK&g}4t41R)ARA*KP;XrakKWdMo?2Ftm z#)SC@Gv-JzF!(QJU|{)!5HsmzU|68Tz`#EhA*N=?z#yQ{z_4!)0K&6R{?;bADF6Tf z32;bRa{vGf4*&oQ4*`<-1El}}02*{fSaefwW^{L9a%BKeVQFr3E>1;MAa*k@H7+qQ zF!XYv000A0Nkl?8tI70dhZm1 zh0rNF?5&HJejN6&bh14yv6s5mf3mB7d!NZMHH$Xf+4;h=@G|4f=&;Xcp7(uSX5Ue2 zJArEcHqlyg6^F zhx3NICEKn^+}>oRuu~3v?m+4H`?}NV=x(>Gd%YgRB@LiAbcg;67Ki7Sdhi=CZK*vu z;1CDZ>vi2|G<37sWL&WZ-~b-rBAM^m8n{I&oKz|mU8~g?9@79^01oNW1}7``v7uBd zX@<8okXrWj$(F6$pFl(BD z7Y3mb8XFPTGy`2gXoSW_#0?j?aSk>j2D+Kh2#wt%)1!edAT&Z__vnTT+&Bjt5d+;! zXoSY@k?GMu7Z4hu{i%B#^A2OfE)M*c6QL0rn~}?|Yjm1nE?e9d&h&WM&e-+m(`j@X z>)Ebdwe9ohG&+q=bH!;g?2O;j40D?^M}*T23<5`J2ElStFQFL-O$MfZP}7$B;zj}G zId;>iiPJu#5&2F*cO$49I)azoJz_LqJRaAHM1q6OJeV@U1$@BCxkqGNE|+yA64B9U z)ZXdF6~lAJSWQ?=O$r;N-n-m{^J0mI>#bVLUseZqo09^zK zy`ekw2M6#FhaCy9yW+Cz!s^c2e12FD)2LDG7S20z9Jsb@tvtTur$bM+9(S=vcKq+7 xK8$^z^b)5Vy1_JfbP0YZEMH6Xmnm^U>j#tC-(y!O_PziB002ovPDHLkV1lK8K`{UT literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.bminfo new file mode 100644 index 00000000..fcda2fbc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0fc06fde8ab3404bce97958f6d580b2f5c264e GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6PmUKs7M+SzC^Add=zXSOS$sR$z z3=Hi83=BO&3=DsP>_$5VhRD|pj6(bj3^vag7$nc_I;ms?RLfc55n0T@z|9N7jBnWw z=l}(!N?apKg7ec#$`gxH83GbB^GfvmTtgJfjP*?Q3=Isv6fFd*n&9c;7!u+BcE&-j z1_K`F?>DPnKL0wuY}QrICWV&^RyT3>#5y_0mrLlLUT7Lw%oa7?gO!_+ktLl@O1Ta JS?83{1OUfZZm9qO literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.bminfo new file mode 100644 index 00000000..96388729 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..8195ade13c6f419ba550a1c5a0d3b83b234f6eb1 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6PmUKs7M+SzC^Add=zXSOS$sR$z z3=Hi83=BO&3=DsP>_$5VhRD|pj6(bj3^vag7$nc_I;ms?RLfc55n0T@zzr1V=4YJr zlX)pnP^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`B;7id$psIj!l|N0t=k`yxaV$yt1M%ool??>BYP5-wD2R2k> zXWDzfbQMRRQS8cDtCmYXcs^^{H@g|D>{soYvPsG-=>uc3wb~EI-TSk4SXL+G9RIe{ zz|$b)iRgkX{mBJ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.png new file mode 100644 index 0000000000000000000000000000000000000000..6491895948f7483c0a8b6d4a2c48355d102153b4 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^X+W&S!3HE9UG++V6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNArNL1)$nQn3QCo@MwA5SrWI2G{*?fQQ^il*KBz35Zg z2FIOi&)dD)x9`dk$u}}=lbO%FZ%+Tj(k8)tjxnv~;Y|C+H_kY0d21d6xotpxO8nlj@>J?4{9xMZu;1mVQt%6)-x)kz L{an^LB{Ts5`4)_T literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.bminfo new file mode 100644 index 00000000..31d8ab64 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..4e12b89f07b7a738091f8a34cddd55221f3a8af5 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^X+W&S!3HE9UG++V6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNArNL1)$nQn3QCo@MwA5Sr;of>!A{)%2ggJAU{ohwX0+Fz7gYwxuB z6|n~xl)t$|u3!by^R&c5s&xMc>~3Imd(*iofE!5LgzBvL67_Fk86$Jg4dK*zopr0H67ds{jB1 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.bminfo new file mode 100644 index 00000000..efb1c713 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2cfab638a4865cdea70df9c02f929aede930e6c6 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^dO$44!3HFQ59`bVQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5yFr-o_>U`QKtZVz*NBqf{Irtt#G+J&fW*wa5hJyShH1A{L`3xTS# zJzX3_BHZ6z-pI?K$m1NiZJ%wPa#~Wu9G$>P&8Lbc?0?etNOWQE_M=&^B+s2IC~Mnn zJm+rfhks|(XDu!8k^IknJmh1v#j+0jrsS+2yC16hFMaYn#C5UAx*j*n7@Na4p_;V0 b`hPH-kM&bzaA?>Fw3fls)z4*}Q$iB}`3hEu literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.bminfo new file mode 100644 index 00000000..105078af --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.png new file mode 100644 index 0000000000000000000000000000000000000000..07b246375ed41f70f5dff01581fccb65a1fdb98d GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^xa~60+ z7BevL?EqoMEXS|WKtZVz*NBqf{Irtt#G+J&fW*wa5hJyShH1A{L`3xTR! zJzX3_BHZ7e+sMgaz;nbw|EG1ewmS0?F+Puiy;>*tlzjKvUNq~0$ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.png new file mode 100644 index 0000000000000000000000000000000000000000..def0a9fd6556b73c4523e680a3bbf199b76c45e2 GIT binary patch literal 9591 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 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.png new file mode 100644 index 0000000000000000000000000000000000000000..d03bd9a21986da78f3e57fa9a254f35339b0a49f GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^SwQT@!3HE%{26ZnDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jogmD(gH3!tP*AGGHKHUqKdq!Zu_%=xATcwqM9KLIwuL z08bakkczms7Z(aL8!#N%pf_{w=Flqtt~1#Q3pl@2zW;ltI{x45In7;@7B12BYMZo7 pL(*&3q7;qHQ31^GC_eX_>BHe*|9?-eP6NgOgQu&X%Q~loCIB53w?zN| literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.bminfo new file mode 100644 index 00000000..aa3cdc8d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..041dbbd5ab2608b3c266a75fae59c3570499af36 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^SwQT@!3HE%{26ZnDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4j9U#n@<@hxkC@59p8c`CQpH@a literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.bminfo new file mode 100644 index 00000000..8a8fc65f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.png new file mode 100644 index 0000000000000000000000000000000000000000..013ff99e7f237c61b0a68e3b8d6f5667bad79ac7 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^SwQT@!3HE%{26ZnDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jogmD(gH3!tP*AGGHKHUqKdq!Zu_%=xATcwqM9KLZGVS zo-U3d6>)DbZsct+U^uYB?&kd8p^1*MHxwr+|7_~9d|tQt+N0$1$B9?^B}EfMS^@># hTqOn>V@_aojNXG_|G0k@F+eXdc)I$ztaD0e0ss?bU?%_o literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.bminfo new file mode 100644 index 00000000..b2b3b676 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..859fc65ea16122b4149a9c40d7751b3dc8061a11 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^SwQT@!3HE%{26ZnDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jT_DUTy5H;)P*AGGHKHUqKdq!Zu_%=xATcwqM9KLZGUL zo-U3d6>)Db9^^a}Ai{d_{?^(X6HS*kNboRH<>Bwq9)>aXbpa2g?#Q|en zvRQHc@tqB6jleObcK0Q(8+d=EsGAHVfqS0lwyk((TrWo@MZK^>bP0l+XkK*92(m literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.bminfo new file mode 100644 index 00000000..b08c4555 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.png new file mode 100644 index 0000000000000000000000000000000000000000..56ccf12c70a285f9a75e42bf794a342d124e4fa6 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|}!2~3gwlY2eQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5J3yE*%kgV8P*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iJAxXur#Cfd`* zF(ktM?b(Hb3Boi!`QGranerl^<`^*mi@dwy}lMfeE+tY#emU=LHGbZ c%8ucgg;lDmWM)T;56~J0Pgg&ebxsLQ0QrhSo&W#< literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.bminfo new file mode 100644 index 00000000..4bed96bc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2634886f38111729126a036132252d6b228d984f GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^SwQT@!3HE%{26ZnDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4j-5|_({KpkDprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMo~fRpfx(xeg+NtL zJY5_^D&pQ=JIKl8DBybV>@Ax!CuZ;@q#jtjxoWfgmFD`{(T>K)KiAEfzbvw`i$zOl zg~tLVav59NtM1(MH(98AMQV*@tkc?qvo40OFpc>CUL8d8hNvvppLE`3iMNJF@hvCE tSy$z}7Bh)*hNuKgbZ{k;G4+K_{H|+Xma4~P-Ua%X!PC{xWt~$(697-hcg_F+ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.bminfo new file mode 100644 index 00000000..c9c810d4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..ffd9a5b23cfb08b753a0aa29392aac2fea37bf1b GIT binary patch literal 497 zcmeAS@N?(olHy`uVBq!ia0vp^SwQT@!3HE%{26ZnDVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jJs`|Dbx)BeP*AGGHKHUqKdq!Zu_%=xATcwqM9KLIwuL zTu&Frkczms*A8+XVh~}uSduGWmf|b6;7o1jJ)=g+8(eZV|2}GlzJG2gK4neok)}yo zCqx8n5)fuX42(;^D{J;e#eP{jYqsGbVDvC} My85}Sb4q9e0NVJpod5s; literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.bminfo new file mode 100644 index 00000000..59a4542d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.png new file mode 100644 index 0000000000000000000000000000000000000000..737db5251b68e25911acadb5d06e994fef505f58 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|}!3HGPUZ1uZNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevLZ3AJ(b0>B#1qw=(xJHx&=ckpFCl;kL6eMQmmFVTAmMEC$8R%K&7}xm$)kJ!_ zIEG|6zrAJ1$Y8+1?CA4o=ei)~GaK%F@Lnc7!K>(&MV?vT?B2&|SMToRVR#_-;oj*~ kpf;S~d&A3+4L2>`P5tF4{bky3&oy9`p00i_>zopr0DjRy3;+NC literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.bminfo new file mode 100644 index 00000000..09e9b242 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.png new file mode 100644 index 0000000000000000000000000000000000000000..13d2e776b79f6cd67ce13da38793075069a6d71c GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6PmUKs7M+SzC^Add=zXSOS$sR$z z3=Hi83=BO&3=DsP>_$5VhRD|pj6(bj3^vag7$nc_I;ms?RLfc55n0T@z|9B3j1K!A z0u5r2Dshb{3C>R|DNig)We7;j%q!9Ja}7}_GuAWJGc+*xQnV1LYL=&qV@QPi+Zlme z4GID-wq<`SY|cO6wP}vuwlqOfrLuREWqhAuP*L2&%oI~B!*WU0tw?o=H{dM%7 z?@70MH&4yTakUaQZTa=*-jXQ`wrX85af=W(b<#GD;aE4l;Hbpc{gVU^)q0!A&G2#l zD + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6d1d79a4c2e14f381a5958456a4ffbf96df5a3 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6PmUKs7M+SzC^Add=zXSOS$sR$z z3=Hi83=BO&3=DsP>_$5VhRD|pj6(bj3^vag7$nc_I;ms?RLfc55n0T@zztN(Ex@=| zd2cCDP^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`B;7id$psIPEE{-7)?r&!} zay2LjxR%~;wRW6+?y2OS#`Jn{(#cDb6)%ya$!;nq1DVsC%_q9|eLaJ6IYx~;ok+4Oc4b8gf-Jl*i| aGTtj0!oIVDsw{ynW$<+Mb6Mw<&;$Vc2YMU; literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.bminfo new file mode 100644 index 00000000..d72b853a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.png new file mode 100644 index 0000000000000000000000000000000000000000..aa874ef0dbb31a24b6ff9360414cbde2c866706e GIT binary patch literal 6207 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 dL*R=L_ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.png new file mode 100644 index 0000000000000000000000000000000000000000..52f64a99ba723166cb7157d39a245998b947ffde GIT binary patch literal 9744 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 eq~{-+M*StCZ?JPYj$v*90000 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..f4cdfa6b538e53144671ab8d8264e8c3d02e7d45 GIT binary patch literal 1212 zcmV;t1Vj6YP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000XP000XP0YJXtK>z>%8gxZibW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE-^4L z^m3s900az4L_t(&L+zQ#OB_)Uhs|=xA*YZ-{(=xf0s)mMqKF3x=)s8KE^fFXZiq@$ z5EnFq%0#0mE}6KDA{r$|4Q&WqauOm42m*qDARq`hD1n}yo`(j5A-18Rp}w}Zwy(av{&RD4^E;!__{>44 zd^^)>YikQEEiL^K6%}Qp2We?($j!|~R#p~bV`C8<9E_ZtoFiTcT9gO3W2FOVC3uf2 zDk|n9A|g;-U5$;64cKfp*vsMJA^Q6IkeHari(qMQZ-46m(^q#26egZCyu!jltgWrd zAS=Dt+1Wu|T^)P9jY3VCx)y6#8+rDVjEszvs;Vkjt=4P7zWmYn_&CDD!_m^xlB;11 z>X}|rQnEtNUxU6ppu4+U@^soMFVwSKgPK}fThl^9La?{DCj)+ZdMdqNTwKKL>@1d- zm%;H{DX#P2;^Jb^VY{S34C@$r#>*3{HU zUa#co+1c6r|2GX`P|wuH#>Nln>FF}>=IleS*Tc`x53a7RaCUaSc--9F5E>ea&dyHk z@9)dTc64;0prGJLy;*2T6Xn|Dly}RZZEkKNDJcmI_cHAB-|X>R2ytAum+9$g&d<*@ zgh4%1Kj|`2US2MPw!Xd&4mC=!`JKDFJEEhbF)}hD8@sf$gqWBZs5c7@X)?S|mof`` zVc=ZSySTV0Lg#qSRVL@(_F^`h1@NnU;Hy4S5%|{D7V`4);N|6|2;A4#SK1jXD=RYK z!^6YK%*+%Xt_0m&`{rIkLV^t1@$oSR2L}-s7Y9#I&kIlI1C--8d-u@L5Kc}`WMg$Y z9V#m;1@No9JceR1r+Alz3!d%mZS?o|OP#`ifB^XW`y(hQNa`5&_V$8zfxU1#86O|d zjV*(QBCC3)Lg#d+xgujt>EJxCGC315nM@cR9mUw#80O~Yz-gnBa7>S7w2& zG^XjhvE(85y(cCn{;8L8aBv`npoWin)6~?|V~t@@*Ia6`8ab8YUdc^_3m__XKvkwi zTu5AV?Wh2nOHECcikYjLQ%Z}$al5Rn3@IroXVfu#c};cVGxE&4RC!Kt=a9?x>-5Db zbVy-@(m*RUxn2p1Hy}Wl2-(zMv2wP-=^Y=0=dD}rATBH{fcqtMVS&iVNWO|Q@n!Q3 zREZ(y1PI`Lx-z38wD>3WRL + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..511818b996783a94e762bba64d48212813cc0615 GIT binary patch literal 954 zcmV;r14aCaP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000XQ000XQ0h0Lxr2qf`8gxZibW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE-^4L z^m3s900Rn1L_t(&L+zPMYg$nd$L(X$MOLMYeu7d;3tbfY6}oLVk!X`>L<5SCU^Fyl zqmfuKlEy|1G1i*+AYd1zWEoIO2wA0eV{BR^&{fq$Db~K6&Im$j4Onw~!jW^}ZsguO zGru#=o%0`=Oe{e_5D)|e0YRWo32ba^3`C<*btn`H1_FU}Fc^Fu4u>Bl5{c`58uHnM z6^q3l%+Aif8y+5R;sr*d5$tw5OiWCGTCIk`!9lRuY&F^l+>}da<7FRMMR=Dz9?x5) zQVD*)9}W)>q1kN0pQ~D}LOPuWolZxaP+wbHyWa=lvkd{u#0`QsGcyClV(~A?oqi~l zO0cxFL|Na&QsZXpF~`<0v#*-X<}dT}^U!ECx`O@tO_@vv6bc2buCCfS#=y>Xm&^4Y zFR0aO{|vkRKq{4@O#g}hl$-24=g?9l5;4lLz|PfYUJK04%}ENpP$+;(r2=+Q zaAYa^*aXyBNV#&koB)1O4!m5@Ne+B-a}z8Ui^%X!&~t%%7qnWflnD-AuNQnip8(zo z_*dV6Of@>%>Yt@pBnxOX8WOgm9933!u7X!~F6=QErTTD^rlJ`egYE6@JM5z1$kNB; zL)q(uYk+j`Y&LtUBtJerhB1U4db+T+v$J!BBMj_aMTs>*t=z%EK~K<+j*jTC1Cx`J zRWXq0a{urE^u}N?z~0_o$DzYXJ3)2Z?RJA+um6UM;jJ#siQ6zU&*RB6OUhw99`8yQ z$I{U%BRIJDoJ=Nf3yM7uz#)Pa^_2#78`R#>hp;W(*6Vf1=kqPS1P2yCwI4TWi-yfT zm=ce)2_V3WI5NXSsPhBrB0nhWhlYk)!{d>Wk>=FYR0XH_FHmi~Ca4Jlf`A|(2nYg# cz<(g{3)HFvO-K+2xc~qF07*qoM6N<$g8adri~s-t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.bminfo new file mode 100644 index 00000000..60f8a1e9 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.png new file mode 100644 index 0000000000000000000000000000000000000000..90a8199fb3131b3fa5f29287bb2fc6e2ee8920cf GIT binary patch literal 9346 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.bminfo new file mode 100644 index 00000000..53eabf68 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.png new file mode 100644 index 0000000000000000000000000000000000000000..87911197a000c01f45210930841ae729b0c25af6 GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEEa{HEjtmSN=Oy|$eh2aul0AZa z85r6HfGUI-82$p;jdlzSk*^sTh4>j5Y@RVNNS@nuQppIYmb1VkvY3H^n+Jp$?H!a( z00kvVTq84D`(Y^d#SBU|`(j>Eaj?;r@1p@9HK8 zk+$Eas+Zbtv0qs=O;<^!DMK`*n}ajz#i>@uON;*3=;c2!xYhXT+>(3U-Rvbc#rM)# z0++kFENzozdH#83-*M&2dG5bU2E zrDWgBl2hL*S|=&oc>jIP1fG4LckFz>K!>B|e)>@d0hTv&$}cK$EYhf&v^z#G=dF5% zFiWK4x@W;#xK8n(P1=}{ZRfgL;YN;GiG|FK?EQ|r7vv!<>r>dKm~&h0c;SshHjT_N z4^)7@x7>O=_f?5ifA^guHV$So517;yD|X*qaWjW2YOPr0w5g|MU19!ddRXAGEOQ#u z4wX13fdtXEL=i5Tl;u+t4y+5>8>ior;_j_hI;mi9oV>kNgzw^u3A0}^?48)Clagk8 f;IhNc1-JOa1k1Yf@3AEVW0=9y)z4*}Q$iB}gbnfc literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.bminfo new file mode 100644 index 00000000..794988a8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.png new file mode 100644 index 0000000000000000000000000000000000000000..c71ced5570d391a52d96c50f7803232955ea7bfc GIT binary patch literal 698 zcmV;r0!96aP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XO000XO0qqCCEC2ui7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9st3`s;mR9Hvtm|LqsK^TVjuR(G?6<6F*B&6g<;X+ADxS^co!himDubOGr^0ire z#+r5E;;A`&Gw-uj&CvQGqCmqAg2iG%)9I9Evl-3j^N)bNk%26CzTjz~-|y3CG@|i% z>?_Dbw%f-DSx2h~Y78jS`835VeQey2*MA}N>4R4SFIP$*D7pQl_d_Ytr+ zGLVH#)d5aYu-olEiUrwh)(WZvoTMP0f?Hq{I7vaSAP9T~bL9kpdrKDSK zyTXHV7IN0_!PRQz5LD#?a}VzK`zOJ};lS2< z!I&UW-y+@~SK}3 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.png new file mode 100644 index 0000000000000000000000000000000000000000..bee574ab02586c37fd1435126ec0d2d52b31613b GIT binary patch literal 943 zcmV;g15o^lP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XR000XR0j(pwbpQYW7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9su0ZBwbR9HvtnL%$7K@`W|XYk}FfQC?LOTj=qw4NYoC8UxNE+nPK-6fLj1H!obY9(rgzVNZ?eMX&lz3T1r%altK&wYUT9!AX8uc4l_oZ{O?=VW8o1 zWzoZ)MNfMsy}CB(m(zE8}D() zWBcNErBV^4Qc0A{WwE`zJrOWAVjz|s_q1bC(pLIighlt!h)(%@UKEQ(v9+}|RS*-g z;lQ)^!dClL?CET0G8vJ}DD%RK6g_q!G^Apc3XV0RYX0s_)S62tD ztgMJcA|Yb2n21KBVtILaB4BL9KrF;`I>4!CPzi6$+iW%~JNJo1A~V7104F?p5NzQt zR2R$=II-JH2)h<~!Q0JsptBL*nedQRp z;aV`6OezJP^d;BU)|6x1hHF8vxw-jA$-W%EYgO0&4K0FTZ*Na2iMrk0UF9`*L7N~r zJUko`JUBQ|_Pr}w1%Xoz*;Dly2kn9z8yf?;e|af}VYil6L13DuC=?3HwsCPSs9Fbc zj&%>mJ}%ZlcY;$`2i;Hcgx5hm&)@{tL47aDgw{cQg1{+-*{Hg38Xz_t-~uOhJH_VF^G2f~g2CW``T2RVu&^+dj3NeNA*Ry- zPI95{SoDP7mh*T#E&_poCx8p47hBQTU8Sx?C#b+(%+1Zs6ga?zv-d&n529Q>qqwYO zu&dqa{7qDb_P=K~5#6I>`;#r@q8@X)2YHcjNc_m4oR3V + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..76661daa8d0103fc51dada2e530304ebc9640f47 GIT binary patch literal 876 zcmV-y1C#uTP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XR000XR0j(pwbpQYW7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9stzDYzuR9HvtnLTgXKp4lL&(Nu#08qsHTLtO>ox+eJM3E2^5}?{f2!#PA2B<)3 zh199a(5(wgn+_SGPBc?gWog&;n}nC^^LHIe;G{t8fCorKGx{aQ2L*QMo&?QN`*o}lu9L0E|<3oVj?yic=p~H zYX6ckouf=9Bl7wDPJshlFy*=&pS(cE(b18x6TCLR@yzn*X>>do3`8=SoRdf-L_8iB z(P&geA`uY|haUy>jTnf9n2Qc@nkiJp6Z0{b%juPG357yCVbK9jSb7i~;x1$jb_tx= z?HvR^%PQCbb~}dPNLFYE;IHtS-EAn0^DD{|d#S6X)yEE5FF zg0ecBVyWQbLzB&BrFAyNQbABG7KN&+(z1tOxuDh9UyxtwZ7q2FPO=w#D7F`zsPvU4 z3jLH7+5sNH9~i+uvO+rmH+_n+4G{L9WC91ouV_v z5agl6R3CBy_NlLXy`KJ}gS&A$ozl*%0DU6{Vj(7C^T=JW+%t?GyzV4DQ=uvrr*S72 z#_=x7O5WAd^$NVsub1*L82Bp!=Qy4+jrp|diRdrkNrt)^*AKw}0000 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.png new file mode 100644 index 0000000000000000000000000000000000000000..0899568c55d760a95cd7955e6e265eaa1f60c5f9 GIT binary patch literal 628 zcmV-)0*n2LP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XO000XO0qqCCEC2ui7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9ss#z{m$R9Hvt*gdPlFcijdKaGm`T3?_}Itq#u5yZto7m*?e;vj+uii6+zT%JNg zqUS=ONt>a=AGAq(eih+fTOuN_V-KR!=|qRaf#Nu(wCWF=fHZsrtNl1 zyWK9+FcY)CJ=&WnifFZ3>E@bmf5cs!PkMk5*yhcp-rsNe5Xuh(-D zu8kR(g_)`WCJ9_Fm&s;Px7*Dn)c}(O;x4!o@(d;k42b_sUawaYw{Dsf;N^0WIPZXu$3w$;16(W?KQIxu-!v=0{eI8FMBF*1SpjY~ z8+tyUEDmw!m}Uitrqk)aNN&Gr)_|h>{hmNoEVs`z>p*lqpEV@6$22EEgrAWD$*r5_ z42bZ(yk4*DnrTjfHY$K=D}ZT}Ks<)%bUG9S0lP8FV1NZC37pU8)ND4X)oLY++=*F) z*)YHYlLWrsZ>rbpvPPpp?RGnpPZTpS3o}&%OcIE~Fr-?o=0&gwmjoi*MYUSZH5gQr z21IzOR4$iuNj%X~)82^iM;<>LaW|Dpg}s=KaBa-MEX@3Npq~SNMWsLc%ywHAhX7Fk O0000 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.png new file mode 100644 index 0000000000000000000000000000000000000000..488d254e7f5f9db8dd4e815cc727dc6d11542ca6 GIT binary patch literal 672 zcmV;R0$=@!P)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XN000XN0Y5+@$N&HU7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9ss@<~KNR9HvtnBU96P#nhnHAsH{Dz3PrNJzg+ z+UP(RI#mZaNx{)*q)ir-N~J(h9pEGdu?y~jAc2z<E6vu*s z%jF_PIf3i-%5LCOTnmE3;h;NBE*Fx42!h#crbz;;9CB8<6`l!#R;xv)(}~T1UC!aD z;5Uc_-4Y49JSbkM7t20000 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.png new file mode 100644 index 0000000000000000000000000000000000000000..7b43cc6b54ee8803d552c923158c7ca4beae4277 GIT binary patch literal 957 zcmV;u148_XP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XQ000XQ0h0Lxr2qf`7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9su4@pEpR9HvtnN3d`Q51&HZ|JJOK#lPOP-!q-Kv$SRjZhQf#zbg3GlUpPU?WY$ zD#3=tRntXx-LPrxf<@C6b=5T8wA=Qd2y%Pg3l~A}hyubanB)>0b`>EYAJaZJ>e!jYAIc9d=_tTz}D85h{xk1kw}ab)I{x; zXhm4`xTV&dQUn_t8zL5qjTJb^PV%%%IW{G}*1m zU#zaK3a{5IR#sNT^78V7fU!{nwNSIu0Zx29?%~=y-Q3)i2P>AAmc~M-1Dv>vA8>1V zi?h(ZVVuB;-O3Q$(;eUh*zFSptGdt$z-=Np2ou3U8LD6?6cYRU``Qfj%5@A)5P$5C zkB`OC(NSNy9YYb!WHPe2;=cK93@mtXaL_JXC=_l8^vZjo1k1YcHgG+uqMfKIw97{# zxV^otEe;@fTRsv&!!T^S15DGrk#(XQ(~iCbK_n89-BMDjIG!VqMx$L)*Yms5x1b`Q z&$mT&0*8l(+7q}d0}Fy|Hrv%rU9Kd@A_#VNcBCY*%OPi%+tC!{59hk@z666ok;~<@ z8R(Vkkb?M3q6?kCL~u}~VBMrIy3h%z4*t}IPM~hkZ`@}7=|U#}Hwad-4B>XWg~#L3 z9ym(i02esPDdr!Q_4ReJu&^K&7Z+uyd*diTZ8*RMPV82eH|k=sDCXwo+RV?-3zy3^ zl8&MVYN2MQ1DqNby(TQZqLn_MPt4BFIs&-x-Q~Py(F?Uc_!*KoiuFU)Ga!L z8`cNu;uU%EBEYKB)YQ~iXsu{T4|ej&6;_^N*+qWg33u`XHU{44nSz(DPN8}RkT)xOd3yc;y7ieFZ& f_R48(Z$$qAhGV%xYow+300000NkvXXu0mjfy9=}b literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.bminfo new file mode 100644 index 00000000..396f365e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..e1439f77df93a45896fe07b0d8ffda092de2d43b GIT binary patch literal 899 zcmV-}1AP36P)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XR000XR0j(pwbpQYW7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9st)k#D_R9HvtnN4dNK^VuM&(Kppfl5#lO|&RIn4TiUO0a@>@t~!7ln?ytL^dhtQMFDU@8=Yx_;&%k=qASL@3Zwz#Vc&A^X!=b72(w=?6*j!DzA!fb z#Sy`Jy*`z5o#5%|>71Mmf<0RVGnvei*aTI3tJor_>$*~Gf~t>IY!NIJ3ZmU^E9HQy zk5z0D1c!%*f0b0Vw~B3o6I!j76rGh-wX=%tf}mEb%}J`-Sj7=RfXB#*q$+L|Jk&cP z2(T_2jfOI2mB}-SBZ78tFSsg0oj%b}qi?F98{iTAiV^&&3c3Nf$tlJ*L?{#z;c!^l zaGk&bE^vYy1bgXpS_FeZvAw-5gQ||}0J-4+7dWxoB{q+mXJ==^@App$1Oj4bXJ;)V ziX6y=oU;yak{{FqgP!rbMBH@cDcj1rBiG(fcU( z2T|@`P)t@b*j4g)JR8B>(UKnQ6dh}(AP*&``hWx2r@qCPJRTcyH(sw-c`-Y{wUGn4 zkQ2FizAzasD&$G1#%I<2x0 Z{Q`#*hKj&IuNMFS002ovPDHLkV1h + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.png new file mode 100644 index 0000000000000000000000000000000000000000..06f066e82268e749c4a074a8263432f084598966 GIT binary patch literal 619 zcmV-x0+juUP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XO000XO0qqCCEC2ui7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9ssy-7qtR9Hvtm`@9WFc^pXG!;?y&jLHuF(^VJh%O%T5)nZV9U_RJ@ZfiT<0our zy@zs}dhqaoZtwPcCW3AiA}Ta&BRHK-wBPUPa5&KMcr*g$Mh3Dz^95fGo6Ux{+b#LN zpDD;h_NPzc#&ums5>-CDj-w4;Qf>uFrxm?(qv}hLukH>?pOM?+X!E(7|>;J*1AlU78?3iCMD)@Xp z$@4sR%&!;|gxqX4W9$Dxt01Jn{eEZb(x6RH$eqt;wk9oF1ce;7j$FSAS_H4xtCshT zLyMqEN0;F7h*fAz#;CG5Ck|?s#dGH zAWpR6ByI%w_+u-H)zoS=b}}7cZe$<}nV%lutD#s> + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4b0c51a4e3b7b916fedf36d43bb24a695ae75c GIT binary patch literal 671 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEEa{HEjtmSN=Oy|$eh2aul0AZa z85r6HfGUI-82$p;jdlzSk*^sTh4>j5Y@RVNNS@nuQppIYmb1VkvY3H^n+Jp$?H!a( z00kvVTq84D`(Y^d#SBU|{^{>Eaj?;r@1p?`g(B ziMGE|D)-}$cFDRrd6{u>Pnwc+m`RcQ|If!Ilsp$ea6i1xnkjGcBaq!ZRLE? zr97rx%nuZWcBbu*dkmuWV;lFRDi-#5wDFUoeC z$ne#&@~xU&b2)FjrpFBy`F{4RuS-4GhAqz8>h-i}rq@y-(e9(`8*aXE5Vs0tx9~i8 zFd<>Cj)n-=z6DkXJh_s@@37V}scW8?E5PF9xV@z*@8|rc-+$*ttreTySiY0bt!et{ z)^*oce`U^}^g2PMqv&AS?yKiY4aD}`%?o-|VUzXLYKKtB!C61&u+Vj_YK;{Qf&V=ES3Q->UXbk9=RC+wuMR z=b2|)Z@eto1TyT%>%8sB#frzDT1jv&l3<#A@`xe3AIKr?ha07O*`Th96XM#XDpGR# zzTlDMju<`npEdJrFM2;<5C{6uZ@Kf!l37MGdqj)Gs~C4Z1PlKD>vu9GXp+}bjoD|b zirgXoeGE11-@AZTTP(nJoH0>QW-fdui76?eiPEU>!C!Z=UMb#Y+4fd7_|9CoHZ y(ZFE8mY1|q!upLcC_-A#rSpH-B%q`5iP`-3N@0KQ{bzv*gu&C*&t;ucLK6TJFcnz< literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo new file mode 100644 index 00000000..f95e2225 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.png new file mode 100644 index 0000000000000000000000000000000000000000..46b3a9869d3c97f1e9112232cd63dbc960d5069d GIT binary patch literal 945 zcmV;i15W&jP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XQ000XQ0h0Lxr2qf`7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9su14%?dR9HvtnN3d`K^VuM&(Kpp0TAOW0u81I?FkaBL2E*|kN{10mlz_6UZ9Cu zFt#!2sp+A&Uc9vS;KB4nJ(v$ACval7HxT@!y1)yt+cpI2s?ZC-Z6Y`f6Tx9|C0H((MIw<B*xTFF%5@k@uoLt-&mETdf4L6qc5)|zjzlJt zQ3`hEsxb%QN>EkY!8A=NqPhw68HS-8a}akrgBu$geYqoxSzTXW?;Gnjh8D#6!NGwt zcf|Jh_q%c(h7!bacXwBrJ94UA2Umh941sJmJ1_@>avfX=Rw@+{i^Y@~xGmQKU+T35 zM~U;DWFqJm&kHt9`a(^EeyBn(z%%$AGx%E-dI7k}CB`@=u=hts~3bNkqh(bsp`^STdy&aZm + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9222249213ede94dd60aa17db11edd8be1021a GIT binary patch literal 888 zcmV-;1Bd*HP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XR000XR0j(pwbpQYW7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9st%1J~)R9Hvtna^t)K@`W|-_TS4f+!N>Z;PP^?J0s*#0tSn4qCdqA|Zl!5J4=8 zEkaJEhu(Ve(x!(TLQgiQP;zOn?SGP})A!x3*619fyQ>S$z=w6`z1{cOnK8*uXtCXB z^mL-p%ZW;-W0lUv3jG?X^plU5d_J79c)mK{n5(fy@3`K_TZNuaibUL}v(z~Fh!fu! z7Z0n|swkJsqEe}djwad>#RRp0;@Ot~({AD*EjolXlU!E5s?&n%CgMkoD#UnCNV8S!{r z?CTs&O5+K|3Q7L z(F^{zT*hKC;qiDJ0bDS>*owyPDvdNcLkFJ1?RIY!IKYKR@3X!?h<5XeVtOZoU8S9! zovmQ(Xz3p86rCuBAP*&``hWx2r@qE7f4oZKXi@7y2+5_*Voz + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.png new file mode 100644 index 0000000000000000000000000000000000000000..7b15cc4016d1b970465596cbf7b76470254afdae GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEEa{HEjtmSN=Oy|$eh2aul0AZa z85r6HfGUI-82$p;jdlzSk*^sTh4>j5Y@RVNNS@nuQppIYmb1VkvY3H^n-_!`-?AUj z0SZc#xJHx&=ckpFCl;kL6eMQmmFVTAmMEC$8R(h)=}ErNz`(e{)5S3)!u{oFele;j}_<60H zKx&ptNY)L<0vox^?YA%1?O%TQ;Rn$R(vl~t&WSH!n|4}t?e*+iIc7VXd{XRxtK_9^ zmedvNc4};XrJ`?hezDO+fu2Pj#~yD?F_D`1dRNMAGv0P*DIT_X#=R38by8OG6-;XS z{L@BHEMi(H$13JIOBBiu>S_pCcsj0Iz!TE63xfXGAH167>L{?Gc)wz>W6gv2->ZAx z|IRtPJVi_62}=x+R;$<<6V!D5_0+Y0TYOj!8~B{$^jj{x`&sN3*6p`-wU;%;SLVI7 z&fr|7e^gs-GUx5bqESuHKhK={&_VY)h+P@L`6>vEK9#c+@?3oX{iKQSHUs|$4B{4^ z2Va(W&Gl>FbvMuEr0yB!l*5dAKxg+KZ;o0!ZOPrd;Pux}KkZavjyw?}`#^=Y@v+5~ z95Zjmn3m}xEH_*iU(^t>SmDR%*buCG*nrD%PR2@=JQkp%{ + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.png new file mode 100644 index 0000000000000000000000000000000000000000..cd358fdd8fa51cbf2f9cd260d489f98e68f06633 GIT binary patch literal 702 zcmV;v0zv(WP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XO000XO0qqCCEC2ui7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9st5J^NqR9Hvtm|e>OK^TVLUxVcPt2p9}A|WLw3I|G3!U^SD4*cim?cRE(+4c0Y z?+&{M4z8Nnd1mfw2ZQ|~qCg{F1dGLjrqe0SW;2@4=WhXPBLi8^eCFXozu%|PXhh@j z_@f{b*-jr@r`2jvuh;VxIOtBQ(P%U%NZ17L_d8W86-BvRrc$Xyg+hVy`8?%vxwn9| zk%25^>JD&Hg57S{DrU0TtS{&ea8iP}3u%I%z)1;81wr5|=#{UaSBwh|1_PQ*CgRwC zFe+HD*XeS(ShU-1vBoV%1tE65UMdz7yVmJ+#2U946+E3zmK?wTq#Cyv6Wr}~HaT!S9>rQW7!h19m+Ga} z1=08Y9K?TFmU9ZSq_5}TUvdn_d^-p6!O$gHRPSRvFz29YzJgv+f_My(PNyl8$%uuY z1P*Y4lM-w;o0Lc-D49%JgVMxLfNVIx1x`xvcDqq57E{FIaZ069AK6i4APbqg1Duo~ zC>DzpjYb0jT-Zwq0^CI;67dx{=uS34fTv2KP{ + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..f2648e8984e1e10c4b81f746df50c78e4622e5c3 GIT binary patch literal 937 zcmV;a16KTrP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XR000XR0j(pwbpQYW7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9st`$mdM=7o#aLl2E7?5Q!m=vBW-OBtX4xQi4K1JbG|!ZG(S0?nTs2PUUR&6*BU+Umx;JcGM2dV9ydHP zJ9lffny6N*Vry$lY;SM70>(xR#4_WaUK^A)m3}8-(0x>*QL$JQ<#Jh6DwUann1~Gr zUcDEl+OK3TXLo&lT@(t1xdI2cV9BK%e|Us~TrMZP1V5Xfcx8F^4B9z9J{GI1s{>Y6 zRzxb55{X1Y#N%-hi^W_4VjKF~NGhE@y015M{f&yUIRy!4bjD%}u48 zB?$26l&bH)uq~KQr~fEtVM$K&(y&{{mSD5l91}#o)oKmItbC)

%68YzwMzcpr3D z(1m@_S;5hzR<)S~M+IHl2b~dgaUZlV=;}VmKk97>y1frtze%PRRPBSqQWn$hgSG|T z#`A(bojy`eqpzw;FTgYS1vB_VRp|xbCYKn;5aDoGL?RJo!&w3cxWEZ+5bUh2t%+bT zC_V%gf6%nNh?*EW{jkfRo&)uMK*_ zZ_9ZynG}IQz!Sg)%ZsCEoUT&Opc53}F8qG~T!8~zc=kTX^FgGmXOxtM3{I7NKHpq0 zPqd^5J0<#>DaccarA~7N&Z#f)^_0nE` zp+;3aoaUXJnb+HBV`Ud3`7!u8zZ@yUWZ+*B_>AitrZ!ksnTUP@BM!NTTRT)e00000 LNkvXXu0mjfW=ocz literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.bminfo new file mode 100644 index 00000000..28cdbfba --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..552783113d4c077a7a8c773d81c0f6ac8a43139a GIT binary patch literal 877 zcmV-z1CsoSP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XR000XR0j(pwbpQYW7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ z-v9stzez+vR9HvtnY(TpK@^71Go;EB7=*x>YXnLGsZ2o-B1nh|2~c(yA!G`>qA(GN zL`bP37wOW_Bu?SNN<~~*k(;DV-oyqb=btPD!$>yXHEh91pO&3DGw0ixT`mJHmTQBa zPYkL~bb3G5>2$2o?~zWw_;|tR!x@X`tMi??92@k3^L@I}=;fqL#C4LT!i`Tj@U7W- z*ladMtyUBDdR;UcjYk1vBL{MsdCzVP+BcQ{7h%v-G$N>2EQ)fuEGm`CT0u_ah6AtO z8&mCHF_&|g&1OZRP}nGNfD4vf%JGXAs7R;N!b$MG`HfeWXV0L6e!nl0$>fYgA|c}O zxQIrhA`*#+a5(%ZU~J?-F65kdfYU^y8lISs`FvgmPYH!W8)4o7PPp|TIKWk?I&2a+ zvD-TcepUrI0d_lp;84}*1mLz6w8B=fAqsoWG*%&M^4z!t&dNT?JbN4-XHQyV55CH) z`rZdig7Xi>U8GVee3RyD?5SQ1o;1A5;A626hfSX)mY(oSB0TB!am4WL74sd}J+#oo}WHMrRcUSoRe%Yw% zxDJpT4sd}JyPaY4sMYKBgxBkx;q&>#-rn9?W)wM)3pwW<;3VIuZwz|HPs>Ft784$i z#}U8<%ZsgO?5@(tpi@-fD%@`OMu7udc=o=?{XvxL*A$bL40e@vc6K&`xuYdL*eN>E zOhKMXEcHG&V4wP`)9J|XaJU+m%cUI54lp)yAQy5XH_zNT%RR&F!RuC$l^WG>bDCFj zZXR!=E!ABvoG-!m`PD)lCIf#(;5CjXOmnuZvJm|R*nWn(s#n)F00000NkvXXu0mjf Dssw$V literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo new file mode 100644 index 00000000..d659daa3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.png new file mode 100644 index 0000000000000000000000000000000000000000..356962436e89b987e2eed00f1c0af80098b3527f GIT binary patch literal 717 zcmV;;0y6!HP)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^4L^m3s900K!#L_t(YOVyUmOH@%9#vQd>xG=>JP()}K+16dT(M7A4(n4^h zGR`Jw(|i*|8132xE`y|v)F$cU9|#mI#ErNRB*q{YIhttodrt4kduQg_kXNAx9?!Y& z`<(YV=e-|eL$O#a!{sw(Sw_nZXAI}@UmB%Ssg_(WH%-mg@FDC}JXRy>TqqO@Q;eVC z5BLqHEfg<|;+62X}FmA!%Y1V0HugOktM6o{BFGAgXZ}J86QIj|j`*$PS)r!$Q*6)~s zxKC`Bd)8_)2j}7b{Jv<1ci>Zsj3<-Hi%wMoXc{Rv!ng*#iTIxQRmOx#9k>n|&A@G_ zHf+d@7Bo9$1&H^Me}PVqus7MnY(d>n7r}0i9T;T{+UB zlX#FnHexpu%uBY=v&8OiIkkZu-yptMp?im}%Oq7GA2RA>{s4Z5e~J+Q1V^OFWHSBC z-v;w=8}sYRM*+>Tk-)rz4m_~}o@(a@irvKIKJ(yD1Gb@k9jtxQ`+j + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.png new file mode 100644 index 0000000000000000000000000000000000000000..e91863d504090deca3359746d2e11f4462e24ac4 GIT binary patch literal 671 zcmV;Q0$}}#P)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^4L^m3s900J9HL_t(YOVyT7OB+!X#V3hPVkop!SGo}`mRf{T3gXHx@&yFx z!Vl0z3|hN0$s#MQP?~wO>9Q-uo$k7D5!Y^l=|V72kRYN-jEN=KLeX;{_vxF-Bn{0U z=z(97dH2jcnfGR1Vq9594P?4Zje;^pmnAd)%b;j98YqjtkLa0ZqBP#oAoK}UErUXS zgBvErwax^gM+mF}70{iaOVb$9ns+Y(9GcG)6@<9`prc@tm{*g`HX-?t0lA7Gml#_xmhJ`cVUW#L9?lq?>hWK78xqy8?@BsS|3p zpc#+@&L-EGO0{RvI-YAa39e>=>Wu`?eGmzsUjq7ewnm^_H2oj2VQ#q8Zm=^v<`%Ak z#~wt&@pEuS4IKPp^sy2M1J|`tLcKnSgs~}b2=t~laOa&QasX)5^LgGdE47{)Dp zq&L?oiwB$Wcs#)Nrh>n55IvOn)RQ*|t6O~V1H5AEUj=XDAQC;{xzEF|;rR*fg7(+O z#@W)6WQKfcA_~LiISrrsc}{bwWwjL43H3av2Y(=q+AZL0r68K2(5?Ug002ovPDHLk FV1jkICA$Cs literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.bminfo new file mode 100644 index 00000000..dcc3b808 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.png new file mode 100644 index 0000000000000000000000000000000000000000..321dcb67d52e5f8e399954b150c699ac31276dfb GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g+j7N zkS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0x&hS|c)B=-RNQ)VZ6ogi z1s<1+`7JYA-aI_nGo#1xgi3%#s9D3g_+7uYs=xEg&V4p#bw|Ofz29$F*Bfl+{PA+- zs@XSvve$Awc;{|@jA6yfDTmGqP3KlxSG*6H85sWm aXJ+vFSa|29DQ7j%ZU#?RKbLh*2~7aE)>2gf literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.bminfo new file mode 100644 index 00000000..5e1a3ccf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..15948d081356e1687dbc858d6be93dfa909d2d9e GIT binary patch literal 422 zcmV;X0a^ZuP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-EJ;K`RCwC#mOYNbFc3zcBP&ggkT%>S4VIEipl}5`gA!4MlqrG&b&h}p0vc|> z1)$^<{K#AFR%pqxamOcp)r{tiJtND)7(JKUatXwF{V==4hMk1aa|Xia>f}Q1(V4Hr4-xk zwp+k#HbZMozu$ja{9k~gC>W2&D5co%_wNmPI2YJ$aocO QNdN!<07*qoM6N<$f>{BoHvj+t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.bminfo new file mode 100644 index 00000000..2aa079d9 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4be55be869bcb0bae9bc9bc5c47fb84048c505 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g+j7N zkS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0x&hUudAc};RNQ)V%}|m- zk*E3M{NDnBqG#sVUrAtj_Nd)xE^}3|vVwl{q?rp>F|W9DR%hv+$WZt9f6FYDf*L38 zf4X+-ZMN*SzaB^!9~Na`;!tP+5)bSXx;msM$mDZZ=ko!r`2U}ofh|_y#@ri64+6Oi Mp00i_>zopr085ibxc~qF literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo new file mode 100644 index 00000000..57b04aec --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.png new file mode 100644 index 0000000000000000000000000000000000000000..1d68eaca0ccecb97788dd659c797737faea6b46a GIT binary patch literal 506 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&0c%M_K~y+TeNwv$!axx8zx<$J5vz#CM-Z%3 zh*(%?BSf$W`GSB7qF7mJYZGh~3-N_oIPM-?G+yGuuyeb!liVgL0I_H`n>e4(MC1Ds zk;8Ji#A2}^8a3#4yCTOyDRep=Y&ILT+ii@;WAu7GtX3;(MRgLfMLCqq$=#< zXf&dBR2vf4b;X?vg#s#-N@#F8olvjWv0kr5-?nW`CKDR@G3fXEVsZQZ9_e&Ca)tSP zE|$q>X(X2$8r<)9WV2bkUN0PvM?9ZT7Q}`$rikufI-O!L7;xinBpNWP)hc$o9ns`y zG#beUyfo7^i6%$6T;?S7iUDId9K!c~qH6Gy4Z~n6w92pqf6CcxM)VW>cABOk2m(F| woig|h$8k_B7GYVI_?`3lJhs~{wWJ2AHzC_AGw`_Hga7~l07*qoM6N<$f(_QxtpET3 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo new file mode 100644 index 00000000..afef9af4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf97dbb2387f63dbb158d0869c75031d30849ec GIT binary patch literal 1838 zcmV+}2hsS6P)N2bZe?^J zG%heMHD!e|WdHyMtVu*cR7gvumJ3i*R~p9y@+gAfQqcHZY$;t8B&KRvk&0^p>lT~^ zBf12z6dxduRbIs+DG%!-A_W1ZqAfwFAa4uXsz9hpcnE4xK}rme2O$UoA_NisJvU*d z(`l#c%>HNobI+Xno!|G}bIv{Y(q2a_7Hd{=a`Id*mphL#hr=-@-Lo`z{|{wmXD?05 z%-mO8T*j;B*Va_m)(Wcme8Ke_RX1|;^1nHDGRcR{X3ry`TAC5BFRk?R7d^}W`(x+r zhQ{&ioZRWCfB;1K`XbVIH)0|qQBYDkbyHCPf|vJQ!+*lUT*(+c&CoxWRsxs1jF(@0 zzT|4f)VF6+kr}cdf@4R}pLZ6+m(Sr@b`rWzeU7Sw{>TXQM$q2~egCITZhn^^3 zG={M8ZFnehi%V6h=Pz8av9Vb^gZrJdFXUfJy;NNKDlf<%y~htho*1OQDo#g3k@Oi9 z+z9l383I}C9!R5n&>gr9U7xzBuh|C!ai#Lw%fpE$;|Obx2KlSBI7um6a?2_v3u7W7 ziy;Y)hCEYcgjoW0~;3x>)sq07%14}G0ckd^{o>GvuR zpHDs_OdSoHXzwA8S=!|yVQIk?2oLOlB)}D8_XK!3*pHXbouZ6BYa;~gJYQ&Dl9E6&1dj5t!Qqtdud(6Xg;Z4y6>Nm z>~Vpjga;J?jQ7b2M1k=pK9pgecpB@EiJu=rrIcg5SBih--mcYo}%ws3C0ytyyzBTO!5Sy$8%8|I!{EQ)72W?Zr12=U5Tr^-BEJ8aoBTzpf_Rb&@8uX(La@6Qe0kt z2Q42nA>CyM8G8fd|F*+p$G6dOG@K;p#7O&njFL4OecY;PlZ5TzzUZ*lM;GG_blaPw z=i?Q)W&ak61b3$Pe9nm^3ErSNvDt*h&}e z@u3)@zz>?$rmDXm=#I|6>5v#2x{141>7wT!OVG@iivoTf_8f_epFe-TA#IhDlOdU+ z%8JGoJaAY7*;Xs`F!a;|Wh-bR!GYQ_XO1#B~vy|VwD@-L>t2t)z_=wAMu%R(K4%5RPj^->Toh~@nEH= zeVqlN$KRn`PJ=jfCkAidP*>X(=7qu4`WUyRVT@R@#spmn!59%XVX%P@X{ZMjWRaWV zBXI0Y1{|DR5((3EhOL&aDV@IDJK%u0GB*dJ<;G;1bRgm!KwFRp21r}QpkZRQ#wt4l zC^yj|J`s*5fo^!p)J4bUmEdLb;KuTNU|?*#mSSqq8c~@HSFc;=7k=c6fgf`(LA>c5 zNNjb{zm`;PKL;-zOfcnWiYb?cnB2M)6V8kAbb~1rWXFk|ZBUZKo8GzmQ_(^T3s1r_ znPL7$+J=UP^BByvVLQEjl)Usbv_KdLvAKV2o)8V@$4_4V5iDMEsF-3=9kw(ibgqcW~U)8XXgZCP5v9>8H?1PD|0| zw@J0{q9brS?p-`b7W4)_@!vcB{`&O-b8~ZQ*HG~P`K_jo*}s^Wn7n6cWyM{^VBX!u zW=lCozZ^=*%p6P3I6D>@6Fcb6Vo9uRZR;0XERE3B)n$+|bBSO3M}V3?ePVMXBcl~& zW@cN-Tj{r8!Gd7oAUd7yO)B1^r>D1^#Jo8Z`@1=R9Z`d*Cz?%6{i;w^Ql{EeAGK5d c1Wcp-0za7t5f@hz`v3p{07*qoM6N<$f)uP`lK=n! literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.bminfo new file mode 100644 index 00000000..f795252e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf97dbb2387f63dbb158d0869c75031d30849ec GIT binary patch literal 1838 zcmV+}2hsS6P)N2bZe?^J zG%heMHD!e|WdHyMtVu*cR7gvumJ3i*R~p9y@+gAfQqcHZY$;t8B&KRvk&0^p>lT~^ zBf12z6dxduRbIs+DG%!-A_W1ZqAfwFAa4uXsz9hpcnE4xK}rme2O$UoA_NisJvU*d z(`l#c%>HNobI+Xno!|G}bIv{Y(q2a_7Hd{=a`Id*mphL#hr=-@-Lo`z{|{wmXD?05 z%-mO8T*j;B*Va_m)(Wcme8Ke_RX1|;^1nHDGRcR{X3ry`TAC5BFRk?R7d^}W`(x+r zhQ{&ioZRWCfB;1K`XbVIH)0|qQBYDkbyHCPf|vJQ!+*lUT*(+c&CoxWRsxs1jF(@0 zzT|4f)VF6+kr}cdf@4R}pLZ6+m(Sr@b`rWzeU7Sw{>TXQM$q2~egCITZhn^^3 zG={M8ZFnehi%V6h=Pz8av9Vb^gZrJdFXUfJy;NNKDlf<%y~htho*1OQDo#g3k@Oi9 z+z9l383I}C9!R5n&>gr9U7xzBuh|C!ai#Lw%fpE$;|Obx2KlSBI7um6a?2_v3u7W7 ziy;Y)hCEYcgjoW0~;3x>)sq07%14}G0ckd^{o>GvuR zpHDs_OdSoHXzwA8S=!|yVQIk?2oLOlB)}D8_XK!3*pHXbouZ6BYa;~gJYQ&Dl9E6&1dj5t!Qqtdud(6Xg;Z4y6>Nm z>~Vpjga;J?jQ7b2M1k=pK9pgecpB@EiJu=rrIcg5SBih--mcYo}%ws3C0ytyyzBTO!5Sy$8%8|I!{EQ)72W?Zr12=U5Tr^-BEJ8aoBTzpf_Rb&@8uX(La@6Qe0kt z2Q42nA>CyM8G8fd|F*+p$G6dOG@K;p#7O&njFL4OecY;PlZ5TzzUZ*lM;GG_blaPw z=i?Q)W&ak61b3$Pe9nm^3ErSNvDt*h&}e z@u3)@zz>?$rmDXm=#I|6>5v#2x{141>7wT!OVG@iivoTf_8f_epFe-TA#IhDlOdU+ z%8JGoJaAY7*;Xs`F!a;|Wh-bR!GYQ_XO1#B~vy|VwD@-L>t2t)z_=wAMu%R(K4%5RPj^->Toh~@nEH= zeVqlN$KRn`PJ=jfCkAidP*>X(=7qu4`WUyRVT@R@#spmn!59%XVX%P@X{ZMjWRaWV zBXI0Y1{|DR5((3EhOL&aDV@IDJK%u0GB*dJ<;G;1bRgm!KwFRp21r}QpkZRQ#wt4l zC^yj|J`s*5fo^!p)J4bUmEdLb;KuTNU|?*#mSSqq8c~@HSFc;=7k=c6fgf`(LA>c5 zNNjb{zm`;PKL;-zOfcnWiYb?cnB2M)6V8kAbb~1rWXFk|ZBUZKo8GzmQ_(^T3s1r_ znPL7$+J=UP^BByvVLQEjl)Usbv_KdLvAKV2o)8V@$4_4V5iDMEsF-3=9kw(ibgqcW~U)8XXgZCP5v9>8H?1PD|0| zw@J0{q9brS?p-`b7W4)_@!vcB{`&O-b8~ZQ*HG~P`K_jo*}s^Wn7n6cWyM{^VBX!u zW=lCozZ^=*%p6P3I6D>@6Fcb6Vo9uRZR;0XERE3B)n$+|bBSO3M}V3?ePVMXBcl~& zW@cN-Tj{r8!Gd7oAUd7yO)B1^r>D1^#Jo8Z`@1=R9Z`d*Cz?%6{i;w^Ql{EeAGK5d c1Wcp-0za7t5f@hz`v3p{07*qoM6N<$f)uP`lK=n! literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.bminfo new file mode 100644 index 00000000..c53efc0f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6527d4f785ea6faddb39482ec7790c5725bf7e GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^5y|Bq>3h+V7JlDo+(fNTYaxGzLUOV;=R1P z!TV2s{QtGWkMH|BozpCl(^x$xLIcCiN6jAbX^DC%)PvN*OaH)0y= zzW2t}9jBR&7aH&|&stXbjK$ylu>s@E$9>srHlMs8| zzNYE;@h{tJ!W{lfy9VY>T&5ZAFg+qv^jm2;_pZeTJoQ}P=AL=~dy2U0N3kgvOJ)Dh cJyodhbY-q0^MgCbfg!=*>FVdQ&MBb@0ESDN=Kufz literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.bminfo new file mode 100644 index 00000000..d45a310f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6527d4f785ea6faddb39482ec7790c5725bf7e GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^5y|Bq>3h+V7JlDo+(fNTYaxGzLUOV;=R1P z!TV2s{QtGWkMH|BozpCl(^x$xLIcCiN6jAbX^DC%)PvN*OaH)0y= zzW2t}9jBR&7aH&|&stXbjK$ylu>s@E$9>srHlMs8| zzNYE;@h{tJ!W{lfy9VY>T&5ZAFg+qv^jm2;_pZeTJoQ}P=AL=~dy2U0N3kgvOJ)Dh cJyodhbY-q0^MgCbfg!=*>FVdQ&MBb@0ESDN=Kufz literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.bminfo new file mode 100644 index 00000000..d078c81d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc65e9d95e09116fbe9edd48055d9d358baff84 GIT binary patch literal 607 zcmeAS@N?(olHy`uVBq!ia0y~yVB!F>Z8(^KWY4Rs%YYPPage(c!@6@aFM%AEbVpxD z28NCO+M1MG8<*qQo_#Bsf2)MPZ!6KinzDe9kWy%c$g2={`yn%*n#ij*?ksyD}FUNHi`Xx&&;sD zhW~JV-sOw6R<9;sJy91^deOkf!TtNo75-t$zYDLr9{#`}dw2O_yU5-*$3w+=4>OmP z% + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc65e9d95e09116fbe9edd48055d9d358baff84 GIT binary patch literal 607 zcmeAS@N?(olHy`uVBq!ia0y~yVB!F>Z8(^KWY4Rs%YYPPage(c!@6@aFM%AEbVpxD z28NCO+M1MG8<*qQo_#Bsf2)MPZ!6KinzDe9kWy%c$g2={`yn%*n#ij*?ksyD}FUNHi`Xx&&;sD zhW~JV-sOw6R<9;sJy91^deOkf!TtNo75-t$zYDLr9{#`}dw2O_yU5-*$3w+=4>OmP z% + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.png new file mode 100644 index 0000000000000000000000000000000000000000..e014297f8401e66909a96badfbab69acfab3a142 GIT binary patch literal 1017 zcmVN2bZe?^J zG%heMHD!e|WdHyJcS%G+R7gv$R7q$PVH8f?iW@GtAPR1mx}g_EZ-Sr~!GkDXLB6n)^iA_#mbJRT2JRZV3wnR$lW_@Qaq;i{@C_`EJOShpa-?}Q{taJ$`z zMx$E|xA8+!6okSW+?KQWEYH9@|9l8{FC!?)h(sbV+{TB-#zxiQa8S-G@k}VdP&f~R z;Yq0HH(}Ur1^JX3?*E2lGP&Mjv7{wgL4ezjugX+FGU?JUPlISV4pob=AW!4*_#)%l z*g=2R$5LSDuOlrk1Y*m9&fCDttAIKO9j=wIRhA(b45GQYIb&QK8@ju@&)MyExT=GQ zmF>VlXfhDr2z>1UJ~soQ#ptIO1 zl$!Vk3XrA%&-4HYoA6Ggf?KXo6R4m$@wc?Jf}tKRD&;VKqf}| z+!1?UU?%v|Gmw=KWLc)U%&su#Mx(B-uF2tW!ouCcEB7)z4I=>}OMu>5Anhi7)`)#5 zl!sQwY6!Lp@H`LVuo-l@XlrZROUrCXRW)dqT^LlTu;0mfHH+z z`2dp1TF}%Fwzs#hF=&4v91hnd9y~xLcM

^K$=Q7b1Oe3V3>mzNh4#k?-s3r6}V{ zSenq#(4ZN#!>F&X-^`}6%2|zv_qOR1n?t}vqgm*<2(+9eea5KsfzTu0rL_Rtjf40^ zEtd`E|5*aRvHc<+{j+hi=mctNYV + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.png new file mode 100644 index 0000000000000000000000000000000000000000..e014297f8401e66909a96badfbab69acfab3a142 GIT binary patch literal 1017 zcmVN2bZe?^J zG%heMHD!e|WdHyJcS%G+R7gv$R7q$PVH8f?iW@GtAPR1mx}g_EZ-Sr~!GkDXLB6n)^iA_#mbJRT2JRZV3wnR$lW_@Qaq;i{@C_`EJOShpa-?}Q{taJ$`z zMx$E|xA8+!6okSW+?KQWEYH9@|9l8{FC!?)h(sbV+{TB-#zxiQa8S-G@k}VdP&f~R z;Yq0HH(}Ur1^JX3?*E2lGP&Mjv7{wgL4ezjugX+FGU?JUPlISV4pob=AW!4*_#)%l z*g=2R$5LSDuOlrk1Y*m9&fCDttAIKO9j=wIRhA(b45GQYIb&QK8@ju@&)MyExT=GQ zmF>VlXfhDr2z>1UJ~soQ#ptIO1 zl$!Vk3XrA%&-4HYoA6Ggf?KXo6R4m$@wc?Jf}tKRD&;VKqf}| z+!1?UU?%v|Gmw=KWLc)U%&su#Mx(B-uF2tW!ouCcEB7)z4I=>}OMu>5Anhi7)`)#5 zl!sQwY6!Lp@H`LVuo-l@XlrZROUrCXRW)dqT^LlTu;0mfHH+z z`2dp1TF}%Fwzs#hF=&4v91hnd9y~xLcM

^K$=Q7b1Oe3V3>mzNh4#k?-s3r6}V{ zSenq#(4ZN#!>F&X-^`}6%2|zv_qOR1n?t}vqgm*<2(+9eea5KsfzTu0rL_Rtjf40^ zEtd`E|5*aRvHc<+{j+hi=mctNYV + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9f1433884d9f503ecc2f11a4584d567caba4f1 GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNUJzz<|2<(XP*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iJAxXzD(fw9rk z#W5tq`RxtG;zI@!#|l}Jm>OrynBm~3Ai%*=-s_+sC_I@%g{jfyjPE;T1@-Tyzt-OP zT;w@hH9v|k?q|XG-P=5`{14)iy;54MXnlRb51to=JXt-Cy@o3`CS6#yO6bgU6jzigs?i0H8Jg+^Lv+BAXzT+spe45x7<2lO>wqHHAaw_Xl|Hb*8 zs}A1Dk8t0mqhY&DLd3dgagXk0!(aN`T^aceyKm2ZDiO&n?`6AX!Fhv^_m_TrAFxkj zr=yt3gpQXIUoV%v5Izxq?seahkF0(3xIwo3ZFrWimiKpkMxOjR&*iMSiyp?@Gda5` z`{vHY1-_QLFYdHYHvhIfqlT;I)b|rjTrJYgEwXOOHOckNrW$wqLB2O+Gd;H8n8X!{ pW~t7puXnr&GR#M`2Zt~!PC{xWt~$(698J#(_H`n literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo new file mode 100644 index 00000000..c0ec0cef --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..00db2939e289aaad5a361aded09a644adbc12911 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2QySkfJR9T^xl_H+M9WCij$3p^r= z85sBuf-vKbiP>*~f)XXJ5hcO-X(i=}MX3x0iJ5sNdU>fO3MP66dX_oHb$&oK%RF5i zLoEEaUQ`rnHV|OFV9U~^T)?5i{z6c|) + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..4f52a221c3b0d97d8ec69fb91ac7d9549382e908 GIT binary patch literal 486 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNeh_A~U=3CQ3QCl?MwA5Srq9OUp}@evMh68g!5wZ2f*dZXtc#dB9gLcvFix;>VO>9AyVmov zNt1ldxaZ3KEPpmT_j2g}J4A{yAS#ANwO|t~A^ejkYF_q@s6{Gh) z_15lfuj-BkXugze=C-}35za&w%PpDj5yMQ_*rg*gHtjE^OMtu;M2$HuvT z3b)i{$>U4bl*xZ$b1amC`%!s?q~lpsZ$pL3IJl-)eP_-VdVRSyYQtAxoG^I0`njxg HN@xNAYyHS~ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo new file mode 100644 index 00000000..4e97ebaa --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e0975702e3ed1874aa99d349e23ee554d1e553 GIT binary patch literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNJ`iSn<+SktP*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iJAxXzD(fpLnb zi(^QJ^V^%cL5BlGj(+Uw;$T_Cy<&w!3F8hI1wl~`7uH2gjSe9p3Nsuxu&8h+Fy<)k z&N_eciQ_$Yy)An`8GN2?a5nURrDyyl&)eIoKVD`%df(-oxzv_*uO)2`9S*QkH`IQ? zwe02dq|HrvqF*Y)F3et*X;;~z=J8x5jdib78_y-n&R({umm{=GIL~i5y7WI^{)egO zJkN0Ldf8w6La$V&Jb)LZ^y$9MP2LgT=NHCTO+0r>Ut1%&E%elcJ%6@t{C_wjz_NF% z)A9oT^#^pX$ey`u*%|4WpLnq2fUO4ed!YG|j=O)Sa@_jApRx9|^qK|NYY%)la^&i- zN#{IsOf(b~;vcSUjMlI%``0WP(l?#;sMnLlYWIy?^`|u(sHYwk?JB70t7p3BoPM}C zNt=yVVDq7@zXu9Kt@L+p6g{P{yv}dkrKca}+}N~$<3#lf^S+z>B_hw3tPz>Adh+a_ zi-0CX23YntSp^5AbG`C$oU6IQn6-4-f^#BQW?~A~HFZrdt7o|NdWZdW^{{MU95Q&i L`njxgN@xNAJ`v!| literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.bminfo new file mode 100644 index 00000000..8084e47a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..eaaf1867411a06869ff4d9a947430d7c2dc97dda GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNJ`iSn<+SktP*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iJAxXzD(fl<@b z#W5tq`R$F3zK0zo+8$1sBBB`-6tpCPxtfKGZNUN$$C->1B$|wpQ&_!uME5zz6n*=< zuj7aIeUJW}pX;i=o=#6S7p>7xK%3 s?zKmVikucebFVQLFBAvt;8`wz_3pphLT$aTfdR|l>FVdQ&MBb@0IiU$kpKVy literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.bminfo new file mode 100644 index 00000000..ef9593f7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..2e72ed7b4cf690ea74692911d7f124734c517d87 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2QySkfJR9T^xl_H+M9WCij$3p^r= z85sEXgD|57Yp@DXP@=>&q9iy!t)x7$D3zfgF*C13FE6!3!9>qM&oalj&JU=@(bL5- z#KOP#>_%P&0|6#Ox8(mzPcRgIY@IDEbhGS`Mh_Co+}-^?_tJTL$N literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.bminfo new file mode 100644 index 00000000..b6ce59d7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..39ce0c53a6c22ea1b9efba8708a308a6596c5cf8 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNJ`iSn<+SktP*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iJAxXzD(fpNB{ zi(^QJ^V=H>gAO~0v_9f&Ny3Jh#~ASiG~Wf4=OgOZj&2bT*gQ(&XBLInd0|AFo& zYfo9KdhRx#ZEdpmlfh@-n`PPmBFoHsR;{|_H77RUPtTJQE~z!<8G$0{8}v?pl3joO z1H<;Rc}w;z;IU}6obt6=+uA=U?t;6->;>lyHWsIz=RP$-|G5XCkLR75YRx$J zhh$!W$2Z@e_}AC9BV_8->h~47Y1bhBg>9Zg`+31V3v5nS?oxka%P0@f?uVR?TTLA{3~DNIJs6R`L1pM1 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae747f69d35c06afee52dc007cac764fe300465 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2QySkfJR9T^xl_H+M9WCij$3p^r= z85sBuf-vKbiP>*~f)XXJ5hcO-X(i=}MX3x0iJ5sNdU>fO3MP66dX_oHb$&oK%ROBj zLoEEaUR)@6$U%hVg051NP!P)`CJjbMMGFtVx;>Pj45wBj(^M2+zdl$!=7tfN< z@_l=+bm3x(x7PJzUt6uT`z(K?ZAtpca$Ux4+T0gsUVb)mzSq;X>3#ox(ejYLX6MC@ p%BQS25ioI~lCx`D7teH|IM$u=F%>EzsX!+)c)I$ztaD0e0s!dqZ|VR5 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.bminfo new file mode 100644 index 00000000..b97e0f9c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae747f69d35c06afee52dc007cac764fe300465 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2QySkfJR9T^xl_H+M9WCij$3p^r= z85sBuf-vKbiP>*~f)XXJ5hcO-X(i=}MX3x0iJ5sNdU>fO3MP66dX_oHb$&oK%ROBj zLoEEaUR)@6$U%hVg051NP!P)`CJjbMMGFtVx;>Pj45wBj(^M2+zdl$!=7tfN< z@_l=+bm3x(x7PJzUt6uT`z(K?ZAtpca$Ux4+T0gsUVb)mzSq;X>3#ox(ejYLX6MC@ p%BQS25ioI~lCx`D7teH|IM$u=F%>EzsX!+)c)I$ztaD0e0s!dqZ|VR5 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.bminfo new file mode 100644 index 00000000..f6aea828 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9e1014f050128537250ecaf5da821bbd7b060d GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2QySkfJR9T^xl_H+M9WCij$3p^r= z85sBufG}g$wN6f;phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYxmR8JSj z5DWk0AOHW`2TGj#@bmnHge{XEG8nOSCTd)nd+_Z$k^x0#LUdww0mO0B84RaYW};N7JOW=X2bl1umk=7jTsnD|3Bq? TR + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9e1014f050128537250ecaf5da821bbd7b060d GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2QySkfJR9T^xl_H+M9WCij$3p^r= z85sBufG}g$wN6f;phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYxmR8JSj z5DWk0AOHW`2TGj#@bmnHge{XEG8nOSCTd)nd+_Z$k^x0#LUdww0mO0B84RaYW};N7JOW=X2bl1umk=7jTsnD|3Bq? TR + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.png new file mode 100644 index 0000000000000000000000000000000000000000..f56c868845588f6b9086576bf5de48515cbc7148 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt`Po-U3d z7QJuJALMm#5Mg`x-X(kyPu0X1hXT2;I4f5l@_eMQ+grx>Q=joqdHeaBll<=pabMvO zv|Qk|He=)66VkKpg#ViDFkO3ok9cK;mUE}1aF==Gd>_7l%alT%-LqT{w1UCY)z4*} HQ$iB}PwzTS literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo new file mode 100644 index 00000000..e5c0aed2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..4050a1188acc166dc89780c9b050f981626227a0 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ=4@yqg0@pN>3NZ5DWigi9ZSo3JZ)33_g?w1O(`WbW|{03E{r-N4_iGv9*&qW7dD> zpP>PohZt5Y5JnC`HYgSpFunOTP+()hy7vjLiq7y_6B + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e82b69c7aa7a65a974322a1ee375d2f05721b7 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ=4@yqg0@p5>FS$5DWigi8%@y8X9H>1|Lct92`_bI!qX@{Nd{O-)wMUL(~d`j|?kT za-}icY-2DjQ

p(i))oh%q3T-IPbu)r{rET!$4Rg$yeeO5S8hIK$$wl!JLen^4MG xhdZoOm3TBR`4pNknFh|8py7S0goTHP!E|>lbLBg`e?a>gJYD@<);T3K0RT%1O;rE@ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo new file mode 100644 index 00000000..ba0dd492 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac5721e5c2335f24929feaabab0f299b7722844 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt`so-U3d z7QM*{609byIXpZ(uNTgk8* + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.png new file mode 100644 index 0000000000000000000000000000000000000000..afb3b6a33fe82f05addabdbcccc710cf7f99009c GIT binary patch literal 464 zcmV;>0WbcEP)Ce@N&wD#a9+>j;C~&w zCgxRZ0XhdkFki$0mVhVMb!Y!XfE>)jsN^FI!_i6w5Yz#0LDrL==e=?7suWlR9;8*o z9lkFs6W~BwCdgCZ$@;Yb>{EJB9ca^YmL2itfRRE01h_($r&?P|0X~OvceacI%$&hX zwIE|8Nzx1d_dEfXT9-;X%n0)%>}x7h{-a&m)sd`U)n)wNqap!CjG|}=wp-c}um$@v z1M3@34%RnT0$K$xuD*~kskMKghK7H|Y#-zXsVesH!;7fQ7*0 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.bminfo new file mode 100644 index 00000000..99d62a23 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8aac3aa89703de6bf427252691f6def4ee9cff GIT binary patch literal 593 zcmV-X0N2bPDNB8 zb~7$DE-^4L^m3s900GTOL_t(YOV!mmO9Md^!0|-!071|os6j1~!otFnkVHfjk4oEE z2_onx5IjId5DUd52zF{AScsM2fy8)Y?YHnV*!X|TTZqYIcdWz*KX%^i%)H&r3<>=I z$Y!%+xJBN>9U?mAcfrIL)N5)C?tkDZlgTt{mwhlXug$U{W01fVs3N>|q_7_{5Oj_6`R67U0LNVq6@NbpjutVT!6j^-mne%EMmj5y@OYT-Nj4=4iMAy*TLKgY`KZ4z!{p+f@c|n zdo*AP@^M~V(S#n&LvZGDl?Rc}=sXNp>jK?)gzOI48Bw^0PQqD) zYX`m%(%iSeF{0XThwSfG$qNo$jCQ5;Nstd{(`jShO-uzwAm4Z##RtjHBy#9?7b__s zAp@`q(}B9gxweZB+6uaKneqj^f;lC-t86e({tl;Ldfjs5>EpVDcQCLG%P4$JzxFgg fu&(f@5eR$(P{b3`021Pi00000NkvXXu0mjfB`5=B literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.bminfo new file mode 100644 index 00000000..f2b7e759 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa3c797c7dd009f2b8146e5775111f32608cba0 GIT binary patch literal 1353 zcmV-P1-AN$P)0D#Tbo7janHBQmU0ot5BtYf&tVpU4h^wMkO{CANtayZTezrmDE-cm0FPAEAs`V zO|>>gQ#B^F=|hLK4^>vb1OIJBi~8hFPVUYBpR?B5Ywvx2^TH#EC*%aq;wN>Tjs->t%{(bvYpPw(E+pVmA{RDw${Uan691wR-@7}72 zic(opdT5(&v_z+(Z=1-uH?=R-nNx_r4#Em@+^7B1BB1q*a+>QudD%tHshT~S6#-@fu% z;LJ>2N=uVBIa%JsMAalD=+f4$%Et;+dn|Z9;NI|XRRssDV#NxT1O7R{Cuhyl$(b{i z+oOjN?Q!6ZS&OQdIhe-5>YY2~+rC|2Z`&qcT%2k)Z&p34COTSK9L#jNR1+4aT5R!R zOVzSvIy+~MPEVe!QxhhrfcFR~0}T6n)RH zAMj$pQC&n&J|DOZOMsW|3_LxDzn4*Kfp5`%ccx9#ZPrbS+A?&gj<6@)n8K{*xK`T3 z4v}rey$-mw;hF<}kHY>ud$xX|YwpvMw|Vw0B*pljMqB1Ri^TeGCo~)IQijVG@*AxA z0ZZ;qpRW55{62ra{-Wo9oi|TEL2`>st_&HXcOlscNq$!(7M$^Jx21%kszO-84Zs3EwPlANY^FI>q^Ndtpe8{9)_2mrDSEOBw;uc!6 zj&3RHXhlyd>nQ(kQuw^lTp1H1*Ydg@h8))nk8<;r1yn*(pmtH#8mPVdwA zpDx literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.bminfo new file mode 100644 index 00000000..f476f685 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.png new file mode 100644 index 0000000000000000000000000000000000000000..5570b563c6cc2cdbc95175c57d0b1bba963048e5 GIT binary patch literal 498 zcmVprW9)Xd?&_JHbXvm5Zrt&Lo#KDKrU)Mg9Rn3!_*m zf@Mkz?G>~W;%{IUw#Z%XVnp!Zal5l`=Iu;oj>KaB;>qXpy_rm=#5tSI&NkwJCGeO^r6zwxKsdbn$>bxK%MG?vfS?Y%IbDyW)9F|F z?OG|Y0B*EYf=l*iEfbK3vJ4B)KsxKk0@z3Gpf)JeQ$0KJX23v00Ro(J%M+_Cp@7e! z&d#Q5X1w(6o!bz%A>0Y+c}({T+C~wycd&2_;~N zg+ig509WkyIbYPXBQPbw4TrO}rUcB|=9_iBj*2YcI8HmZYkTN;C#7p-Mhu7bSR?_` zf7b3Of&=#RI&?|apRVinvA@uA6|wI%6p#-Z1lNeE;JDS=LvnKoZv8&f@Fr@tTAK<~ zeFaFhQ*I6^?l)+Dkn%}(_hj^{`nt@Z_^AbrK5B-DF6Tf07*qoM6N<$f@c%v9smFU literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.bminfo new file mode 100644 index 00000000..5b97b96e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.png new file mode 100644 index 0000000000000000000000000000000000000000..14f78cff60f45ccc431f3ac1f55420bf9de387ac GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fvRqJx;Tb-cqdEzO8E5T{Kp}GuNX)T+S8!I?Fdh;wek{Ob87 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7b241e5738be21921484961c58961d769872c8 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fvO&Ox;Tb-c)y)u&3DK^z@?Ub2V+c=mco(32^ue*f|SJ1EpMMUsjq9w zop!mj0}?t0u!b|u|wn^Lsq_HWMF;gQo~53J){dPPp= z%e1;vpKYFT%6Hz_*0{h}{p#&IM}>E>EJ$xVJm+{`U8@VbS_ zkEIX(sy^Po(Z%Cvi2srgyOWzPYBx9)9-3Igu%6@fb( LtDnm{r-UW|J3o+1 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.bminfo new file mode 100644 index 00000000..5466c6a4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.png new file mode 100644 index 0000000000000000000000000000000000000000..40568d7946fabea011d8f0cfa6b9e876a9c04456 GIT binary patch literal 437 zcmV;m0ZRUfP)bmhX^_i-1~&ld79jrJ-`}rE zH4A_SvjZ)$0mg#^2m|#j0MR5{0CbfA5Zl2F!i7N=04*)RB@dLd2Vxl%3xF;(1+rg& zf&dg0lwhD4jX-=5h?9{mSUYvS$z-^*}ldT(lEY7GWuy8b~RNjsq3Dlj!|DeSLjOL|FjTqz2SbLqa(N f^1kDsX;c6Jhk`>>q2<*)00000NkvXXu0mjf1(Ktz literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.bminfo new file mode 100644 index 00000000..7eebd1e8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.png new file mode 100644 index 0000000000000000000000000000000000000000..f7be1ef1f3f18ced34d1b2350a4a4a909ff4bd53 GIT binary patch literal 455 zcmV;&0XY7NP)!aVQEx_O;N!F@3z$Wk>1i|v32#|w*3Oo5p({!d)0VMUnTbJ+oFbuzVc5Mo508e5S zagYC-)&$sK%N%(MyjcSaV0=MOsslECn8uNB6_~CRK!RJW@{ zjf&^Hjdq}jMNtf4?7_s>udMoZ7Qkxn@O_5<3PHyvzT(I&sumDmdos^MTtUAibF;vt z&Q~1f!Q7$<^sNH$bp)&Wq_4I@vw?3GaEjR2Dj?(I;B;*T#RXUj%|pIzo>{3tRdare xXahvfYg(~~m`f)CZbbs>yg7%ou + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.png new file mode 100644 index 0000000000000000000000000000000000000000..08dc54d3947338d52b0db7cb2f58eb0fe6ad20c3 GIT binary patch literal 1157 zcmV;01bX|4P)Z32lh6khZ z!DviOtT84gHPIN2!NfEsBB_#6AY}te2oj+{SyIR8@!aK*FDvI=jJQA zXLu!er_S~j*XN&lx~&NibT|qr8=RId@;)+4_J}90a_(Ag>4ENZ-5m%ggNP`rh#TuL z3>~9aXE*i~k*kt>%afbg-T7P_)>0uv^)M3V8aM~V;&2$IX8!ch2Ci!EGH<7ET)5nU zm>xmYkPt`2%8TO8U=V>3`KA<9E$vciT`XMR^bTIjBi>lH4ApP4KdTIoXVh?1kzj_Gkwbe25PH30crF59Rp7VU*oD| zzi`&jw)@gcAn+;rZT0E0g9XQqLe@fvZNi-RgjK75x(36cTNDPPAN^_Q#C%>JOZo5JL)}&I zXeQTRb-F0Ot)&C@BOJ5%N8l{)qu5x{Z|rne{(NOYUg=@T<|-5}2CFax#w1LC9hi#fY8ygO(i(`_%*?z$*umweSnC-o zlfZ_a*!nvMjyp+sHrn9LbLTX5J&8yvhy=S1-o-#k=oor$I>Au$Omf1wd%tr*H&%>E zTP_(~_RC$)B2o0@I{?!FLm5~@3*HhZN~({+6ja2m+!;H8;1cl5JCmjs(_apcsXzYP zvECYX$$&BM$RPtuqw+;}p-s#xaKg0K2_;|!7ABv9&ZVqNU?9UQV*J`Hg5&F7N@L2E z-R{lKG)*iUOMD*bU%s{WOjfDgw$%wCpezC5ti){Ap!5h>os!}I?9Lo@sGZ5h^tq=s z*pw150*<3(U~x!#_F$D;aOY%LWU>{NV7FX|iGkip-Jsez>6S6G8+_-Y-K)QbwGoCP z=YM^7Dj5$e$guJj94rJkkCBgOpeD8VrD1LGLEvc(HWeCCel}pd(BJ#Jt|n6u-6H0P zR&n=ccv6b)p8Esqk(0u!d95y^=XRr+-DppF>)6_TgKx|GxY+BfwW+>3@y&gQ?}z>d X?E9A&gMxtw00000NkvXXu0mjfr~@7e literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.bminfo new file mode 100644 index 00000000..833af8cb --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7e7239b8f9403a89136f2884b8ea1f0e137340 GIT binary patch literal 588 zcmV-S0<-;zP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005INkl?|zKfQ79POCe$>*ysmbw6ZyKxg3EMih@|=2L!8VDF~J+Efg#jv_5B!cd#b6n_a}h zf#G&%=e^mt621SAPNy@~Y&I|BIPRGU&%TscBTZA!L-8Ssw?!)i&g<~?@vVwvg)D%@ ztyXJIv_jAWZh()CMq@?fk#Gv22j5vt@|h&byc`)}9e}0*d=*(QMN#z1zg>1{fJ?wS zct@}B7W*qX*1|e~z_TpUmlFX!InrWe0Q9ojR3)D2sYpjZADm;oF#rv&amzEFyAU-; zoDSU824G)ibJ;qh+wG2{{=*c&QR`e|l6Se$3$!YAJ`Z>g?E(8q#lv5G#5%660%+v7 z-EL1~eWUuZKLJ;Bj|yt86TD%)srvJ^IstXUIzTNV1_F*jf6znxDgfFAo8#tRVHnOh z2k;*n456%-Gf{y3f?U97bJ2cy2-Nqr0YMN<;C9b2)p+JY^s8_>)W+HX0(uFaJ)Rel z7bwzE6QJJ~nvWR+Mgfh6-hB{R0E{(+oaQ51atAf%(npIdfTKvk(6|O3fFTmg)SEW0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.png new file mode 100644 index 0000000000000000000000000000000000000000..f98eaa8a390dd023082a2e1a593f15c0f1d27039 GIT binary patch literal 578 zcmV-I0=@l-P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00058Nkl8zU;9Q*(}3Kg9M7ySUKPD0V9X_pQbgyPUm(8Z~K0Ku`NgMI+Pz5Y(Qh0rExf;xEM z(D&{=_nzFB*Es(l&1Q3L&T zxL&VsSu7ONz#aHftyb49JQ1l3q~SNqBwvk2W7$%%NNhk;7hTcTdC&7c^zH`97^E@S zhR@O(pV+r89f`yS0>`o{-H;e`EftB02E+@&ra^K{uVHceZNi-DV-09<$5Y-YpN7<& zYdUxsX~4dq=C)0ZPNy?N{b!tkMlEZtr(v2m9SJcHZV>tRIF`q%zP44Z)RdwO@gY zTBFawtkxK;@dupOI;at-??oDLLuPd=5S5fmL;4lr1+{*pfk0f>?^yXT>H)&y)VTE9 zqxn>P0RX3Vql17@oq6^@+s5;BVnL-<23k%18|4 QZU6uP07*qoM6N<$f + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.png new file mode 100644 index 0000000000000000000000000000000000000000..16aa61debc712bdb41f2e0fc89f95d61836f03c9 GIT binary patch literal 454 zcmV;%0XhDOP)N2bZe?^J zG%heMHvEiZ-v9ssL`g(JR7gwJlrKvJK^TX3ix>oh7Yrf_8U=$%6z)S9v}iFH5Bvao zXt?P9NsHkOg3(~Km@P)ZY7m>?2UwrqIf}b8hpRIP{@`I|mU-W2W)3d;|0#-MCCjp_ zJkM{wVbhd+rm89nD{7vm>AYDwBLRD!VcC2drIkR%W;!!1RPV>91@bIqI0g_Sk}PJYDm3>o`^ng_=HU;+wb-hK_bg62Jmn$3lkhF}9u zUW;5q6;44SXM6?Qpq&yq<10{R&FIWe1!w$I?y0CP w)F`{H1Z7!Hv-wabYKsm;v$)w@{Bfe_4W2GR*JBIv+yDRo07*qoM6N<$f?=GvQvd(} literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.bminfo new file mode 100644 index 00000000..ba076b3c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.png new file mode 100644 index 0000000000000000000000000000000000000000..c668b2f0a38f1f87fa95010d1ed941e6a8ea03c4 GIT binary patch literal 633 zcmV-<0*3vGP)N2bZe?^J zG%heMHvEiZ-v9ss_en%SR7gu>82VuHFbi+Xy0}x{Y5J&*=bReD&;y^8-%mN`HAx;Jc8E|9*fdCL|05RnjNJ>hw zYpH1^%ge|w2I56(%4*3#VP+s!0Ak85FfuT5l@ym;E+GcN(vs54O^r-#fKpVlK-Wk^ zQC@L58jc1^^#k#FAP%6&0&j0`b1e<+<;d99+SVN^4F(ihU~g|PU}9)8%f!fZIS3mY znJn~n_Xb5U98hEd2sk@BXE@k7EO)STT<+}TS_c(|1BxsN3=HH84h){??&`kW!_{MX zP(aW`kQh`N49Kz|Ha1o|J2NLcDIsYQ(9q?9Pz+*WT&H6XPlTToG0A(5G$xgaVc zdU;et6b>A{9Ha)MmShW(gF$LZwO~PacXw)Kd1X>*acN3XK~Y+MUVcVi zP97M8*dQ^G97qjNtvgT;2*eR(!OWR6`GJayK`tT|1B>o>pka*YhJ!Gj0Rsa7-dL48 TB7N!R00000NkvXXu0mjfLVn~M literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.bminfo new file mode 100644 index 00000000..e0bc23fa --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.png new file mode 100644 index 0000000000000000000000000000000000000000..3356ea5d263e64d6c244c390db90e69d28c02d41 GIT binary patch literal 712 zcmV;(0yq7MP)N2bZe?^J zG%heMHvEiZ-v9stMoC0LR7gu>82VuHH)Rfhdfx^r{tN_Gd3xtJ*x0jTZ z^g#{WPm%>j21c%u;*!fH#2{E&QhK?mk*N((3T}aznAkdy4}eS-ASTTRM!H5Cit>uf z(Qq_Ssvn5Y12HfP0up6pWUd0)vw_%yBn!N~z0I{Ww3j1eTWec)s5BUWQc_1pM+=b2 zgKRia7TDX{3z!(1%rY@DT@J#=MkWir-Mv8(3Tr$b!JYK)&F>;EC?8?#n$~J(dRr1Wg2qL8ZZfEDK^|W2Lh*bFz~Xk`@6C zT^&p usJIy9B4RPH=#B>(#)xh>2-6ubFaQ9!@pGiX831tr0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.png new file mode 100644 index 0000000000000000000000000000000000000000..b61ac80bab974619caec94a01903ee4c0912b410 GIT binary patch literal 644 zcmV-~0(N2bZe?^J zG%heMHvEiZ-v9st0!c(cR7gwJlut_{VI0RtHi|v0g+be3Boc|(2HT`8>}G0W6HJGu zF0JM2YV9V)^pB`6>*A$@7e`Na=`TDlphMTrUAp%Uy7dn1`1{u{aCmLkN0Gb8|;1Yb|Ce{ob4##^z=rdksjmT)xl7T3S z9X^jQ%*hFB|$NgG3_XT+Obn zrc>!tEM+Q(V#-mCdZ@Q)gT2kY-t6z}aeRJ(#pmNMu)wH?dYd-LBs0EL@+UI`^)_p8 zTqqQl_jmWxJKH-;TN_)y*0uE&ZA~+vm~vF39`wqXA^k9AP^nZp(Y#G}WET8&C$Y>{ eznpku3Bm)?la)j$sF4Ez0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc1a5442f7c75cfa4f5b6d59975ddd5892ba953 GIT binary patch literal 647 zcmV;20(kw2P)N2bZe?^J zG%heMHvEiZ-v9st1xZ9fR7gwJl+8*TQ5c3NAc`9!vDgfehENP4RnRd((8f#};sj>X z(TzsZXyQ+TGDbzJo2I0@X3#C3pwj^$yban;s-2iW4UYzVI;L ze1Gqp9EkAvRj=144a4|etJQwqL4=Q7tJ!RJ&>>o0tyZ7$*BeC!==lT2dCHU}0~+Sx zt>P!}!Qd}WJi^nxHJ~R>JBRppsZ{Ex_nsPH*umpf@Qvd3&u00C}d&%ot!4GO}Td6_LLf}|}2 zQ4|M){$S2K=KTsT{m=b5q@ADwegU^F18GW1h)+f49{rC;^sulLe#y%d;FCRrNh#p- z`dBN@A?HVw=nl?-Y|B7Z)!AU+1#2ZTA5ljyr zUN&XRfE16#^YVhsF0>1)|C&@^pmSz9)ggu;@EBwKpDWKfQmP2I~Nolbjp z3wyiS_3R~ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.png new file mode 100644 index 0000000000000000000000000000000000000000..ce50672e9098d8ebf6a12e7bc0ca262e44269311 GIT binary patch literal 637 zcmV-@0)qXCP)N2bZe?^J zG%heMHvEiZ-v9ss`$82VuHFbi+Xy0}x{Y6lehPXCPL9T0)rxLPA2E3=A^h$b^FFK)f7?DYHOQQj%Ru zO)FVmMt(66FH%!hO9l!D0kH=V&j(`4EHE-Ka+MU9TrMF7!P1h_%h_1jb^@h9hTjI_ zZptjsHPTR&S6q&ajSY=mpwg84z}wr~TuVcHIWo4jwsnU}g8@Yr*xTC+m>8POGBGk; z4#LJpCJVjYy+J7m4k)q!1e_h6GaT$3mOI!vE_Zfvt%C}~0Yw%B1_ts42L?}ccXeOx z;p(wGC?IGeNDL|s24q*g84x|RC)*Yw^1mcLYVCKx3{6NLUAQusffkk&b&@e`H!$FwNfPn!3 XuNRh|oshTM00000NkvXXu0mjfn2+pg literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.bminfo new file mode 100644 index 00000000..dfba99c3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.png new file mode 100644 index 0000000000000000000000000000000000000000..56b90aab59fd3961dfe3151bd728ea438a3a7aab GIT binary patch literal 648 zcmV;30(bq1P)N2bZe?^J zG%heMHvEiZ-v9st21!IgR7gu>82VuH{@DC$?`Jti-CBNnzC9lP*@L$L9Pe+!i6FWj0}uiCB-F|ONc?Rw50TMQzKIwsI&$U z1I?$z0$n2wMR~>L$XI}1pdBa$^1*5#wxGxYZ*OmNEe-AE$k^7})*UD%0mLjIH56H3 zZ*MPPVrVkU#K?3x2pb!jEcABw1_ccqP-FoJI6FFLIM_KXcd&C@?(F1R2Ni|`iYy2W z4CD(A44&xj>b~5=)nj>3K+r^x7*rYz$g&_dHdZ=2GbcMKA!!lN(B*+p3}S=CKyn~8 zAhjf0P*GSRk(r*kASxnyc~nFc4jjE4qz0sxWDAnxleH4!6PFW%L2600U_p0xcWPyM zWm0KzX-ZK+QCfapenwtS9vFkzATf{}NDWY}J5Ub@#1Un|%$YO!fr^VkE+Q5Ki|%-! iVT|a8gD{-|0|NjxXqIj7Tas%40000 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.bminfo new file mode 100644 index 00000000..a6b1e606 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aa7a7c693f88c557e284d582125760f9bfe30f GIT binary patch literal 652 zcmV;70(1R|P)N2bZe?^J zG%heMHvEiZ-v9st3Q0skR7gu>82VuHFbi+Xy0}x{Y5O4tTVjwO7Vi%|-lvyAoB*e+UAOns}AV>gW8z2T*1j;+) zTOcVZ$*!fQl`JnKzZi%YsVS=^1BF|Fcrp-A2jT*XEHE-Ka+MU9TrMF7!P1h_%egqY z<^iR2ASxL4Q)Yp#k%pqY;&NmxBQ28xlv)qOAYVjKWP!K0x4D*v_HtxwYi;Welmdl6 z<#AwdZ!chCXfn&h$aFaf8ylG{^mg~wfJ%b_MHYa7v!io{gPp^22Rp~*&Q7j%P+>Tr z$b!JYK)&F>;EC?8?#n$~J(dRr1Wg2qL8ZZfEDK^|W2Lh*bFz~Xk`@6CT^&psJIy9B4RPH m=#B>(#)xh>2-6ubFaQ7)aF$*_>5_K<0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.png new file mode 100644 index 0000000000000000000000000000000000000000..ac43c2cc20e6d5cfda5c5cbd3f52d70379c89cf4 GIT binary patch literal 641 zcmV-{0)G98P)N2bZe?^J zG%heMHvEiZ-v9ss|4BqaR7gu>82VuHo9f)T`EuqW;At5171_l{$WFmnaAoifh0!c|pb}con zWO*6+#X!7BO<64&D9jAREI_;&q=q63j0}uiCB-F|ONc?Rw50TMQzKIwpcE*WGC*o5 zvq0BKLs4FFIWjgjGfn3i4QbUmi-rnBkS{mBRk+H3{tvgg23@Ea|-rioo#L#4x ziIM4Y5H>b4S?KNVtpSw=1BxsF0cS_&3!8ALK#>K3fq{I%fx#2q zUEP;^xOyxP3J97A5`#*E0a+Hr#>Pr#XXa!lB_u5Z8oE3Xia~6U7)TDJ2Bel`3n~gL zBr?-87eqxwFOQ0d!hxfggVcc3l59b8e6m(TeByFqFi0(_7A)xQ?oO>NuS_Z}E=?&a zC`!xE%g@Nm$pd2$8zcsj1E~S3bqDGJfjFWpm^pJMKTvTo$VJ3rV9^~9G>j45a1f?5 bU|;|Mr1O; + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.png new file mode 100644 index 0000000000000000000000000000000000000000..e5778d7ba2cc66ab3e547f1d5e9767f7fde7bd39 GIT binary patch literal 653 zcmV;80&@L{P)N2bZe?^J zG%heMHvEiZ-v9st3rR#lR7gwJlut_{aTv$P%T};h7_<&XCd-Pr1T`5!Wm+OrOoyGi zxQ5xPTS;R7h{}UTR|yDd$N~J!2`KZVMJ-@*_p3-H=fQEVa zr1%rKVDJY|+|ARiHJ}quJBIjYp-^~5*DW=`u!YAT!6n7@%ZUaVF~FT4;paKQc}QU9 z7tU163@~WP=ksH^Ty7TcAc*CgWK_SLXpj*DXaZb;uOPxr%o*5hwhlq))n6u*0Vyy? zrzrzb6x+ORZ_?T8ya4C!x9%j;^w<0jegL~E18GnSi*H0`@43SvI#_#K`!|&OfgN0% zGZ>IOE~kq<#A>x3qjUl)AY;lvQIt`y=RJFff7~yl^qNE8ujd;C0)Z~yknf968ezn+ zxt#WIhHb&Lowy3Mm^Nqw88$?zCFE~K8;2eSu_%Tf<;C>)Z4T{GM@A< z$3HP6P;avar^RCN^TFOhVs~dZwY|B$vXR|b%Vx4V6jP3B)Pr6bGo&R$2Gwe{6U{qx nM@GS?JC0?R`sKt6OA!77xXzb7IBOE(00000NkvXXu0mjf{ahm& literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.bminfo new file mode 100644 index 00000000..7e53337f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.png new file mode 100644 index 0000000000000000000000000000000000000000..a8821a579be11edd825274fec1ea58f3d98a9f66 GIT binary patch literal 647 zcmV;20(kw2P)N2bZe?^J zG%heMHvEiZ-v9st1xZ9fR7gwJl-)`qVHn3ph$4szlg+_Mq)o&K+DQp2(^h0$=A@~U zGF)5jOA7lUN)J@pLr)w%ayziC;JtuupyR!Sy@Ss74&47Uy+r87j*SHU;m17leEsL0 zff3%ns@3YGrfGMTO6C4P1o+648jVH^Eu!V+a(R^B{!?Uto(C|_Q@RWp&@c~Q6hDCr z27hqkA)fB60bOz0S;W5zg+e#ochmsG79OvGTZ)^P6D=}gfG5Ae>#5^fBrx+E*UgR@ zV9=7!=Vx=d+!uU<5SAa3QS)-5MMeyuD5!%QFwafQ8Cb2>UO^bqKPE)WyFeefG-V)) zVvpDDO*u!LH{jYm=1w6U1DD`CsGBm7rlg2CEHe9tM;xMq`6d56FMk9@a|V-=$K`af z=h%j9S(J+44%kc?D2g)U^-Qqm1m*%VO7_PN{r~lPgJ3W?==Xm}uZ$VeS3?H1T5SN$C-g){!LK`k hWtQgU#2ZTx{sQNeme2;d)0Y4M002ovPDHLkV1o339pnH2 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.bminfo new file mode 100644 index 00000000..c0774c2f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.png new file mode 100644 index 0000000000000000000000000000000000000000..04d6ef8184b29d1eb2cbed8aae65a9a15e298c31 GIT binary patch literal 499 zcmVPcVbza@!o_p`%TAcd!oO{mqdA|32&yQU0Uo_wMn;geEab5R54se!#BtY^S z$+K}B<_qvD#3^F|NiLO2BS{=E4qj~A9{dvl;SgI{$*1Re9hnMH)Pgsv`rXB1@m=;V zOMx-)psW(y@qL<^fHZ9B5?&Q@vVJYVcwe|^7})e0HBP-@(4HtjfiwQ{AY@A_kh7`o z&Vp7z{#=TuvLK?B%jH_~KjH*rsRgyc7x>@CiY6FakK)7G1&`pldKtg>C`o|W1NKR{ zAvS0Po)lN+XN&|C=bVH^9iO=!Spjp`Vy}?^{TBIqa2W(aO%$K80f{^#o$#)V1n}M= zF;Bt@m{cd_xO!@&D4bjR+r%U0HWCHoL6ePB{k%k;hI$J0O2P2C=et?Fhd)H@57}1H z3Rsp^N3l0ZbGnPBgS=T_i(FSLpvD{FEa@(k{D9`7S=5`B{fZSxYN_8Mu>p}iLo4RV pIZP!WOHm0XZ_cV%Xu9gm+ZP_eAm6~n5(EGM002ovPDHLkV1n{> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.png new file mode 100644 index 0000000000000000000000000000000000000000..b38f60cbd3fbbd59c9f44b9e3656e6dcf592257f GIT binary patch literal 594 zcmV-Y0Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005ONkl6C&UIK zu2!qdnoEWBz*YECsZ!r6eKK7B=v=Yk-3mwy)*E$GEy z1wKo!@`?SemNVgOAmCbNr7s}{EiGlDs{#4EIn*TA^qQ7u-V&S=z14sLcYNiQ)O#VC zQ#l>n%`{-2m*KkY8I49`5dD|UK#p3Ln8pY0f07fekvoyRQEN%Btg<&DIVS_wd3cGS z$vPr=%--0qvwrq%ARxX+u%~fy*B`7w-v-3vG&kWRf&sHXiTg6(8baQm0)j)hk!B!Q zCb5v7lGLmQ@}SXhu5m$Do`zutEwG<~V_J)2(I-s$(YG@VeBU3^A6YWRE@WO2o}rC0 z4Fu$K^z2JLjpntOMB_7WOa7PDpc@$E_7>4t!sH@3q9b?ETpF literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.bminfo new file mode 100644 index 00000000..db980ccf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.png new file mode 100644 index 0000000000000000000000000000000000000000..584d0a1d5e6eba17768e17f828a88ad011905598 GIT binary patch literal 571 zcmeAS@N?(olHy`uVBq!ia0vp^Q9vxg!3HF&EMBDoDVB6cUq=Rpjs4tz5?O(K$r9Iy zlHmNblJdl&REB`W%)AmkKi3e2GGjecJqvT|hFAs$#-rp8qdEK3#)}sVgVaq=a|r7Q@@>r*Z=CzS>4MRz&DP@o&diOx zbF}~T-p3PrE(aCnI&OJcdGBA+#vcdFrR&87j+YkRnJUV+eOtNRU9YE;CzY24-I{zO zYURP{72j0(kCnWW&-d8#W>d|nzqfnT&!4xMefG!Ow|9TFGOkHrvzGX0GIgi>!I|~C zhFyoa_V3&Csm5;mzeEP-2))>+l|C2Tude2v=c8sb*Ke(;!~vmY-tntgQr-6IJpNdb zv-Sc5kk6&hq;6j&5y{22q17-^$o;y_i|@Lu%r_3rSoGnPW4U##_d$kj2Ft3pK3Wj% znWQOkK9Qpb-JKH1%!BKP#nk&p%IVV$4bO*_$_ecH!L#q7yb&CUPfB z-6^xoJi@k?g*RH_a;*O3=#7aNye + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.png new file mode 100644 index 0000000000000000000000000000000000000000..92d64d161fcff2230bc6049b3391e6e0f4f2076f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^W2(Ae!;6kx_3x1LH-G + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.png new file mode 100644 index 0000000000000000000000000000000000000000..f87a03468cac42b6cbf8746e10b2a6cc6fd504db GIT binary patch literal 1106 zcmeAS@N?(olHy`uVBq!ia0vp^w}H5vg9%8o+AnGXQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F52SJ!|$HeTnKtZVz*NBqf{Irtt#G+J&fW*wa5hJyShH1A{L`3mF)g z&w08yhE&A8z2oaWHBh28@&A8)@2s?C5u9pe0e_BkGTT?VW-0{E-7K~vF2{lA&_Jih)ec)wsoQoxhyI&-a{iNB9|!tr@rfYWmStU4c0|39?$%6DrAY$aiM@G5zh@DE`3qDgr!}q zz@4wwMmTO}SICnHrY@P+HfnoB_V!JAaDi!k`IBAs)*n87`c%Jf_V)Sr{}g&Lz2>y} zzjfd8(tC39^89>!|0JJo&yV-__rD(bCYjS_@4bnyz3$w<|NdRwztg6b6+iyId6RQ@ ztKGZlqp*4FhspMLx}e)1$|43jiRPTZ4EC)cfC|Lyzt`z|}9*7o)FnN^4= zvxqgWIFb5q>HhnHdiE=)&%d6+nWHm7Y-i1*r{*(0fBrmOWBUCHIXOAAI;mzBE>}Iy zcW-MW*Vdg1^xx^Q@WfL^Jv}|U+Fuo=rBm%E@J{9~>537^&(EL!fBBr4%hTs`U+Fp{ zf0T`>_5M~xp%+{`ly}eDwv?&MhxKeZtH{l-TXaPOQnWJmX)idjZh7v?2Bl!f&#{cI zWwyEAtRgeHX1(Xq*z`IxT5G|HkP9{84ijVjZwE2DE^B(Wo2lzf)vak<8b+cf_km_y zzq~EPVdBaKKi4%Vjaos6fO@d?#8dhAENp^5Sa)scJ2CNH-Z5bQXYh3Ob6Mw<&;$UI C)bHN_ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo new file mode 100644 index 00000000..4b1f2f43 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.png new file mode 100644 index 0000000000000000000000000000000000000000..142c626017565cb9b8ee2c1be0d7f64518172c5d GIT binary patch literal 1613 zcmV-T2D15yP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000HNNklGzH|26y$%3)iuXFi5#;=o{$YPms?1a7pyNBCgSp*X(XJ6QdT%m@2L5Cwl z=vrT}OqOjEh!bkm8^N=rOD<+ithI42(oJYg`ZKx|$Aoj!IN+%}=525?I(=P#cH^)J_--lKkYEMI7 zor?Aczkq8!LlxM9`r;Ur<%e)%Uvdi-y0<(15(s)t8ri5yrn0A?Np}jcrVxkFYB@~; zYoIAwjRWyx^601GCUk#So>*XrkL$2MvX<8As*-8+N#Lv*6n+qB*-spVscsiEh09QR zZ9X?Sz#~$qkFGqC03A-7qy5hs)yZhANT3m)M_cnT6cl`it5-A7Y)Yr^DI^ezn%jX$ zO?>tq-6Iw1%f=H4yfV&xcG-;>PN&)nV_gzo`s)R$h=_;N0|JElWIVRO?CIk0irX98S-7F*3kp9>bG{qDUW#FMJn`|X zz?l~VmZh+0!cbixLiIHXR)_hd({)#&ejiJ~M>0VEQ)Zyipx#TP-vFzL!kZHS^IN!6 z5ZNh^eq2FQK#%yQ72ulJqwcOhYHoPq@_9e2uaC=gp}zYRpu=%x=+GSo^&#je+*nKV z+_I0t7ZUSe(5&kexSszxI0{G8Y7+biW=$w+Z+W8jrWD)P4!cRuiNW3b?^9sNU>Dyj z*~^W($_>y}u0?yxH++d<4ki{*paLEqVqU;%`jUcK_{aP@;9BBQU*r$XT`yGR`C-yH z(VFi4_bM>Z)zM{h^wU4+s}gAR3RoI;(&(ZncrG6f%VM;dqYx7lgRro0Sj{`B^ekLK z>tj8!30C7qG!#mpEfym+!MB*I;M+B$SAkj6yjIqi?dJ5A(a={Z(B2f=G4c=!UqZZx z3+EoKfpzO5Ng$ensa?yb#8z6YJ7KDwi^dWOYH!Q1B4qG6YTLO(_9);yz`^ChiMLA( z>Wx(TD72c`yt7e13P;oX$iEWXDUg!<8Nc}Wa4QSnK_sHBDG|C-G4y2;+*0~;BZs@v zDEbh1am2tGwZ-wAUKK^#>n9Ypl0x4h=o!EG?9{8k*ilctYu0=PgDL{r(l?;K=?3*JciLdw zsg%SWclwzX_*O&;&Qi3Iq6O+5-Q!_m(VT6TEbsQb#yU@qt6eB@-#gEI3?C^P2Z z=k(W!S;+o&CbCZiBJ0EqWF4P|tYcG&DabndDlVo?Bqrd;w3mqhE_KHX+9?6<>@V98 zTTYJx9TJ0xp~MJcGz#Z0~B!iixoIMSH*o%Q9FN%M^FD>iULkZf71eDCqM}7!00000 LNkvXXu0mjffZ_H{ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo new file mode 100644 index 00000000..d1b0ab32 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.png new file mode 100644 index 0000000000000000000000000000000000000000..653920a0c46bb1bb0a2b4afb00c6ae61055dd76c GIT binary patch literal 1971 zcmV;k2Tb^hP)N2bZe?^J zG%heMHD!e|WdHyNF-b&0R9Hv7mkUr-RUF1agbWr06c9}-?cGdMPT9kpa?G&@rIlob zlv4_!Y0j|7n@}i45p#_yrL8YlSsPW+srVaIFFW7q~< zWOlLxU(HY$RCy%6AL_acv{rAyiNg!DW1a0DJRWOi|pRI*4}dA*d=o zLGu+k!dFho8#T(tnb)s3!!qFHXgj9x2fuo4(|6F+r=#oIF$kRpC<5!yQXYz`Grqz@ z_dELW`u1j627I1#4{EF3NnuZeNxdI1rxDxHY5a~1tcJ2|Ikv?=c$yv!M_zwRhHPMh zhr?~Z{^2&QqoO@Mxa=LR6ZwyO@WPsABwZW6W z*EQ@!TTLR(_z3B}ggtLOhSdfr z+3ni&M4_%Rjb^_N*NpTIF>gij>0R*g@qtVxLx_ASy7UWy_F#&@U8p@HLt*x`YaZ^S zr}M^SSZ(0>XI=ekN~5}%xVG^#5>KTyPr|PSq0F5~eEbIx3~vF(B`_)%qrO;%`g3kr zzSv_g)jROUwaS2p+i0(&*>iN-hGd$3B+PmeZ%+gaui;{GP>+GV-^ghR=oN2T2BAF+ z&6g&l@lO{N9hzwN_OO4JH};?gDA@-3P1>Ms*bX&`>zZhtJGPMcB4R$Y$~8R(&Y$@d z0*S-4oD8mlLFtF45*IXGaL4+P+b+<1VtnuM2Q@HZyuJ6SBTIE^MI_XU5Oj5XEru9| z1;j!Ul*8HCRWxAMe@Vhj{3CH62p#cgDVq%CrLm|vJrPelEL+`s`~eNz;$UmPHu&}* zHFb$JdpV4%1e)Cn5`IM#hw&|3H>^NtXebsh_J`S!K%r;ia@rqZL^RC0D5$Qup|#u< z>51Ou6a{ZfjR6hJduD84OI4DfQ3OL%Cr6hlynE)pB>pz>E)E~Ou?Nl@-Q zy^k}e!g~y)?fh8We4@CSiEkh_;ks!P)RnH#RJoxfZ?Z6LiUZAJ5Civ4y=8V&dAy*h zT|vid1c?Qb=o9sG?m1+5)PM#ay6@I^49XqQ)&`)p@yqEgPeHD4x3xxcfSCOARA9>j?BX8eJ_+{@4#5^3? zGZ#m8&q40)*~tCo8RTZoBA!NW=2Q4N<8fjJe#&^1m@cGmxTp2$=}zpEZGxoJuYqn8 zV~9z_RASnHz!buT==p-~Z9x1>`9HBVApMxQ@)}x8VqzlndOcV~;(tE&^loV7{R3JGy z83hFe*s)^=N=izo>gIM5GzQaPT1?YbDr6=s|B(B|axe)=G$bShX0w@!`nHki9*0F; zj5fECH5iRX#Kpy7^XAQv!q2WMl?suOk=VbVzM47xdc!TW7L&1&zOkHIY*4(w4papDAJZzL9-z`#H# z6bg3B?Z+(~E}5B`h=_ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.png new file mode 100644 index 0000000000000000000000000000000000000000..505abcc9e778c6861508342ef43bde1fb9d146b5 GIT binary patch literal 1680 zcmV;B25Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000I5Nkl67XOIK|EST)OwBw(Nd%!YB{QcqjD%9Ivur2QCqDCo*-91 zlaO$!?7!bj2{OzAN}HYe&184qzW?ui`?9;w0DzX9{RW$e=LGZ&%ka?U>cXSyHOSO6 zx|}Gj0R3PiX9sQ*pX$u?1nUR_0qXE2ThC(#eD4=<39-u87LnA=#QWZbxAr@g$a;9 z-om-Nbl6AL5b(9p*RUtM-Yecru-BM_(J~3 z8=)cnZqi>v$aj5xK3c$5V$$hqibt{HWjKvq2Ch1m!Vdve2Z=*a7w?4p;UeVTn!ydT zH<$ADQJ;?zpsm$rzs?C|1>t!8Vi%404Bk~9Lw5GBxN##EmFgJUk01e86y6<=$UUDu zplhu7`qJ@H0)q#LCOx|o$SLynqpVn_E&c86NO*dB!rk2+ve50|%Dt#EbMfN35Ra}{ zb5k5Gx08f1Uw@1b7NAXVWY1TbWrYzm`e3{*r*}y8L1f=N0w*UYh{a;8@n3=(^(>&$ zk1Egud0Ap)#&v%yu`;sf>yz=p0+YsCxWBl&p@xO43U^a@7~S)|xSSEl?6ic0c!AT* z1Ij&6E_XwIwix-hEaB}YiJ|i*eEoiqfW*?s=0e=~GF8ET8vS}yt0}y47ohnT_p+sR z0x`$^=@!r{zG5l3%C#u|yE6*!w86DA9je<)jK}iz-K+p@hRa+#{-7#23Ee^YBjNgTTN*xVgEbTC;;n&%*s_ zeyk-nA|^cuTQXK5AlU;eq>@6aLi_p|O$tmL({@?Ov%Q=$*AL2<{-~)4svWrth0iAz z;#}hUIS>#aB>_JQrgl}|5nFILaXEa`=U{QtL_|k?f~79)5~*$76S7eOfsujnxf3%V zs|q$y>3#4<&F(uJ_4{yCEJoJ#pgMtw@b5`-6T;7}M%dX^kR^D-J8~)(WQ@k-^S$7; zyDb8P+i_h+i()#A6HzBk2=waK+Oa4ngj44E(BpL-g)O7d*#x~~YG*o|Z0|I_xOH?kpNZA!^Wb@D5@ug^z^DvMI9xP_{rT1yc+wODjtcR`PLcNOt5E^F z-ewCl@}Ho}^TeyClTq-e5CwmU=m8@_5#yeS{$~Fozb}UTffywZ#VCE;AM=knVqwxa zOiS*E!O21lx@M%sKG_5VPmw^hS@Qx`7J|OlQkJVKU&-+L$xxI$utDiV;*kwrF>z+!jo@&_2rH$X)FbUh?32w_m(!>~t%NDjk?2NrZwWn| zY{MKbn7}^C1QtC_rF5(fQTGMiP(Zs%`9EQ^y?>}Mv;RTiC98gB!y2BiFQ8kPSTt;; zFIbi?m+kB$v{fMVF2OPg?dS>Z(u^I@t<{(n6JhH`eZU6GGFTSNw5V@Ye}$}Xm literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo new file mode 100644 index 00000000..0a5617c4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.png new file mode 100644 index 0000000000000000000000000000000000000000..6ffdeb5ee1ebfa537b64e6304c0852748e5e50aa GIT binary patch literal 2048 zcmV+b2>N2bZe?^J zG%heMHD!e|WdHyNen~_@R9Hu~mkU%?RT{@Z9^&Pqz=){5X0pl3(Mi;tA}w-SIz?qu zR0@n+wW)0vF}{=i6sE zc)c8+Gwii~>+JLGy}$o|@3YU#0szm|6pL8m27z&gX{-@+1@S#59m>ZUL1zzdfGTX} zEO3tawcu>LU>bc|Of!}R)P0P*xB$~4n1LJYgjLGLIt~XFONLn6a4=1#Ef|Ou>ogQA zmpiX6%vsW=Jn*t^-FvP(Y;7#1V*Li=e=_jQeCe_)XCgXvZAxgG4?=YU2ZY9&4J_h;(#?Ik3hkB){txOL+zoH(*lGsVGbj@TG6#%#dL(abz5De9o0PKvPbDC}q ziP(5kMr~lai|vCy7OiRRXh@^kE5I3ZNc?M{dk66~bghX{UH%YtXW!(Wb#su3J0e#`N7xM7mA&qgEOqBm3a?0Pf2j4VjB0Vhtua| z!bU6~W5foiSbg*5AIi1O=`{PTxMQGqh;aw1Pk#eXPftjtQiRGsLa**^peuw{;4#!! zNl~6V>yC@FwVPN@#)u89c+t`KW=(W26W26Y1)Mj64$oSb?*L(#NQ>} zfJU{c-@v)5&%lv5Is?dH5cDcT$dQVI>&p)hz=~HcHoI3uIwxccz z9d)7T?f#ZuV(3>AZoZbfQPg)p$-_zkwdFktF6%qVEv&j_KR!Y_r|f2jlGNEhsr2 zPS1v|^d#I4S>9XtM7aunWh?N`4-2rQ)Cmi|w}IQyiI|^nho`@l;CG4k{MXl@2If66 z>3zLwH#GHrxb@2`X!@4~P3P_D0b`FA#sz!2&Hjt(q7xFZ$s8E81mDW6Ng|?W#pA2M98s31jqt#QDMIURrZYglPb}`y6xuX3tam5w47+0s^ z_BB^(b4AB5)1baS4VoK7-6Pn4%maCc-H}tU7;AUV!=frHEc~YxVp5!trf}gN|Ggx~ z>B&j%LmHrB^VDzcK1}`eiQ1Cfm7Fr~O(=8UKuPXvD9L#h-)H}cSdQcSUdHjg%TTn} z14ZAxfTFA=#PcZ1d=7m#bOtrhXTpwnfOwRc zH5MN8oSwR%*cNWbY~lF0os43WiT*EWa|8Te%KsC#+vo0-l+WEEDRZ7P=~?r3Qv1PVlAo$r6 z{I3}c2>)u#6*I#A7ez5os8A?STU(2iloXVfmSXqr-8g^#JT=|lPk?eT4W`939fcq> zVfu$WD5l8-1kupYP#BFy3JvTd(3gj;I=|YYokoJeU_e}49JX!S24VTxvAw+=QBhII z&!?|uk#XjT21iO~XD1!*U4PSkpx5j9<8X)uM~kTenM{Vjz(9UaD3wZT79S%Z8XO6E zd3pRb4-XGVOiWC_0j*YxgoFgt)YS0p$;rtmD=VWR;(0`aBOxOrgWq^6l?v|e?)P1S zlP6E|n~|LhMh4rQ0|FzZySp1fK|$a+4r;X;Jv}`X7B7M^Dg*Ki2#kh`iV9?9Wl?qL zGHwPKv9YmeZEdCM;3Y9Jar_LhO&1YC--1Jw=;&y65FIZX94-6y?L%>KF;xc^Hgmb0 zzLrJCF+_u7f!&HHPMo0Xy~0+<-`^i~b#?4ibew2#tYl_pA~G@(n>TOfAII#!p`oFH en#B79u=o#s;1B1St-3P+0000 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.png new file mode 100644 index 0000000000000000000000000000000000000000..eb4ed2589818656492d1c939ec4f8cb1ba900f19 GIT binary patch literal 2116 zcmV-K2)p-*P)N2bZe?^J zG%heMHvEiZ-v9sy!bwCyR9Hu~mkCf)cOJ)~94cT1S48b@yIZ@p)zw|WjssR(>$Pi9 zaay~p9EvCcqOcMTMBM`70V-bLQFK8NIc8gNMGm=wT2Y`J${~jwK?q3*1QHU?eE0WK zVlyP-OlQf=XXfR-f8O`=e*fd;uLnRy-8sELqKUvb!(?nz=c>bFG#YTn8FfyKN`MZS zCudHS5x-ZPX%ZF|HYYeZIF9Jxa5!MGSYlUK*PC0mY?-U8{a7#=BUwylAag=8g3j&TpdiD4 z9y(gHKPasK;IT7?*E>u`q zS^b(ysJcTf5a{l<-T!WSCKLlh7^W6OL`q5uu0>x*U3~*Y9UTw|gy`w%K}Tm7+C`lx zDyu^H`OBC;cUFzDk-nK`z?;w#ShZ?Z6Pq1?Cxt(O|L6f^ib0$S4@X8em%=+Cl}gc0 z0?j-g6pDUT1*+?LC?JV-_N(E%Y1UaiJv{?mVY<)~Sh;cqEBbmIgkl+Z4<6!KJs$@- z2dU2=(m4raayj^XKD>Q=ar;gx2~Xe@ zhwK0 z9}7!yCUh4>b!;>iZ&EJ!*u+s+;Apf3R<0DW12}kCP>AO29Q5=K;6+m_92_=K74ngF zzYz5;BD72T@UlaWCr|59)!dF_M+4E)7)t`a5Y~DjB4l2XzMh_mu24<11ePvc8Wf+9 z1c6A3w)}kjRKY`WMKh9qNQ0fNEzVy24yCot__4GGm5qEnDk`P$Z&6Vi3iMrsR1gMX z&35ogH!5wdCwuA&)kI5R?b@}S!AC++@T3s@++0X{`XTJ>MN7K`4<47n-NT!zu@PIh zZKXlyic69Ek((QX!oox-qzM>OTq6NT@GDjz`t%>3(~Ov^D_D(|!0OejgJN&oRE07E zrByAcs^z1uNr*Nf&3%a+o!$Monsf)wZXPHriH5toJDi=J5gBnD%3cphTK|FO$0n$~ zKVA9da*N|6VWcaZK}*2a)|R)=&kyD0<#Zhw7*wLGhx(f;P~Fgu66z8$O}i^MZ^LDW zCrXO0!rtBL{U1X5CNS^2R1AG_{l z51qRjhrCC{5OwuXTcEdpn5NwT#L_;Tx|#%6cQ54UvguVuHy}bnJfM_qriR8=O6#Z}$nn$&3F+a#{}Ziz^Ut zItn|zJWyHU`AQ(+28+6YUh(psP%8W(sQMlF?vH?*^OWf^Ok~R{~|l$DpKe$i1i=_Ch9fM0@3I2&%0SdCabw z-V@VC-~WvQGo~5Me4M$Xr;B$GUA+Am?z^rkF=P(J*A&RYsI|m-8rhpwhP5JIJ(}Y=Hn9@zg5Sa7+gyrpZAxcThZdzVB6t;^( zzai)yGcwYd!8RoGMQKqGvNQcL*c(hM;aPYle}#QHo8g}KSA3IigQd9^u*oul_1y_r z_@9aR%XJg{Da@2Rroe)aCb`Ij-=Vw39pZ+yXnSgcwr8faz?h<)q0*G5+0O{8%^-Yk z22qU}I_l?ROWbm7P5T1t)92xnbQ3HpFjQfkZj6QBlR)gGHw#QPH<(+H;oYqeN22q^ zVu+qwp`(VVwSt(TZaO;at>~H+x*DcK(l{O6O$6^fe4n-)$#<3@F=a8_A{OA2VgoFC zVt~WvED#lGsr>NICW#gwPg*jj0DX++{&C{=D@Q+ik)7nA%t_veoTLrNPFjcT#4nMR z@Hb)&GH zV3Id=-Xz=6*EI#y8x!-DSo=|Pgm=o%~8e_$XF#E;v ufO%LZgUMnt%{8qwcgW)nBSO`N-v0n(p_o-(90000 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0aeccae3d8dbe2e688919dbda75ab7641eedd3 GIT binary patch literal 2490 zcmV;r2}SmaP)N2bZe?^J zG%heMHvEiZ-v9s!I7vi7R9Hu~me&+L*>ftF35`2Z$!dtu?rv z#I!D`h_WeSWsu#lxc~~Hq9R%p6og|UR%B6jQ4|nVKm}1@5Qdpy8JJ;Moqxag!qbs? z;Bx9c=Xc(n@7{O+|M%VdmOEMiSRRFFc@dQa-ZPBGdQO)UKc&_o^F71qoMH`7g}HJj zaEJIK=S-b|fPjfUK0Z-Iy_=gG1Oh>Wg@r}*s#U8d@%8TyMx#fI(ez>hvL1NFj~+d` z*nh8oYxv1iNV%GUs~MSyPe{hz!2K{=Y}RICV)7&3dHum?5sZOK<_A;BH1+n@{~`0terh#Tc-r#Y#ts)n$p4oa#wD^;jzRHEcbEgbAOL0l$)tNq8R zAAF!Sj8CvPdtewRdv|C%L~;{Bgw!vNXqSS*l%+F04*(DK2dcv49uD}%lm9h zEW}bdYO}I%yF`eBk}Aahng|nPV;neg97W|-xL#C-(x)Qa$S)%CpHWie540bFTpR#N z*#-!UmaB}7hS~Cos-t0G(V|6-KE8g)y_E-1dOBn+9gsA(qPk9oYd7z}%4Q2?V>#BX zUq_410!Krgke+@Dd3op1CXYdP+etF88lsZ9h}i$9hjd4b_=aRvU3N?T(JPd-pE21D#zeG_}xtQwAP9sY4-6Ndw(>VbK?{ zcB3r{^H0Fc%nbVa`fw6##B(`4k=q<81D~O~Kp&a06S_u^)HdP-d!u0>KK_ECgTUpc z#a8F;kP}hJxKRLUQw#M4T05T8ZP$qgc{}!|IKE@tXq|7>g*o~(z(Hkz z_3DrI3d;`RYLYXKg}cGk+XGu%HpAI%Et(}eUKqGjup258htiIwVJj4p)u=0-0PzDO zgzh$ZK<|lBy~ls8fw7}>#@$TW*wQ3)N0ZPA&)ZM4DTZPh@goTeFl^We)m8ldCt_{nA2vp_Ue3D8C+&UOy~&NGXb6}U3;#41&OaB)*&JO(r!}5f2e4#^`O*mMyLE>&sDz^htd)SH(g&CI2rykne;+< z!ghpRazN+>JJ>}m#@h7RSaf+JZ1xR@v(G5i$Fucf#($?rgY;uy;-`b>)IIW3$*MQg zIV0+q1SY`YjKV?nFtaJlR zzp4YH%Y!lP{1E)@v@ZS^4ikgFUiQi#K(qw#CB3+AKy%gD~wEG7vfR^#(?c7&s|6 zc}sI!Lns;_&xG`$A?nMBazivQJQ{<>3PWl$MAMTokUbrP=1M~N34TeOgSbnkI2S(? zmWQX}tAc@;acdwvLktieI$HJlUvWrb>%jjkCd}>k$iRzlFxjDOdbT#U z+WubtwUHk4$u^eL>C-@ui6O*C#HYlBci}U$v0>A%41!VOAdL8Yh%LoFBnI?lfZe71 zKVeq;l*782Qx557jGR2wxOcm{0d8Y5qIajaAuuqI{c`Rd=Y!GWbeSIq2sR7ETba0h z`!;fObE*2Ofv~VJ_Q(gLL9ka(uv;@G!0pu-SBw#6zsO7P0YgJW@%Zs$goK397g9Qo zA3u)b;$mugwI2tK!DujAjOGX~$e2*yA@_;;U>uyNlamuVI_R^Rrw>QZI84^rZ1Z+{ z6Ixqa;p^**;NW0z>1U4hw1snbcgOkj=cyb2x$5u+-xMY7mYAcu0d5^A6bknEI(UO` zi@E_@TU*%M+p}vTEiH|j`Oo3t4ZaC+adGUNySTW()6?^X0cQ8?@9&S2k`lH(h&H$x z85wj6|2VwCHz6V-f?aqLi3FymrmsxF_3PK!#mM~TjP$iQH3Dx+dwV;!Zruu%N(Grr zhR)7T3iB7v7!{3iGy-o!c6K(RqN1qUe|c{P7`(i^AQp?M+II;E2zY-6m__I6O5cM0 z6b}y%=D>SCZ}4r2j*iBaD_5whS(qyq2=R5}9;Jd)wia9wsRDD^P>{we{Lnst7 zKY7pN4ZbUpk&$5j$lSSeC;K>N_6^UTJ) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png new file mode 100644 index 0000000000000000000000000000000000000000..9da02172654e591f22d3483c6de2785935e58b09 GIT binary patch literal 1947 zcmV;M2W0q(P)1^@s6A>(s500001b5ch_0Itp) z=>Px+RY^oaRCr$Pn$K@l#}&uF-85-3xnt;^^0GB`LWp63Yw z`@GP$n_xIRJgizV@x(mrSy+T1;9SfY*7?3iX6IbOs#b&B9SpB$Ye79C_r@wGcq#b z_Vo0)6_FpiF<%2rzldm(u~4>M5=KZ3zyOW{QX-ND5Rmi@RgnfWu8WycskFYfwievD zaU-m8qH6A5cQBsk<<{5NbGcluFBYCqR#ecU?M63;pgc3?K z1qVSM5?~dAC6M<3nF8gG68T0cb#Hlj`F?wQd+d4Mt}U&)gBcwiZBM7u?LlDrNEss4 zkO=0XI0a+Aea6H&02~o>kV*}K9D-n;;6DI75K0z6MuD?H{I_zsoF`eCo15F1n3%9| z>fY)N#%|ADK@fB+rCt?rUIV0`l-qVGT)cQOzugFihlf)g9UZBrruHLR<5wi#7vU5s zpNU|ZRBsF9ZGvBu_>)NV=Qxhn(&_ZN=XpWhsQ}osU`T#$jQj;qR%OSb|% z3&!Ya*TuBwdCUJ-U;x}Q27d&iX{~jyG3*6+2*4|(Gz0ipYkqv;!i8`4Ef~AS1902g zy1u`ZJ_lqnisUQT)mSzTCH9hKGl37^D09`(G#B_d%Ql zxd_O&BC<-d!EWOebOUlo$VLi(8$0;j70;XAw_vt>9mmJV`-RR)h@9MtXRMMOfCM+A z<_v)xL}DR-9l`wO+A|#bPGRi{=lggNV`F0n;5cu>;7yV_8v!dQyOnP>=>Tw0fF?qI z510=xUApx5okG~|{XGT7M$KUub^xvg;20HaL{IZ868+R_2w)$@d=y3MqpMfFnSBrD zc>_Fu{`{Z_e*vgtBId6^eCzV%%lDr5-hcD^o>I*72JpcLUUw>mUceksN@ju}n7MZC z+JB@O&-C>khUDs_>N;N5^ip64aEso>L z!oosS@0{tSQp~w?=MHPF-!KNfO5v+848InU#Y`qs@jP#%TENxx+iPH+ltUjIzp}FO z#KwVvfn&z#Uy|~3K)x^rUnphnMp3kS_3G8tdRF)L6qr+|PGxhsoLwqycDoKkD6RDq z8(O5v!8NsEZf zf0ctb8_5=f&3vf~!d4J10B0%YW)N)LB)Oi=X05;3agFAs0t28G77W>CL|REUTg6b2 zfB|_x1l<;jV6#R%L-M9E;ms(DO8ZhVHcrtxcR*|OC}mt@j8;lLQMEC6Rmh`&^g&Pp zxejAyMe|b=1fTi7zcD{QAJikJ*;7l&^E{hL=Yk-x#c!2Lr5J|c6B|YAqYCOB5p$e^ zX%S2T@hr)Ej^o_R=ksyBPA%&V24iDmU0Ul-5jiYkXLs|tBO;$hk*c~x;5b3-`>EJ* zDq%L8^*zt?$H&J94Ec^C-!LM#5y!WE-=A-6Y%F`8XOC#=*6I$%9-nBf+W@BzFmDOf zTQKq+DPNMR>P*-e^GGyGj8!p;WFed7LJ4R|hv831c8f?M48wvkrnnoYlXVAk=FFL9 z$8nmp)&sHdJqX?-P`05vscdvwZCe(JmjHXU zF>9}akj#)wRr^0msY(z86|Hq848x6vh6Wqa?l=dk_WQdDM%}%8H`UqM>Dt1QRZY2E z{$64GhfTEiV=9$O=r~R|H#ZkfOib9D5-;p#)vkegoZi@5RfB_rEEEdt>FKHZdxb(l z>}{(5)pfI~4Xsv!`=wt3<{2}YfJwmAw#XC3B#KECQyYOqF}3kZd`zO4L@~7yNEA~W huf)eBim6R8{{$yTgMdWd!m9uP002ovPDHLkV1n|CoX!9M literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo new file mode 100644 index 00000000..08222b5c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.png new file mode 100644 index 0000000000000000000000000000000000000000..80febd639311b9971a1b6080b58397480edf0d29 GIT binary patch literal 1674 zcmV;526g#~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000H~Nkljyr>%x`%2owLvLJI{IcoH@e)L{aP=mP=>|3^6RnDlRXV zym-)n+d~YOr#LD=4{YY_MH>;vnGF>z$HQDKXD)l;dB~6_=U}-ACZJ&-*u!nUfkO$) z$#Qc7xqO3$lK+Q5+?a8*a=-ol`e&QA1U7HoCf~SebNl-B>u+RdXIExrWmTr9rx#{q zWaQ47ld>^6Ir;O<%*^Ep2@~eV#>OV_#T$$ufrh4*NQXiVz10bcT!U7*4$TrJ?zV_g zQPYSsl{ZmTT8?8SXOLe|guML)I8acC&0lEe)L5K;PM5aHdxUrRls0%Kq~LT`7719Sa}Ue^A>dT#pDnqaP`LR zuI_LIc5e`!_v)cA*df!|AlKR;(^v@$lzJPiP9K7yUa%>%zw*mhF?;?Z7d`$fCWjz_ z%T?D~&8`4+RxjlBjnLY>^z4D&=7E8*x&815!*F+pU~>4OHM^m+xN-JU6;j?^tmBKx zAxPlY@=JAUix*;*6{4EoVRi=*po)b0fiU6j4nv`HLZmQ5BsZa5VM2%6iqjXWkhb81 z4!)Qif&`A2mS3^@df^WC!zz)&=nkM$V}q20Bq~cZ@dHXMRoP&)Q#C>n5*$Do38XJv z`hYJchaiC?$IH&CExx}hAko+%R$3s_+F^7ANGt+xPXrEM7+pp;+GHk3x~wQAf%)&R zxW^ZhLy*AXqbE*iEPk|8(9U~}@X+l1p#eDjz39}r(9&r_ONa4Kq{gU#-s(fic@kK% zvW71vhaiE2hmRewxO<|rQ#Le1Mg5>OxFFRy|3>Ykb$38cLVBu-(Gf&Rc@-8eUsIWs zl$7{k?5G3VCd3q{jDG1KyQ3h1yn-XU{M2o1ZH;XrS_&Jjxj8!HCYrHWWrxKZhP^ui zvnNb44v3Uis=yWGe3>h2Xladv{9dTGevGooBP#~S79_Ct)Ae85Xb)gbC#`EhI|;Cc zGgDPufqv+0-BFQ-c0C$IdelGAlYkwk&z0eqy&K?idC=S{!ljFq$bIgaQ-fm*5=cvb zXQSN{fRuVbMN1H*-Ou301Jr~j+-+9i z@a{Bd8Z+Tlz6b67nK+W46Ir=p<-3o@7AmmD7wCmtP22CCMo4Irk*V!)(>vA|axEQF zRD~w79?k749N#|=;#+g!RxCo--5Ds`6Vp34IX;CiwjhC@^Y_+z{Q-pgA_&s|9;$?w zl50&Kbm^UR4iF^K++2%uhi9RyJ_GiSOh|7{$G+_^il@CgJdrOhLy$o1*a@i%vbJ>R z>^g|E*J|msQ=uo^N2ej}c(fn;d-~8+Ux^Ec#=$IJ4pUny#5Z5ZvAiirO-tX(7n4Jf z0As|6=bwxlpD-giV{!hyei|7NV*JFtnyY^xG7a=DmQz z;zGPRGie=PJPyGEj}rgN#Q1TEudP|SHs{pVZ@zOK-98z$C#RwM-~^QA$Dp;b0*A^f zFk{y2kNCdN@u)!bmh!m7y*y_1o*nb>Q`TtgTs5k9=a1X^_Z6MS4~I^=5)$La@O_74 zumE>48NoO3znC_4`i9t;QJ+j2`|S9UPe1j<DX8-^I07*qoM6N<$f>i|(I{*Lx literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.bminfo new file mode 100644 index 00000000..8eac481f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.png new file mode 100644 index 0000000000000000000000000000000000000000..dce77d1563bb3986f5dab493fd0b4962f63d9074 GIT binary patch literal 2003 zcmV;^2Q2uBP)N2bZe?^J zG%heMHD!e|WdHyNQAtEWR9HvVmu*l~*BQtC)Nh?JANrPwgc)tjL~19^*nV(~kP-wd z8LHOIG%+R}JCsS()<6&yW;?cN)F6_m2vu<)0xFWk02&P-2nxXkWM6=NW8dG|_g!`u zmVcjf>y4{iJD1Gxp=ahd_wd|vp67p_^X$2tB>*_ol}jXqp1>l*V!X}A<%6G38gOfo z;p3d=1W<>qoEb)lR9@L)!D2j!#bQdB!S{eg56;745ln!d{lPl7ga$4qEGCQ13y=s6 zT1@^w1f;H5xn6SUpEq~E|3SF0xJ0%0{X*HEJ$t?>C@5&l&(Ckm$;qkC&CQj(`fBFh zjEs!G=H=yWPfJ_1AtfaxO~_v|q67@w8%m6+Ct-3-L7~!PSY?D%p+Vn}9If4hxZKu( z+Qt@~yKos5RkbMpvqSC7c|-~5?f=$4C|AK?pTdxQ0-8w!+B=1ax%w*$fUJtW!Za)f&vq z&0&_@MrUR*lbC}i5XPk0fnlW@W``R}l@_00>%^CBUn70v=8%w29#I0We{)M4iY4Ik zM=*Y;A8NA;6GkUg1}7%;4#EzN$qC0)0Fh`MY{{&(e03eKY})Ff?mVA7q6B=^eskF7 z3B%~{L)AYBgVRraA52ak%!Jb$L@*MAHxz}{9fZN=h0*Rs^VN1_zP8OM6?Y;|}H-a!_BsvSk2yZ9`wQ&lgY8ysXR>;&=j7>Ul@r!n3Z~o($kWU^_ z0_qxDt~mm6cq6lLD3q{x!x+~)p(H^Hot+DOp8_j&PFP%&jc9@d&Y_6}ss2foXILhpiHW5ULC*TgmptX20GGT>6>p&w3*z||D?g;th z5hbAJY<<1n9)ygXj^7!Ck5(6q&cPjwW8CP$(6|*tW0wD-v~U7UjsPxvP6A%v(JkbY zN0fk5HRn#)z0=(4Gy_uTs2((C50v_;hfGe8DfXx>p zF>Z`%9F&1;DB3TX7#JE(M1y|livNP97k|{6>|2z8cX#bM=%h1%6`k_-0AwV96`YN- z;t9{f=nQc}24p4-jGEAY-$VjjxOk-r|E~NSJRTpU!=t$RWg8?veySnawkqfSrMG9I8n=etQR@phIS2(giQsSY4@IimFZCT=|;%AHo&Xi3T@vyG#y_S-;l99Q^>a{0mmvTd;GyLVlxRu=s8W9@KbPu z)d#IjkY9!<0V&U|%G#X&L8$1X zQ)vFWhrV_?Ovh&EYe**^oyWoH8Qkk{!xyJl!Y1Di>qr*l9lyr8@|Td6ol`92lSh;Q z#?qxf`9bRQY3nj_w^i)eE78AK_VHX*!&O}G?x%0R3FQUPVYGcS%){9jz3~zn%YTaM z^VL}Ua{7Bh{&++Sc%0=g{Brrq)xX;L#=Aug#ee^Y=WOYV==p37I!~=aQ^hh254PfT zQ!Cc3f920Y^LZW@z}-?7O6t#7ymP#4BaY@jix1y^CjQ}(lG#scFXCUPKl7xmPF*21 zhbLJ8e=%7qG*B!@j~+!Z7^JT7`(#)wJ}&#?IKgFsSda**REoQI?^5?s0oB#j+*1e^ zgWy(Aa91;C;O}Zo6%)eli-J7v@Z`yp&}y})tgJ+5XD4cEY9N!z=+&d+c*qBf!D6wP zOL-#`k$gjbBFWBp_@G5aMTo^>WST#Q=Yb!VbuQb2gTxRHhjHl8AyiaUfKNYry4`LZ zIB)>X&CN7Scy2O+MzKU95qdn_|KvIdh1h@P!t;_5G%l260d#G{u3fvhn&{~0px454 zcm$1NxOC|fx99uz?L%p4>30GGfdCF4J`A~B&b>c&>=?Sbx@d~9A3>uSYHMq`!gD&E zSi5%ZBU{kd*T)qj`k7^lG=3l0PqDYRm%0xd%T9iNK8!|oQ5K#jX#Bp^)zxAD{{1K`E8~vi l;^JbM&1QNfJRZQ3{{VpjA9inVj}8C;002ovPDHLkV1gulzl#6> literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo new file mode 100644 index 00000000..f95b9813 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.png new file mode 100644 index 0000000000000000000000000000000000000000..7c5a4157162779cc4f687356fe1d3174e56c56f3 GIT binary patch literal 1696 zcmV;R24DG!P)N2bPDNB8 zb~7$DE-^4L^m3s900taML_t(oN4=M6OjK7GhN(^3G|`4)D-o)KT5XLr(ORq^iU<}L z(1fDa1(zBNrC61vvJWWCutvW{%B4zk05!mx-L5S1k?0?JYl#0^B|?K#wGrjuy_ z&Gg5UnS1Bl?|sfU=iZwm2Vj~ue>n!BivSrzGfs$dMd2}G19&n(2O@(G?PJ3jJ`qU;UZ`jfeLid1Nwz0ZJ;cnnKWA@z>qdblI=ToZVrn~NOJQH z?fYKe=+(-v*6tVmwq@_3a3$4M#}<6DaDn(W|HfMhFq}QYOK;r+|86HN9hlgzx36LP zysO8N^paYfvT=uou0fpSb<%h%0S6bRH;)KZ-f2T}ZaMZFn+P>_?C}hYhk&$8 z8lb7YD?{3~lFUj#cemdBFTPx3vg+$~_KM0&HSC;SL#i8F(fptfU428i&f_CCB@3O8 zhS2h$AMu$**tW~?s%z{peb`2zjJqj>ph z5)-ec&@=cLK5-e)(m#|Wt(GJ+3T)NU{+P7(CH=qoO&!Q8;bT$=^bQOol#_+PxNAtu zFGF!J>y9o>Cs@9u{Wn*)Y-#FSTfg7A`G z1k`u#?^ax@x>BmXDqOOi%z9v?O6#>&RaR0@9646QAHJ^IoHTcA7bRm z7>1ra!|>P(OuQBnkpblMYLJ{$ip=5~WENGCJE94>yxXv52IAXodV_Lua_@=Pot1#* zHl1Z|ERTT4!^5z!btJ9+1H+F;FhUk!GPe{=AOGqcF1Jq5&?F3qNr!J#8iEsY;mxM& zqY{ojk>i_p7xGsecoFiK|6E#g6Qw;>c3 zE&hRyJ!fUZ^o_|RvyH^%kR-SSr{ZS|XRO!ME|jb*VnzYIJqETdJws?}@5S)wQ`ot% z(AnLKfuYCn_6vrZrVbW8=DcERsfHXc=A7&fiGwSD>MPeEH1&o*mPXq=tyf&Y#N+=t{^Zz z7g5*B;OG^JU`_!nSYbGD<^q&eR+@;{pHV=BnT?HNMpn+fl)Ng^;vl#NbC6!ZM|5f_ z?EKw)*eOMbPA`XpdpM#}N|0JmhqHDpD14@9C0=*d0u&2NE5?mm z_rW9qzk5W%$uADxQJEyH7#waD5_4|A#XkY8uv8>p=Oa9ki{N-JlCD=H_r@LU)Hi~> z!ot7boRm2UxcT{eHn#R4F^dOgSQ=acIdCP5?NZQHTqd|jq{5S(j^sQ(vdaX}GcbaI z;gP8ec5V|^jvhjl6{~N~SCIe5YkE!szM+v>rL}iaRCyZ#ak&Ui%qJblfP45~!CsLW zB=|PC$oU!}Zp!~1*B{qm8tnsX93aP)*V`)ZCbA-fzlm;GKdyrU4C zSwUKVleC$Sl>BO>7uF#xJ`>@bT%7m10)yk`Q=hA@ULvg?WljQ=L#NCF4jTVjwMl*J zx+SX1Lyb)=h3+AV@Q+M}KRX$20ar)|8o}iW$X!qjtrlg@0^-QY1R2)VAWdnKhJ`EuVf+N#mUaC?`!VPlv>13p0!B z!6Xl#jo)d=pD{5#%L<6@v9x8TtlOYw^x+2!=1IGj^3DR3lcp9P=GKf}gM%l!rTzY2 zND55vQvOfG1w0nHNS(gQ!jbQcIRm!KJh>Dd#ew`TN&Xs<@Cs0iIJ$^trB qnnAN@ro6b7_zqdtP!ZB?$o&a7^|^uEfAIkT0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.png new file mode 100644 index 0000000000000000000000000000000000000000..394d21e4de335aaecdc37a0558fbc043accc7793 GIT binary patch literal 1654 zcmV-+28sEJP)N2bPDNB8 zb~7$DE-^4L^m3s900r_%L_t(oN4=K`OjJi4hqY;qtz4pFi&iXZR45TSR4NEm1Oi1o zt7uw9LB$$~8dNG$Kn0XTko(vb5OBo>cDY&ZtAHSffE){QTW&ejrpE5CZ#HhT*^mWO zx0`&)d-G=gzi;Nv+hpbe;KL1==StB{0SQAgjtg=H;n6}JiX@C6Cz>xnU67fRhI)$C z0y9ZLGTvvAOjpt{@g9kX3m{n(M4+48kc*<3I!Y3fNwNh3t}}J|5Mv=snFI?Zwqw!PsuHw^9F$!&RSPT8q&^>rQD|`BkE0KZ<~ZqjU1UV`pEcXLE+@ z+Io;yRE4tIW)xM{A-|#)U4M)rt*{EZCc865$NpyleQMcr%4&E|JNj`yEgy{ZJT$g- z;(1RmTG~4>IsFR#Lt}_b&cs?3HG9$Va~4>ⅆFun%X}sU-`ARaJ%*vvo+C)?D2|* zR-|MXpl9F(#wR8*I6Q)qiW(ID{seW+oj7Xe2<3HZw!&ixa}v5Z~>xEKJEN7;WtAM^G#iCr{bsa|(*l z-S-07d4*8Z(rH|+r2It~J$}HK#)Nxd0$lu};TjNwBR1#${%WPtWHc zdSsX7{)nQ=YF_W)82X3D(A3_AfsqNcbiF{({UrDVhW}MoRg27mO4Kwo!_3Ntr>d>% z{_FKST(6J>c!njyGlT)Zd#P~p2*I*1SLn}4ATTl|iOjmFvL1uulgKQtLLUE}wqa!a zC8l5h3GYY-YMMLH-9Lz%fw72Y=7PrL;EE5OdX@xt|7e6HWWggS9zGFF*j@bX?cycN z*3U`6!SS+t1Gf(o({B*TV56axi?-+8=%Y5;@W=?ddk0Y4)PZ<*E=p^f5zoqpvu_N% z!XLqp&cf~RM7~6FUJdpfKF(XOqJCOkW4o+yhFAerRkamOEv>xN?0j&$dN4FPj`prT zJn!y7TSpht^UA@@ECDmS964q6@D5LaH#JKV9>(C{UUCuWk2na4O~r`|uDlgW%4Wj# z31S5zV;L3W6H`b|&A`~$IG!}NLd(#s(bUvLm+^=_z|1MfHEMJD(b?1{qw&lSSr?M` z>=pVDKRYahG-3O%qpO$r?>WoZ}^bY^*cRQC(cch*^}=&y|@AFf?5PcCnG36 z1Ns(LF`{GV!mI)W6%{pw<%)_6HmYq_aic!BfO{#_>!9PnPpA75vnr5L@)U<`>>tlG zb~ffDAPlt<)$ysNICaJ2ou+~DDyM7izWxyjQ=7DO%xCI98y_s7p`oRyxn=uFrFAO* z1}cA}w@|pxhaf7zKc)Pi2nz@fCUP@%lmsM8kV|g-Dfp{EA#n+kLBXFr1^;M98U$xG zVnsyAc~KIO$&w6`MKa}tt%Og=l7@&-tBra80Lm4a^PLxBY5)KL07*qoM6N<$f + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.png new file mode 100644 index 0000000000000000000000000000000000000000..610335311a5c824a3e28a23c0600a94de28aebcb GIT binary patch literal 2038 zcmVN2bZe?^J zG%heMHD!e|WdHyNbV)=(R9Hv7mkCf*M;gb?RyO5s1UwSm#jLs}sYF;Rs90zui;5 z~k+6kPwp`F04|CC+?$j{xkY!KKKywkOfFAlnJ7ruGmlK+k=4J%Ab4^+b8f%}^ z(O9?MV$HhsyST;`d7=XLy|I5cKT9ObDgPGcZ(Gi4l1A+-SFL?oZOwDfD$b`o5dmte zRz0PzuCa2j$(zS+HngF!qYutLVK6-Sw$%7jJLk(`v8|@ZPj#tjtlgyO`$PoT*}J44 z{ou17atcJl4ehH`DQL(OCX+t{&H5@4{~;8?u}t!cnrO2f!6N32u(`E<&dZclInWo zmE1yYQwz*3tz_EzMxGbE0y{2+^Whzt3h!_M0^+mbbTJ&y|8AqPN&-S+GScX(%WgH| z-uNW)%BxW7U~o!!VOu7ohJ0>Xky6iOQ57sZDkStU&#DG(t(y$o^J zMF{6*T16_V)_2rq|9{MsRQHD|ht5gv^)7-7By9^@Mi zPtGB$&4d%F@JkWb5PdBV9#@jV%c>whIP}~LVfxm)Q|uUvp;Q26pNZ-5Vo3wsf|B7D z$deaXoKTEdQe56)d|ct>AX8jV#1tT{s0P})`ZbC%l(DD)FYkchvYPKnH5VZ`k?cTh zCVZlV@FkyD^fyJwE^UBUP#pG}9mzXo@8GdYeeDj#7|K{wfaab(FMZ`7HRR+K*lYRG z=aY2x^t;X}Z$ef{Jwg-G5t@<1@~XAfH=sd=-S!wDZz=yz*aDb~$!e~Ns^aJ8hw15Q z(&Zj!Lvt~C=}Qnnz6*pUiKwfqLseB3={_nTDk@6;|hK`QhR%Q zJb3Vcm=?}qco>K7x_q}eC#k~h>@2*zybu@|2xj}~bCmo+b#``!P$(qRxP94h8dYU( zZjL;DK7V!{%*@QlpNqk1Tqi3!Zl&l59uV}y~mAkG5AQmCk?KvGf?=_+r_CV=AZ?vA0M zA<}((^Y!&zJ^{4ooSd9U_wmie#f3gN{W* + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.png new file mode 100644 index 0000000000000000000000000000000000000000..94825c9dc9d4bffa51f67330e0a391d1763aaf44 GIT binary patch literal 2078 zcmV+(2;ujMP)N2bZe?^J zG%heMHD!e|WdHyNoJmAMR9Hv7mkUr-*B!=bI@3;Pv_rLx6Rk!Po3xqKnb_1cB1#Y} zF@ZQ^i8dxgt)oy2jo~4077&(Qo(n9nJOp=P<+1V*@WEqQ5Lm?EEU>;{KwO9jT@-oA zBkb36w%%l2uCkb+XXZEe-2XY}|9$7&bMNjk1E8l%V8$Wz60pQjjRTA>Bc5&0L9xUz zI@x*yq(Wy-11iFL#@SLqHJ)fuO%4r=JYmVj8K@S48tA1rw4z|^xRg*$s?8YSuyr!# zgB?5HPtC~5i-=1Z_^X4{%!WU_y_;#<`td%|YKu3%SpKV(%MHgoix)D$3E_+6-`s%m z`W<)%a`A!vCvEz8IDdapO$!eB@?dG_C^jC)#tRt;4CTfsh=InAF639#VYjo3&T_{` zQHg2U6E}PBL4KtTRyH3NvyC;zBm;K4?3exS_iwqp@yCq;tJbWu^bZM7Zf@_yt-Ay0 z9nj*uLW$D_rMPoXi`#eaLsC+O?H}$r!Lk+BI3 zJ{%+0N!%YE!Q+`(OwY`rZ|DJH#l^68*q6ta%a{cXY_qlbC0W|X^m!}QJt(bFVpa$A z4-O+mT8c#RS;#KdqPnpKH@bQ-IW>hONfE3+`E2~{_qM*Z*?QONKUrGu-m=Zk!Z z6r7l}xoA<2E-XF`TXyc&tXgNW!8red1}JX6oV9)-+(+MPM=(7*2N!P+Zg%&g>kbvZ zkAcANk7!~^eawQV%cZIS`Xaj(GRJ-xlC zs&B$6=~*(F;#J$RI8%t{}fmj*{vtD5+{9Z-g2Zifi!ZCgRWA z?T5_F%zk2+*CYd0+ihQsh~y_c7#@a)Ul3X9|6usRLp&rKFuz<5ZmgiWti1fHs!gp+ z$Sy)$rVPTI3dE$-{n3b^*o>+7cQ{6^UcccL{j~(gjNZX(`Q@TZ{f7;68Omy@|W8kSM7@=Gj^VMQ1=Ly#$ZQRD62mYphwn!NoBDf(96l`TDLZE-kxJ zaG{ATaT3CXQWRZM;#8p={_zsH1Vkf%hy{?%7M@aw^nxm!Dyl;uPlU{Z8Wdi-3U~iV ztoY3;FT=bh8=!c2dT}m)a}!)5aDtzS;CL}&GE0b9HKgTD$Su2!P(cnNQwx!QUI|fd zIfRmO2xdiop~8PdGZGm(I33-AzCJ_^W^Zf-UEw41D_e z0q^uPWxAYmb?`kI{~aeL6Q@h+$=uOd}a0+F-=$D_00_@&$2Z!O+j z%a)I_CG_CA$RaDyj&g;Hyam;8 zJ|0YV{_A_$a#0p-zz{RDgqIGx`ShieHzB*Y4k`JSIOZ8VC@rf;MSUA;S~~INF>kDS z^)>y6ij5y-fO62)^Ki2GoUWw06ITrNjiS{gb!I!M#g{TN6NszJ4=ra2R&CJax=&%`hp10(9?<%Q|#X%d>>hv7*c zy6XDXX6ktU*(moSY<=AD+MAJ{TV# z*IyTcHMm#|4Y<0x!p+T1zb9&HYDhEt7zWm$DHIeG=%2Zdj}HO^1HU&w|2Oh@JgC)b zeS2(dENW|O$q@EDtU*)A%F5DjydiQZv9z>&>JcmiXyNcH(;$qZ0991aG_$>@27&*v|l0lMjY zeSJyw*(D$#fL>U~vj!K7R4PSfB|QYqFLdUfo}RSII+iu~BG6Z{p`n3Pe<*ZyjvhS< zjfVbRU?0aCd{M+=G5q}e5EK-o{~Vtsrj{pDw literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo new file mode 100644 index 00000000..35619c70 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf437c47d12479be787d475fed21c069be7a3f0 GIT binary patch literal 588 zcmV-S0<-;zP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005INkl$> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.png new file mode 100644 index 0000000000000000000000000000000000000000..3d83dd75907de5d7e836dbc27f48f50af2b4e982 GIT binary patch literal 594 zcmV-Y0Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005ONkl@(fyoPRwZ_|WBV?t+Z1~g#hBtFGcIBNwOu7&1`#E;WlJU~le;7q{aP@32hG|>(N ztJ0*F{A~k@XJRA1olUAO1U=+uo;!JNaj!p6u4-WK`HX#t-sdT|^jyUAd;NjpvH^{8 zA5E+_3sTGR(R(7MR_z~R;L?zCOYtW91|Y|btNkfA+(0JRopl-)4U|y*AqLoBu>oOp z19|n(#(>7R_COv-TB5d@y=^~1FS6O)Sd&@ zA1JOGU==&BSu;7W#gp)q=CT>d1^H4xZOG-z%>*R!zSzAj$u&r2|d0bckD2HgQWr96@( z4AuXHaWI+oCp`jPSC3#oD|89oh1~_w#6$)SVXGH*G$RpbHC$nY^I{8FEE;H`InA!} g3Ar^G(cSJQzj{zETf?o?1ONa407*qoM6N<$g7ew=-v9sr literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo new file mode 100644 index 00000000..ea5051e8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.png new file mode 100644 index 0000000000000000000000000000000000000000..0c890c1e9c45adadd4f09ccdf34e23520858f823 GIT binary patch literal 959 zcmV;w13>(VP)N2bZe?^J zG%heMHD!e|WdHyJJxN4CR9Hvdm&;0HK@f(01bu_SS8(ap2bq=PLRU(>6L8}Nbh2;} zH;RIb;1eib5XFtcfbNEXh#N&Dctc%S^Z!kkR!p5^BAzfz!n+R@)?{rJkoOj4$-gZC^EOZfH<6-=bpYnj-xhu4=Ad~3djpXSQ2?=X+Nt@*SHA#@jYp=8 z?F#Tf{96RD!L$KM(*@YOC)o&qozw%?)_H2a@g)kdU0k&xs1gv@AL$%0mYQ$s_yS_k z`yH2J?4tnQnXXAY2SUDrd8z>3MJdKYGJP?oCt=yFWi!%ePeM0e!8}<&Gx+}nU~~Z* zB=<4i3;|_O1l@p+&>u=O1WbW;&<5z}vhmCXkXU>ZgkOv$a{(9~;07Fla6VX?A%Hzl zb@*7CA%Gw312!Q^J&3|v%6Edn4@+Vb>WfLMUC=1Av$Jw{cL&ptTUbl$a`Fp=rvMrf zaeRC%hlhtSs|6H`{Qv3aum%Ws55lV%9r~_DRTRSaMVF5oE-Wlaxm=b)p&;Aa+p@U0 zC?_W;2vx6Bum@|f7HhVulOpUJaw2v!MT-s&4$AZMGhDT6l(-L{dU)FIqI!6Ec#z4- zNtvIY7k&J^USD6!=;)}dudid7pKEcQ_44@mh|Bx;Z~Nf>{ytnk!*w=_70}z;D}8-^ zp(nPswh;Dn6xUe~rBW$;=R-q7GCn^3CgAq=R;H(?<@EG4#OLPbWM^jwDgHjLvmTa~ zmO|rQU0q3MXJ^${aBy%CnvruAlGL0vj(T}|dXoPBetCU;l}e=|FE1}}`$L6c)a+B^ zXoS7JJy~5{g_%Aw6F~C$yj)&h!b~1BGc(x@baP$jSKv=^e}5n5`{2{*>FJU4^K(w!JlFYER#sMIWMo7pCMLphoXh3p h;^G1!f4zvb`~{1*@}ec&CcFRu002ovPDHLkV1j8{w0Zyl literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo new file mode 100644 index 00000000..3e4eb983 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.png new file mode 100644 index 0000000000000000000000000000000000000000..899b30cec82fd70c980079de7906deca918a0045 GIT binary patch literal 959 zcmV;w13>(VP)N2bZe?^J zG%heMHD!e|WdHyJJxN4CR9Hvdm%B=2K@f(01bu_WS1>f)SJ-?b#Xuuvyfa|p1#~Ac z7!yUoVDJePFNk8Iu%Ov8u!xBw%is+)u=f9(F0GlVIi3;Eux!IOr@E@E>+e2&4s+T> zB=D=ymIuFqWDIM3*ScDK#SGZX7_GAs1i;|R>G%o0sIshJjaZ8{^K?`qnHN`B3sAss zc4+K*1G9uRSz86Zwo-b0~EoZNYTW)0CVW?h`w_4b-kCbz?UdsEBY;A5?nit zuP6Gn-}zp?g1#>RHq~nqS8EG0X8Xr6NBfK==BE+xnqYiAAO~s%5ZkAnm~VXP1z2o6 zGHq;EfCu8AB7g@>4G^9 zvyaA~@aIKog#iBW7NpvN@RjnJn8GCSKcRk@wAT)5hPk;pxxKxG>BlXsrFGf)0m3eT zrbL{aoXFA95zJ}<#UdB%=dcC{s|VrJj1K))qbdsF_o7Sfgo}%dQZARJP$ZAz!h1?K3nW9C9hKA(n=?Sj-F-n|=yB>Di9h8Rq`+J$1 znv#Wu1<~#2_4@i+#>U2EV`Bru{9KFcOv}T=11@j(-=2fJySs3G57*f&RzP20pY-?l zhcmIgy^XM+qqxpAluD&=&xePHWnyCDRlv>7jm*r<$l2Lhh|kZ@%kJ(jQv7*bXBw85 zm&3uky1J6??(V8vaCmqa4kP<2q|xE5bEM_*@lgf_2IS@CMJknwJU>6f?Kc&MRyR+b zqZ#)1_hoHu4Q6u7OaRH}^KyB43A1sVot@2201w^B$Oz2FZG3#37dPK^Hp}|@x@>N4 z!mMvx`QYFnO*hwdegr;>2L}f*-x_zPx3^c$&(GO)^IYdgSzTR~(a}+voSY1=<6JH$ h7Z(=@`Qt^T?Jxg@^(a3mw4VR~002ovPDHLkV1gC5#d81v literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo new file mode 100644 index 00000000..31084bab --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.png new file mode 100644 index 0000000000000000000000000000000000000000..be49f48343c31cfb75b5e59ed3444cac663fc773 GIT binary patch literal 1048 zcmV+z1n2vSP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000ArNkl{+okZ9p@?tMaw8ns%~D#BWXNE$&T6iVd0H>0KL zh-5*DA0(yI|BT-8yy?XomDl3OoA=JS_y51=o_B}mN~Kb1hJ~vIjDeKHkj5#ctHe85 zLZ8DZozAoY{GgT7gF#TGoH+$)tZI>F3qAO;isRx6(gI{)jBe;hpH-rhkS1v>11(lb z3tt9&b6<_>`RUjetN3QHH8B3HsXi{e(<2m*xRwp!n=)kJi7tzp7Mh#iKJ9}KN*czDVI$8sP4^{>gR2f|hJw~P0-N3d6R+94bQS!ZpEV_wn zH%dQeWh5>NT5iEf2L-T(ipO*czDVI<`j_{_%Lky@cx|gxYmk z+>o7zDtKZtblYSi;!4G|@VV?O0YzN;Ln!;1xb%&36GTh~Z}D8*U*>W2%_|;PtjmBR zAw9)7f**2$mD4bID3c=!JTN=N2pGQeVMo{Y2a~eqsGS* zIT=97E3t=-hE{TrUN`j|t1L96|1B3mp6LLB==-%;(KwG0wgyJ-Zm-75zNtxc85qQW zK}f~1xBFEr9T$NCJ|3d2Dn{Fo>^^IHC2b81M|V8p0tEgYZ}1$5W~#8-@mtqozQcTM zvgdp=A8T*mPSsx>Z)n92cn%C4F~uVV2UHB(SAkb`QN<=-Tx#WG?F~e0?(@kBRN$&9 zN4WFQ;qNkW;oZmM*rw+ymh8D`I+|?_e2i|ZL^r>o($cYtldm1km+5o`&WKu+eiUNe zFqF?@c)knIKgG1Nms8!R13YGHKrxf-uboZ4uC$76hHL}ruay4@H=sUD!d8h+Kw3(d zZXzIE1>m>|(g5kzgY>5vJy73j + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.png new file mode 100644 index 0000000000000000000000000000000000000000..65ea2489251348c6cebc302871300d1734f07b78 GIT binary patch literal 1425 zcmV;C1#bF@P)N2bZe?^J zG%heMHD!e|WdHyL4@pEpR9Hv7mt9C4R}{zBkB#g4nU4nxeMp;H=!?*YJV_tYLeo+x zl(vKv3VkTCLbU`Gzh$X?hzh!QHd3_Rm@3#JQi|D0Mytpn4%qExe7h17tjGiiureM;*|$)sj2l>2z>}cdTqya=UZv<$ zIJ=DL$JT2URe;m9oz@BJ3vac9egd8cWd^@cp^3=%fN@wnY$gn#Mxub3g>6aeiiw z!QN3t<0$$9Cf_~nXZcY&X>#(szaimy8V_$w9=s`wG!7behQ?5I1t4C@z&=dHu0*eJE&qkL+2D25+Lv?g=J9ok9>;dE){{emD0~>EZjFz zKlIJd)Gx?LfWWVqi(w1?nkIO%8;F(d#=UIA-(&g&?79bY$Lho?N^RSJKlNgz(M0YTE=lD?t<^&z?f z?tJ;|DR{CCF^Na9-h$tPGU11{eO35WKeOJX<00uK;lpJJx@tAAq^^M5&gZ_N2@v>o z?4&V}G*N}Uj(i2Cvm!pkws~d~q_Z^_*O$zCISyBCceSLgp2LBq$=aCwXFg!f0HeM(c;?>pF znkAT@pI4g^?}d>4nlsH{l%1U&USD6&>?d^Dyj+YuUWo&GWyId}~Oh53+ z8yXt$QaV;@JP7zI&dtriW%9u4)YR1QKmh*~%g0HL2W4brgtxY~^3KjqbvtfqYU06Q f5M1(j&bjGdfCVpWdAYiG00000NkvXXu0mjfB?Oo8 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.bminfo new file mode 100644 index 00000000..12e71c85 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.png new file mode 100644 index 0000000000000000000000000000000000000000..b3418e7438777ccc375e1a303d46be756fb8ab72 GIT binary patch literal 1821 zcmV+&2jcjNP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000JzNkllA0O*3PoDKAnBK>6ZC6@6Zi)EIu0rLaRd$?aLi^Kqw?1o)5%r$X7 z#WGp8AE0EeN%N_I0Lzw#KA(|SbiMf4m+FHj&wBHZd@-3_QYy{*^k_>)!QtPMlDB`m zVe_^V>ykF*zml*%B_jIi#PFz?_^_y$nDEG$g^xY?#3Ovq*$N0ChM&feq0yz;YzIt-(I4f50xS3@JZwyEl0tzQ|_YU zUn;VTj|!h&wfYUde?Wj$v8&hBilrFQnm7$>rf{vZ7j?aV;OCZZT)Zv9^)3mjJ0&#U zhx)!DwEQuGn{9VddA%8@FIC~?r0sZp>nB(m7G2Eu4+yYA5c_JacmN8m5poJwPMFX( zActbYh^`?u>U*WoOxZZ;Ob&DoDbP1EhK4>V+NE-cqzb&YDHZFsrV&8Yr+oil0M=Bs zi7_y$gHmV4nBIymnGy~wF#ka_~$avkD}tMS<{?GP)*urVba@22j? zvarZZzJEXfLG0@2s>U|7^vm$OScok*<8h+qIM$GXWTF^pxlb)e;K`aM5jB*B9y9i+*&!KGa~*E9x^S-j zbCmp^fhp@W2hbrM#$A;f{i<;cjA>|#bV%Njjjd^W8Nd#{e_(*PxX0^TJA75`cd@@x zgzD~LZpC91X12Rg-c^jkTdB|+Ewm*BryR#uRo%GUDkCTdRm_a{()J)_S0431#CE=a zKmdVY<)claE^l3*9M9%n#hGd`?YjYbi=7%yODmk97tbhnJ#H`&fEI$BpYX8uVHm3oTI-LN>OVV`!>_L#UZy~&C} z^*F>M8VphMvGGX)_$VtMA7<^tl9159euDWG6o9ZgIC~%UKu9v*J1Btq2H~j2VB}0)?tAn- zprcMVV3gE8sKScOOL+a@Rd~E!YD^n9$K|;P&pj{fE;n}VEh30QEDw)(o9`VIz^%Ia zL7mCMnKDgUtem-%JY7b9&?A;Kb~llb02 z0o=Gz+cQqjzlLPA*{Q5{%*^<>kQoYLfipAr1062v1)COEx__YlaAMlyMovKq(y0oe z5s@4D-a!GJJ9qAgNF74^fbM8O)yxkoUBeKHK3EG-T!lWyeJXwz$Y~u&?Kpc zm%#QG9Y98I5kf-4Hqey6c?Si+6cQ5hNJ2tFY-wp}YDGoGca4pWBQlxHXQ$P(im)m$ z5IX^O>zYu0rvOuC16P^+l0(QOfTtEMUeEUp8elFZCMJdx)RqeuE}X8btCPs(@);*> z0Tb&Fm&ZffbnQ4`kl@-m+&1!{0;d8m& z$So}PJ^R9o|M)q^G#kKwFj+X)#D@`8=P|0%(p7@kMRR@5vi!O1<|K)$0_lH)_&2c( z61RF1cQj)I{<9jRVj%3iI3Hq*Wf?4sWiFgeHT#4--(nzCZ7lc`9IHO%>(PV|00000 LNkvXXu0mjfQ9oz| literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.bminfo new file mode 100644 index 00000000..48aaf822 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7bc167e21e3cdafc2935c8ce42a086ccfa0fde GIT binary patch literal 2169 zcmV-<2!{8GP)N2bZe?^J zG%heMHD!e|WdHyN_en%SR9Hu~S9@$z*Bz$XU)x`-(_nxj-A+XoY-;V zXB^u&{`NZ;%*@SYHb^`JLZA_FV*kgR*Rqh%iFH0)uJ1>(}**pAVRD zYk}d{InNoO4qG`3+#^K$oh=lY#$zp}DPjT3V=TD1A54qD42-ZF*107#aUsDpnYQ16 zNNCbRBB+67%fo-2o>O?e_}Hhql2fO>xra|q?iU^H-&=H~Jw5->ckv0k&u!Vh>-eVl zZMlDl+ngA+@|BH|D^{(GSg~qVWb~@VKYjV_RO{|5b%gK0A-RPzGokGr$a^xSYa2J+-s@`9G zMDoh&weRrxgBn;JyLQt}c|V57%^ZgGQ@D2L9-8j`h_Bma__A4w>)i^}-%(J!2jZSV zwEsAa#?D?;UvID>dro0d8@oA_?d}P9m&OQ~? z6VvD()Iof&ANnaf2ZMPAcLvqy86L&0o_=)ot03)H<4@a?uxV!s8CX%o=MTleTXmgs z^l1$kF<3Baw4qx$0yUYD59vu{7^9MH&yC$ZgqZ?x; zJH!JL9F(M@qOlCpfpJQ^4azYirQD1OvxDyK7}QNbrZQk%aXtR|O&8?qQEW|2#ov?m zVOd0U2A@Buftc8}E9+W1(f&Y*@8uHgXk3Tm4W(RB8mZ_s#%an7^(|yz+D>nYfy`Q| zSSe0hF+c|Y_I^6Hf3P1*mq$Lof!AZ#hFxosVuHvgrXA2tvFg`wslTfl!QG(|DoQo& zwT3gIqzsHsTDd}G7}8H-d(vJce3*qL%fi$6{Gk|lxuI1`1!bkzjJ;|OD28=hg-_dD zINNmsqVLl&Wt-&;-0mMjuSSOlnlbc^>S>D%NJ!p~ohb*Hfn+{^a06@B{7l?&+gI1s zi;t_NsFw|KD;^~=i^Glb?qU@DkObqjm9~V;jf~;5IvHv@lw@j#GG@WMDOpHN%b^;G z+Rf(=Y9J=&wV$*~yS+_4D!h?>6<^fLY2QsSS{+nyP178y z%l(jk2Mko{CTIy=0~)-VaT#xyT!qK$rNXpxb6lQ>@I3Uw;c_GGKp~kZ!1Bnbzw)_5 zGVnu_c)(z`a-wnXUNUx|@DrqG7a}Y?Vhc@qiaR6&3}InmFU7^h#U4F+G^whp>QYNf%dk?Z^f_qt zEF&xn%!q>w$_%Y2zn_mOi;2rjuIL~#$iOdtxnwh+H)I1s*tl_HB$?WA;lhQ_o0^&w zDwS%^Nn60c>ci#n&^CEd@bMv}X6E=JqN3m8bMOstUnwt&4I4H@XJllgR99D5wY9bB z)M~ZQ<#r>xpxF1uZ+<)P?-)a%0sn`|VxftlqO`OWcDtRr!sCHpT7F%2bBe%af$&@= zWHK43NU8g@fzzi?b5|iS4Fb1%0{3ag0{(9`=873%-;09a6IN7IfNB6`Wn~bH#W-{3 z3=|3l4Lv>258_}NOp9qQ_6M1Xz%S%yB9P1vzi3ug7TmP={P93M=3!aqvMo3%6wJ`; zS5i`flP6EYpMG{VnM}yf&qr--Elm@CHV}frP~m)Z5Ix!dz&dcy8Nsf>AQ*gJ1R6+A zPDW~KDpwP9M$oYEGkypLLqSbV4Y%hxIXNgSEPP_XM#nUrn&|EA<;G8(IDzKoW_m=J zM=%%)&Ye5Q6`s*(#QOE?pW1@<_I9oq*}dP$vx;+GAXK>M*iB1I<9-P(77ILd{64Gs zjZvG&GcWKwpdTh&x^#)U|GzDm0S1vs1cSjq-DkIB$Br$W0akRmxw+JRb}J|-U>CvX z1%uCv%F0SKHa1dseq$@o%* + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.png new file mode 100644 index 0000000000000000000000000000000000000000..8349c0af3591470c6ee69b6e5efdc04ebfe5d1fc GIT binary patch literal 1657 zcmV-<28Q{GP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000H(Nkl4 zOGLM9BTL3Ir?Noq&adGv*Lu}}a*|JT&hPg-`F`)Y_nzCc2*WTFKU6HrL)=GT3k+z) z;JUbYBcWh;fx&eeO$Ja0t{ehmh?Tgrg#t8YwLmiu0+X|>eDdTe^U>>d1j;PUWvqps}^(BF6E>6M|Y zGw0eb{*1@I7#R7ty{-EpKK9}5^fwnI12jP!H;@Oxn>TJN1}=|amFn7?xw-k@o@;Hw zy1V+ODHJLl@+XUme(mY*!K$ko?kePEMxeK6a7rS{?4Z%;Y@)!cAT@A%?4IJwk?R;* z1x%w>W8EDWFc{n0GnPR9j9mU_e{a7jM&xqez)Z8QemY$u9`fRHV{C10?TKP!kQxvO z1T-eo(V55dJ<;0KfHmtIk9Kr)I%~CB3&@u$Oa2i=Mx2HkA~YI}v1PMYnBr97jq?UQ zrmL%&Dl1X8KNx?og(ymd)Buh|EE#R8*G|^e)jsn;oh`4J4hq;KBgV{Gd zXlb2k*6aTus{vkUz{SONYrVD_ixmpWi4!_IJFO~JDlA~nZYeQNhLx3-jq0qb=K8g3 zRb+YKg$5!b_8ZW{H{-n2$(=ai(xpojjar5I@AeZB<77B8nXaOgBc*q5j~ye+1EdCm zgF{@@6%|uivh+Ul2}Wa|Lsg|3vqW0}4fPiJ_$# z^W5YSVm@JXbab;`r^A|bx(PO$z1}=e#A}mBC>VG+em{UL4?JgJY;24!KP{is>*^ni zMdEr33kyr)1RI;Tsnu%L_%1)+)Yxc21u;$wx?=~C$`Vm*LX zu1j;a{LL8P@pz21Bgw59qN80D$~&fyj1!B+K~H)PY&enOVW)`o8jXgUoDipLsI7T3 z1^_CB;&AkEQcFrwVw07nr8UG3q5U3iM|5O_l18OE;I*wSEgb&7&_c8VrdJiU8wlv& znBI&z832}`doE2&y%2LCstm>}TwOkhcT@Oh}M zMnESFkIl;f@X5B1qq8z3#t+|r&v&U4%Pl-KB;TFG@jBn$mI(Pfw?-2J_xQ_{XB2#V z4r=mQ1OIPs^ELp;PZs89Wk~y6mM`BB7c11**x1;i2e08R)Pe)|W}_97iA8Cj;q|D& z3cziEfd|B1%K)Fxw~UL4uFRHY3~b-(E%5W<9f1vtyU8O^D2OZz2@J^b;qBM}wW#qB zjM+Z?BtZYQ3;=evwzSVPGtVE-$>}Y~&+likoLmd?3;L51lPb{1tajtZjiz04Rupc* zOIN^jN|`GRdxmpSVbN7Xt6};?ZuVfQ^2}YeO7%-|vGN|5%cVgLK^UmP=MoLz2a{L+ zlO;ne61kQri~Y1U)e)LX^*-oJC6ecMN7PKW0RSyr7Y5}B(<&h5WnwOX2Eugp2-DFF z0{B@CT!9fdFD?Xdv7iB3plMHZMLZ!dG++d+Hn!+LaMzllzoK`+00000NkvXXu0mjf DeG3k0 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo new file mode 100644 index 00000000..35e93433 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.png new file mode 100644 index 0000000000000000000000000000000000000000..4db173dc781dbe4e3e03bd8416cb1246ad5eb158 GIT binary patch literal 1635 zcmV-p2AuhcP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000HjNkl4K zv>rXCNKmYHtN~G!QwTyNpqvVl14t22E;W(cgaF|Pgj3{D2uKH|n6@*b z?X+b&EuC7G4$SNRGI^afK6Mb;na|Ab@AupJe&1%_zU(4`Aas0Rz9wb>NMyKpbk7a1jZ37NoNZMXy~;-GY0}wdR9Jp^3?XxqsOj#TwVj#VgNR-~mU|2fh0SYw@PswprW<8 zWwuG9`JJi;c%cC&C+DqoswyIy&nv?xbai!^RLJFo-`+i9JWhp)iHVu~oV@z_wQH4B zdEkWx!om);qRlt!u+-iapK$5YC7MzpCw%w#2=F)+cDA<8f~2D*cW;j$r^*AA1_A?v zoD}8d(;1S~e!~e`ZNE)rg@WLQ>@P6P8M4NO<;jl-FZtoSZx2)D0ZIchSz&Q&a}(jd z$t}om!r0i@W{p}+G^*8;j*gD&4f8l2o7{rIz{83AepGqjIRoS4mz%64}TNfjh_ zMuc&thLgN@?nrcXVX;Gk0&jkha(XSo4~;I^ivvD9(bt%z;m+)HzQS~b$9#7ACLR_ z?oM-B?zlc8EL3J=ZM_W7k(|uT=spq``^;->$SVy1XekB9)5Qbp*S)))j9FM%Si&B# zv$I_hfB29JuO|TmIoX->HvpW@%Tb)jkPJI6Teg;r!P75ZY{`s`=2xYP#jEgo0IgiN z@?6=QF~H$)tW%CAwxkJ;b<=3?=sq&`OePEM^ei}V!b3w&_|d$QbK&AiLtRM#15nL9)6C<@US8Voo++cwlp`hxch_i(F*+ks-iZ8=pe_y zoD2X<&~GkINxl$uFrpO3E1aD^2` zOHc1Ok(Je#mzz7lWZFCD<>n0}#3z)ak6F#ejT@gkC0}MhcT1To)>hUI1^ES6TU%OZ zPG)Bgl@y)5tB}ioE-Wm%$7Zt`hV^;_9O&Z)$cxD<|H)Dz6bPJ)iwb>I)m3523dMft zi$$X6PDdQjB6VR + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.png new file mode 100644 index 0000000000000000000000000000000000000000..3d11fe57344ba42c1c7e84c82a80f69605bd8acc GIT binary patch literal 1996 zcmV;-2Q&DIP)N2bZe?^J zG%heMHD!e|WdHyNN=ZaPR9Hu~mkCf)M;OPgB85UImsmx#8qj+5m?EH3+i4r|K)Eai zAquE~RBi|{Tn3?<00J=qIfOufs1#8VkcxN}N2encE4`+5M$t|y<4ma{f&*^%d&9Pm zuqdGH%rDvfj`#iF?!K4oB!m#dZ}LeJ%xw&sV4#K{sY{BNumUblFr-ciBLH{c&cV=z zd7CJkD4@n*EvP90L)Rd0KY7w?*4^D>Gl=y#;C6O)8qx~0fm#?4a2p2Dxd@K$TW?Cw zH8u|%(Ny12mmd46_H^T;hBFuYOH@aG0P5?SdYjHQ4;(vs@*c5$({SnO(IY4BlJP3u zYG>_&G@vHbCITd2Y`K0z)^O$$%25`!Bqk>Re5|4rov5zsH!v_X0{>U3sejg-s6ly$ zirZzOVoz@H|S z{#}2%p0TkxQ`az1rYh=>iHbbuU~liIr>AGkE=GeYKp+rs%*@PZ@OVypDoTq{nYtvb zs_OWRf`Wp{;LprB@L1sOwI5>Ga5x;3<;xsAW&2XDS8CKqbvVB->p;fQjyoO8*+tn< z1rVYlqgqRg3c3y-E*!F<4ra^y-CWj-*fwqE+gLC6_uZn@lvfOtsnri?F~EodtgL1` z78T?ne_ug1JK^~8<2pGC1#(%xE}Ctpp`)Xtt2n60|L)qgLo`1yq5veMNNT%`gzuUiwrw$m^-Gn*X|vMaOwMq3=s4^RcTyL(tExOws z#htZloI?G#3gm2`HXGesLwtQUXLjEIYiv&emuu~4Z)fKj6A@bF9 zO-yF8eS|&n;_5F01BN`t+PqKzfTuDdE;hP;(ZY8=CN_P2eIwWd=H_N|g0^ofV8;_c zfFv>g3=Z6(DlW`_H39%b0|V2rFL#!Q z>ttc<&^1s-af@gqvRB^kGfewLrGR7nTn1V0qiru}3#NL+1A%?fvy4Wh!l+!Pq&W{U~LG-7U%xG@U=xbx=P z2_wU+-8MMK!ZXncl?W4e7GQl4%hre&GuCA^=-gw2Y;pXnTAs)|=C^91aGZK#*%m6F{3~a&n zQUdsV{*)blTXW(?!iJ9>R|wXu;_ZSLmi!#_4EDwW-FCj;N4QJ(vw>QqE)23U%q(EWB%-CI1zo**6?caU$j^rxrRP8m40HDw=4b{6a#jOX zAOy~fRJ1RclaqsP-MWS3aydGG{yf5e;nB^TH?eDI906YgYCtWhX-teDf_*|B5%$Fh zq^M9RM16gI*fczbFnAr9b!N7yL8IaE?-OTrkpc=;tTR?DdFbWL~W%fi&vQjOyQ9>wP7X59V1!R!PD1)+|P4j5ANsK)W4R;y85TpUVDN@8BeB9RE)yLS(} e= + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.png new file mode 100644 index 0000000000000000000000000000000000000000..199d616bf693f4aaf0ad0acc6157464a0326b8a6 GIT binary patch literal 1981 zcmV;u2SWIXP)N2bZe?^J zG%heMHD!e|WdHyNJ4r-AR9Hu~mkCf)M;OPgB85UImsmx#8qj+5m?EH3+i4q56a+l^a3~mqDl|fM85O4j~dCDn(QTq#_CwN5>J0m0r_2qts3-9G5jo_Ai>9gqR>9x~h`vP#gy1I;Mg-M_m1_a!O4j7FP_@?cq z^g?~h;4w|*9d+@E@2k(&Kdd{~IB-;T>|3C=rlGIlLd)QZQ}bE zg15>=w;&Cu3AI@P5^%O&zagtT*Mzc_1+9sR$v>PZD@La(YX*#rj7=c^MQZBrRi~;@ z?%|>inKY{!I9pZU9~Bi_!Qq%#lLej!Rltq*?_|wQ*ASisl%rIlQx#t#=$o3FO@Vlt zRQgx#*;>X&a;~OsutZfj5EB)7!O79l-@w4Ylq^PrDnK9*a4ak=r}20z_mmYEp%V4c zu!@S4)AIB4Cqg_k?nX1W=oeidCK;sTrbzCk?KfZf7XGFnkffcExw6X||ww^~)$8yOK1{a1~1 zm5MuSR<8^V@D<3(m@XSPxP|!nY|iYu_s7_t0xs9q+0ntlGbSRm!pDm*)g83r(~pDg zY`Kn}9vdW6EG=j0##sWl`b$B;-`(AFXmNllfMx!?xyxgt!cVVVwKA0SPo6y4ATYrH zu!#xBO0bzPBV#0@=*SWf(BI!@M2iE@6aXw+;=~unL{&T3zwbu+U0v1)ZDv?6@bTIt zGdDAvPR3aF#EUCG-w`)_gLb z1q4VE<6m9?uy3zKnIslnu%14B9_xdvfBkh6tH1!i+?eR-*Eo&YZ#?@gZj$o!m~9OK{}+f_vcdH;_9z}U#hJnZwG zr6D_miuEQ!wC`cl^aHI+7m(ecVKtKeaX^1nd_Q z0DQFk17EQ)s`|Zm-d_2}R4dy}8$FWkxLl|5eYwed8 zz~}QPZTI)hju#2*K6G9tSiOR`3tm``i|yU~1m0O5ZmtO{c%LpLijus%0Km||fU`R` zwmc~z;q2bzQPdOCXe@F6zoaT2J-)`iYN z3^NOuF^OnxZADkET*2m00eN|_=;>pi28OwM46`)@2fJ4TRUicRi&S(^n4O)CZr!?t zc<~~_zwqeh&6_whG>-+J18P7msAA~b`>|_y4vY3Y zFzd{0QVr3IV+ zHJF{Cpdi%Q*$G|hII8nSQLEJ`E-nrwB_%PhW06RN?%utNL-c%v(1d>hPK0jfg + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.png new file mode 100644 index 0000000000000000000000000000000000000000..9580e4fb37afc58d3e3b93aa81136931a4065df7 GIT binary patch literal 1573 zcmV+=2HN?FP)N2bZe?^J zG%heMIczh2P5=M}qe(cAArf&A_`il4=Bjc2~p=jB+jUtE-^ai0|iz#x2dQ&m;Eux zZ|7XNS=DljF5Kjk-@WJFp6}9mVZXI%1Bh3oxfnQKOh93ykd zaAj?(E=3x%{dU_5)Nw8WO@C+fV?hHUDPUNwijOVU)En1w6_M-z!`P2_9h#@8n6*w- z8MRrxHl|RWH@ifeAGu!l%CJFv7bFFuiusr0wuGEbEDM9#UuZoNU&2H7o+L;vi-Hf! zX2JY21I)AQA+9*&tf4?X!M#6END2^QHmXbsrJU7kXWvV=q^( z#scn>YbSzGq;@=Ucr4T%Nr9AdevZW%?o2M{x2M{*1GBTA{_CV2>TQ`$UAnDGXU?gQ zFsD}X{_g#{BPozm&rizP7j}7RLj>e}sUIA5dRW=;0W3Kf0ZSVrU`10DWI1(Brk(6q z_r66W1qc?0E@^3_0WzJTkXbE_ty%{QoqE`PrU*(}a$(J(G_X`@VEH$Z_+D7dlYJ8; z1yUT^$rh*nhOJiLo3S_4D`rxw!g@2EvjnWw;k{Y);k~B4VcR$6PV)FaAt_MMsGd{Y zqN`eSfGb`5)nEt_>Y4*8Trmw?X~7|G>$bzP_}$0VhN_dSvE=ZZquetj1@@n0Cs%*V zv^!5Sk9N1v&&;kC>e1fg>PI!FG*Eq-frA$`P|?iPmYtK29F#x=?}v6ArIPB-ao}iS zpz;~n*(8SpXXeA{D}_*fA_DBq3TV8f0Y@_(?^VEO1VZIUm9Ot=WxEbu&tMx&b-ebH|}`l84xuU-v_IZ}_9T?c>qCjsSG8a{_wM6^Q=28HheM2ND6{doZ9tfWHqq z{dG3_yL&6{h(foo1fx4wG1r1oH=!*E-Mt=+?**fK?Lp{%M-b}i#QfaH16L6GvkUV} z5PJA)5Dq2;qxSD6B4&m!5%7@|Ajh;RFQT%7si?U&4jtPUkB-&G;`3-kWm3~A3#G=3 zk9R36HHFP!wNwU05tLTtdrStSz;&9^tekYjp+turGcht$x#=yWmI>iPhNOTf;pxE3 zGz(e(;Wgq`9QHY`He5}ZLd;?;G#l5|c+Dv9|HxCvKmx)p#T%@Zjm4vlA(gh$t8my{ zd~PHa&rBj|$BWmQ{NjQCghbp0#Eps95Ak{Y2(n-mua!BCgOVnsyAesL%ugC!Xxi)8w{Te + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9f0cd75be40505231a423545550fe71ecca4b9 GIT binary patch literal 1670 zcmV;126_33P)N2bZe?^J zG%heMIczh2P5=M~1W80eR9HvFmwQZ8R~*O59@$@WCfoj+e{6C4$7B!NwfEK12d`QX zWon!bK}zWZEj}g!Do{mqw5aPA&{j(kq*WesLNpPu5Qbu=Bxbm5$;M`?|7iRJd_|r3 z+c{V6xVE>qg{0X@KKcF5@1FDfeeb>Jw&x@P0Lve)Bs<~;0ul_av7W2T6>sJZ7)&r+ zon}@5a`2twz%|7CoU%lLYfRU|HSIVsF-^jYbKqJCEZ_$2U}sQhU?Raaacxe3U1(4u z5fwliX(dz41V|I<<)BTpS5hGHO7bOM!bo^!g)$c9Mr9LeBy;%l<3Ut_)Fge2GEsx- zuhpO|QL<3Q6s)qZf;Ba3AiXpl^yPZcZP$TnvkGV{{SRfNwEP^g5EXzS3W<{BP02u8 zXcnnK3Wj|KC~YhS!+rx;oE9k9R{)HK0rgfjkVRxwcn&c{1(54W32CJMM1%+f86pbF z5Lrltr1`SYXX_-P#d%VMBqTwWwlFtk1=JD#{CE%*psQqZmes4f^m~*|nR{o@Ps8<7 zs%1?}Y8YQuonlY6Ls7lLrLkx3)xO8i6%A1VS@o)SmLEvIvf7;rE56qVlH*dr#@1X| z=gxw!+)H4sTL){rX|TLL`HHSq@h(4~5TXJw+4~v8s>T$YFoI=>rA`IZbyq@l$5tp0 zY=DivJjik|u-cObOAn}Y;rYT56@czwQMNPr@9cWjWY#yz$)#buh$TwCiJz+UHn|p5EYQ;QLQuu(gW)}sw4ScO>~Y;Gu_WUsyJ*7XbUZETBEHi!2uAUSJ} z2Z?7V1{BXuUQ&a9gn~1_sG+H!I_179eLXG#n4{;3+>WbCXbw`~nt0~iS~?Aq4|8m1+b@-SkPvA8M@nSY)La&fr@>Jd_A`4$*jh4 zw0ZqpwJG|a5C>lXcQA=LNmZ?S4R2VvzT76Chhx~UtE+>1_wFG#a$Y#N7FQQ{zD2N4 z0TELKpV84#7#SHsE+jdfPPl*nKI^;PZq^EcYarOWN3cgT9N^AsSQQq6&x?YDCv0eF zfbsEhaJgI%3?;Y_^Go`TX0Z3Jbd^NYHDiW(4j-XJ$`KO-n|PuckYDF&Q3H;crG8oV7xqf^az=m z_s?Gk4<0;VZ7c+XvxP6fYPEvRW@FdHg$ozZW#Ks-g28xbZ*OPcd3kv`R9060Cjftn z_>;VT{W^R7;K741Fff3o2d4j>Y($dlbJ9g}Vs;VmX=eVq_3~t@Jg)Rw?2Y{r10k=Dq&63;& QjsO4v07*qoM6N<$f_D8Ang9R* literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo new file mode 100644 index 00000000..7e9e90cf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.png new file mode 100644 index 0000000000000000000000000000000000000000..fb830945608364ef1c60372b0f2f8e5bbef10219 GIT binary patch literal 1640 zcmV-u2ABDXP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000HoNkl4Pz{oxOhaXKPm z6>+ADjtgzoR*+I0i_+?hQ|s=i<5CtETu=eQ5OyK5YEc*kWE0RqMGK;Ul|@;?4hjJR z0Rw~(2x~~VZ_kN_rViE6X@2y_Gr9N6J?DMClezci=m1dC5Te5(@Cnc|G-IDCR}~(u zc0sO|QRPG{1;_#IoEFLnMk+IHK{MWF(M%RC^u9&w;VNhrfeP^H2|dW2=t6BmGikO; zfHl!Y+T{N!5Fa0(Qk0!AmYvFeeLKRwAd0;?;nemeZWg99wpy4PET3r1KQU>6^)^;B z>+35RFg*Yx0LJPFTtHC-sVEb*Ps5ml8%=(lXzWBxUcmZ0v#zcx5=z7CNpLwJ&m-h0 z84+i}+wSY6)r&uyVWg+?(L{5oGid?qAI$d3WmRAl)r2x4P&gh=85?3rRTOO15R_0+`PE3kIeob{F~W^c6m@^gJvEi~B0V@#e8 z#qb}5Y{DZYV654`xxoHN4Sqs^8M(*L&ynZ zO46a|OG9X{^0Sdu&47?17q&5QL+DHt(@&nTr21Q#8 zB$c7);D)2EI22-D6b6Ke=x>jMR1gDc3mMlI4Moo_WW+h+i&;}_G!ls99EgNC2I#yB zv;_mL0fdW67{MhHeg%pqKa4i|Vx-;+!!Oww<^`iH%>|v+AQ5|=<)e2oMg_I|$)T@gULDm(y83kfGEn*AUr!LkN#48QWiU>zI%)gI`p_CagWZzxSW z30|%n#5KX_t`3BxE{F&u!OPBac>2^&KGsNJ`2zh}ygX+))AA;GjPL)ZW1bJ`m;}G{ z#9%EO1Jx|F7P#Z0mpwwFV-a>U6`aUeuzXoaPx3%VsV{n}{2_at4BHKJU#MriSAY^5 zu;syD-I8F^?NA*FuJJ&B6${b|cSy?IapBA!WK}dnG9-sWp}^3H41!J(4m*1yHvA+c z<=zmMhGM6MAz9K%2yC&LyQeMBNg1r_xSw<^t-OHVayLl0=h4k&!!z&_dIpBk-XlSW zL=4G*6#e~D{0^Xe zP=MlNzvi}(tU_nO83^-EqoaTv7oJ7e^K;~r)Sk1z=7gZErWE|fA_#c-5b}#5Y^g$R zX)b==x)oCL6D0cWz+xla@jHN`k-#^L4Qw8UZebcTjzEy(2tlqRS{@%m^P{6^dUOO$ zStr2Zu#u8}7rd%WG?v~%!;5I}xykTyJ&q%Gdoft;hoIwYhjn#79lrx88VOKVF4DI; zvvX-sfP+O@qW4dV{Oh|=mv$Hp5A2lOyKx%95s^qqOG3%ho5)Gy;MCDQaQEea#X1X7 zc?eu~n3A{H-{;j>K%G@4)2FX6(ck2>eHkb4s6|PFr;WTYc0c0791+Ozg`ML`*dIHF zV2%g;{9W;ToENU0TL-6I7OC&f^{)ip#e9+eG;4FCT^@&5Cr7$(>Uel%Kf_ISK-C>v zaPORe>+Y|>d*Tn@Lo3=A8qYFTAN!vOs6+n)tTdTvvfX^9E&I^w#3)zm_G_$P7^iK^ zWR-Va;kJ883z5+5QT$)B(Adz}c7qZB@zn#c-!Pl6s=q6s+@)xX1@jE%?O$uyY_Vt> zd856lsSBt!CVJ|FvN{j@Lq*7HL+4KsO#2yQ#?6=j0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.png new file mode 100644 index 0000000000000000000000000000000000000000..478a127891b1fd3053a10075b089ad328508b388 GIT binary patch literal 2013 zcmV<32O{{1P)N2bZe?^J zG%heMHD!e|WdHyNTS-JgR9HvVmw8ZBM;^yb?d~7>Lqb_w!6OIJs*PxA;_jMcMTx7G zHL{yjrPehXW2qG{KokwgJsA$=a<~MSs{#T7B1xf9S1}whAO;<-89|X_Ue%n}gR8vd?x<}YtoP%l+r~w7NpoI#dinfGmQfkVx9(7CTqMntK23lXjdCMpT#EJn>W z9CQ0?!K$TyeAUr@)=NTt@Uhy!hJQHkm@vt}nB{~zVxW3ToHA+r8J*4fxK*0STrCLJ zf=XM%@L%4;Ux+#|@V;L6~H@ z2=h=ew!F&mEXc}HwoIN6lj{#F>)^wjOrxJs?*Rm zCZeY{394I((6na2pw7o|cP{kG)6jR4cB(9x2hZY4u0Q@X|7BN;45UlGN{8k&(3=XV z;(@LhLNp7bj3wfyU~Z4Zcv}RFE#Vlu8;Y^kc+?dKpjV#2&Wx@#1=<#p6U_a&$UMH2 zAqEy%WWZy`-*=)f1?c9)W59G0ae}!c5)(w&bpIH}?uBEdITXY45DdwWqpRk>kQN_7 zYeg_Lcj7T1KLKrX95GOUaJRK%b7uekcNQ6V_icyyt(E>0Oy@)4Nk!Dd5w{*EBPPOk z!!Xhm3WHpXt{Wmmhr1&oD;pAjCQn{2;T|8uuKeng9zF>5xzOP9oHHtuV03_08?7N*`938}Tq1vA*#e=<0)^tqsCJZ79M{#A47ehVDTv zdbAp74SEa@>rq}^gSG3NG1w4^=Bpw&FQ0vw-~V$BteIzTcOmKXQ7WXX3&K#N2t)N` z)Z|)oI{*VU{^+|Mj>x2Rw5z+(u53fMx()pUUFh$BfIhVXe_Q(zbPZ9cIPHNYZ`e)k z0LpU>P>#E=`A$t{q4&m7s4KnEbAyztebIN*kK`nFQ;bka0_yHap=hgtvb73o#Vx2i zWoVLC;NP1!Lr)$-e&kjxb+nt>0Thc2e6Vz$>*d5vOxu+MP?mc^S>c7w9}l9V#1ri$ z2he`)FeH*toV$1)t+K0Vlb*%>U$UU6EktiGZ8e z5x5^bhVA4cGpe?e<$6e9MlR4raOe<8o^uVR1?{Reo@X|B_j)pPfU?pc+e5xAi{ zP5d9m=ks?=jpqXq{N=JvV#2al@vq6^g$ow$-{`3LG4(6BZ+uO`#h*67o>FYZ+i%T# zYuEY(9WF~=Az!qIF}?xrU}Dd2WGyiIqPm*= znvpW!Kx!)ajPvU8p&A5s^aS>3Mg!bgjk=;n=y_3)r#nnePDWc>8xj%{P*zrkw6rwH zWOUmbaa$tkDot(9T*G-Hh&(1L2Ka~aC38m zr>7^oCQ3_7$!*~_9D+ehC@d^wpSho(AA*B}rwr)zdPGGoF zXN;t2{Y(p3!}aUek&}}{iqB3qGe8lG#pvzrCB>Ojbab@s4A4dA@9$5FGpC@SAesrb z7YtfUUS1wbN=is^dZHuu_V%Vl!M1|I7lCfY%F0Soe4Oa)?Ax~wU0q%DQm~z1@I}ea v&PG5$07N1Y`#SdZ^@U2MBDaL=1DN%HdLO?D + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.png new file mode 100644 index 0000000000000000000000000000000000000000..a752579a6073523814597b80975475ae0c8216c0 GIT binary patch literal 651 zcmV;60(AX}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005{Nklnq`K_zc)Z<1q9NLQ0)(~6)QW|M@kNwn-1VR+j~IUe*tpolY{E@2MAGLRe)!5P`&vA z49P+D>I10Vdk^HuL36VM#7}_*y2oR4<)Ha_0YLq!_dw@mR3Zn>FABgaoc&lhhyA5; zP>uWmhQ<-3bKPs?pgQFNVru0uI=~n?j0%vFs|HU8kLNnrx36ameRTnz$oX(l3)lzS zkEsigl7r@R=G3t-rCSN#wli+=bIJnr$$_H6R)DR^T!47IpOYWpncPqfgz-I)S^@VM zYnvA!N1j48EkKNWiD^3=pjHm583qWSfV==> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.png new file mode 100644 index 0000000000000000000000000000000000000000..801f1fedd81cd7ba641795ede3f8d79a7156749e GIT binary patch literal 1665 zcmV-{27dX8P)N2bPDNB8 zb~7$DE-^4L^m3s900sR?L_t(oN7a{UOjK6@MyE}eh!p`vMNmMt0R|8(s4OB?MrD_6 zzy*rCCT;{&76C=7)(sI^MrA-$tm1;&R#bGVPz4H>y2Yi|YFewQr6pZ#V>x|~bdrgg zWHjkC?T?eZdvoXe&VBFBk1GLsxV=@9CvZ;y10#04tLfF0S86R#8yHPbWsiXHAnsh8 z_*}q7V`eDCj=#Ia&OCAA$G=e5-0(rU?8Iu2>fRR&x zw2#z((U2)?tB1`lZF5>u^UyWp#4qkE>z{e9I`_NxnopkitU7(wC+p}@`}pi^r+{$3 z!M4t?>Bw`O_9lKA#*~e^Z>ZG{k zXOy2mLv^j2{A1UdvsTrxD8HCGO`356x7BI_H#8Dc+QPg&U$E%l zP15V`vf{)0nz|@z`Hj-{-`VlSGn8#VlYgMCGkMXxS^Og==mDq1!Goxulr{Wh*I_mzlr+21}28N&4}x$*%vF)n~tF-GweTHUELK0}kAT z)(7`_^nD#2=aZlAFAXx)&etn2C^U8Vu=Ha{Ge0J1;{`&BE(yDDCUM7SysK(w&faS* zK75x|C$3R-v4xYZ`}nLqm-|JemF zA2Fe@iKvnmV#``d5Co=Iv@@^fI{vF0sL3$p)?3fu~Wjsej2 zI!`a#QJ5~-rJb)=V8pzwf7&dmMV5PpNy6^Ki<^Z{&_Y~!D|7dBFedjHy`l@rS?`Oo z#DPP_Ry39vbF<=A9@I#9baDVsK6Rz5!JExJbM@~X@h(HvI>UiRIPi5imaLQ}EXs$J*>w<)z1PD`)!fe+A^umo(1YKW*>}V)DjsMA^kBQZ;p|y?;qOvdIjV&G7kh~)e5^k zEgZ0~Sax6w;|cAt3s2-QRUwv8lwS1@yr$C0X5kalJ&8D~<+ zI5mTulk-`Acm@$$eHgxC03J&R;yT|PrxY`+BaORFoZl>XK3}hZh(&y!t^M56NAjvJ zMi-7^e6<$|=RJw3_aO49jL;fqCRRByuH1pZ!eRKXwZ+9o79GP6_PGaK-VowhzN{|RYB`aOr36Hbt=@RmDxk0RU_WE|V1MJ8R)HpI0=dF?*}%8oTG-#+ zD8|gq$VDQNyrS#(&-2m(|1|$Ofu38+zlpYh=3-)^YoQ?!yEMJxpirRaEeIG~LhKOe z*}Xu|)l8hw+|@)YQAE5i8Uk^%Vu#ozcA98gY2T0yjVL0#Z6tpITv#)o8Jb0I00000 LNkvXXu0mjfNGTvo literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo new file mode 100644 index 00000000..f7f84920 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.png new file mode 100644 index 0000000000000000000000000000000000000000..2692052718e52a07fae2b55cde306e3a8b0badb0 GIT binary patch literal 2053 zcmV+g2>SPlP)N2bZe?^J zG%heMHD!e|WdHyNgGod|R9HvVmkCf*M;^v!Q=6oMD*^@;K>@jjTQHz9AhOD++;XE4 zf)`>Hs1yjptw;=_Tyl=e0HfgIc%be^P>vu3fq)^PDNQtnxa&gU;v%|W8NThF@@+6_F6PlCeW(=gV4Vq5={|qP@ zIdErk?IRa#I4EAUt*Farchw_P!R2QbNwqJn_BD>%9Qfj~?Y^shwh0$5==&!o8acT0 z=Ia{&mQ9PIuz{I|D`#kWM3?AnKKjx)wF%smCYbGShD+g1Z2iOch`!j5^oBtkX&pv> z$0&qfzl7-41kx_v#`c4v`pC56nQXcW8JJFxvPJV;P zGj|YEb02Yk>_@;d&3qV91V`{pHtU86{=?ivn>+_CjdZMg=N4DHP4 z2c%6HCe*<+r5>(FZ(x04I|7BB2ravb@YCO7&-r_Zx%49vYyX1%4MX_s`UsA+zksj@ zsJ;Vq{?w0wp&Ilwhm4&ra#EGmmuq02YgEOen2X@Xe-5X^*Wr?PgRH(CLC3zrC!%g_ zKXnVc&fUkp%ePS8)`2UXmH4VV1^vCj82Q!>xZ?nPw;K4~1H*kGI8hWQkkyxOASiQC zFX}wZ68?lWIj!(2?0|1^CjyCqO{Lw~QFR;k`|D99P{rND9Q;{gjK8(GV(fM>CVmJ7 z?m7ZJbAYaQF?LfAIWe3QvifojEZLF!v(9b_%u=pl9a+75emi*u9q=pZMA*q5tVp?t z54>}boM8uHp#je3YoVo38FxzG!B15j3|yIm$6uOaq{j}!T{b9*=UkT6mutW+witTx zwJ=F(fcd^gxaPINv!ET@NphR`3z!!wgx~Rx5qOf1K(PzK3jtz(_*HB~M1?y_s;tp2 zQNze}4*pI!o6PB!)t75vTe=7~2U}oF3{Vr+2b$nbegQ$nUt+<|N~}mvgx84`@F`mb z|MIm6tZ+k6xfeE+`yfaZ0RPfW@IDp--=bh-iHz{iRCFbe(*A$eC2d-fJKih5z3+zS4YJ>VwIgL&ElSY>F#UbqnaQwCTg zHidJkB^(Q^ur%8oHd$s^SzrglttL=*(7*>~vx)2!4ERN7{&n%rA}rh`LDc#Cu+O>y z{-K>P5om#%pb5)QHNh*KF7^s%$a4cpFmVcBjoXt;a`_0{T7 zGMn{6R$s0G{^s~&c^amb$Fk% zg0S~fT)SHX-wY=hZc%~3CROPA&Vt6O8564J?{1ORmuq0I$?~NZTaOG|9B6@u=n;5F zm%{yoGr}(UA*v|=(bqOYa4i&qy3I(w5{}q&o8ggbi^XwsV7X^5OvBY-6siVoPvr>} zQwP?WXadq>M*miBy} zGJn3k@)j*em1sf=Y44r;(eENYv{3R44ysj~OWLUS>BX(NXq-37vwOmua1p{=crR9`nxQc@y)vO#kYq^l=L zuVysB+|{TnYJ}bwS$R{ipr8Qv?%hLfZY~-c8Xy!3(c9Zgx?Ug0Ks0C$nv3RCVS?0z z><#&?$ciyANn>JSFg`v`LX*cZywah&F5PX`L5lF~*)yc2r6D^z8_f38=g`m)5)u+1 zkx0le_PMgK1{LM`bNZ3<%lnr-2cx5-(x*IFgHuJ;KzMjKA|fKBXQIBoo^-R%VPFj^ zLUnbu^qt4W#UUvv>0bs$Mn;g4k%7LxK52heRu&o?8_5)Q9oC>Ch(sdk!5bVL1dqpi z?G?1Pwn`5pZ8JvRb~q;m6lH8|43UwMn3$NrlP6E`;syQUVlRv_QYPt43QUFO=4Ob+ zVp9G0W!el-Qd3hgFfc%>Z!d=q9hyD^^w0?e^xpaQl9))p%Gl?#2B%78WhLtB>PU5R zp(~G$j;2-Cxvaro1N|wsw6u`wFNN+-SXdbP`}=8=bslT**HTeYf%y1%Bqt|J|Bhp0 jWAX6eL(;`Q9suW`NXhqr(e_(100000NkvXXu0mjfVk*)s literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo new file mode 100644 index 00000000..912edb92 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.png new file mode 100644 index 0000000000000000000000000000000000000000..7128c6c0c088e73caeaca7758b15057e6646ea02 GIT binary patch literal 2385 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 D8QX79 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo new file mode 100644 index 00000000..dd2a5be5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.png new file mode 100644 index 0000000000000000000000000000000000000000..7128c6c0c088e73caeaca7758b15057e6646ea02 GIT binary patch literal 2385 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 D8QX79 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo new file mode 100644 index 00000000..0e075f7a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae0c01fce21120029307147d0ede096a95369a3 GIT binary patch literal 2367 zcmV-F3BdM=P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D04sDwSad^gaCvfR zXJ~W)LvL_-a%pF1bRel9GB7YWEiy1MF(64!Lr+puAV+OtNDz)8PXGV_7<5HgbW?9; zba!ELWdLwtX>N2bZe?^JG%heMIczh2P5=N1c}YY;R9Hu~mj_T)R|1Ba%qAIiRWvbC z!Gd%t1`{k4kp-R#h)742rczWaNC$aT%LVJL?&+sl?meew%gUl_J0Y9@dT zsFhPUUJ*93%N7gD3N00qIlb=CrPxi!gUSTY#&?N0J{=LikUA;h{&HN>>$m=G?rGKA zoRgFJbX;5nW%o<3li z^~i>DU;SjL0#agYbv>sAoL@kMo&lAcg*X^k z1ijD_m_${;@@^f@B{jqL$s4$&cETgG50`UT@GY7^XeDr;36#8TM|a;NRAw8E-3^jo zF`t;toPgCT)-juGA4ACLSIGP1K-s^LtiA~PVWlu;l*8;!4bD7lf&0@ML>Ckzr6dle z<#e=H8G==(3NU4XMn#}W4TIH2hzN3UoKMVVZh-#P9$xDth&n&V9=|-O2NpvsxCDA6 z;7DXSEaGb+vcv*n1GPt0ac zz|R&prZ%2UfG9m3`^f6|2NaP#m5}4nv#4h?{EYk3U>lG=42J#~@fE&4i%fO8M z3UA{%(4F!F`twD=s+7WDnIuA-IG)ZYW-}*1)jk-!PN~>T&xDx!OQ`r4;J~dSm=U?8 zQ!-YYghD&~F!XNIpcku5P={`;4zyzoU=_0;A@N&Ll&})491eUSB)W2x&nIRxC*Zg@ z1Cp0=Axr|Oh^<~(&>;T-`oZ~FcOnkEyj`Fku?w0}3ebt(3%wXs=tryLP_!oW8M@Gk zJOYg{BWMK~;yPm|{-w(|I-i)$oB(aR8?Xvaoq78OE@VK-uK*f>B@l6Z0vT^>DEV)P zO0YDE*bOZP4LS^E=rYuxA9WCVky_9V*MfSm8ukS21^;nzd@HZ}qcFhCL_Z);StcIB9I!IjE0GZJBpxxoeo>&nmMQ(xIEeUMDE(XbK zqS$>)3IfMAW0~w4EE4^Wc;=T=%n8u8x%&R66G2#iCIQw-Es(iZ2-?3-V6!7Pgq*ps zBcqO)leutfrtDx~v0-;qGk>2nK zT36&DaFi4LM^=DGYdO{^ESX**_Vv;E#BAmS{J44NcJX7rgW_JfP-ApK`sQ}*k5Gd7 z6Kz;$>B1)60FLPua`wT2V(=xjEe*-9%aewm_x9su_Yo(Xb*2*k9 z$}PufL!gsuyB~k~r`7l3i#1gasc95cHzL2G8^;;Ni1;-hWsPr;SyhVK_AWARMNNAr z?)_GUb20fiV0aSBIwp5ME8uf*aq-~4l2n3|VHqf8w!u8)C7x72hShU@^bC!lv7-k` z1xy(GB$6HIfTpPxRP~NVQ*#$2z{$yrE4!iwjh#K@IXC0Qt7hy8Q9*1`93l$B5s}5j ziGZhg+dG7ou0H6QorSu=Q3f@4K?3M>I%oc?8uXIYHg)#mc4Zih!-Ei$Q3-J`1zdiR zgF5m)GTb{?k!^dVmrWY#Uo2-)Z=|=Lhl{GiOCG8AayZhjgSb`Td8SqKJ zMB;|g_hE!Ql3|!w*+IwHJcydRAORGaMY$9A>LOs9ZHQOz%JKW?7}@fEyz3i;N18P* zr?}$Oy~FS?a)Ma z1v${YU}ACVD&=B(sQ^F1%q|fAR>Y_H`1q`gi;L4QEG!JHXEI;6zIii6?ZD*J6dYVV zaLP>k4DrmYo-lJXqiWb^HL8jVq0Wm7LXF>|E2TGi + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.png new file mode 100644 index 0000000000000000000000000000000000000000..c03f9c97049ab18617457ad3dd6466fd3e3a5876 GIT binary patch literal 570 zcmV-A0>%A_P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00050Nkl_V$o=*7tqz`9AB! zRrHNv#NepXRRcE-oF~M0Z)NPz6@swqcj1S_R@!bZ>SY=VS%iQaF z+{1aH-(|qt2(b%UN6eX6qlwpX59ft`mjSdJVH@{wUg-ZfkQ#?_WlanR za)eJiarD%R@k_>418&Odry0HiYK%2OQ`Tkb)RS*Ub;Fu^)c_~Fe9t%k1H{Ifi1%OU z><)UI1FgIwe>L>B(ccD&Cc|gcia!lJg2}*SU~C|6DUYNy;ETz;R@ee&c`nJDh+PoP zO)x{m(~G#8A^5I_D~xboYyl6;3}!KNUb-r8$gRPMcDtYb00r`=AveCe?EnA(07*qo IM6N<$f+H;WTmS$7 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo new file mode 100644 index 00000000..a4cd3249 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.png new file mode 100644 index 0000000000000000000000000000000000000000..725f3c2607cccdb3f5536c2b6b92dab50cd9e0d5 GIT binary patch literal 942 zcmV;f15x~mP)N2bZe?^J zG%heMHD!e|WdHyJEJ;K`R9HvtSItTzK@iR(=o>7)f=92ug7-bGct}nO`BMpa*%&aJ zLk`I$62U|82^5Wp;>Ey1ye$EdTq0o!QG`W?d5*SZu_~@#ytE;~0t{IpR z5gGg`gffgf1_cb%_%3y&_`VZx9x$ZNz7fC%o*cw)#y3$G6i~y~Ld^__o<-or1*pY< zfIB!a&b7cGftsi-0y0`qkeCaY3z!Q~1@OGcII-McM#=KREjw{oXV*)31D_EW&hksn z8sz~ixHa)D z%u~8KtX*T=SbJsxuFYX4u4H|gSN%D}clenE$T0%u6l@%9^u#JS#!r6^@g0690dn^^ zO5xCCm?6MxHh&KB9e#QNmP1o63&-#p(g*2w*d`~>5ZlV}V<0K! zCCeio{+ch&n=P*jK!>~cJoFuaEf9`j?%&~YI^azo@Qf>xw+6XI=%@fEiT4@>g-->1 z1?B?g0{jBZU&>d)6(Bz*3tHf$$mMeM`1r`CzU~6Gq%NFa408&MsYEmy4Z6O*W^-6T zsf6#Bz6UiJ=II&c*9?UGt3efn;D1qtKVh+0q*kj%g+hVO&d#V@E>pAF+hZnsP6 zbefKijyO!;>p~?b#b7Yt>Er(0K6rY1GV}kSlGDN!u(7d0;c(dW#OdiNFY9{*Dme*i zwVJu}L?S_3TU(xhe!oxIY?f|sZ_WDN-X7KKb>5=qQOQYAsZ>nkJv=n65HWRlJCV{>y8le%9er^VsnAsrtdvpG8O + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.png new file mode 100644 index 0000000000000000000000000000000000000000..4828d61eb3df3ad72a84ad43ecde38db4c040f9e GIT binary patch literal 1545 zcmV+k2KM=hP)N2bPDNB8 zb~7$DE-^4L^m3s900o6fL_t(oN4=L@Op|9E#=Ty4VYXz+?sl~-%WhoEVz!HMp`uJY z2IGmXmbQVXJ@zL{JWG5d~U{2o#ExmQvbsK3GK9?6dd% zv`J&Wi#qKte#zH2AJ6}J-|v6m-2i~$xnu*EU?(8N&=}GFxc=bf0WWAnj6Y5}V}Lx+ zozsPBjWp3Y@dc7_fO@dOiu0WdcTmVc3E0p>aGOv=eOT9I!L!`>YUL zEpxDGQi3+X6UpG3U4p|ihhc{YeWOlvn{8-&V!^%cK{P(@hvs1)YW2NuAkTL?o}xzk z1nGHFBEha3v;n?Y4ui#sl~?PSS@L3HY7Q2=n;3DR$2^9vfl=stEod>C(fFtjY6{kl?vn|Iqk&Ix3Sc6S0A2sa;QJ`{_b7= zvw@Gry9StB%Ku5A0sqBhBioCifX4F2r9Z?3<`f7aH$h_%nB5bYs~KJJ-_@uqYJ}bw vLjm0^jX`74m>UCK1>TTD4K+ee8yo%wxl|@I+f-UI00000NkvXXu0mjfNw&)T literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo new file mode 100644 index 00000000..536416cd --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.png new file mode 100644 index 0000000000000000000000000000000000000000..2484ecab122d2529920b724f45ff9fe4a1aba050 GIT binary patch literal 1925 zcmV;02YUF4P)N2bZe?^J zG%heMHD!e|WdHyN14%?dR9Hv7ms?O%NgBs}-r9$$-KwqHw|&~$+S(VlrnaWmhxK7* zoN;BY<&;x3RpZvIA}V+b0)apR@)~X>EGCOB3Q+PI z1@g__y}$T-P|zQC?+N;J*Qa~-2YvD7u`j;f8~)|j-$Z@>)!v9*yMqpVv}^ZQAMV<{ zbLU4N|CZ+?kWC5D=`W?08q1&GYiWml)P)((3T7AAG3{B!)YCP%7FIC!#D_!1_u1LJ7z z8zV;1VjB~%Jai!8e4dl%lOb6^yjq8;xo2?B%wy0wgNMT|wD*sqq05e2?R}_i?L}4d zLsVLNUO@Hh_a304u?w-OT5`enD_MXlLl3Ln1>fpAo;>qnVs;+(v1ttwWRWuKpV{Pge*prso$?O>b$a zu|QW|kCe;RIG%7GKb(xkcOfTnN|A_mn*)&v>3*J1hGYR+eeQIdZ3MnGKc*IzF*U!0 z3AYDj4V}=Jn~+vigE(C&jw;g;9B~E*PR2l)dQq6BGZ{Hvo==8k0cpB?n3_A#Z+D>T zP7|z;2GHkl!cg6a3njOZR8WcN3&l7Rmxja9i3n5t2u(p5CFcZGnU}}~->+l=EC)I$ z2iO#Ne6;kQETDgA1X+1kk*YP|tR@F3xQUKfMMMU+D6FYQ^*D1 zuVevP*#%4O15P~ku47`(htZj*ushu_nyk=On4m7Y38l`6(D)1-ickqTAU~IZnx;-D zQnl+mpA5+YROx#3j?7?ic#LwO5tg=Ym|MGX-cW(m+-o?eFTt6M#YoT=BPG{}46%_4Z@2ZL!fZwIrBa-TPZLJqv?>j{ zqDq{Kdj~miAv^C`*U*%(|Bt)9uusgPb8sBSyB*M$H_$S?Nz2fPqihNyUra$by}9A~ zUC0wN*LXe|k_BXB8~kj@JNq4U;CM0QT7Z@Ieq((H^Z_|=I8KcpPQ_t==xLmwrD&)! z;anE`=;8a7EP&;}fb$6+^bSC#I1A0CVwBf4qxklH-B58vS#teNtG0lXUF%k4&Myr5lFwTgWM`fxhGhv_xj%b)@AR zg}0W|84$15<9JNs&)7bkwpXI5x}9d^ehU9t+D*%eLY|mII~2G7P3=_)p4# zFxm%Fb4qY1Joe`w$I9f)?Zs7fYg3*zj8YQz3{S({J%m!q0iAdjXiI4;R^xz7iGPGe z;%Jl#adeD-{_TEt9CH0i7QpyE?8JvfrByXIOfA!QT6+Aq+ibYT4x>sl)K_W|OG$W8 zo`ih|k7Lii@BKSJ`K){U`+qt9t6%@-mpp%rO$i7@nRelmQ;LMVqml7_N8|}B2T!Z8 z@9^n=eem&TH@1K9w-RcuE#O`8x&YxX<^M^b0P)AJ&Ud`~no5rKcmZzRx}h!`|HJRECl z?EKl-M&zX*HtND?a~ny)=kr0OQXxG(9pdn_>)hNNqNAfxR#ryM_M7TyN7>!0@&Lblup-?FPD`0VP z5lKl&u-Rc~f$3Fi2%} zbroS@VetF?@OV5}UuPe{{2~gYvcb;=!)CBpEGR52r0V}JTPA>^R4Oq$J4@9!m*nK+ ztrNhKE-EUDs&6haF){4I?awuCmMd4Tpsuctsv8S?bD2!Ws@%R@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.png new file mode 100644 index 0000000000000000000000000000000000000000..2d3dce7ef2eba4a232b71d52b8614144ef0bddd1 GIT binary patch literal 1695 zcmV;Q24MM#P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000IKNklTz1-t1?et z*FmUdseICv0OSjObJ`#w(o>OXOVs0y7xiS&hJ`oMy17c!i--b@&X~rGwy?*TOH1J#yYV=!Cj@Drp3eo|#oYJU)q;g(VD4K8EBUIXe2s(cULRYp)C~ zy<-sfjH3DBD4L`r5D_(YkD$JL7^(b9>^@+2PF-CpjR1n!iI6{9#Msmv9t_JN8ITc! zK~%T);C8bVC5@dZZs z8m1mA2+RT=3{9Z6y$9u@P815;kXt1}T1hS9dBtF`lW^+12Lu&$;AHR#!2XQ^T#4eW zwe`#KboB)RSigrNy1dy1Tp(v@Y#}t`{$@yhW&MC;;kAhb&QUWl!1@MjM;SW|4&ihB;w~GNd=kAS? z+7{$gieR$u8((#GsWbuzj!DE2Nq$%NLqv0uQPUuXpsF4m-YrD@#YX@q3!dyWxG_0o z1ft*>#sNE{81_}tKjt%R3Riq0RM#C zHyMb+@0Ww%et|&IEFHr9(hH2uC@?6WLqnGefP^rG4}TKE zKO>Uh5)cW;i-F1vq!rvo`Yj>$9x~q;KzJM%HKI0%JGxLVY(}ee0C&Vv0?-6b{_7F& zBLJ!pI(st_N`B)R>jnR01}sjS-BnkYN+SSO2IiNZW0vfO?OhL%o>v4iH3+zx07eX# z%zG9%S;fdIy$60xD@yJ*!YTeI#MLq25M%RFU0o`T0HUsQSK9g}FtxCP;pr#n8=HlQ zWT31;f}E-*Bp2RATy6zIlJjtxl>le2U_^1a_$As39)%7#9&zZEy1G;v0iR*|>T=1*utiuwxy>nOrMau}n#sck5DV z1VHzJrp_MJHnxIaAw;!Ef?IVR%AJt&cQwM&iV&EXhjUCOcY0wNO&y&`NXvm2Ga8=E7U~W}2Qj2Rz2Fl^Ya#IewWvD6k1bvDFX`jHPb~DV1cfmAa z2TWpgVa(bIy|eE*0>RO7hS|kc&*Tfw&_A(2R)h@YO;Ti$3@F3Lr5VTu^9IR4N;V=n zBm=xW7+)i%4IjWXZ96IRZe1#k0H}Vw=w{B#FD@+;iWOB&T_`2zeRic-xeqW&2z>~E zd)N(}xfBGuQ_inEyaJ|;*}5>Q+5*$W9i)W%x*7whblA#fyI)9@i@Q%y$pzn#acA$4 zwUZb8VDIFya>&l%f$6uF=?2DM|3Ld1hwsGqrTQ?5)g_PW>-`r%c}w}fq<2OqP~S<1 zq3@`p(f^e+aI<1D=nWQ70#002ovPDHLkV1l3z2ABW< literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo new file mode 100644 index 00000000..3954ea5c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.png new file mode 100644 index 0000000000000000000000000000000000000000..3da4e174133f009b7208f38797d17d54abefde40 GIT binary patch literal 2066 zcmV+t2<`WYP)N2bZe?^J zG%heMHD!e|WdHyNkV!;AR9Hu~mwQlD*B!_Gqe(O6pUfmWoz66s=^yPsolzdiMAF78 ztrdckKy0VenrN&jjzEhb%VTkI5tr94;DW$HmjJsw$}SHvz!F%5Wfw${$0{i0AuNwY zl$8YpO!)Sk8?V7|Z7-pmna|vFfA^f<@4M%G@4b7s0bm$N*(M^45U|D28b{f>Z1LPR z0~)s&woWc1fOP0Dr-3fQPFC4gL2Ep#MQe&^!1jzSFU~@15vYI>dO|ymTm!cfT9ejh z1&Fu?Z6zBL;N#=-BhL@KTs%BIy$^bNojBzEaqx#eheJQ~`D56jj}C`;9{MQocLzL= zx*za3xc`91FW+)>e1$8|T6hb%lBq~6F4275-r0-ci5XZQFTpyuf{EEBj6Zq;3ptKG zT*Q#ojyCfkG}U@U#7al}1ks1N^0Dv|kegr7JZzc7v~2-HlaJ8#?+J9?v!LVd7~1>C zaHD?|ZGHFAdgne&<`EbPExjXX?j1&srWS9%x9>PtUJ5S((b5b|%sj^E)I;1Jo(g?xbjkX3CPIFvsczNV~T9UMG*?sew>lfDow? z{$e>!2vPhIF#; zR7`SS8DyVp5SNh;f58PPR9ak0{~WtFYeJzU)!u$@9JBMw7=2*JFu4^C>!=$Qu+aq?U=e1jsPs{9i1nFaWj^E;c{0!^vb-fAAg?7~+Vowj3e;voz@tN>!d zYz-ob3I7q7iPOS(oH!fBctBbD1#+)8;@!ROn-g#;Re=WMO|*6Ppt`XY?dAb|*=8mJ zOpup+vjP!B0Bgci0x>R>s#P^`AuavO6kY-n(-co`-W|u3?Fojh zbGSSD07l}0Ylbcq>P*Ngt4C^44Pvs2aZZwsQ=u1-C|BSwNgfC)JA#kn_O5c}rSKAv zt1ekJ-s;En{8J1~&A~i8jfRf?=N^b59*B?^A|^u(X^t8RY1zmrD2BJ>eH<(DfQQ7D zq*s4w$<8pl@l1rlt{f#x7iK>SUgT@_*GKR#}dyjA9%YpTQC72RIzJABQAv z@KNl+zM`MOUGWPz#c#*%*d5p{`Z0EX;_&>oz9J>^f} zqJIVZD&B%?`kQc(ZHKdD2X=n8!4;hPeDDP zhWHBcK(-q3a^eA1F`QFKQNs`5s(gc_S)Z4}O917sXZ_t(B^6cI8r$qTQxB@h`(9n! z#ykha#Drl)Kw#_@91D(y_ot^;gF=N?XX$o0>0X6v#+xJscV6BCSoV8(y%7AF0J=yDhs$l*l8}%9yWLK@+}GDaYq53dNiu<11;U0zbaZsU zWHOQNivlt;Gnpe7v<89s^#tbAj0V_mHL8jVq2G&~d^cfQS{eoi2a%GJf`*0$WMyTc zx3`yEdT|^J$w6z-TD0ctY>%MRNFd|JV9petw=g{x3L#8)dBk zKR-YC`};GVsIRC0N4V#(a0dBMQc}X~xj-O*P$+yZU~X;>adB}lo6XF1sZ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.png new file mode 100644 index 0000000000000000000000000000000000000000..e300c0884e66c4411348e7edfe85cd5bce97fcde GIT binary patch literal 1189 zcmV;W1X}xvP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000CONkl)WMj_ zu;9j!4z>r~Q`gnO9y%C0WDgw-gt64v8d?9m7y}*FEH1hSjj63koK34)vP2VIOrn`h zUCjTOXicv9(``>OMkj+kl=ZjsyX20GTy2T>9{9ky=lt&de(p`~Nlpm>&`{r%CK9n{9SO+I8`=MACVwySwMw zSC_9SdgXls@;=3|@|!_z{|%+#)@|LK@$O7+FJ_B1XSK~Wv#-r?pg=`M#gUOwjcHsn z24BnjAQD}NO!g6^sVqF)q9D1k1@ZMwdOR44K`0z2a~T@5$qd)YImq0s9Wt5xd+cj7 z94LS^Ha5PoFz?*?(QJJ(IyyG39vaq-jomcf9KUVRYHvA=ccVC7maD!gwn+cAeEJs<<-^I$GPU%l$V#6)z;R&jCefD5z7x|7*-9!^3u;B zm0qmlI_J3rioxab1csC?-h3%Cq21s}fS1rP;KtsdpC&?SJLv80^JClcr3B8f4 zjty@DFNs9QT<)a=zMiS{HauAMQ)03B7*{PDUIePDs*YMLwiR5olA9@r#S^=yPQCRe zSM6SS5g@DJNHms&czgra6PwT}?YhKO$Hk!q+S)#8C#&F7Tm>W11WZjCon>V&mU7i{ zaVUZ2=69QX5Bz`o*TUfQ`N8e>?wqWzZ{VukkD>)6k_%r(qw#+NYaxin5^$wkM$>Zo z^bA-1eiSVb4o4s34-~F+KHo2JRVI6~p8#nt0;gEf0$%S5h3mYk{|5c|B^@2Va|w`E zPr%L>*k{inMGKrg+wy_iIInL~;e zsHv%WRj2zNR_?EoB{xt0AEd$I_z9HCK@f>V6-*sz8G^RZ=U2dBn1cJ{^UvlU!4_Eo z=jWZEQmOwJAnlz(=l}*6`uqrdbnaY-!)}LAC``grG{Im9?6Y(5{+TnaSi=fsb9jN$ z($W{S8ck}!F%OYQ6ewyN(rF69;RvAAkXpUQb>8y`(7TjpA(QodyX09e+vfPVUMu|n2pIZ|9bHSW-+;VFifDI0zq&I%plNrPoTGE zIKb@H& + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.png new file mode 100644 index 0000000000000000000000000000000000000000..0fd96592234f9891a443a0b1268ac52dad76d0a3 GIT binary patch literal 1550 zcmV+p2J!icP)N2bZe?^J zG%heMHD!e|WdHyLj7da6R9Hu~mu*Z_XB5X-U^s}04#tvYNES`pvKW_aA8_%5bGl?7 zT(Zbw_Q54fNam`5KtK?sHeo@atc4G}6qWL3mDlmkC=?i$ciIB23N59T@kK%whUf${ z&d#~()hj%OQreUJa?d@_d7ksX&wcK5@AUxy4oj|&1hFIFWvIrFd|keHi6EiJ%kXtd zI05L;l~Z60`G8mEEvSa07S)tcV9|lsi}O$|gap{>gq$8$qBo(MRGSwd5jK8}mY$wb z9~}Hnh%oL+HWi>y+)x`$523$*aH*l8@qScvOrl71;bLrTd~!nKB}uCIT88+VBquW~ zTakV}v-IXIWs~Yom2Ew>b@jIThNdIJv3WKX5D*ZsD=)vG`bI$^{35;vdcy=*XC8ss zG6N4MEnvDo3F8wFxcJEE7>w%1vCYa+TU`rj*oSCpYzC{<{)KRCo=pW1hYlV3sI9eq z{xl`?sbvaqm7RdnN4okDT5MRljLv#jj4wyL^rq`slqeD`iO5b|sp#79MQ zR99A$X!isVfq{YkAt51qS#3i6{r&y+?c4V*q0w~f>uPEtN16@YU4KASR7@DFk4pmF zp`$}HEYFleTB;asmsP--GvB|*%JYhV)2Ac8wb^I??NE0@X>kd(wW$}v!oqg3ay>2} zJUsl<$tlZ{&Hg91U{l4C3@jeX$|XE1;NZaz58x9qZ<)5iwABv9#U(0Mo)C`-csnR) zPe*5$ksi+}^ECAJ4_bnQgZHpMM@X#n2#*A<&Hjd-uv13)N zd}p{VK&LY-(hG`qI<0m9lH%fCI1_-@fiQ)+Eug2T*FyWeH2pd^{i4XoIhFvl{RlZf zkuPi`+!k=+#L2HZH9asqtOt7hN|hylEAk59g6O;nU*mp!9$FIem&50T@NI>UoniWwve9sCfEviZ?k6;paz}D7w zkV<7Q1)zQAD4Icq9lmD-d~@nlWJ_~1jE?HC_!P&;$S5>7Ho=$2kDsO-K~W()7vSsb z`-Y;RV5+U974&)oSS-_EHd{ca(*uc;%Va~Wey#}M{!+FgE-wDpE={-N>di2NYrr~V z<7Q!acm&$p)oW+Z{*b)BpF_Y&VN581|1sI}(`z%NQYk!n@&sLWyAZ0y*QJvjgqsCq zTOxEi9SjT%p!>Q2g@P78yARbsxT{CFUo#5u|7xU)gwX#Yll24U<>le0w-s`8bD^uN z3yO-0z-TmL)9ZOWI0n_AT2yl{A0!dNKV+u}2jk(3CMG7r%E}6cHstK0#nLBO; zGq_!Z0z@JaL`O$+YeJ*ZU^BZ94>RZrRaI5oJx@+fhSb#5mjafSmhioh2_}KR*vgj~;#P7WDP?af^}8c_Gdg=Z1i*Jb(TiVq#)oZEXz} z7Z+i5brr*GSGK20wkD^wqMfa7_?3_Dy4rXU(>6F=z z8FZJjvNA|XNdd7~%x%X>Nl7p_H-}B^d;swI50q+Hn8iJ{Gynhq07*qoM6N<$g6-Aa AHvj+t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo new file mode 100644 index 00000000..ddb67931 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.png new file mode 100644 index 0000000000000000000000000000000000000000..3f4af43ff4d7f336ef257640f32099020b631448 GIT binary patch literal 1215 zcmV;w1VHPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000CoNkl95v&`>`X$p{$& z6d26-hRJ2ZwX6bHfnjpAv;f(_E60v7;T^`TP+&$j3o~Wd@jOex!x=D(fC3rZ!3`Hz zVIjdx%w_~+?1P_@*4Ni>77E|2WcTNjeFfC&v4v>tF|4k7b}g2f4ROb%D0FE^bJ}c~ZDfzlu&+Q_S=piC5tU&~ zH3~PRy$}qoLo)RQ5>yHvZ&482*n-IVCf)Dzhru6+kYh<2qrnK*$vMdEj1`i}%*X7p z8TJ)G>g(&@o1e4q{9-h}7#SIzQVtGjMn`YyZ;jnCsnxe_`g>E3iHW=JX@kjUwpbJQ z?;8La98f}+xP!(pWk6|u0!Vpzd1+;3Po5om61`8=KZ{olm}2k6GNFh9TW zXH8AbA+FlI3p6w|e7F^-cGH4co~KjE`&e zTy<>nCU8_BIK1dsisI`TPi(`ZRSzW;3J-JDvdN1;MMcFMCX;0aC#~3K9Kw<4?uip0 zyw6peOI`%XEI1qr#~>2ffc5Amw2M0~bJcNiV1bsFFIveg_!4KqU?>WclX`ne$?L^j zwOkxXpt13z2KOV+-=4JqxZNIbI9xl&YisMcYWIS-fJk)l+fXR-k9W-vp>Pzgc1mcP zPMw5Z(f3&o+JHaJsC$TN^krRlri_4>eWUwC=`{MXm8mb5Rk!N|VP0JAW8 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.png new file mode 100644 index 0000000000000000000000000000000000000000..498eb174453bd572c796edd4f2b1b79e2f2093e8 GIT binary patch literal 1572 zcmV+<2HW|GP)N2bZe?^J zG%heMHD!e|WdHyLqDe$SR9Hu~mu*Z_R~W}#U^tA44#tvYNES`pvJjWd53umTIbE_3 zE?IOl`{0r#Cb}x15D*lpO;`{pYvBVz@uj?3wY&)OHVOrX<-IRpt3pd@Wqgqk!w?;6 z#zP+LMX2;ie!1s9=Q-#3-*eA7_nvhCAmGSfCqvu__!-LaGt0}8mxuy7{S3=f zA_%|&JvljskdK%$e?d7sxhSWM95WvLo}59s5E9^~8!B}20{sc)q})t^OkDX5T4rWe zZD{CwVPgMUvaA4=>Y~nSyAM4*eY16Sx9-Nq#V1Q7$4{I*nV6cCd`gxsJ(ndtC(Fyu z$yH^Z&n~@mSzWKWrgbf*x~A4uTUQ?~?whf!fZ*WZ^#vCSD=!un!LQPDV7A-==lBD# zJI3Muhy!eQM_~BQJ;6U{90H?h80(w@)s@wdfo+KTTMgiJy1x|n%~)0d5g8fzNpn-n z)XnPJ7Z)xR-B2j=)I~+bn&OL>YgDRBjhbsW+RDnV8nl%)gSB-H_UqRxfl%fuATc&h zpz=l~iS|tZv0=l8ps=v8&Ad7>K|w)*TefU@pU~?&%r#ZjkSEWDj`lwwHa0$j*Jecm ze4({fKcLK(Lq@t3u9j86!Gk}3z>D*Xfc^UqeCKjc{L`vygVHM{(A=z>j);g@&x>7i z0Z~y=pO1_>W?k+-g$bK3m1SY_a9%92rUJHa|9Bg&h$+XI3&xyoxN@aL!;2HMW&+*~ z3E9-z)^4TcIcgt+?w&qJXlUprUaXik5wLON#&>FJ>bhvtvfUenp<(Onjvb$U%8Omh znh3yMu)s28gW=)3aL0NNj>pEG;KlKHV*v*ae18yk!3Ej{%@!+ERA^cP1K$qd#qxL~ z0nyQ4L>apK=KA_gU@-JSTU+PUwyj&Y^J2Z>vjB z0I`$@mWB4 zc=(5Ebvbn1?!hhBjsFLBXl(o)va@p`BqSu5#i7yDvsaKJ?t^$E0i~rCa2wzMxa$Fo z;11Z-)Bb6kN1Gd)z-+dF!!ZVSy8}!nGmt2yLebA+(HqtmQ{H8~5qHL5 zNt2V4;n}li=vo@X@bp8YE{rxeXeB&(@&qz6GC-+R;vVqd@Y8jAdK%Kw(x9rU3d8tq z#c-V~<>}L>czOB$#q(fpZcezq4z6>xhy_R_5{Qe76Xt|oug7YB8wS_860};a@Xk|H zQz1P){eJaxQVKl==C2h>wqlg@px}nVEs-&!3~4Z%i24l75yrRzp`;7nGNmV{v)&n*c&4 zlflD>53%Uoa&mI~Cx9m1>C>mN=-tkqJxdpEd#-b}Xfzto>2z3JYV_nuNl8@Xw&gl~ zftI4dV8G%_qtQ8f^e9YBOwcX29oOkAWo2b>=FAz8N~OYfoRX3PlarHJ#g7Mob^ijN WMpdj!H;%Ia0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.png new file mode 100644 index 0000000000000000000000000000000000000000..b5147a969b6155862b6163259dd9ca0d00bd2fb2 GIT binary patch literal 1214 zcmV;v1VQ_WP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000CnNklK{K#D|%fkSunTjS~0gh0sbP?z%V{~IsmEQonu3c@G6r`DA1$eg`Ns*cw9hma|ZMxV1PVcV8zQN z6cY4AZzh0(-T472{rv-0vG~Pmc6%{7Fo0G&zL-cpgw<95uFW>PA?><&St9AY)ZN{4 z?aRwo6ut7k0ePQdSo!s!w*Q9GaO<{i&Ukkww->X;nzP#Gn%QGB92lUYqT`GCDdotsWZIjg8$j-WuU?W0`&mw#M~ZZJ&fVPRqM z_qw{eBV5{|2WV<)dTT31?dI~o(hIg%t{5QZHC$Sxr~w)pUOPdah#hJ>2iuuEOibvF zTsk&I3vgT{I_h#SCGhb~rMKb1s-F^z#YefcY>E<~s;cS*i^aBrn^tl&1+jQy_vFbp z-{8{jr6>W&E;tg6B_ST)fc3;CbV|D}ap|}?bbz+DkK4&E_!M`+NHhUcQ$}Z5+4H4b zS}qP1pt<>-Cf@`9U;ec)_gyZ0wEMw3fJAcPi)b|dcVI09(O3embjxU3 zPMwU>6dhL z{I*YkKL}bhCt$;Ic0ca`XU?>|@Ah~h5QqRieg>WXPwj{XIwcp9Ar)N`>SNj&6D?oG&meTf>JpMB9W+q(UF253@-K<$e{ul3{!BQ{QlY8 zBiJH4;QYK3R4O%B0GxsPLj7&_IJ^UVc=l|E!)}LAC``;#G{Im9?6Y(5-s#h=jILmM zes7(DSAf#e(&w}qO=`h050OX|C~6zhX$r#O2w3BN(EtDd literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo new file mode 100644 index 00000000..60079fed --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.png new file mode 100644 index 0000000000000000000000000000000000000000..92b54f96c35b13c2c0f8316be2b0d7fc48ebb211 GIT binary patch literal 1569 zcmV++2HyFJP)N2bZe?^J zG%heMHD!e|WdHyLpGibPR9Hu~mu*Z_XB5X>U^onk3S-GKB#S0)S&U1z53u;bIbE_3 zE?IOl`{0r#Cb}vh5D-wQO;`{pYvBVz@uj?3mA8SsjY5H8c@by}wji{WR>l_ySs0=d z%{V*fuFt%}Q(kI&l3(w+=Q+=F{`a}heQxh201&X{ZjvER1bhtD_>t9R#fwA<9X^KD zDG~&rLsw3LLF9d=%vVqiS1qb3qrjXCpBHCPErbL(>4cmPUZO9dnpB$!kck_=LQ7B2 zs0j&qJ5(I^CaVfisjh0xmWR;Y-8)}fdv`c0IwnyfIde8PHaJGIcx=Y10s;dAH|Jf+ueh3D06$AFfzk8;>=Tc` zYMX$Eqc*S%kHXM{5h30`FbD&NA#Ae?R8>?#8ulUT?$(3d?)+RlHe*!*#GXBSK5S}i zp82(^=EapO1$Pw69CblKp{DTa^=g&sT7%}+oz{|)oBHyK>i(MAdh6}m6+kGn6%Zd4 zEl_c%f<${JfY`ESOF(F7=r&%Pn1Fx){~bGayhG@8?Z)cLD#(#%Lwnor5ET^@&g-)- z0iMv(qU%#;${{UP3O7s2;MlS6-{s}`M8J_FN5646C;w^DwnFiZB4}#T&W4AFZ|3EC zT|h)c#3!R;wt0v14`IQkN@W>XJdBr1cvZme-5>12Ct}7n?tpQ-6K>on((v-ccum0e z;NYz-t!-v{Jjbl#(AC{*3keC?%F7kw6#+p(L2p%8*LKpTWf>WR!6Ebf-n}1x#LHcd zR|McLm}eTaz|hbzJTQ;InW*TqygVMSE#Td!7N%cv;>462 z0e>PYDvnTKySUwB0S6Br`m$Bm0eyW&pvSLRUG$eKFCWfGPFwIb?$7dEMXC6ANCx5^ z0byZb@2SQ-R2KVs(PdFaI zDDHrbjm;pJD|iBE26npqPsQVSEa24P+-*=5WZ5@ zA}%iemo{Cy>*}pAfos4%;Sgq_udg4Po3%^FkN=QNxoEWb$RSkA#}W%*A0})5^;!+N zTn>*PKSr0|E{1Bcx^$9*2(y4}NQA*)fS#TnbYB&qQqcwT`%n!;xOznRG@}6fRwGp; zguWNKEFUm0FAx8E+aWhM7uwp|ps=tI%w{t-y_(0sF{lRBqMF-SkVJ^Tkli94jKPW~ zCMLq-;v$At<}h62(5wry%}rVlPo6x1w6ru(DwVhg{5Sn{oSmJ83l}axWo0F%@%xJ5 z2G`5er%&|3z(mu$M-@eSS%KyU7=7wdwV-};g7=&t_QVREiAm5nHku(Z{I7opsTA(Sd4Ve zgt%LrD+24~*|TR56B7eVOG_{}HwVw3KgTfNm@u>z + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.png new file mode 100644 index 0000000000000000000000000000000000000000..7b0627c4825286217345c50f2e9d422847109c2d GIT binary patch literal 1898 zcmV-w2bK7VP)N2bZe?^J zG%heMIczh2P5=M~=t)FDR9Hu~mwQZ8R~*Oh>1~UGPMA8iK&g-o=WFN`P;^@2bTiAw zBukb(61T-U;(TP{L_|^^E>YALl_lUD2pMw(#Z9Be$O;7IkHx6-73Tw_%@ll4-sm>Y ze!s)L<v?;GH4h=OJbvk_zw)4iia?2vr`Ya$g*su^-2NVVe zhgCsI2f+$JUxSGQ`g5-3zzo1f#LX~305oDU>{tQR1H1&!O6k=dFaxdvpuz0Y@p)0~ zNx*WTMbQz#S+MGKZ0f5*Lnl^ai9Y!`B!oRT0LpRR=obLT!RslIEn|JC3IDPDoAix$a1X^Ro#Kr}Fi)?XXye&>0Z=0hs zf`1`$bCwW~W%lHeMz{ywhrlLSj-rshqiTu>*GIz(;047@8Jk^1P63=ffL1?SsJSyo zwb%aED6?&zdMhL|0n`Igv}*q6X}UI3o%h{b5xx^DDW+3E zgITD9nfEMU{1}a2;~X&?-aHY4|He(KptmcD(C)PagZK7ilf0kbA*mH#Y1fr~qKce8 z!tIL*pZ~K;0U1&oGe0dM8SBGdvdtBj!J6;3#gGhMQU&LGrR20Hh3NIc>kNhvW7h9$ z#cxk6C*k3`An=)hC@F>FW5f}#WWlHr_v?2B+7}IvfZz>)=cxx8qXkQE_j*Y{Iuii2 zgh%RwzBs-Fo^?mU!gNQa@XR15{(N&6AgTp&?59Nk*1yyIS{hfWA%Vj+p(}S{RiES7 zeaF5b`A7R^0t8rr3cVp1zL+}4(u8pa{Tl&97a!nP%tdpENE9JW>J z_NG)7B=Gw75(XTbRFq;7_J*4`9a<1>h~*CjjmNbfQh4 zG#qwufvVN^rTFmnQWW6r=pilAP~oEzW8X6Li>L>vexh#1j6=g%8wg+<5(QvxHvwpM zC%+cEALgka-HH+I?}?*3EJ9|dSupWvOBWI_aBE{2Idt3@PRIt>G~Jq_b(JQWEj2yh-lCP1+SMe@428YGAUOkP+gbsb=^+sU-O{$$!7f6a?i zhHE9a)06@nAOK-stHIzI`g3w}XnT7*RQY|-GK|P=E#30%yTj5i;k_ouhSi zbx<8BAU{93?M3{euqR0)P%wg+lQEVn1+C$k1&90aSn*`F`(idh5n@ zy2rAUR-HaU_vi1SmoNN5q0Ju{DWL&y9D#V419M@{K&L98NNT{@=r3iYHVA^rWmwRH zf&zN!(j~fKLo$8*_%WLWPhbpKf;@=HW}Dl|7dksTX;xMiHJi;;o_;JJJa|AiZ{AGH z%gdn~f2x}fM^f8{>t=;&bOU~rv7MJXUDDT%ILy_)9c=F-Z_N@(Vfk>NUh zp{%S7)_em^NlBqwwrp_EsmRGDAd%{ z(2|l8sCu{OCIB&+Oth(~396oL`}Xb6PXKPZO`A4B)w89grD4Gx&vg!!($Z3T>eMNy zx*NWEa&j_OxnsG`rvZ;*ZEY=7`weGj<;s<`v9S>!x#PIbr=_^Kn5L$t()9Fnb{%ir kxRKiJc4*@Fr<4l+0|8Iz|H3v + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.png new file mode 100644 index 0000000000000000000000000000000000000000..af459329fff1bd8e9e28dc47df22966f308ff495 GIT binary patch literal 1261 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000DBNklF7{~cQvMgJj#D))y zIKU-qQWIy#lxacMctQF%gtmpn#0IEXWi?$8U24Je&fuFd#4i7tnAp z4GbiZ3E7l@m}yWT`F{zFj*h-^*=F0+=Wq%JuJmVNc029%T)WMdciCdexAb)96@Pgs zSEZ;nRUDUoyMN!l1g3f9Rn^^gkjYA< zrKJbEE?f}xn9chyc65lkOr|e3u8S*5W5vtL$J*Ia67XgmPd3koF0#|uB^^G8;& zSW)!;h2V0zAqfeI87fuX)!~uxzsky_I+5tWk==XtiqZuF;pWX-(j3lykIQwZ9mdZq z@J?*(8sW|zzuK%;zrz8gvew>f??b~QV`zeyLX*>v(G-ozsh`pKgGZirQ->=iCT7LF z0`F~D-@2B=DWOm94;qbjW-$Tx!wEEa`$tsr^*1I)fkTCb;exc(+2G*dSA7E(1HZT9 z{t7fT8J;l;$fVMoP3z)Xd?)t@g+giZSKyq%_?%Hdn32)&W<*4R@8teaRCKt~UjhB; zrdx~xTQ;n>g|gX+VPUUtJa(*xwjbb6w-^*qtteTlfzKR^r(-6x32X<~HD zO}GZ{63)J>MDw}UCkBHNoj%iyw2gXHSFc4J4ks==Jp2s`i?#R9ib}aPIy(9_MuAV# z)2GA3!uXMqQ7Og6N6^uu-=p$!8Tz4CjT#$u&kZd`vZu#FUb}vabU!4>pYD&6*KfE; ztIa_gjqT*AQ)kG!It{6)t|iMWsz?@#6-r+viKNt&n)Xp1v>63NdHGM1-%nDj)hEc_ zUZ-bl%Ov3`Gc?MlQChnT0>`Me&PTA^cf#s&1UmU^mfJG+vh%_xw<r+C@LzeW|u&~jnQCoG0+i5uP=u{IVK7df`JYm zy}qD8m7?Z93jlNBR*c)XwxEEf;p9@RKpbWkc%|ZrbLFP)j75#)9Xg~z7HVXP1 Xfc$y{hiAqD00000NkvXXu0mjf#Ewto literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo new file mode 100644 index 00000000..b97f32e0 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.png new file mode 100644 index 0000000000000000000000000000000000000000..36798a026b59e81b786532d3e8f433373fd8fe9c GIT binary patch literal 1241 zcmV;~1Sb25P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000C?Nkl-}5KG@8_;*b59HaAjDKlj0iFf z0W^a$N{Cz{Tu<8Iq8TDb9}<8Cx^pyf3z9&X(FMu~XQ50Hn)o9O?coF{3xWiu(Et@L zs*QAlGEp`mAfnntC;u-2pU?No1&3q9u*+RAdU2!}vdissmN^}c@(VUwg>7)4T=><2 zGNruP+;CL#-QGQWGN}4AHZ>1OrLxdZFe(A&iWTo{`6#z%XHoHucBN8xOsP65m&s}* zwYB^E&z=D!XlINLB=F9Ttmh&1-$38S(P#`lso&O1sH?fSt zNFvWK1c$?UJtHHtP^oOYG(Iu)PhFivClKsAv}^Zgg8YI4{>F`)@?7qbpvQBw7wvzl zz`LobtN7cu{qC^aqYg(X6s^u7=P($bm;}>U0L;uj009y+fnUMY-TT2_v&EB=lCtcn z0`IR|+r662t|2#%2DMr{x0rzc-Zb#u_!-oE^R1au;6POss~|6TJ~lS?)yROwfZy#@ zv;v)-hR2iwGKr*g!WbvZ=+gTVw&oa_SH4n1gV*8(=1oyKCZ-XyTuhyHGmHrkVulV770_%uI% zmK7h*OH5445eg51!-szW_4P9FW2*{ubm*QKj3#_=(1u^Wavk^I!|-43`0y)NJ-FTB z!cC@L{P^*ccw3tqmp8ZK^$krpgTaU+KP9oa)|{L7aXG3f1q9_4kFr0=QmItO@S!1h zaB|Wg9KC!kc@y3%%MLM7tx*aPG)SA~UsM2INf1<&p*nJXDFlR&`EVT)A+Ike&?Im9 zF9iG$b+~>u0k!6*7ZQM1S~#>G1&8Y;6(B;%ES*3k(FlZ2DFieLaLIFI0peh?94)w9 z?zh|9HQ&Rx7tvk+ebLoxUXjswM%345rF_wR9#9sMiv|iv=qW%#5_EzxAfda5gpOut zf;g)oDi*$f)7G + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.png new file mode 100644 index 0000000000000000000000000000000000000000..75e0efe1dedcf2e0d42cb895edb60f1c6e17b63a GIT binary patch literal 1620 zcmV-a2CMmrP)N2bZe?^J zG%heMHD!e|WdHyL(n&-?R9HvVmw!xCR}{zn!(>@DoJQgwjBKJyMuJW^)M!xA32wMp zVY)0qv-o2IbyBB-<+rtjj;v_{OeY388K|+Hsml~EVhu1l8KzDV zEdU#E=is=7nae117EoiX7St4gqi+nS7iWN47!c427ho7k1Dy%fgxZV%0cnsk`F{y$ zYis+UR;OE0Z>$Tte5qj@W@nwj5Mt2j!fG`duBN6sj303@L@LQpr5;O;58u0Y4Jl7r zdPcQKB&NTD4he9bJ^PD|-v(6d*t+dTu2foZLYjR{A{Iv{CnfDaf9@QwMy(FNP+7@4 zuTuTGe2I5tfS;fGdk#ktvVBJ@Dc{zu+Yas7^UGqeCl#=M-MXK)2M0f#@8Pk@HZ~Ey zt9`k7vb-lkq3{#7-__OieMv^vMY%kGA6!o;V6Crj@DCi$-5D+}^Vt50@bdDSwPwxQ zEmCPt7w~xdVt4NPnHLxo6ufffstv}vhLPsxn`dFXT>)P%UOYc|^Y^_v zt=8eeCc;JA0(1w7g)2C1W(6+#2;Ah+6sDP3Z#UN3D zI5~OuiY4AhCn>gtQsrH0E?OUrGF>atL6?PjXkbc?F1 zZ=_C_mOoJ_l;~vfX_S{=gmQB8kf*1ox4XOhrwkgcemGT>rd_yj;YUOPKL!R`+}+$b z9v<`7^ZBvp@Zm(1k|IXG9nVJj`2{Z(WlC#JjmFw^<+{~;pR)dWyUlv#YO__VGg_6( zv)01GVrx#0%qqz^ZcRx|x4O8v%weyRP?)3&*zjE#*hB%mFz$f=*Xy#gvrky{`nr+! zcJs*PrfVaoPL+-L`+pO~PDVnj)z0bZ`J2-}Fvx*ktyaIsj_=+bn(XDZU^Uo80sQ?3 zdNywgRHUV4S}Q9rpqADrJguZ=eH|pBj#(hr{!mvw>PnUAV}^(5rxV2!TY-m>=dvL>9p(A+ z=eT?I{Mq|pU|@jmCxhsmDr^BDHj~*c(AD`DAL1SYhy&2(}5n^w1 zj&nH5ix)5OTM`eAj*go@KtPR zXu#&H2CEYq8j8BQy5N#HkLY|;ii?X;OiT<)NJyZ6j`@5(vREuQL>`Y2n)VMdA3gMZ SK4ski0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae16c5e27995168c77becfb53fd01f8c7491711 GIT binary patch literal 1602 zcmV-I2EF--P)N2bZe?^J zG%heMHD!e|WdHyLz)3_wR9HvVmu*Z_R~X0rK(Z_w&PCz}MmEtUBSEJdYBZ?G1UFo) zpe#$kEWS*jPU=*!yju$jZJ`BMz!nAwN}&=fSi!WVEePTZRTr2FSmi<|!>AzwUO~dy zIXAuYS`Kj0)nq6645AAjm*Bx

%H_(|NO{7g55a0$mlmC~2 zj*gBG>J5ffjpl}s%a@wAL3TEnOc5r7A*x=d8DEyR}cXM-lUnu`JKNQD0W&`p-rn9HuUqFI zDwpRq-?`g0e)MR15s$Yoap$g|dBGteVXIfK*=TNP8f$I6c@~YI)WBCumo5z3x~1Qs z*RvK!WM>~Y8BLAg&fQMXP4t2u+e6UHpr`jQ&~@*@*jY_=>yjl)W>0Fscg6C`MP6R< z%;IcNC<^+fGhn^n4Ja%2V zaVeRXry!-W<79>?i*$8$oyS}yp)gGowDJ2W6k`qWqPRnW->lEg%{@UHjSXX+oz}6- zE!W0QovIiM4E#2ZSqz6>ub=0}AEuZ)E^BAG>G<61KSq-^DM$mZ?i(^6f#{sNXE6B;o0Y;+{D3wak z*475QULQvTYak7zg*4~TNo0a~LY@?6F&bJlHZ~TFjEun4#4$AXI%w6Y)y58D!|?Dh zNKH)zGMNm}%a5*)A3p|(iHUIYR>5KTxlFK0wmg6S99~{Mf95_I8XBUm(}7LS6s7?# zmkXk!qp3YnUtbTq@pEXfNj9j}YU-KC#l?Z-w3(4aLR9)W&=C=n?Ss^?mITG&eU>n-Sg9Mkd>w6B2BB@!|!1OX7j?@o_LPFaSnJ zM`0S@Xk)NVs52ok6B-*E;US|8hEq4E89)dG0?^;z55viuSS)s)0krAj^yAp zO(`uc1qlfWASES*`Z?zF`M_qg!7luG0Klw&06wrr>rlK#<^TWy07*qoM6N<$f?$Q_ Ap8x;= literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo new file mode 100644 index 00000000..49725ce0 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.png new file mode 100644 index 0000000000000000000000000000000000000000..2dcd850cbcc114fc1f9ef73eb99d7e1e97f08594 GIT binary patch literal 516 zcmV+f0{i`mP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004VNklPLCMSrv!SbIq9}SCl7ez9n*y73dcs&2x>nQT7@B700%c>J+ z(KiN-N9$VrkP?oKvCg3wP=}opcoVmF)(SL23(bzeN6=i{pd~PHW037sP4RhmMjJq1B-#7f$~cEOR@n!OxCr;7NBKa2G63Lf@p36 z4N-P4%F~R1-)gwR2>*^PV6$kTh2}cD$}i;BU___guRa0W*RPEyNy7U80000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.png new file mode 100644 index 0000000000000000000000000000000000000000..2d7c8344e1da03cae94b0fa15b7dac701f894475 GIT binary patch literal 884 zcmV-)1B?8LP)N2bZe?^J zG%heMHD!e|WdHyI@<~KNR9Hvtm(5BeK@i9D2<{s!`wDyX>MQJhPb)c?lOcYFKrSYM zXbv9YMN#k&d;-A_#E^@^LULOI61*6Kgs35Uu(tk9mv&}ql1X5eJ*44BS65e8{imm* zOpJ&Oe@d|obH`A`pvF(BE5#3-fXj%HItNAo8+dX!eluT1SyZ5gt%aHyIJ%a|iwmg5 zK)@XqFfO&gC_zos76BP8C`x7mW&-|C0X(Pd8vO7cvN72EuI&jDGb)z-ssPvv%rEBA zd&tHtXnq$bkC_8vQ~{4nh52IF*b`EYPo7TLvU@lyz7GM6d$Z+H0+9H|`rHJ@b_DqL zm~Wohjgi@n32s7OZ!x$HIcSoM5ilwSvkM+{SODXya}U8Dm0WE1yf;Q>?A_Qr>MJPQ zH9#YZ4YVG>Y;3#d_5l1?fng~W3iR~!#HPOQf?84+iyg+?0yB|_+uK{J)oN@G3n-WIFJC`{ z8jN{*#(bK=A>V3H1tIwFsNzkyySq!xW|K;#5}lu))85`5)$4WM8jce<2Wp@eYR-uh zBHSXR zIem_>31D#=a_`6t1CJ>I%0G5h)e*;WHR*d@W5v9 z$mjFX2|&}WuCB5fJT^8qFsbKN=cF7TAJggSDVzR*CtqG(hN+%aozsAy;`Q}4o1X)> zv$(iOtyT+5^_=RQmczqCT3cJAbUJPR9H&w#y1&2YEj^xyVt)ZwVsm{(bdtva0000< KMNUMnLSTYG1(E{* literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo new file mode 100644 index 00000000..1e969277 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.png new file mode 100644 index 0000000000000000000000000000000000000000..e31c5ab50e5b22b178ac3a3c4895d0a569c592b3 GIT binary patch literal 1303 zcmV+y1?c*TP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000DrNkldIhtSnf3(56w6CO$OAG->REmq63RG)+Tn)keW$H7W^ixEE!i-34}G zVQ*a40)>TETTobFFEe}J`TKnXQx^(kLo-hD&)GS9=KKG?Z_YWBlL0{1#JP+L(hU++ z7JHN_zKZ#!lmRA{rTAQu0q6&3&K-lKM-(!(#2zbN>{-Dbz7?r%u86%z3~+;Q_=jn| zfoh69*;@gqSZ|P;x+j3Hp5DO3q(_qF@ko=NDOn!U=-62N!nYTjUdSuRTJKp!_XIG0 z-4mmB!^`Uv&}OoQUdh$$r`vU7s0!fo2Qe3jqQ1TBX6B=hKTKVB#ZV1Ek|cP&3%EV| z5B{8)NAvGj7IyD`@&Ns{Dn?oW^-V1^)_$A6e_&Yy19pGE&F*))T+-msFq)cMDBA!H z{qJIccs!0MDI7~65>Fy8zu*)4YgO#D0BjDIMD2!GBocw4t4}smE(S;>Bmzhx6ipyZ zt)@`BH2}L~a8rP2G>X6G1E_E7gcu6ReR2g7Nkn7I03m9(4&dAzKomvHc^BciHHUUn zA6!EtNG2u3C~Gdi7>PrSst6E^#SjPz5JC|ILs2v~wLlQVh^%BE496j;2_R=n_;T_c(k6k*`q! zfX#WbMJRhA9D`qoz&U&k*QWnQLz@9M_ar(jPAm#B=t>T54ZyhpfU?whvIT@NEd6$v ztu{2a8}ViBWz;ko(cJAquXB`OuAuTl&Go%cKl1=RdM9>z0Is_MWOL4*%z3hnPfTHY z)(89OO?+Nmhc?R~CTEs#doc{>_$@S>9ME@I@v^S;MSA>B?6d*cP!X3sL1pL6x%B+* zeZep~O=i@#Tku=&FpRc8&~nv+PO}4TJ%i92tk4}kYS@{z>;BZ(X#;S!TyB2fY|N96 zXMKofxj+-o=5nLQHi8DD9WzT|{M^_sbz7ZrePe5~s?LCmzjom82OlS1(;X^Jjh!}t zV#?)aDNBsad71Uv-RO5u!!qo_h-VfJ26O2A*Htw?>MsXBt^5I}zo|pnv2x_SRdymZ zc3J?u56Igoi%e6E{bC$TVhmHX3-&oi(AsH6v(bUt)*e)T--wS+SL5XQpK$QVaq)?L zFTK6vv8;zuW2Xf$KmfeHS@NcmV$92HAsE9vefO`LZDibyGu3*W{Z5ZFReGHIsuo9% zpMv(#`^en2N3%9|ngA|Ipq(tZBHq>fVVZcM1eQpPVgg + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.png new file mode 100644 index 0000000000000000000000000000000000000000..1adc0c34bc52bbbed08d22b2e656605ec5265bf1 GIT binary patch literal 1656 zcmV-;28a2HP)N2bZe?^J zG%heMHD!e|WdHyL_DMuRR9Hv7msw0yR~W}lADZ;d2Os*-n%Y{cjj>JIYAq$Tt!R;o zR{GEy)0&vnXeu#LTv!xC(kL1%wwQudEVhu)iLxjyBQOXvY_qXU#f5R9hy?~1X5W~9 zzwg4u0q)QXW_pre&bep#{{M6Cckj%d2SDI%_PliB0f7j^8rwx(QT$@agxUxr>Rc2I zP=j~Q9j(MmqO(ZB8sl25na&;7aUw1*!de6yc)%CjsFj)+Nm!G$MFZ(llOoAe8Msm3 zV7uF84hopf!7lSX0W;Bg>z4m)?)lR9V%9H_S}XEY25#Rm`=}0EELI09YPGHp*T$}* zOUW1!HDDdFqu=Jm<;oim7rp%Ii_|qOM#KyRgF#p z7_tmpE-mkEYSxZ4w~W!!q8n+}>P8GkW3aWY9i?UEv|AfZeNxzf-|vT)aQg!A_(u`5 zZhZ<3O^PkcfL3n|QXRH)yO(~;m(RT-+GRgPQ;dHz&PE2AkModaZa||ckki;V=Hu>5Aof( zVpM2a(bYSQM?-EHZug+9Ru9GXCVUW|5Jk%;V#_wbf+BqE0XlZxIUhaWd#l}zs#-OQ zDmD0{p&csiUnsB9ph~SrMSUw2$|l5b+pS!@Wa+b^v1J?J-STns{bpfKI?j3*Wx0bA zPir)xUfY2yDjj-<-T1AfGFaDS@GDBLj^-6BasKz~*!FF5;N$qM38ArN8xTeLxEb*g zV{v}W8gwQ!o9;u?ZbpasF|H`pt}{7#7YY>D?5SD5;P_9)*uM8DVm{w~AT+it1NGYm>;h}yAK2OyI-T$l5ia|&na-~X9Y6z6v+6o2s`#=Aa3h7 zShRF`?9|vY4H$zCdXw45;kVj|n-b3zz%Vi748YdT=MX%qS{mw@lO$!$-p0s;LmVwx~jjQ7}Zdx;y4WANmo7Tj}#S45w#DA8sW<&hu zci(tBdd1p=ua7QY86C|r7A$!FnW=G^sRo3vl>d`Z1LB9te5r|YIeGFV>~=dfrN={I zEm4;*z9)oJAZBGkuh*lov5}gS4dmwL3bhohK?u7igikZ>5Wm&f6&vC2MMeI2=O# zUr2V&mQVw`cJ0ERJ$r(chA)|!nUOQVNq6}0VQPji zsi~=4Nv@adoGpcgg-|M$)SO;;=ll2X=ceRZ$ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.png new file mode 100644 index 0000000000000000000000000000000000000000..6ece071004581b7675cf5ee7b359323324bcdd6d GIT binary patch literal 1788 zcmVN2bPDNB8 zb~7$DE-^4L^m3s900wwTL_t(oN41x0P?S|1#;tFCiayw+VjwIR!EC06sTsdS&Ln6T zifk|mlp-hgw*$XW91@_7=yDYFz|MTX~ z;2X`76YtD3d)~8Wp67S|=j{9LSp|TT^!%#hqyZ9ESS(|YJ=Y$7Wzm4@6_!2c3I{+9 zHgnd|L2|W|t&~{C!z`A0oOS3PYQ@9tVp${xFu-nDqk5@8rdtBTE z0qb4e{nl@AcU!-~?P47Ll9nEn3PmXRQ;6J~r8u8g zfXqwzIPu*TBz}DXhceFNa7GpqPG=)I^LtB5=C|@gsb5ulY~1`N-`^pC=SJV{f3{1| zKc?j*8&%_Wb35*Kh*4O7AJ?iHP}16k;+8JlX%?YM)Q9?R1bFi^+O=>*Aiu_g@Zx-<^gw2qiME>=o@j zxKvV0pJJ5V@4`Ki1VfWLjBAWs1;iAnpz2KOOsMHq;c|H!-l6cIy)g_RneXoqz{|(? zg_6cLZk9jSD)4GX1-5-vf+lf4Edwn_p9tk0OE9EWNm3cm4>7y1o;t7=2LT#20&{y}6M1Bm1MI|T6d@pZjc(S(zQt!RhLl3;jJ&uvE8=p=SW$0PLf zBXD+cKgjoY2;k$p>6wz62HFF94uWm8?tu~Hw4cLUKSd$z?C%t$#ny|jz%TwRZZ$rj zjW~=R+KiH+QS^b$ppq7Km0|bIH=vm| zBDtUgJI@v&ySNxB#j*4Yn8XA@PU=W{BSzFZM8qUuZ_F_U5Xtv<2=MIc)lb$mw9G5U zCSWjH(LB_QnBw=*BJZSU!5C>Ao&8Gg^FTp3I{KxUHd$dZTQR1cf@r7*QE`d*BsLMx zZ*Y&``#S_+s;aA-xzU=BgSEkUyYNNiiGQFF3-l&4jOJN-4ydVZL8Y`5afM;nn*Abt zzI4K?7uMk$VKVj|NkP=1BmxlZ<$Es+py+P#WOQW!eyYDr?}G_?EKgv@Vug9u$^ne3 zwV0l@6GIB+xt(eVV}CJ5(yFAJcu>R$h_S`9OWT4v|y z0i>c?PhpTWJf((wOobT&u~_GzF&McqtZki}hiTS=*u*rh3NG$~5Bc890;s6C+oRIy zIa8)dy@4~IrS{zX0@QTR`j|!tNN+Sz|2%9q8)oO`a5yO)`x8>&>h2lL_g)r2Sy|cr zQMHCjt>JdQ)@a1Sf(`Q&zCa;*lZoyZxWE}IJL@x=&9p2tFk7uSntB2;$I`Gt@R$I( zxw&5og~AD?QfV`i>A05ObOr+_1Kl&(FOy~VVe9W}p1=~*G7$Gg8r(cQ-=nTayq5*Q z6ussQZr5?HX+$2@bdEKd+-6cQ_ADY z-{0RQGBWZrs?gQC+S)<6TyC=vOk!%f?Ipig{_$^!X)%EPVB)mYz{e3)$BC9~GrdoI zm-?P%*>l-V7Ky6@>3@UxH?a&7H+vFyG-Dn1vl^pfAnd%j5@M5O87zxsIxVJJd_rDn eF%YUYR{aGX11%;(I@yu{0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.png new file mode 100644 index 0000000000000000000000000000000000000000..63c8f7ecc78acdbdb007de4d63fe65aabc9b853c GIT binary patch literal 2149 zcmV-r2%7haP)N2bZe?^J zG%heMHD!e|WdHyN<4Ht8R9Hu~S7}gN*BN#DufOX4NT;!J!R!XtnQ6w8%^|1H*i0}G?}*EKn&lY{e)2i zzdB@gBH+rkLSaJM`1O>GHNnkfS#WfGUr^M|nt}!u7GZ9p5}_L^k2unpPAw^`cnZiM;Q{$a++a z)cbizxRZnHpWlPvpI_o~Tq;81QV@144Uq}y8ezg`lFLz_R@xjp@kc{`qXuk`IiCK$ ztq&tJ3mk@~6?oFvhVu3vV4aCq$hCsO=s`X?-`oDXzvBIR*IL znU8V$Zx`^Yg-x^}zfl7=_71-_>gS1a*DGIQ4-qPJ4WULl)M1H(+b;==7w%4Sf?*j7pW5kS&qOCF>vx}T`RNp;0o{%`HJ`%K&VB z?;xe93-6!zhug=OaM;57iXp#o1IHX}@0B*;Y+5G)z4HS}R}Zjmd- zq3Jn%=o<`=PeNg4Zgt6!->3lx$K$^!s;Z+JSmaEwLhBx#LS|bs-o5Pu&&2OYXaR3! zyn&O!iFjQ9oC^Y^h zpsNHQKKcXZmsN<&YsZWO7bPSX5z3p~U%sFq{hrX9m0t`HdR* zzYE?`7fP(rO zR16j)DBlxrrM(7+*n@cU%fm<#N8&=L5I&b9$bj`ZLvE7{6qFav`Bu2#cI{X6dmy82 zS%wvj4y#%nXJA^ffaMhpu6OP-`^^6hw1bFt@V) zz>wP{17&69y;9{ON6Ij_xWtibslT?q0R`Q&7{e49T2!eizK+e!O=#EF5E5|>7sG_G zu(EYCoUk zSE8;XAUqmJtzXhWR#sN5SS*%}jg4)ph;(*=e(9E$I4sdUgTARX+84ba+Bz8%M8_fM zYBVfuY~QEQHg1y)Fxc4G{KUn@<=ClHr@V7=a_(1ERSgdg4sNPw_DaeK%L1D*oB7tp zG81v_CW0ekU}FJ=9BQ-S@6%`e@efu`Ly1MAm_HlX;2h(6$O!J^V$V_ZK zA@7Q1S8DT#kr{2;}AE z(J=mZw}LllDpr2jh<;rEt#zQHJ%U}0fj78UY&GEL=Ldg(f37CV%ggC8|2ul{22DY3 zZZ5ax;o;#B3WYx!SfXt@K0Y4Z-QC>tq@*N>L?U{HpNBVS3hv&$%N3qXCWDic)3zn3 zt*zyXk=^T!>{gsR0;YoPbO8YY+%KV0sf3QU-`$$t7_}WdI|6$F{V?I-!-v%U|83t4 zFvP^fKq{3|clVZ%kg$ISSkVat0_yJGA|u(^l>dF+;9ilPosH7cQtIw(Y~~>$A*{>$ zE^qK + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.png new file mode 100644 index 0000000000000000000000000000000000000000..7acc6e998c40958df09211adb9a2b32c51bd6f8f GIT binary patch literal 2265 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo new file mode 100644 index 00000000..98f9186b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.png new file mode 100644 index 0000000000000000000000000000000000000000..e8f3c3df6654bf704380546aa9532a7d36d3c55c GIT binary patch literal 1266 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000DGNkl7+_g~ z7_1>$5mSLMEGmS8@*GSaL8W7pl94#5q5+jz2_S)iv^+vL9;LziBbpl)r%{ap4 za^ZTr0;`MRa`dbKd7vYwFTN){#hJMZn(-iuW~%9nKOf-oa1NS9paSdk2Ys*#6}l3d zNwYZtwNTMc2n!2)RIOI`w6wG^4Gj(VGcq!c3)S&?C<1c1d{2IU{!nLUC#tKfVK5k= z)oPjC+}w|a>g{`Cf1r!Q} zyrQCFYkqzn6B83?Z*NCZQW63K15r~`!_EjFYk}$=4Q;y z%wTeI62rs8XliN#Sr$Y^MWL#y3Z3(io3O3iLP3cdfuXX$W%3lMQ2lo7SU@I|xv9%aCGB4s|GG{#-Nf`9N-Dl&UWq?! zd1Ak>Sg6fT*s*{{+c5OSDGhV&hc#$h&*4n>5MGNrd`75tH|$8Duu%1h&R}F_7uPWU z%^b$2ZAd?M{G5l!OKw8-yJ1^_y1F{C$$W9^$Di+!%{GGZ%Zqp?ui!Vy3(|f3T1VJc zKvQ2|U|YUHMt&8eU(chev19YCci(%NU*{;>3g}u|uGyAu!fdtSbFH3{$rC>0*Eqwr z0#Qln%Zj`ch&=Q*!s9c#_}`s{FTmbX?2*12^}JZ};_WBJ0ToZb8TT0fyR+B}a2FE~ zp+Z+cv$$OPqn^Od0>R}HG=sp7p1@ws=nL+yMy;p_y)U`~I#`-PvuLJ=y_Nk9+0{@H cGTRXS52A;j$5~4yC;$Ke07*qoM6N<$f{aH)=>Px# literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo new file mode 100644 index 00000000..ec065d55 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d241157bea5bee452340a9696b95cd73d9f5e3 GIT binary patch literal 2073 zcmV+!2RP)N2bZe?^J zG%heMHD!e|WdHyNmq|oHR9Hu~mkUr-*BQqTni_>5n3RV2s5ZsgD2#2?+G4at;%L+~ z6d{5<77xqfD$lySmWROdeyymyUkghJg0OPy#Jm{ z+|CZO2%RZ+<~Qfu-NX0)edpd~?j-<5xt2+y88;Z1V)zUXZLT(4p|hZMiqYmMMg`b} z@0|ajkFiK=HdXK$&$IZ^Evp zTd!r(0_=Ec#flYX0)b$`rcImX&YCsr743J23iD?q1-Wh0sPb-HI;F(rQwnscGI8Xf z6cVR(KJUIYf2M9NT_z=9YHB)b_3G93Nl8iV2M!##$;LsMOjc@TX=z1Byn!sl)2*%~ z`MV}XBB~AqbGZ@jTxsHNPF*ZRS#sc)ep{BmrLQi}gaUl$78VxUq*CdVva&K16cnJa zun=0zpu*l{`;rJK{%Ehipq3fsPdwrOz}s?-t9lo^^2^>*3~kh zfT5wGxvQ&duS6n2Kwuyz@bG}gPESrO7DK#C3?E}P{7E@=*^8AH{Nx2cIE}(?6e&_w!RCAz>W*2_K4c$ z*0t7R=H?NNyyg4rwZPpT;2RB^6=B>bd3%s8-9Ef=vBBc8b+t?=z>YVqt*!5_wq64} zJ3E969nlagfF@0ZQ}G_C3Ez2sjR|>Yq%HIKgZ>gc9XZB58aj+yngsN#B&g4ol&v%; zCS&VrnT){P_cquLIlgBLyAA803~@qtZXjCZK4?l1qB7j`{4WTx966I&@oje|9u5}c zyWTAP`$7`h%YAQ$IQ;VWV{7U%837Ytj~&$qcR33STg5jn>fMd`|1d1)G>jk zL{A>>*gjX(M$!{xp_}<4=iQ>_rlQ+7TM}^f=wAG@Gab)HK0$3$b1RwQ{>Iq4S|$|W z`K>W|HC1eXQWfF=mDGvd11@NgxuP!2;i)28q9#77@IBQ7UzfM_KE2alg$Eb2@aXd@ z?&kH=h^nYVcv0o2WS-?beYGbgp#0OXe|jX=yImFRfI{&$R56kIh!0UC6Wxi+E$A03 zJMPfZ9%O6&hI_XzaJb!xfuZB5yl|LH(CmK z@oO*7{9YaD2!+oM6nJfeO6HI3kJ2BDP82+#>Lbr+u^N8GtvGbD8%oUpqFd^bbyr z_A5azDM0JXIhs}pDz694Y6Y#XMB3#-WL?dN|M>)ts!l*CuX#*A!K*&Cn}A)*4MCZcEpT8?$dyO&%*y!tp_&R~u0{)PY_m zGIVVa@{5h2r?Wv@b3yA;K#LMVv)Pz`5LA`Mc18v|6ad=k1*(kYXkIb`@`L+`BZ(w` zARmk`5NJF5uPusebdYW7$Hk>T$#+#!|@1jOU1t7L-4+y1o~MZL&&;k!9$dz*BHZW zu9fMf@F?>b8DC)O>sD0Bx~R`!-LVdj?+0yS+j?C7c??GjqCgAw!97*-OdJ`|MpnJzK=!b9jB1K%@*4DdNWW!)J(MFd z;zy)p9f@GX5F6r5mX0s5z;qSOiePs#3oK=UENJw+h>eAe+(-!0gW(?OJ3?NY8A1%m z;_2+ch5uVE#E0w_4T$d3e=vbA3KpvOp+vvH{Mj#)mFD)IDZy7=GJ@{A$^5?-MFezv z$4k1!vY?KT#HcDVZ}wJVX1I|3ru9DW5r48r)F=8Ez4_zzGl6yb){PYyeM{jXMr1l! zZZ?NlFL;AknVFHF&6rIV8qFqi4UJjoEXE5T+et9l>(%4+h<^55AfDLjTc<0aeK9fB zxA1?3*pokdmwWfo3i`RQRCtA5^JQb#u&jmJT>fM~V{{i7{}+iD!Dlc=yJw8Pn(-fK z-_>|4UW9*NoC^46`3ydb&otGw(tSgoYIqU0+aUh|w9dzzh``8a00000NkvXXu0mjf DP0;%& literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.bminfo new file mode 100644 index 00000000..5cbd9d2c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa5be8aca3ea200c2bd7b6751cfe2ebc1ddd1bd GIT binary patch literal 1615 zcmV-V2C(^wP)N2bZe?^J zG%heMHD!e|WdHyL%}GQ-R9Hu~md3TFK@d3Di1Q20)stYJ0j}=8I4^b#u1mlCyprvU*Vu=a`B>Q*H zjW@2Bq3kX)$(K9#+%xC=cV_M~2NM7S-AWS$qnCkMhH`8Z^NPt;Iu7--jF?9y2w)w0 zb29wSct=z=TTqT?xhSWC3`5VD_2eRyi$MZ<>4rM>JjdCDa#C(lfP&|w4=YxzcvYcL zoJdbk*QTVTJoNJN^5gkQc_{*%ot@|S`}>#W=H}wy!Gp-l%R_Q({SOG&eVYg*T3vu>c<*ALrQE*ooHGR@Btg zAUiu7?(Xieva-UVLx+SJVasuG_3G88yzw&e%gb@} z=uxm`fuo}%;^X5H6%_?fPtSG>3yU|TF^m>qX=ypn*VlJYsZ@e(JXBUzqN=J2mo8lr zL{MT^S66s=cnAV$N!F}cQz(sNv;b36QyE)(;cYWAGEiJxjOyxYl$MsFqM`z7wHj<` zux{NtY}v8}F)=aNym|9eX`Gn|Sj^UW!rR*$adB}dC@6qNqXBKil9CdfI(16;8usts zk3D<#fPE!!a&qdE#xYs|v1*lloVU+5)Hhv5SXd}dpFShtq5kr37#^EILD30e$I}uVKYko4l?pjIIS398rnSeiWy^-= z&!4|o8pmh>!NK4En0xkuHm&$PI=g!@IzE9?HUkR9Pr|22vk)2@N?(K4+S(;FZ3JQX)tu0Oa4HFZSIpR1eMhS3n zaanodtY-Muy}xm#y#u#;?xDKA1-^klXx!Y~?y}EMYhz=BMT-{oFI>2AB`=1E!2;HP z`GsX>w(4oytzML#)8Nks50R%XgUbf5zW3g@7Jlv6*Ws{a$r4}o=C4b~OEFl$;e>?f z(u-Ho-gyUYop-T2OaUuf`+x17J#2XX)1kKjdwcu2ikK)_cD{P#Cfjs14ObBso232J zb(7}Jx6CbgWAs690m|f*vR@7>wb#13k(_lB#|q2v`Pxm#c)o_9mw=$4;E0Sowf6G$ zZk+%1DykdW;JMT9q?y?#b9w%TFs*>Z#6*kIiVG8e{Ploswo06Dx{hz)ZYV#agS7di(%e*Bnq`OkHsTw-3jIl>TTfnkt{_V#wPw6w79ivsARL{}b^gCV>< zLnzJ2Al7Q6iiA+T$VD2Ej%GbQJ)kopoeMKFGtt@E$sWDvC&FS-4$4J2%|s)K(5;ZC zL^qg-m^36L1Y=`k%rx0Y~9L{>gw1KejKh*AL!&u8*gA>0CskEFDyZGbF;7+>0T5v z)#jXJ(3jECQ3M7CLaWtcXlMxI;j)YQbf z&l}B-TrS7``}gUVJC18K7Anib!^06B9WDGE@7=o>eSK7!^Zfys{0FMgVz&w4d&U3& N002ovPDHLkV1j@n1l|Au literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.bminfo new file mode 100644 index 00000000..66cdbbba --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.png new file mode 100644 index 0000000000000000000000000000000000000000..773bac8aca3de372a65de447c4c9c3ca39faed10 GIT binary patch literal 2446 zcmV;9332v`P)N2bZe?^J zG%heMHD!e|WdHyP3`s;mR9Hu~mMni`e3CAA?g)uvh-mtz~Xwh(R9crs{=e@oGiUA)06MNl5f$Sa11}k_VI%5_;wgFoB`+CKCq-v~HTcYV zM;&9F=|HJ)m5O%?CB`;>8n6{$i0Z@3nN8@R?Fc%wur@I_ei_jd<)+I=+C!F=xE zk;X$`k&4lWYjSPTfJ!RJ5L_&$^;Nm9nYh(ujbeXt*qMwy0mW;V%ru)me#Bs@coBmQ zu=2|E>C;D8TU(D=v}n=DfddD=CcfL97~en0!)isTHtyPm;~LZ-PeGM73OTzJa5tah z_`y4)2k7V0#~=g4h7B7yYu2pgK|w*McJAES%IZsMwK{d`lqpjQ3FxEtvbD-h4*sqn zB@kIVJ%w21S|K%XgOHb`Mq04jb>}71-jT}7>D2(A`S|hUS11&UuC%l?BqSstF)u{p zC3bmRAV9vj)9l^Bf9alAq*nt*Mn-QhT)6O#g@pw-01NX~SiSTExLYq1eCcxdueYk2 zJ$}IAmeR=LN6iO-JLiC#r6@}A5k8OGh#1AHriBywOz56hq*nv1ylrA)a%Yx_DV8l; z249&Oj&8L^X_!5Z2iRc0@4B<5L&*Vlv2G}ibVR{+88Urs&;E{(DJ|tu8Q)e%q4QD_ zzN?MK{hA=0N_T4WTKW6GcF(DgAqIvz*{sgqwcZS&_Wu;Jm1|JC!x6{BSKt3J`;z(I(M7(;`ThH1#+2z zfO1w|#K|Jt{@=N0MI z0O!wx$?Ku=<;S#ME1^}Gvoo*;N7a_d^;!8iMdhAH9JRh1voC&=URL|~c0(3A&PU_H zmsvt<^GWz;o#PiGxdcgBYz_w_iVsz{*Zqar(C6%*pk*~2(%#s^gLVYb8M+AQ=mMPg)OHKKwikq`vcK8CC!uId8 zK!K*QnzuFEKr;eZ&7ZdjG{GM^v#+~6`;9p>O z$*z-r%LLC+fvAZyQII)A$=E{X5(_e^X9Ht~&7{#vc9NN3DidTvy63&DPGrRT!8+U% zYyF&B$QuK^NFOqxAN%3L$BGa~vcdkMeLKCy3{+7tQOO@A(gsEkd6mpCUTz!Wd1Xz6 zN4u5U8p}S@lE3$e3)yI2XMc~j{;>Saz#OT# z?gn(X6b>;W{m8Tt!->h5x5(5HBgk+14P%vD{h3}7bWSQFgiLK&CSh- zii$!}Q4!+f<56E<&tCmBPK4#)8eEHO4ih`M3H=*#kLV{85k);bJn-nzBi8kNjL6eG zeARWUEg578_wU~ayQHvtLL|iH=XG0K8+?6zk&~0d!lcLQBiU&vot>Smdba=i=b)pb zLs$2PWao>bZ-8H1oSd9=XX3<(6YRD07!k=%L&(a?((Spow>SL!{C+gh-rkPj;9xW~ zH0a((L`0ytxR?!*&Li1r2+7IGx`TJ?)-9Ntn*L-9Dk>^;hmk*vMtVA&&vh8e!-o&y z?CcCd5ODYIU37JIv2N)i8e`?TJkNE!2q#aTghr!b&7UtX%>YNGQsL&!o2=P$2?+^# zc?S5Q^YQUv&7O-=spOU9c*)KeB_ksPg@uKz`F!Cs=l?OVA~{yF^OwLsisj|ytof|) z)p2leKx=C&f0P_2+4)Q1f8{6?3i$i`>%NY?yu5Jz`gQh7IvxP|AL+r1i907 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.png new file mode 100644 index 0000000000000000000000000000000000000000..7eae2d95d75d48a7a2394ef31ae0eea60a5ebbdf GIT binary patch literal 2128 zcmV-W2(R~vP)tu^cDpGo!J?NkB31Fi;sBzm`#%73?Hro}%6@jh@$0g8d+|0{8T zyw)M0QpvZy%>Sv>=^AMJ*3DmyMf`^<=M*osT#Ms>A39=Y^#`B$`7e*oC_qa~i@3G< z`X5(cQu#oA?Ij|l2wc};Zb|PK|I+>Ti;r)-|Arqt*8bk40amYGeWjH0CskEdP4Rd< zHat8$Xc)$?gCKakwzf92eED@R7i-Q9g&~jk`%a*zQ;ZA`vaqI>#aC399(nWK4Zz)# z0%&PzsT4x&U%!5RMIw>FG)+9utLW+JdEn^Lqqq0;^sI=DWg-9%p64J<|$N1d5 zN^+)6CY1!wSvr+l@bJ>5ODm2aKTa-}L(?=gO#>mQuC89t)6?^_@{61Yuez*aUu{z( zxN!)44jt^~%;_PFbQ0IKv`GUfiqbGTI*Jg2l9CeseE1a#V=>}Ul~`CKu4#>m&oizc zK&TKR^8ra|@f(bN0I{e-&a{W7;y^)PUmv=zlS*f4sxId9HM0?lz&35(c-KTo(P!HM zcsWp$fS|M(%C4Qu(bsi+pI0Ug5Cp-8YACcInM@K343>YT4o?bP&%u`=JRclQ>aH)r z(!p~-F8=@!AV-lz-=^&kQx;Ix2yuu;AK8&@RRO804*&oVp;v- zlKFEANsf8AuJ_UGU7J&940`8Y8FRGQ>R3scs9dy!*n&kQ7B7Rs0+3bgIW|mW{^g}w zq~OpkYc}0@!2q#_MGsXsH8-i@2o>dV1_m5X54n7h);RK|%aC6#y2VicfbWiQ;K<(~ z_66WleD5lr_+ttuUQTiOLJF#v%_=Fc*!$gwwk$jEU%|~ky!%^Lk+S*BMLtU#ze)em z-*WXeg_v2B%T~6sukan>zCgJoOnUzjyz~{^@#LR~$0As2A&HVw5{WobZ59O!D>>a8 z4i6sNzXs@@(1F#Pzju4MY}Ru{mscpiIrBPimlv|+);3BiYKTT97njaKSU%E|82!Vz zeiA41A;KKR)Kf%ou*Zf7St+d1Go0-0C6&%1w8+&HI`H-O2XFL4p^VP`3MT8<6 zotY!Nrq1EE70oQ;c60*l_fmvsC2&R!JkudC(>S(9C}JZ8s6vuV1>{T%DO7MxBH`GA z2>~=$w3XbvSPPdX@N^R)1YXYJAI>Q@z5fo>y>bL5ur#7$8rdV!>9!WcILQmyK5!{2pqRm zwLAhpz;k`PoQoS%ky1hc((yn7wue8GPP?Y_wXPj|lE8udYiei0h{M}{%B+)#C`bu8 zm%wxou`q$_BTWaX+kw=b7d^{e-?eks$>}(hR(;}t%PKLL+3KZ?J5ZFU9L)_7&?{o0 zh_u{cB!@l2`hC}PyZff&Fne||sj6A`$@>egty{Osd+)uMcswr7BbZd?lNbu{d_J7C z_iks_g@_(Ic1*td>Z|h8?K^kwl;eoc0y;j{6#0gi^I0vO&u#tVq?$+0{=8$y4%yt? z%-+3wsjI8w#EBC$G&E3GS0~N^kjjg{1*{NfQMI3ykjINvpBeb+r=OM$4Gna5cJk<> zj}nPQ#5fK}V0%8Ir_}tQsr<8nyUy2s!!YEwZQCd+Dk7auQ&m+(Sy>s`Y?h51H_H0@ zdRkjs#raHN(v{2QEP%kvpSnF>HbLBVHcvth#q)~;PEpMCaOUV7;z zdBGde`PS~;yJdHGH=$67OeXV5`<5+Rcu9UUEP+qO;C*VnUh0l}bs+ zapbw`?6om%4n(6-(c0R|u3ft*E-wBkGftwWv + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.png new file mode 100644 index 0000000000000000000000000000000000000000..20a5d79f138cc9d129bd98037620b375db34a5a0 GIT binary patch literal 1904 zcmV-$2aouPP)o)IzuZ^89-p}TxLe*gM0ReW0%!} z0}g%v+%xAr^FGgc-}j!A=MwnLbOsdw4ggq><+VWo6{=&n006`XegQzSZ^6}NCh#lY zvqp6c2Z(RyzXi|*;4RfL++R*~(;378_#D8i06rn6GvIx`wB-hWio_291{nZy0G+=S zH~{#tt^!!k`R2Y}YOwV5bV)%$L2Xo2)IN{L!y62S^18aZbN>FHd6Avu<>ir0n>N*N z*s$RpK@f;sE|18{$~t@K(4mii5dt!qtUNC-uMhz0>+4ZbQGuzcDUzI=d~(m8J$j{5 z$u1j#;^N}G&6_t@#Ky*w=;&x1IdTN4si|maXn-h+Br7ZH!_3UgFSc#l78Y;<2M-=p zOQq7w5fKrr%jE*gvWSd~M1FogqN1X3<;oR^qKL%A#N6oU=(dD}gphy{NJ>hIkVqu$ zYPC9?VHgO40GG>!(9lpQl}hC1<{~I42sdur005}f>P_+S@#h0Zz+$n)OiWC?#Bm%5 zA#ggKAcVkbwSr+7#K*@YGcyxjuNNkh2@JzPE|>3}FCMpq3Rq1h(`;yHD4U#|jF6BJ z$Ye6u?RHQ~K`Dh&sRX4IJkMivbQD&rbu3^R5CmaFCX@djghA%^9WWYu;dD9?92^Xu z=i&8wK`BLecsPcKhtc2P4~xYTxDxEj$zfEfuVlYh@;F935O_Qu zh@yyrfdN>pRtSRNv{)>E3K#)Rn)aieZ@it|_h1s=5B&(8t_T|w642Ar4MGUKUN7$6 zy^G%7UOF~5);c&ixOHl3Y9wGipxu(bXH}$vtP(|t?is9ue)Yx-8SwYB5orN2J-{%-$X z)159sqtWCDf}rA5Ox2sOy$SvikD4C_QvyO@=dQecFRgo-W4tb`i;Kq}^nXNa%U3gU z`RYQ`oh|_YdU|@=0JJI7gQ~`7M_?1J3+LY-0@>Nw%&y%zFRxN4f0Mj^4IWs=(Dv^R zdb_*l%aNhM_j^VSW&nuMt>|T0HU*$yB@8BEfsIUoa1=2`lE*wK=^OdXow6tbMSJ)C z-RTw!)3jRBa`hVo1xa!JnxVSAso~Jvb;|hIl%22dfPhKZSsTpWPB=ILigy7z!$Gt& zuzyR{fZP8JeDJ}C<F@>bIqr9ogMc}o?h#n_28k)f@x+FgRVR9 zgg*ky0JC60W+@nsF0KT6y*^=mqUIB=HjNmr{ReAeVsPm%7akgK-Z;YZ--*xM5rgBs zqt$Jx00rTIm@)=*1;yB>0QHCfL_kE3-vn5Od1Ku=C2KMdAaeC;-0tl3inHR|#_sQ| zKevA5Gq>i+IHpKKsha>^fO>!j^=`80CX`C0#h?Tp%Hmd!kv9Lc;bTK{<28TZ8fqs# z*+G}~7SuJhavit(Ff=v=m&bFdqq*_4-zSzx`X(BnemsWJ9|CbtJ9yi~yF&x_{^52# z`kN$e(3Oqs;Y`U2mJFVn8Y{nwNIg3}`eOG7kaX2i^r>2bsgFa*je?NLD=)`26|vG$SJewY9Z4dGaJyu3SkL$N&X! z#wXEv&KH#TeH%F7Z~7e$2i5EK2n`K|&1OSfTpSb%1*WH`QC?n7wOTE7Ivw$614}li z(@CE+;Pmt~eewhVyWLLxiSa_xEI2s$ncW;eejKHxrL?-b8Z9j?&n3Yv75wt$%k<{W zn_yWMf*|}ff9ljJoI7_8xw*Nhsi}cpucunA7CAXNB%m2^I2_o&e?Q8~%Fx={`oDvP z5M*a(L#0wdp-^D=?%il=YJ$tcK=EM0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.png new file mode 100644 index 0000000000000000000000000000000000000000..96bf96316ad8aabf8060ac6660cdc009702e8963 GIT binary patch literal 1672 zcmV;326y?1P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000H|NklAbWS&Q4x@9A zX3@zXs2S)soLh|3O!tms^N~$qV=)>RnVHCVOweI`P8^#VC|CrC;?xz8LII^xXaRw~ zs9wsWSjq|o+FDBKE$w&bG&UiuTFBD<@k#H!Ip_ENoYQm9&6xzijr!E2B!Y$jKSMJj zJh`55?x+Tpe#Vo-bqkOSI&%6zO5k|R`~}T;kVP|-=mXOO{2uOsW)Y}>hThPNN^cGQ z3C*P09)Topjr_@f65uQhnz4BC;?<#{q2VDRA)f{Z2d^Z|_15-bOjuyj6H^}BxM_3b zj)Y^P)aY>lZbSQjB#o8 z24t7i;q3KVWER&Ull*q+``~amFfuZNfq?;}q@-kdt1+5!3ru}>Ucj=CzUG$H$X!kn zpls_xZLAW>q_YIBPijYe0(k>lJs&(9C=R+BPrfu*aX((+2h zu-k{>a=9RD?SiybhnunvR7g8;S#$@9xwo+O1P>MUDma}^SS%K3Iy(^)7kAoQP0F|g zqNAe^DOGn}CX)#!%OJ{0AfxR=yWRv<*8s|uI{aFyLUgtS&G-6HAh}Ea1}AJb8}xcT z6bgll)Hvv^woieuu&`jEQ0UU>bTFIE=rawX$2^2ig9VJ<0*lQ7RrerxvR?dD+>ZRZ zdpOFIlCB`LWrx9FKzn;Tiuon3B_Yd$Jas+z6o`)AouXE&;SrzU!`g5WX|6TFo%fb!q9M zf~Loel4b+`QW#O*I)rL1i?R+D*>XElL_;WRv0%jMLcPX>26ZBC6Pm1mQ4F z)Y?ffi{A)GBzEkp9L9CV3PGz4ngKfmO0q$bnG;kuB0jwUOTI{QjjiufV8;3w(qWe-u{W z&Fx3bW9$1Ac;?;j#OwCwBjm>tgdUS&RfY!Pd3tz0ja!td{t<{9)TIj!uv>-41z1Q;(~&_0g7%Y@3cUwP@(#^+$})+ z)GHVyoD(>wEqra_`v7I$hQz$4)^6NsX@y)a!>Ph1#0ps)CJXQPCI>DvBPePc!3EU_ z3gx}Hcw3LSN-KV@(7OAybpDM++m2lHR(o6m0n=yCS`%|dC~nb%Y3qbS*^Gi}1+uC% zNUJg8oWg;e<`JBcIdHO`MY70_Jr%=<7xY7^>A~)kdBVw02hQ?Vdt3sPfZ3eMY3W%F zO05yfjvn{!#*oov)S1a5WZl6>Ygrtqrmv$NiA3TTBDXy`oi}YBXR^1NlyM7CI2_Jw zE;n0Tqc-4NlNDzh?jzRlBzGEQsKd{_0-l4(Om7YS0nPH{(wkI* zdlm?Om!KI0_vi`kqZxhRIjd1CDnieT{(ugaX3#8}Idint=o7NPp(13qG3g(Z7b}2j STx(na0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.png new file mode 100644 index 0000000000000000000000000000000000000000..cdadfe5cde0d9f4872bc15e09d82f4d310b53add GIT binary patch literal 2036 zcmVN2bZe?^J zG%heMHD!e|WdHyNa!Eu%R9Hv7mwQZG*B!^RAtmeDt<5r`X4%7pz2mlYQT zbZA*+SRDalfHdfn(}0q|W1X!QRO5jb)y$@W*$1q;I1AMxPy>2;K^rYx9aj^oNwrx6 z*<77glmE#8Z_Cyvw{PG6a%^mDTue;N@3w8*_9EeFuD&Y~v4J&TTK9!F_P)74DYH;o zTyb-$OErjLgBd2vG+ZthbUK~?)~#Fp2?+`NH*VbcMXnryL~P*2-^Q1A_UrrxvlSKf z-T3H}E}XCH#(7d3%~M!dSis`qB4%c0ke8Qtfh$KKVHzkr>{`xP1`VN(Ui3n&$ zjOZHBqeDH4o9!x8iWMj$Cd8c@I9+bWh|Om6XXc+2Z2actD6X88unp{ZIpNHe206T5 z5Bz>V`iG5B4x7;2KL&|%4A-Uikae*Q`%VcV>Cs|oX$cO81N!lCr1JUaxN=g$GLW2{ zd_trB)IU2ri&=*gjYLpqn8K)e7Fy#B8Z{>Tqd|-0icSnnOrfUpQ}Qz`!R>a#Y&Ju! zR{KegT&~<94eZ*rYg=n;tKVcY!EU!>YSsyheIDah2Xtl!9PR~Z?>iyvpTytmMp4~8 zfdZkD3G2C5aMxy&mVP#aR17 zyfip}NCWZdg)?s+ufmy{Zd`29;13tHNN=#>gKjr24*2k~ZUI-dKAh|I;#j)}w{>n5 z_jr(W(}Z7~AHgAk9Fop{+|#J=o!9xc;QS#CZ25hL|LqeO@sr~syl|=)KRs_iLY)hl ztsb1}@)BVm&JyxFy+~{E;1it-;$b)RGhT=_WP>6zCzkahqqGLk{W04goIj+2CtpjQ z-AiWRnUvf3{`=i{rD_^)2;F$6!3};ZnRYo9_aV2#$6OCh&NF*}lfHrzMl`hFMU}7- zmun^1otSSA&L7gi*M9al`K!mO5p%R2v4#D3sZ5W!D`xz))`pZj4jh-dajM%(rrnDh zDjRHeB5bmtPdh@MTmj)7DLxi8L)0S2x8t%pgY$HkoRiPBjOZPA3FP7cQyE8=$@q&AmY=)mq5z zsu%-wOpjWJ%yRM4<6C|Z`946|^m^8nzTx}0H#iKHsvjk_eMoQh;eE33{@J&H>$*kU z9$CaC?ILPblel`<41S9XrzHkv%;5OH@$B3ASGjVBWgzN_4eMV?{jgO&XohZN9BRz~ zYGi6$XxHORhYjWG1yl_z;=}$06!rL!BlY4vi3b_tX=wBo94flfy7sHl>$!4=Wq=a3 zfw%Td=>>(xV1s7N!t8E3@^oe0cCrY4jBr7h565Nnb@U>OnD~I0OUx-1KE8>!mMbSE zYy%V?kGDY}sE~IISyA5S!bgfZq&5?=cCrZ(!HhO9(usIRyASV*?AVcT^4hxSXIA_x zrbJ|b5*;1=<=5UyOnWJ(P8%l}^6wKm5HIp!zi0vbYaG~HIqZM+M4k58-@Kc&ZvE4b z6sJUNAdqjw?Af|GcF#WEu3u&He)LQJw|4IN)8?IfmaX(h5o~}trTjk$G{7EAp5p2l zE`^1K%$HDboC~VO>e7p10y7JQh)gIH3drSh(tOxJX=y1_b3ru-%+nK?qZtjbXEo}I z8lmS!PJ$DjJ$n`-BO@p&DM3?H6UxfU=%*OD^>9BHl7nhcEvoqx8>A)zPsl40n2d!L zO-V^%KF5OZ2l5~fopolmIXi^|J&fe$=Ax*m2<-IJdWw9CWn^UF#*G`K8~4~iID_Fb zKR-{Z&wl^Fb>MV5nK~4l!AJ=-kd%~!0|yQ;YeFKCklWm2SU7{>P+eWk{O0ND>B!2; z`mcexxjE$L=R>2>F!xWNK8@z)W-^334`(nO%FD}{g*Q1liQT(*KlBsGWHM$k(rebp zN{e$@AY42i4-OtY$Q;+`$%&o?Rw}G9QkLae7Kntlwl-8%RgvbS%c>cmWM^l?VzH3s z%B7&7VD${pMR(-L5z<__WM*d4igP??Fj6jGz6`NgOq$CJee%PH57Q>+SkB<*fxe1T zDLn#yR_N>`CMIHHVuD_Bj^hk|UMedq!RPaF^ypD$J5EbWgVAUtx48QQSo0rYHSb~j SHjE7b0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.png new file mode 100644 index 0000000000000000000000000000000000000000..66370ee6bc284e1de4afe25d906248d0402cd664 GIT binary patch literal 1857 zcmV-H2fp};P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000KCNklW;6=|7@R!X7p7NnxqYV~ck2US2oE4H?EpeRL9&~nSAKq4Yw#1IHX&TuIRROA!^ z10><_g4ldKXTALz_!LnFahZKf+|#_w4))1NjB|BlYX)zB;g6_C&e`k{QXj=F?q z(rmSW|74y13i@;Bo9WM6uyM}3msU^qy*5u(!1g~5Yts2ejG*FIIBni>&%n@V5p92N z=G=e2IA{J$?f#UfA~0*#tY>D=nfttr-3ME*G_<2p)C1oWv9NO7++z2YyKiVLtIdAf z&aM~r=PuSB`&0z>A3Vg{;=JcKK|ztMp+kz?@>*2Zx1zkJ0VUP-5dTk(+_G9&JARa> zJ@#)4yibri&}IvQHL@VV!Y zSYl%4ra6`}Ede_ln`h5v@ReCbSFm>DR@p2){RLmTxxVk|9nfXzurX@Sw+Fw^&KE*< z=MEGjqX>$Ozgtu+Y-_wJLL@sAr_%HA-Qg3kv|oQ?q0!=Hnzg4Tux5?z3t5E~Ol6Y@ zKEctjTDz$%E5GzkOIIIaQn+y0?O9S(S^-J#Z4?O0U}j<2Vr=~CzfQ5!`omaU1VpF9 zFFYCkQD?Ek^_#~AM#fI++EWVH?Dg8TWyj8;wVSpkl-FEidIsd^lgV-8mKgm*!)O!V zM$EZPghro!SXo<-ywV!fHMPQNyDMY5$|~TezzEUtxO4=c%0O@&2jORO;1d*wmlhg2 zPfH-~3@?+;y1b?l0}3VbDrzBAz0(d1DSpG~z557B_elf1pwUWOjI2L;z@oATkc%cyCtW1>zPgsYKKl_?_efeANW^cWx zubDBWfT^jO;f=O-Ca0hTBC!;McNDlK?nSpmijGb(1i~tC^Dcv1P=#FKRebl;&j?|0 zaPk}%AxUZY;b{*0mV(m&q4nkfYmQ#jR%;Sun1Eer{nE4wKClafT0PcP|t+O2*}56BwUhFna$HBOQ=Ga`Opf!eW!i$w*?} zFg5qktWTLzpzw07a!{@Whj$5WA~DW$vtj;@b=PxxdjHtG{fh(VvMb>IOA^_L0{9+} zhJ5U?qHAbO(JdQcWTOxIA51`6TGKfAjIK zs;&i}xE)~Lwco(9UAr;<6sH)6LK4B|3dsg!p{`r@ps80`);BW29e#-Hd*di4D_Co3 zYtLxb)nrNmJ-vTF!(y=$x%rhiLe6kpssLf^Z1|8JemtJM+w*xiaxxVe`B&i=5{vR? z3H{A~aC?+Fq_~eDA`sUp5^*Cr#IiALRX&8%_+vQu`yI}+vUModuB+yW0)fHdQRUZe zf_QMx{t?XH0^2!qJ`cD*~n7(PgVBw-g z&n|n@eEE@Z787+Qi@XjtwteZ|n~`6QOP8DRsjJtolZ`cb)j)6GCKG9A$q5{DT`67h z`ky7HC7_9SV8pewoGaMv9W-HK>$v!!Z$MaNLi&igh2{Fm`cuqEs27oF=KJFC7iLoO ztom1t@|OkPwphJrR*2wY}h{k&$M$)FM*>x?DB(=OPv&gg==U0XnPOVJfX z!eHkIh8&ya`X8y=GzHWblSy~0E}&WJT>216P^|(%=Mpr7pqf2Fbv2_6>bn}Xq9XLZ vs0-+1X$H-rnX@&mG;hedhKi8Y#*F_185fRMM{@K>00000NkvXXu0mjfCG(K( literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.bminfo new file mode 100644 index 00000000..c0ad03d7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa5d21c87f613e2121b75a6b95bbec97e0c64e GIT binary patch literal 2222 zcmV;f2vPTmP)N2bZe?^J zG%heMHD!e|WdHyOEJ;K`R9Hu~mkCr?3+-g`O&m^WPMVt);KDa)C}@uzudh9B z!pbq@-ki@jK9H9xz~tYH7l`6h7-`mTShjjY_avPuld1i+kz@b*#+dOV2hOLw6ak|~ zje2GDn6a-Ln|`|Xa`8=+$m`(X5eOr*)n%sNTR9vJ6jUx+x2gIK?Xgn_`o0taJN7un zuGzTlcWF|JviOz)7c=vbQ&fS>tHnsmD?-hGTX8WX9}CSsPZ;R?e+&48EPHZJ0du{o z0g)HeAePEdcB>k96m_V)U4{0}E;KZ?A}Tfk@9NFA9q6yIfVXs~k2IJwZ^gtZZ_VS{ z7Z{pN508mg<(1yV`J{9x8t+2Y){cA1W@P6TAmd6QiYuz|jrDF!o1t&X^`&Sez|`3I z)l)I??dMZ2W68?3%28U{6TY*w_{7@Iwc2p;O22JC?fE4xQ3hp83sfDQIOKc0DIMWvNMOFjIxQtV3$^ukktEB2{#?T{UEO#7enJ@C=p~TA)n5c>?{K*Iox%o-A0JJc zqPvWZJ*WWV?Y67dY}nMiWYyY`%&XU!x_hl?P`0A{b`2Vv+fZ3^7XgvyaMVAzFDJhU z3F%i+P+Eay>n#|)c}A}L+6`XZL-0hKf;8QH9!udpPJHfpAGG1d0+$5k=)y zh>lOi<$?NY|3880_;Vn3)77;5ez!zWtz`Qr>Lo59cKi1~v7*v3sp1w|b z7QX1qn3N*E-aJ!}+cWM>5RaFD2EEkf5Y)F!FaZz>!Kkxe$o&qtBMM~g#G8(%M z9EHE|G(tpDY~Ja@=;%&=viB^53J8r5=c(E{5PRVgT3b~pEW3%hrpwDd`^@ZP@!9xB zNpdcnNOAdu#bcwDEs{%WAGG#7#Dj+nI`8*0ihHg7miBIpSKvultk2#-|J_ zAUQj~y{WYw;@C^5l-J<2Bn}22Ev$Y`OY1MI*MGY+GA;{tM^2JLl)~Y#KU#Ypsj8cM zRCkmejIy)0vG*Yq=~qjdK3Zt};H&?bn{i{a3@YHbAVOMkyM_^nFOsFsLT*7BzO>xQ z{AK&fHx5!l%zp$HU;j1A{>j5 z;zC9doZY<;m6(g@SZR&22W#8=ugGaCgN67ICIg?6~7sJh0h;J;nU-t?+3BRaVS$g4(jj>6xFTdYxE~dh)thW}w zKTT)!z}S=*3eYiH`0fF(;3j)FAI193Kep4ar{`LlRf_oZA_RoTB7mIxWnWvIGF`lM z<1Ty08(Vkmd}MCDy=$w@PpQ^6TdpKV9e}&#oVwXF-kvrv{tE?A^gb|{FmdwaS7&}; zFl)cJfbk1EPqssdb>CUl$0X+AQucLxWnudppYM!!CTZEMnxUvl^T0uiIf~iuJuN~b z0bK0de6B@bxQs1!haS!~F`K%_!PUz*MATt0*Kj%Ce2P9vYD+|1k9UC6xB3e5uKrhz zGGqb&oI8K=ocTuPZ_m(sl5pmvg|Bnx@IggvU8-9v3pU5LrBlwZ_JIP_x0K<6h?unL zQysDKEbY%(8&?2(G2yLNP4V>fL}zCw>GF?rp}E++^u?E;UIoICL=+YlA}=qGbe|Rw z92~5E@FFVlKlYzn2VGtC?-0Kq7hdB~;R>*}wuX(3 zjk+e%($dH}*6vMw0H}ZP)}*TwGkx)YL?}&u>SL92q_VwCL>Z?Me6f&C$`3K6w3k zjYCBw5+Nleg>;{7^viec+C{s(zP!di13ij4IXR^JN29A_Wo3oBx;pyG>&I*SvqVHh wVBfxdaCUZ9{~Yh#yB7@&4P=OaK7bMb1GYp`M>fW>!T + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.png new file mode 100644 index 0000000000000000000000000000000000000000..24d48abd714e868a4ffdb7e2d0284792948fe5e4 GIT binary patch literal 493 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;Eegmrwuz0bWT&K~z{r?Ulie!Y~v>QvxNVgj~_?Atg`( zC2R>PVYdTHpae?b&V>@_!0Tttw?-BRK!{w7G>YvX|398T4#UuYU4gDZS72=gE`P(A zvFQ23Go>`x`kr~F}pd=|juNk)t z#yiCr1J;Q%{#ERxIcsN)&%~SnL{I|)6rF@ZNQp>(w3Cr6Vk9qPy?daL5n%78ImlcI z#74EFY*Z^~PZUAINm4SVh!a?vRyl!6&J=r^Ksi-|&k)ebqsKd`@Hquk5CZOe%;gFk z8s~cpt`-}m;^QsAKyo<7r!j-!-kL!f-NXBMJ zfQV6?0-)R$b3J<~O3MndP_lkt{A2UVSd!LT(0sgVtJ>V1z&jPdALG6D(Qm&!{?6L} jg}r`PpexW7SYLsEUI?53MhFu000000NkvXXu0mjfq#VfA literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.bminfo new file mode 100644 index 00000000..7d7ad3f7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.png new file mode 100644 index 0000000000000000000000000000000000000000..5015ebb7cefdd9b3360c48f9ca92bb9eef603c7d GIT binary patch literal 1066 zcmV+_1l9YAP)N2bZe?^J zG%heMHD!e|WdHyJs7XXYR9HvFmfLSkQ5420N+Lpu2#G(yn}i1s@;!+AC2qZGr0&Fv z7p<10m1t0PYomgqQbG}NOH|E>OO!O#CX}XSstqZch7O|_I+ty&IkujjS<^WZ#>0=E z@9eYI+H0@1*9=ff{Z~XWnuwxZFdaiB{Z9}@JCO6()Rl;*|3^#j?IMbH*th{xYijWE z_%Y;C5QC&Ob`Zr#%$tL_%a?G|<3Zq61HRP#i>aGrIQYA;r4Z4x$(iuKL0w$Z2hbmz`_8 zUZ{#kc$1WXapv`Q5Jd?-?L;0**q z1L*EHvXGpJDHKEue`5zxw8Fd3-HQbc^>FieDAEw;QUb#|Yx{XZWZ)N|!IS ze>aGtmBe_Ax^e|qJ3A3zM|=cjx1hGALme%IYH2Y7@cE#qE#0|$Fwbfu9HMB3c0c$) z9#XmObh^KNgW8?}Meh_HjjF3Nvcm9DT)&306-gLtwIv~nX2`*WJLPz4EE^I~id3hCFu`1=K~uNDzIA;<6gqM3(T3RxJEiti)zwDt^E-|C8(#bFExHdK#AXsg{PlUDG{qL=BlG=x z{ID7_!@->?hMGMSYSTvQ`zAvV_YG(4{yo%5ZQ196rro565759nk_>6u+vz6EG-_bs ze5k4_d7YWyv^ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.png new file mode 100644 index 0000000000000000000000000000000000000000..65b870886622a315be453e3d7707252e67434dbf GIT binary patch literal 987 zcmV<110?*3P)N2bPDNB8 zb~7$DE-^4L^m3s900UP^L_t(oNA1>Gh>lSh!0{QgVvMm3a-l@XzSAUYmTXBIG~)6@>lT8Wp4*x_#B_H z16`0G(lQGg*27@z!oKjczY7_^Bm90g?&1eNVFCWg_h&fR)U`!|TTzI<*bkT1L0Ft2 z>sRo9i_U#__7311)}RSuj$GL`XpSmZv?54~r(qOa(oN_OXI8PV{M-^MFz!W`T~9KdaCzt!~wVsuio8g=dA!YF`Sg+*1>JsA15N7tI(P!dt{; z|9~s-4p@w9xC0Ax0BSx6I`Af(h@*&CZG8E8_zmzXZVPWYi_og~=JfI^3|(awG<4Y; zVFLUrI&=40p6Mg-S!0-Qv2}zOl6QjJ7;IXn3FBs3h zk=EaL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9427fbcd8999bc9adb062471d4644a0d1703f5 GIT binary patch literal 997 zcmVN2bPDNB8 zb~7$DE-^4L^m3s900Uu3L_t(oN9~onOPgU7#uGKQ7HV5T>|m9Gg3!gq#Y?=$OQO+S zyu|1bB8a-Ecxwo>;APSL0Zttpx@j-AgIFEB6sZbrx6(z?K}GE1wPJrqUZIv`Fvd=K z;P8EU&-Wy;rB_#1KWk`ci0ka^j8I!{2gAd| z+Vb-92Ze=&HFXXpHU@&MQPRh^Ef02`u zv!0!ueZ=z!@*V6KzfZA!68TIL#@5!>yXw=>z-TnaQ}rk$+t>k#ye}#$a#6K`rwJQ? z{D&k$LMtR}Y-(x>O($$Nn+_rm!S}FTg4fs8)#;S`0<*KT+RDnxrzG}Dl8{c6l$2yB z_su}{sZ=#X%MUpQpUdS6C^kt#bz+~r-mb2$n+X%eYiX|?@}DH}jp{R%%P$re7iIr| z>cXVc>5NmZ;NbOorTrZQ+(82qj9j8}1%zlqgo(||h^pn_(BI!5&AE2V+4FpDx7!nx zDOwHzEg9!~@T-6XI{OXteU%F>i8An1Tgjp(#oR%$tTl$MqfOTQ*n z5!|7c{i3C%MThvN*n33B#^lCSuHeBK#u99ts*ZWCaM3(ct}Af6-4P^PPp1yBb@tVa zjEpGnHPP4Cr{SKD;p$Cgo>O@05#bz3oNy#xsM5h&8p$QFFA?HQy5pnrU2Gfjmk98o z3U@sSIe#wqATUGr5#o1LUPVwl@3Rmb%W+6TB1~+8_wTG7VtXVv%D5&C4i0Kn$m;>6 z--p~n;046@J1Z;el*&IrVpg4y<5GU8O5Xi;K->y3Z*+CUsdGi z%H(2sOBYhCR%@&XQ>KGty4l-7`|WaL;=6K1UkgG`<_3a({fGQqena#D;#9T$Vnlm- zdZK%Kdv!xYL%~&i33cW+NERVG^FzKsXUqsIMtu@Gw70iM65I;OGGr%y$X7)ZlB5VU z%dlwY86_avZ{gzsOJII7Abo4Yl=lu(7eBF_}!F>M2P= zkuQrTZk_xR4u?Z0Nyv=Lafl}5%$589U~6kjQ&CYNS8H-xTU(@B4kL^ZL! + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.png new file mode 100644 index 0000000000000000000000000000000000000000..d6397fd8b314b9ec4e6d806cabb4058b4b3b5ae6 GIT binary patch literal 939 zcmV;c162HpP)N2bPDNB8 zb~7$DE-^4L^m3s900SpUL_t(oNA1^Hh)r=E!137_`!<#oWl~D<#*2BBgm}P%ED6OM znzCn!EKkUTr9^m;2TOVIf>8D)g|d_-Bq960e!qAA|7n~#ckbMK=W+h^>7IMe`TzgF z|9Z|TDJIp_)Rcxpk5z_>@EfkwCH|Kx{4G9FSQ`vP`&c-_)yBzdO1469I$aA)JhHHW1<{LMdEIJ#jPto#T5;y0dP1NtMi z7dT&d02YegSb&@O4qN{iUtti>u@ys65wg}N&J`8_nXJ4gYVi=iU;t;}`0v99{J|^i z#SoMuPR`8udoC2){6r?ZeG%+tE3w;8!pe8TA=!?P@VdVSH5e|*hCwuc8FI4`_rV_6 zVhewZgP4m`a2OuJ-dPJLq{E?e7>R;fZTAhrW>|@>ehpi;5LRwbaT4CcI;_WCI82_u zf)S_;Mdwc3>;^LoyJ3qh=mid739S4JtUU6b``8Fq!)>@q?6uRFfUXF&q$DrGUCneD zpJCz7^ley)?l7WxiuGAm($7M85I zA%k!^?tl~bB0O)<*D)Ja2(^;@16w{GXW=ZiBD>VeH{k)YwLHmge+h?d9^AC-35Vnk z7Q?N(Zbfj=0h4eZv65R@iq&v!$K{s~8*&75a01_84?Ts$=?W_~fQhiexV75a`LN~Q zoGdsWw)_xg;&?b`V;m-Xx5@yfU`F8aSnNlfgvD|=FTfxsBi7{uZ9rxiV&X&(tbk*f zR#>6z-D9W@Ri!6x=m)pgPe?1M7;Z|#LsjXC8(IU%6@W9?P0Cs9gU3}8xm=sts9Gcd zp8-A%r^6ZT{^2s#8oWVTKD9^yw%&?*p%T7``tZ^i*fVMQ)M5d+f%s7IeWCsZgX2+f zSkm&THGtLt@(Lin;U@Wt=F3U80NfAK^64^i2GAY8X8Q`ZD}^5(;}AbcL(WWIU&DQb zr{&W!{QvYzCT_4*zMA>*={I1K=UxAq$`upGegkwuT0V6|;uXE5~s literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.bminfo new file mode 100644 index 00000000..9191dfe6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.png new file mode 100644 index 0000000000000000000000000000000000000000..bb50ec97cd468fbc3053705cae51cd2335378d51 GIT binary patch literal 749 zcmVN2bPDNB8 zb~7$DE-^4L^m3s900L=AL_t(oNA1>2h)r=E!0|g{GAJ`+nwl)^*mxy0S!mR-kUc92 zWoLsVWkHdp1gpe^th#k?3FA-;VIDY7W1|3boAim%?EaDE9g(l4lI&svm!volP^c^SAgV4I*AaM(3<2b$| zTY&CkE!x8^#RiExu^A8X3!@A0FYztRLu{7~zZmD?e{KQq@f__Qan75fp##1CA6(=y!MV34Q{PP?0kuiL4&0}i@ATtmF}8N1Pqkfnhj zNiPl|PCLED7EH!mTt>X6yI794kf#11$x1v%wu7+>aF$qfPe@Z=kYFmVBb!`f6`ryfc(89q|6`O)Qb6V+NBcbEx;9WBWhcmxM3Rh!qJ{eYysQh zuIQAzic~vYfo<|HPBdPDTS&crIU~+s7Y^VNQtf21K1{yFiH6SYBXB;a63W8t^b~F& zwKqhz9fGH)&`Xt|fyb;hxQA4-=o1dYabo*nq}oLmcofyAB^Nal$B + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..53cb22ad5ffb8275b72049aabb0dbd48ca55eb16 GIT binary patch literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^OMuvzgAGVZUR%5iNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL9ROj*tZSW|KtZVz*NBqf{Irtt#G+J&fW*wa5hJyShH1A{L`3mF&~ zEj?WvLn`9lURo&F%)oFo;M?@rtxTT!94>4R!d1%in`Q2wFI4^iNN!Ws#PlP^Pb$^k zE1vIYJHt}xW|E?I!g!IQvEw{J-kF@AdNNMTN)PK0|qsNr>mdKI;Vst0E!5sUjP6A literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.bminfo new file mode 100644 index 00000000..f9a9fecf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b21cdb56fa017d136e4e59b4460baace3d73d5 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^OMuvzgAGVZUR%5iNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?FV5-3)Wy2prBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMo~fRpfx(xeg+Nt1 zJY5_^D&pQ=+Q{2rz`%U)P5dS;=7vdJ7caExpS$EK_uzPC54Tp>gtYoMvX8&;6v^Fi zov?&sl8ECZC66E$&n^W|K^4s=6?zE%8WfQp$U)j5Y%Oz~JfX K=d#Wzp$P!)^k9_$ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.bminfo new file mode 100644 index 00000000..0e224956 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7516888539f646743a3df867142c6d1cfe04da GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^OMuvzgAGVZUR%5iNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?FV5-3)Wy2prBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMo~fRpfx(xeg$xXg zW}YsNAr*0NFKy&)VPI&zAboeO?%ssNgA8@t9{1S(^gZ4&Y5k7&HBnC_Kk`)0J6V0g zc#)#9<2*s$nVg?`GEVqRNOy5gYqC+6G7^3wd2zx_h4US4XILuTOj6W_nbPzVtG0jc h+0pK^@8OPrOYWYTzxl9HD=?fHJYD@<);T3K0RU?kq{{#R literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.bminfo new file mode 100644 index 00000000..a7f772c5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.png new file mode 100644 index 0000000000000000000000000000000000000000..b55feac7e413ba5d4ce6b993ada7d3700d70667e GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^OMuvzgAGVZUR%5iNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?E_)PS56xb00pH=Tq8 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..6aeb2c24d75039ac1d2a9941c1cac18a67469f3b GIT binary patch literal 7259 zcmd^kXEdDO*Y=Fj1&R0(Oh`izy#<2^6VZDOBchM!Z4jdS>79faJ-ShXh#`Y8K}N45 z7#Y39=!uqR^87!&-`;QUde{G~b=G~#-us+=-{)NWoa>I$*Hvev=cES!0E`+>)eHdu z3IqTEq@)FrTM|{;M9B|IClwtP0H7g-;oO!A0005>wT+?Vc4}&BCMG6UR#rAPHcn1X zFc^I2&K*8JzWev@3kV1Z2?>dcii(MeNlHpeNl8gdOUuZ}$jZvf$;rvf%PS}-Kp+rB zMMWhgC1qvhM~@yoe*9QfRaH$*4GM*-tE+2kYwPIf=;`U{>+2gB7#JBD85A+?(Xg$9v+^ao?c#F-rn9mK0dy_zJ7jw{{H>}0RadEA}}y8C@3g6IQZ48S0N!G zp`oE+VPWCn;SmuLk&%&6QBl#+(J?VGv9YoL{`+rSTwHv7d_qD(Vq#)aQc`kqa#~ti zdU|?BMn-04W>!{Kc6N47PEKxaZeCs<5{WD*C@3r}EGjB0E-o%9DJd;2EiW&xsHmu{ ztgNc4s;;iCsi~>0two_w_4V})4GoQrjZIBWA3l6&Zfgww5?(XU7`SRsUZ*Om3Umq5W?eFg&7#J8F9Q^j}8xDsX8X6iN9v&GP866!R z8yg!RAD^6@oSK@No}QkWnVFrP#pCgFb93Lne_vQwSX^8r5C}_4OFw@6AQFko%gZY( zD{E_O>+9jA0 zf5;2tzajZ?4-1hu3c%M;*NE)(e{%vDozU=-zd4=fQwtvefT`ne2CAQ>){+}JeWB*Q zMjnp70k+-_0DW5*cV7`*sPQd-NfBugaWSz&?;-$z{j-LeiZKGVlYe0c##&$tvR0bn zYd(5DisPJnGegG<2Ne^{1HB%<)HZH)F_Bmz8U;=RUascy{%wk}eSv-DJ00RP*IRgk;#s0qZB+MfLP5`2;;%5GsWC|gI zy5%WI?}GQN7vPcLn~a(y_hAZI83Aa+iDX?M_l^5dkQ?Cw|Hb3YZAhEKDM$_`z{ZiP zD~qWvI7fZHc=>Sa?#b)Zdl;^(XE`!BMiSE8(rDMY;6z=>)s->KEEh^$N@OG{T_mMU zDTSUi-2Kyb{Cal>gaEzxGxmNqn>e}nt3cZCvI~#L{j0EyDC2OrD*w}bGW4KCI^<%| zBQMU*OPm&vDUD?!g&rJYU0wflD04Glga+?Nj(E@@L@y-{5#>CQST4%(90jZld8BO` zSDx3uKD%yOHxCctZEhrG$8)ta2Ad5Mx4VVtyM?74TRXQcz!c=!|4CdQDs|b0C-!7T32|6_c!rB}w zLw6AhWv4R7-Z6k-ttR8w`T*4bZB1{e-sejbelu@zkb?puN*+}Oh~Au=`Tw8>CEz*= z_T)n#C1Eb1`uC2Ul-d66IQS<#)i(-zsXH>80{e$nLmhFr%bVX{Y8af$>`_gNwy8** zp5Jv~6~m>(m3AJ4KiYO`qPV?5`}v}%uxW0QoviVz)}9vQQ#YJ* z--c2kXh6lb)#h~s>k@Il7D@^xJbpVmhooEb0w_ zNRIar!6w!`C6?pwnVBH;LsDj3UmlbU0(U8Q7|QFdd?-AUIn&DXXuHi7ST0)E8Y5)2 zXi8$tEZxhVJ)lDiCFW?KTGs;5``$6QC?mc-oT#e-zt{es%@%aV>cJc=ho8e`)qNfgQL@4BARMU13f84q!dT?t0} zNWFM6^{)r9&dZzd*6Kv5x3VpRwc2Nz*|5ckB7@5{9?ZsW>pR)tZ@;R0!?nCti-FH? z+Qo9KaW{`I3|o7RMUUkw0^&FEUC-dkddC3GZhLJ-gaSmuVw z+v|vgpp^iq0&28y7QEmpn<_og(qXzIidb{GgD$9fTfKj4LMDn3{X4Dmji0X^p&7Ce z!G(Z(8|!TSvw8(r(CQ&C#*LzSxK$BCLcontPHj)OfC$4BS-THPEb6kNk9RsBVik61 z7r^tJqr=4_V}~C?T)M)h2Y4^2Q7TRBs;C^r37EhO9uGyVLYgpEQgTcV7SmksDu`{- z>fdv$-jFl_F?6TIuKG-tjUcvFY5;b&`obRQGR!B~LfoeevQr^SKZ(_}sI*$r3N_sv~*GzRHLUa^+$a zFK0X8M)kkM#TYrlD3g$WHipq*<(bR%At;ruE)ae0e2+0&IL)C-u>Dv;uI{fR>XQ!QaF=`9** zS3!lSv?OOixCemr&IirfL4nqc;KyGK%3?u?w_i0~zKe1*6PmdUOBs3R=(9D-Bt8Kb z7*O_TWUwF^@;gxvE7$nqx3;ntLkvb{n+nL-?f0wHJ__}<)Uf=Bf6GC&eN&|=C5FYk z^LV13}-Y*CHIYN)n%!F~RqLUA_)}cB?e>RF*}60|7lQ z>%9HetmtmyqGEQUPm=^!QOh6^h?XIPlVDiRBYuoen;#IFkS);+M2KusAVe$&Ca4K* z71fVOb#H7&oI339swL-`41el)IvM@`XEAtKmUJj2M?ox2z!1x}p3=6xG+`iFT^XCC zo)fr9ACB#*YAFLo;hEUL-jFE#&vqI)So;$-ygoqh>NK<}25YCtZ6rd^&CD&j@so8v zW`{dPD3yi;STK#iW>Zoj03Hlo#DrTQNLZ^Mfj2t@OYL3$18Tv@#y-{C%jL%3czkJ6 zzpusKm670k)8tP-6$HsZ<;8_SgHQH;fkh*s64KFFAA=m){mvlM!8*A0#9bE<$?Ah? z2#K{dWv!T7gX>S1UA)XaG~1D$LY)6hR@&~52%#kQ6I|!LRNuaii=E6b=|Q#u+qG#A z`;OHezhyAc8H-5#L%D1DQ6!j^z`^)1a_zBJvYR070wk&Nv+;fpk#`m)m6CJUSj5Ie zg*3(R-F%gqB%k?%1kBOG18p zYqRTdF~FZxtavA6$2O+FOUy&JOBrK4wrYDdj2(Gg$#BJo#^4}C2O6O|HP#;(*(yI& zkYVjc^2OIN?A0OZEKSDR^&2B)*{5z8uv5IhDjJX;CbEBkWuBNjR)uniHkVD+mWg1Q(7pqi8EvO z=l@az&tZZNM%_Fv-nB~3F)opFB29H&tAQs_q#T}NVJjjO4frC{HG*opP3XaCzc#mC zwZl<|)1izuE_9XqIy?g|wRQ!jj6hHOrGv9PZ+-!zxXU@lExH)8{GVLAEl97098Pt(f-rC+6Caa~&ZaUe+!8ybVH)A2|Fd~O;FHD?y$%hYr$~U}+fJdOR zpZx}lTJoa%CvND5dZ&4TEPAD5%3DGepq0P+dvngIcTKN)h#x)q4v#Ds*%{M=A94Sw z?})#BQsaMY6lAhbRmUQlK@@2Ab-sVrWI0ORSSJQntj1k_tATKRvd)<`W8%J4+~Z$<4`UTleg<~;D^)k_Hwc{Q0J z%a6HUxX@Z;in2S*$hwKDmB<*nj^??#)B1Vnh947&njW3mze)$wG$S7<-N=_QI_IZs zD#>fbhGA>PW!i24WWpzM{y%Wd5rpn{lCM)%%=Ygf#m)=ELdA8SyuJ+n{q$zANC%3& z)7;7idr2t!IfT@kUOIp#lTLW=LZ*bW>JYJPqP5f27f`ZuRCnz9J zJI%7-D6n41?Xe^%E#WrSXK3$EPUiK%zX$3F_So)MUqJ}K@HMn4eRj(5-y$R0@8^D8 z3%Oq|e7etCWZ5rrdheoN@wq}-&x?O-CjBECenU`LVp|3yiJA^lX4N|Ty>Oecd8h$Q zKF!O1eOb%mjs7snfB_-eBBu8%U2N#dbLPBzzBbir^xeM#$c-7~K##1Iz2+s0Y-D;0 zzd6|he-t{N3_$0Pxpx^Z=+17M)JlGdT-h@e>N9=CGt9w&jX{8B_xh-tN?7)4Z5D#Lq4rEb@k|^F#S|*9f`GTx%<<+ju$v+zDRCSl6RJO z&E1Kj<9(<5Gq02K*fWS5c3FR{nZ4RC_&Zw`Cu5+6L+gSc)pIwG-HYe5n@Y4StR5;z zmd6AJqy0z`F9{p?D4OOkE}X4A+5O>8$*%mtKx-jHlNa59tJJ`iG~jUNdxwN~^@QG) zpxUgjH%OcYda*jaFfA{JFzg%mHnw_XxIwN`rVmV*2I#}b4_er$AF25y?ucTAQ|&4- zs=pi-g9f}^+?bB*bFYZyJbZSn(L@;K7M9iUUA%)0E3bB!(qm!Vis&$N&3^F_FzgQ6 z>GZvw``}Wo)os1xuq|CzQ=E{Ln+{1(YxyC3Tp+8PtEt)pRykIc*=#UVyrJ+7Iom*h zzLVXdYQ8}#{xo=ZRc$qPdc5uF~ z6U60%J4RM93L4Mjnba?4TJ3I-?zAe~3SwvB=@gLao%bx7_Wa<7C6U7H&T^!wK@mJh zV`TYYkMjv4bLM);8}M)@z-q~Sjh%hAE5SQlz^IRg;K!8{>^)kjaVd3Cnvtxe1q>E! zR-BOdCq6?FnLD*-5vvsJAT2x?7BK!w*z6{+9;rC_y>=%B3EZX7iyd6&ni2Dgr|5iY zg(O&y8%%w9c9ylew`~YWF{#*zM7J6pGQt<}=DY7eWDK*a6X(q*ugiOD1Nr$9nhAUK zJyk-~XlITRpPp-BIdtN|M0D4)=dx;+7e0ifEkK1(qePcXph>mX!A$lj7|}FA8<99! zx8)VG9b!M9YIOdi+xQOd!^cMzI*;eFiNX^R2Li1i(1HNIoN6|{W?KnX$beINs4dN< z4n`!%SMaRF_9Gzjo_g~N7&f6N6}V*@pJT+{&(M!cLp#f}UE|?0HA=OEGqYR#-g+YM zal|M>qubQBxWjcdx)T}@GVm#j=fOS@J%voU2|WIAf5H4T!QM%`?D0AS!nTkR)%xan z-g(XONV;F~1BB0aN2^2W?Iug>aerkqzv%>hg^z@?2oc4HoF2DYt7Uc>m#xnu-z)8r zce@J6P3QdKQAqR~{^g~oXLl#$E3ExnyNPZ^ScU$MauDfb4rRIumgDQqQ`?YfBxNl5 z4o=W+&jUbYNkJxO{rp>hV)XO!Az}PfC>IF!#J~zVB?r&bVkB?8jIELx zg#(6xn{|A&&9u#Ah9H{mW%Di4^aDH{Gd3b?{$RIAQ-wO4xMV zU*G0|{Vyr8a`GP<}4v)I3Ari!wDWSLF z(`g?ry{2+ydAh^LM8fTDCgmr_6dKaK?0wTGWLTvq1SY8LfiiC2%b-B?&P~s8JJ9x* z0+6jYSe3=dvlj?6Lx*(i82rB$O;f*L$@c(rFjaUVA;wnp<<5+R)zaQ+bUa00|Lshx z5Je!GQk{-OFXsH&x9b)w5}qp-eUF5Y3!4@-W);&_c+52^y>o6+idXw+3qn&|!HZg( zce$<&ZDP{9h_ARYTkL}LH_92&Oh4}t#Fv5pktqEo!Z)dv)u_uuIAZvRDpB&E+iBRQ zc1W06n95lhLli!=!ML|Ct{2)%wl`i$@E;fprDv*bxiSKlHTg00^Bz7>;Cybg=r%sE z?^UvD@Bl?~5Z70n`i53&1nR)XyjeY!4-)0y2a^oM1h8QLPC?& zq*c}Ug)_LC=E@5pm7NH9r%sQ~k!tR%3ikh|yRbj(J*7|~3};mAj| z%a?LN&d6`?{=D(^Yu-jN+F@%q5t`JnF-ZI#BB2X$;O{2L`IP7r;L)ctdH$JN6rIZ+ z)3e_MKt0&bOz*JZ&k&@B=uFGt?dY#>{qYYwiK>jBymeY^5rQFRMI*1=erqgFkd`)$ zm6@1jT7cvyDLve;ye*#yMm<<94*k1!=z$)A51bRXq;}T=5@BMY=dyIqy~j+Bn%sjA$~#dbA52#uNz`6xU}8Ugv*{d7$0s))vC)Iom7#PVX%# z(*88nVhG%apiy?4hLKkKIrrP82x|H%07l4sX?@6<@CP`zqI})LAv5UjpC1jVu3FvW H=Mnz{i#JC5 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo new file mode 100644 index 00000000..202cf824 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..4c433d25c8f505734c37d7b4376f2ee7c4ccff22 GIT binary patch literal 7204 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ï&MBMJ1amyfrRqi=wYCk$)X7hi)dR2%VUb(~DoyH8a;Zl$56YtSI zd3p7fj?c{|p45N{pY&^JS7A~2{$CKZ@VXd3t7NVYkQbpWkk(le87|l;KPkqXXq7u_ zYk#-+pk6;**GZBEEx*=eot_BmN|Mc$JYXioDppIuRz1jWyhn@j7q3rnbhE9?!%W03 zYkh^Jnn6HMy$%%i?e#Z0U#$L^t)a7f@r)cf_Q&;mhA!H&HwX7Kq6JUB7BI7?nEzvz zDT-4Y_(xvaniQC!uWue^L*ETlxj}b`4>|FqSWo^|;$J}5)jU8#vzkQjS~(*Mnj=lWZ()p#hvg#Sn! zovYhZoFq4qn&eUE5NUn`*#8mHvN*iEGSfAl5NIM;GcY}~%`b*SvH88C=X{r%8>)zf z8GSs7fsSxykj%G)L26sq9W^4ut(f-ig!9eFm3`$IlwL~cqGI#}54Xp$hD?pmec6<(Poc>Oj40L4Kzc;0xWFj!zXSD8qFR8 zkFmHSmU^we$HmL=&`DlPHrcidRE6zf0-Y}izMIUq zCLc3fdJ8W@%o5&ST=1e!!nCd*^LO&lXSn_P(aG$8{F09H&lyBN zRmSimW0ZV&aJ%veap!o4)4k{OcydPl#!)&w@0WnS@HZ3u#sbU|X{AC+ z8uXj*Fyg#PpG$6xR%^f_`F*o%mH)6MWW=13a#ZJ8nl2@d8E0qPmc?@;lL+WAHjIS- z#cLtt=d-2MJTI9r2ieg?hZ%oy(tFcW!cG)lN+1QbOiZtle{n%fS4W_Lismg+d|2sg zNc*EdI2=lQ+^EB*EG7`SE=Wqcaq}-u>HV(Ork`;90fpHL{Ci*IFK!+g6TWNww<)LE zO3;u$$0JZQ5$BFO5~iH>S`2eASx8*Wnq=s};K5cC4-m(w?J=*?Yu9uXK;X)+Nr3i~ zb<82=I#b7_NtRpY3IvO>8w*w2#Z{Y6H5|C4yD=^{kp0KWjS>oY!Y-RqZ-;8z;{0wLF}1oJy$SrUuRAJJqM2=Z!Q|Cl~jZxt>a; z2_AWyDtz~!s6xGr_rzY;bd~*9 zZ;gx)rLEO&h=qw&5}+fhTql|T?aF})5&y@J$$Mhilh12N#Tft%y~$qj28|(&&qM5D z(1IYG02`pSyfG5k@A}SS#nf(r2KdcjT=T_+$r z0WE<4sIh8wxD`yuaQha{!Q1EbL#_`}$F=EMWjxhk`BB{lmQ!D^VgxBah?ULm9`<@$ zgcPvu7B(2~;vMM0?k%@pBPvP_y~*+BOkwX!1TwdDDs0|tR?G(H97_4h0gDYI*5#Wf zYM%MUR|wJzS@lhN`-YseA35KAtJ?HzV5v@h}krD8ykq!$Waer99+R6hd~X pgWg?4;Y|?Cc74}aejNrRe$_NQVc=DU`tt`xOHE(3M%ga literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.bminfo new file mode 100644 index 00000000..727d11de --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.png new file mode 100644 index 0000000000000000000000000000000000000000..73e9a65d21399d61b8f65501ceed9281692b0189 GIT binary patch literal 6491 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 EKey>|od5s; literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo new file mode 100644 index 00000000..c53866fa --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.png new file mode 100644 index 0000000000000000000000000000000000000000..896b5850d48ed8b12867d852e9db227524b1db89 GIT binary patch literal 5863 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2153d3bedcc53361c915905a22a61372d5f4020f GIT binary patch literal 5903 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo new file mode 100644 index 00000000..af548dd6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..95400614ac2d2523208813fa1f8d7b01a5390fcc GIT binary patch literal 6519 zcmd^Dc{o*VyWf>Ugp4H_G9{rmk*#ee$yh=*wkUIKQ!I1HxQon1X4v!Mx^E~Uf?&rRr`-w8p(>!sU z`#1uDIH7ez{Wbz|7(gHn(a;^CB2QK7q^J)XI~83O1fn9AVbAI)0&xUkpmRrqic3pN z%gD&c%F157dKHO8%FD}NyLJtQLMbXLs;a80si~=}tLy0K=<4d~>+2gB7~Hyb>&~4! zMn*=)#>RK=-ZeEfMWfMXW@Z)^78nf1($ezYy?a(xR@Tl$G;8a04RR~TKfzw3c^b2sh zIGia7XG+0Yzrop8;2aq^M;6YNgY%GZo;;kd0KZm*Un{|Q6}V6XF4BaHZ@|S`aPdu; zpbM88z-71KaznWM4qRaZzd^%q%;0KExaJ;QV+GeffZy7}b#`!_Jxp|gn?2!o-f#;5 zxB9_t0dQO3lT%Vs($dm0GBPqVGqbX?a&mI=^70A_3JMDgi;9Yhi;GK2N(cl( zSy@?md3i-e#hW*8s;a7LYHI50>gwz3i9}*kQxp9D3EUnAw}-=>(eTIT@W*(#I}z?l zg8N><{h9D!4m^|(j}*eACGc1|{N)WiQ3F%n!jwAr_eOZCsimc*wY9aat&Kz?k;&xt z_V%u>uI}#co}QlJ;o;ApKf~ZVc$x&ykm1>O_-iLT*A370zzhBG;voEe7+xBMm%o4@ zI6XZ*Gcz+gJ3BWwH$OkWu&}VWxClcayfy>>n1eSK*4Eb6*Vlji__4LM1#hozZ*Twn z`4isV-rwIpI5>b|nChAT2iI@k8mOZjLU`WRGo%js|M@}~ZqW);$)I<=Vd{ZEFg5+U z4=t!xyrY7rJT>lm8e(ldy{+7B5Uy4ZE}oJuHlF-fBri!KA4&)6ArR~nTIwoy0L)VQ z{(YWy)AmJGfFV(tUt+}>;~?;kcg+gN9UW8E zqFWh_(=i`0=J}wk<>T>O-1^Y$th<2ggSPeBcOREMzST|m*kU!kQwJ7ye+sOBM<<*m zD5ln$Ev<*cNB9ve%ru9MDVxB55um(3|K;AdL%s z;3=!ft@mc|OAOo(e{#~t@A|MXGcv0Y$BlxvT1SG^3C@{1o9n;qM#v5GD{~voO%CHG z{x=BDN+tTrs7t6)+}4o(0GCUDOFL%2-|P`Rb;wKMV`qZ+Cp7D(O0hpLTc}di7@^8v z+J9y1AE5$aA%`rz(Ax#D3EE*caU>b_mQ zx~%kj7GtK56z%M))6~|U0B!ziu~7%#BQoyh`Wf@&X&1>4kQ?>ZlKe0=(rP(f$&(3I z@&rok(WT5%H5o}C4naEn8MG|DG@uXS-2~sAh%^WuunA^ z7RNZh5UUqQ7y1NlVi!B(YZrDBlJfX^yewa?9e1qad*kdMt56L zK3f*-Sgd*Ee3IxBv;mQ+1iFX<7nGtUY4iK_SZx})iOpG^^7ManBo#6e7KG32WiDa|}BdRYoN=miWbj=18k@(w8QZ1Ur- zo@}2MCKnqneiF{nj@Xt9tqx-w1aG_($dLPV9PGv)Tgs6`e!SltG0{+NzxAcmAXj?n zZbht&6=`7cfUGok z@dXxr3m2{kWC^(RY=Z~eZaUR)fnEQU%=hCzhtNtc(3K4EEZ0{?CTMWyWnla?V-A4x zO)|YrbjV4#-#4nJ>(_hFd1|_+K5k$BUS z50XFPAKooOQU6kfJtjxGw%^a)=dh@w#)^$EEhv)`qa0R9OB9`Zc-ywTraasDl2U^L zx1U@M?Ee7rLdv5Wfa>e@ZBU*2xR|3=O}Su^!XSI<-Sd=KDw}CK#NE_Z*$izIxzS|l z+Sw4G0i3xkOkQ+t4qz3IY#)(p*}utoi`e5n8f`>8iZ;e&o?RcTl4K?M0YVcFcP!SE zmmrbUimGFtIQ-W7L+^1(j59L*wNErY`5Dg->i0o<4PFejYV25}QGV_6C_E>JgNb*H zZT#g3Pv$N2NG%Cksqw3o$4L$5had_^?Uvh%TxC@C+sY+@QL>@#qP3YEXQYX^0Htqv zB$-`*Ti5y_SU9i7&68r>c66)UW>TV3d~i+&t?6h~EGB_*4jz6IYtGTC+wkS{fb$7U z6a|bCnM40#W|bGz*m1E+pwgDQ)%l%Kjkw?16Kj#3I}t#<+z_;Aw+cR!8t{RpouSu{ zY*jT2Y|Jcf;BblYYD>se-7Zr}=~1({B)E+U5>bIN6$(!$_ z)fjHjUHY6=(sY-HD^Nu?7SQf*?-rv{YQ1ktK*xW+I&$m+#VVSwRAU_fB&@bEEF#Kw zsL1OAry_k4iLIvn)FKG-SjcCM;W_(T-A5^{spuh>Sg()oC3YR}8l2xRF%GcYv}2Hc z2E?v@!k06#hX8#-N_$rDc3>9Bfua|zGLVpBePX911d)0hSxdlYmbzu^+Fi#bUd=eR z*6SJAhhX;#6w+@SqXP3Z4Q~?ddtb^{OVRN$G8z--KIOmNV+(aSl8>Kw0P#36Gyu1p zZOM>&Zf@94-1UmoyidIQD9YHJLagXH3CS;!AkqydDiHmRR2CKwxO@jWrbbki!v4$f z|Bpgm(&AxAr{*mXSk0e7PgBADIN#Y3b1n<9k-V-GIMSpNtMln;fM`V;{Kc8X= z*S}Ky=ML_PM~dd*LI6{$T|GI0bw-7Fk)`)RBN!#7B7otHw5!yEW`sIeq!|84T|HGR zEM;6&R1u=IMSq@>;=Y8w9BHCFL{^J6Is6CC<3Y^M77hiD-oc=JjILd&dT{0(g<}y{ zD#Ow%^b`OUDW5*YJ3j%oI>f9sHHaEwwRnHR(TZqQR_tzW%9#7@D_X?Rl*lIFDYHAB z1Zwr8_HTXSDcs{f)uqCLeo-zpHSL;{;90yN&+Ms_kjQN91KbFAY?%K9w+iuCv&Rcc zx2W$)()8AuamzaKs?|?uw3f%%=D9#a;km2!REujD8}ls%K75*+d0WBXl@)k> zjp2aoG&F4#b5TwxGl|x|7%+KdI?v$+IsR7obK;4@?$dLVtqzXMgJre&O}6U$Re7k7 z%};_DBCp!%6VorTg58k=qG4*p0M*NyVH!leQpRVOt~01Phk~Jo&V6g<4DI*Rqx7HE zM9*es*A>*E0h&g z?OG1?EMypcmNz;xz-7e2*NF#8n*hIj;&AFMmK9zB8BFvdx;Oeh-noF|&5-9wYWjWE z{|%$qk>G4as74Ps)W`F#nOplPWR{fdfVvFy?^v&^5OY0W3Z5x-k|CYwQi;B*`@{Uz z%;_rqwMq$83EO-+=rG}#n(r=rb>WUBQP}U?hs0YfSajE?m%rB!|JEa&*{;x@Ad4V? zy0`Zv8?%7Y~$!#C^81 z;r@gxLpM@UHu_gGou_iR&5c%4y<$b@-8LqDn`~#vX`VKklQ+TnydvIlv0Y^D`Z;n} zqtM6aT>8w5Un+50y;l<^`-+GF{?%zlO%)WJy$QU`Hioy!ODXJWKm_tzOXtM&!jLM+x9iTItcIRuPQC*T6M=URC91 z&Yr>{bBXSGR80v!ta?3}anOhh+wA1wb%iuuu*9x#WdO&F9myOTtF0s8a6XL!Tnej5 z1*Cb+>|{@k>+LefZ-sTD^5xe(37c&u&KAByWT#J9&e%SR(&Z2)S}4grBv6Dx!Iyv^$^c4LEzFEXx< z3W3nT$W!M@Cm~XCv%T5oZ!u116EaKK%4XN+{0<#qlN$4>Uw_{CwQ9DM8WLwP9bt=T zOwjk~(bLQl8QhjZ-+O=X?S2{y(3)0!i7L}CR$E)(mC#d1_HyYt%;uy7$Q@It(@SA#-fnU357c~#yYuHYWvP2m@%3AtdR^l=bi%yiS?A{xcKD?-^o$J+n;*S8 zQ(XxzJ#^{d>3wEFJa=6ih2svm$A&$q3=EYKT_b!k`0(B7Ca(%Afr1X$)cPgT+W0Zx z%d>JIMR@5WTMcMhJ9V9;R%r8tA-l{$S|4ashMXsWA%~AOR=m2+2)_I=yzoYU;Rqhs zDNpr42`o7sCQ1M1RB<>uM6r;04HPb(U6#Z2At_1ATPf6%j}Dw~Q|X1iraW~cR)U?# zb^Z)3eL~=Fo?>~Vw`q6a>j9pIXvgSptz}_ms>EM-2QKAQBfowy)j<*@1Tf73xA|ts zi)k%5Zw+%nB*|ljlY_jzLwC@X%;&hfoUnrcXQ_@HSRH*@40>R$wp6hOA|WRMlDOtk zQW~3*Uc?_>9syiSi*-#r0=}d!6CO~viy5u@%O!)I3X+2Vx(=AZM}I|n_!;YR%UD+N6S(c@}HjB{I|yl9mhYf zpUziCmFua8JyA!C1=fpjQcL^`k$EgXqrVj--<>%`D&`MS-C6q1Gv*p4I--4X4FMXl zG^ma>F!>kJYD*kAp2+Ns`%}*tx|_wWI1*}x>LilRG4o@NRz$V$T%s<5!w}6nD~=jA zIPz`?C_&%93jZ+-9rbvr{QO{qng$5fF-B?dDie=evz6V=ISg&zNv3w;PfE-FeC3A6 z7CD9Kb%b9JF^7pMpO!_6#~3;;;f`y!a~ITSLY5$iVNW+aQCy3@mJmu$t=L$kPUWaJfo=|h6&;~#;L!A&u0{*_@6lYE zeL~$rZtQ1+E>WHC{2qI}Q{9b=Ygt4<+VPb_yrfjU+LAweci$658w8{}h5uB5t1U9& z9EqRRuycd<-o^|BH8GJGG=$0Hn)tyWyM$Q{O=5K@3pTMJ55V7*Z4CJxNjdTXDxG`a zU7%Zw=EuktoyREHLiUy>M0+I#my42L$7thO!LXcYP z?1CJCYucB)q$o>z5HrMQVLqvxq1S`}kLHGeXZ4afQ%}oOc`04KR@VD*y~TfRg~~4n z`$}TQnDF5APz)f|op*mRo52|+bm{mV1L9>WxqtPz)~_d5V)U7VYhCGOX|XVZ)@FNy p`txo>h|zn09*Z3styzK(NoyFUE^}&xQx8KCS{i!lrK + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..cb8a1a5cce315e268c36cba096b188127d599923 GIT binary patch literal 7807 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 C{4xsw literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo new file mode 100644 index 00000000..eb0f162a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..a37008b035a3a204008f2f07811118c2cbfd2c02 GIT binary patch literal 7731 zcmd^EXEa>Vw;wg4N1`(#2_X`l2?jw#^xk9i5`u_!5xqt4MDNjph|XY?Xc3~f7{dsO zQAUdpa^K|tzP;~ny$|o)b=Ez1uYJ!sYp=6^zrFW~(a}<&p=6_kKp-@#Pao?+AjAL! zLPSbILXgBOvc)j3J^#`64iw@83aNC(a|taCdkFa#3UpnBqb$bFqo8-l(e+8 zjEoE%4wsXYQ&dz`Qc`;S__2nDhNh;bwzjs8j*hObu7QDpp`oFXk&%gsiK(fnnVFfn zxw(af1pqr!KmjJvfXTFA3O$(00H)ml(-^^YW-x;V z%wPpG*uYG7Fp~q!;soE`1hcup>|0>YZ7}B!n8O3+@`AZ{!8|@N{~nkx02Vv|3kAVK zA+SgUEEWe#B)}3$u=F8VCIyzug74(Ock*C`0$8OCR;z$DPr({huvQbS*9AZ5gAK;u zM^muT3~V$9TdcqqYp~T0Y;yqHoj{};*!2?Z@d8o4U|#^(_ZsXE3JD1b4Gj$o3kweq zkBp3rii(Pkj(+pzO-xKoY;0^?TwHv7d}3l^N=iy*x1z6)Y8(@ z-rnBP(SbxFySux=!3c0D5*&&GM`FRTWN<7697_eqGr;jo@M{h@nFmf6fiorGY&kez z3C>r63-7_D58!eG_^lCKX#vq~Ai5pIbb)K#y}iACeSQ7?{R0C7pFVvW8X6iM9sTm< z%lP>C+}zya;v%??0i z@87@w`0?ZC&!5}d+c+E!JXi-0H^Ac`;K}yk;o;HI(ed%|>FFu>8~^+F@3XTr@Xznd z%geui|AHV$IHLc1?Gvvz!D)yfUV2*kgth)ZH;De}6&`}6ufBY0>Is3+_WbKa56SfJ z5QJ=A$|hd=?hanQ*01a#I@ZtKyactB4Q~2~2}%fx2n!#-DuzH^sG=0cl^O0TOrS@occK+hxil^fq$Hd-PV$jiw|g&4nC(&a~ykVHB`FpMQW29$WzBW^Yb z5LwBYK@1nxc|#6Ca67A%&wqRU0P0kv!q)b)H9?3Rke!l3s1x*1Mf5Zfq~c7X8WEI* z?=gu8zWab?l|y`O(ESvo6G3n@E#As#L3Qr+gC~DhH&4zVfETAQV&nrGu&-m0c)t@g z>^XmUhU7Zau9c_7Q#KAWRke|!adPY@8N*nQz2(yF{;X#%qqL3?vua$Rm) zUUtrb7|&>ydg0O+k+I7T&0MdQr;lK(*St8=;%Xs}bOT?I?3)(=nmF)por5_9q5EW! z@}woycPJQu?#JNP4qC!~#_iftBj;BRh0dGnFYAL&MyzD%p!Fux2A#iHfYy|rfHfJe z()L~KUwS#zk#ahPEcP|3Ncn|H0aTVbx$m)?93XiUX<@}qXf!Lt5^9# zj04%TK1M_8(+S%sg&%n~V0T=URic?H(e{L(-7X~Ihdb-rd^~YA#UbJc^=kLHDvolQ9 z*u-5?b%1#Ju^!iT)j+*FJT7Z0kG%uc{tawPI_&g*8WJG|IY-7Q@l)1uSr7msl)?fa zUs&?>h(|58P1#Y5luad&C0!vrj&l%RW{;KO5}oY*RMlQ=xeEk3v4l-<3YDh0#o|m< z@Bp|i0GZg!jUG`hNTYI8CV_`IR)li&9<`AGKF-lYpXuO^p>1NaKATPgkt}o~1%~mb zb)~zD~y1(M2oYZR)Hs zkC!=z=91Mpw^$CYK4TfZa*~s%OfxIkX66nby{B|=C2v#7`&l)OhxGjolbNq#)-{rQ zyKV+UNr7zseL~peu~#}BObjg79Ws2HG0%5j`Fx>+SJZ9g=)->bnZT)VJ8E1sY8SHapC=Lgfk!!F({E3Ks1p46%Cz>>k`;O*@BGOuYQ7RaMd}Q^ek|=53^{j&gZ&-D8p% zCBwB9bzv%A>(Wwl9r?VcQRM`whg&+z_-t|OcnA^FdN~}0z`4e61t+oHj{X_^ope8? z#eJYnu8y7^iREg!XLCE;qMz96bS`YLuV zcO|WGV0G3Z{~1uaQ!S_OuC>ycYtl57>te33@OfwJE?x6-(u{1Db&LS`{qx~`glVmt zlB)zGe5i0t67C3F`*K0s_?cFg$Q^s5lRU#QUPX;3%Zkk@j>~!L6Gqv^lv&CVfzrvH z#ZGRISc@hyqt8f=n&ib$ai6wkL%BX$$nQlSZm4_I}~8@tuJP!$XX+hsT7k zAT-9Pt&7RyfoA^f$A}x4gC&RNw4aS;Ib#KP>$il~G;wJ%*)fcPshvZmzEe~Do!o|S zKsWt0_p@NPR<|H?hd(k7&ArY+7pyG!U*fF-iQT~C$$Lgi($EtR3%d5+F((Zn=y#@v z{v=S>hNc!h+YUiCmXSBv z{LZ#aGfpZifz^NQ0QsTk4|_pye3o}*{#1=7XP!9qlvEh(-AMzl^v8TEIVJ(C$`jhf zPW@7~%dyYm2dXPIC%5CiynJmjlR(yTSC%L#*^%w-pN(4rK-2rc15EO(CxxN|#P?M2 zGyP4*>djYAo&9zUuBB0#wV%JnEetPiwz$@Wt{6{FQQzUPOltL^UG7Y8$?Fs3t=do` zZgMc07g(tl@UJvHb&aCjpl#9#KO)uEeB6AgoH@<^0^s0pq)1Z9*bnj#Pvo$W_Lk4r zKKoAlS=9HY5bovcm43nSX?B85YB@v$DkH-ya_(*vY-$gGr!HWV{sqsE@9^5L5PR%$ zbb);DgfBVIziuqun(uMu^R2s$WKrDYD0pb{RIqEfj=*;ip(#j^JyWy-Q!N3Xxg&XH2Xfn7M2 z4SWDFX2lXANBxn@`=h_V`RhLkE&7f7bJrWker`N(vFaIJ^wAv6N1wWlf1*l7!2NO` zoJ#44vWnb~UcOj!e`EGGNv94I_+;kYL`<0-=A^NX z?#=n^1XH*6OyBDWNI@jjKA8l0XO@`255=JuaS%9FejnD9kKgthLGU3c>@-3-pd)VB z>}ZIG#{rTy3DtN?F=&QJ$9a%@KtYPdaa`wvfBO7H;Fd8&fkL!}2R5p8{U20wg_M^c~~zgnF1>c8`bQ|%7N+L7)*TV7eu zH$3cVU+~ywu-F5NpRhhyjOP5y7a0P+of3MRN;Y)MR!}>^x{}lXhhK;0k!T_PQuFvj#^;CriKt?RnFXqQpUdVL-2i8yGHtV1G+T>*d7s(;kTZ&IIA`K+*e2rxV;yoE; z?r@D&9F!qMh4GbYPJ(H*GA93xD0R;Oug=;RGYA0n-6?M|rYj&5XlEKBN2eoZwmyco z4$XR&BB1EThWll%^}+xWWxb+#cCgJsLvC0RaqopiIxklJ$_Ur0{<59t0V~o4>@8jX zMx&}OKnpFujh_EXKBS!f66!9k1~w0u*Yi|8#`CEjQ3i1N24Qrg)^1jH>81b5|Ey)m zkfc)UNdvPt=70-zO~h|bQvg0#l*{)8QH!}k;)1M!FjdEFE}*7i>`vObQ0?u?pa6K1 z%yd@wI_5!|{6hVS;I!4}P*^GR;$wkY-?C5@Kldb``M2yq`Wxizqb)?8dpRDs&D{f3*Nwmngj4Kjg^%y089BQovTQo%Qr%Y^WlWFs|3cVO+6lwUZxF*}k! zI9=8np=<5f9F1(^+Kbe8hZSd0qCEtM#lo1!T^60*RMp6?I`HDxJ9AdT+65~#zEZj? zK8aNeSJ9^u8YnuJeaFZc#F;b|^qZ;UPz%~+fVb&2z|owA&kyhwWFk%TN3bW?kR5gU znS!=0-_*ikRqWl|Oz{Hu2Gs-dCZjW{)eEZ{&B~!88waURyxqt-{g68tW%ZdZ%SUtU zx5e8{L?SfT*G&7H~t`!52a$#HL zt`!&YwPQuQtM&K7w|31UChqSWvETK3-3QNge6tXdDWiCZi@h5lOL)Ehx98*ZZgJw_xRqA zq$HRi?xmJOcar()7ISh|DQY8xyV#ZzXi7x!D2&s=m)hUVUFG^A0@QSGKFyK~{+0$j zwaRj#IJ!p-)qGGg?4wZMpoX=9FU_ML`oLTxwA$}K;!leU;In?t^~>23zAkZ4TsvK?rh!U1s&-nL6!R;O+YBgz7%_^mUkYyuV%*$+scdbZ1xtjf2f1@^~kQZTZcOfsvt-8MsjH#(|=8ozL^Z^}Y1Ru81$uEfxAsK*DZ% zJ{I;O0SBP1TZR52i}PbJ7KCsTo3pBeO9(s_vM7!mEdRsbD1EeXrC`b9Jk}>GX#B;; z8+eYT5B7b??J!3&nBZz+&GY2MZu4x|ykZMC#_=JMvhFH@P^aG7ex zNaYxr+jvo8^-uCC77=&s&`P`~BXTYH+a(=xJgKSAu_C$_qE*M$Wp8r}Bz0?IEeqv0v5xKPF{luqE2_iv3P0L7_%HT zCsSV{8`xt?2U$>_iGF?#Fs)sT`HD9*$*tdY<*;@2Wj()(Q3w5GuwbF&%%^(nm)0qT zxwf*aWA1{#5T?>6jn=_vGxLtAl~zSm?BK#$#r0IwqXu)4V^;kuvmEo!@5|<%q+tQ8_%spu9C_hR8wWp{IV6i81m&RA8o$K)8Q!nGkd`HSC4}i@W zWdvx%!1KtUOXNvn6;(L>Vf{Be5 zg>zV-$4-8=(c(&d={x$gU%auX`iLay9W&xpv#Mvo!3})(=$0cae5)K=%&*UcH|SS4 zmfsoY3vr}^N(s7=J!F8Oxj)wS}_*PW^bh`5=e9tu4e)k#NQlrykT_<2d zNwBb3mIyAf<$eD;Aco!uNDWgWI2$xU;5GG)(Ogt1(Yf4_-CH7e0~h@z%m+axKKS}fFe*c@kCHZTL3U_fS+#V9MrZ&m2z2@8TAjY}sc zip>XKgoF?72SI1#RHMsr}$%O)nfs^Y49*|9LlntN^yqz3fvzXW5=RZ>!Sf%^u=Nh8P{_ zqlQYUxsUX=5x@QDsZdoTW#xzGFxF;idG3m;IcTt-(os)y5^}lSSUJwgfbV6WpN>QC z{Rci=ZLCR!UZvaS6y~s;Iw!p_9`6-mEu(H#{<7U+oh!+S+?6oq+RA$+3dBlhUWE@? zcve85G8f)L6$5k?Z^u(#rBP9a_GROn9AMH5`N;`d+3dv43J&9w6?4|X?q}DE<(1m4S<`*2%$b^-2O&y}5 zsJLi{H$2Boj%#EVXKKZsS@WS9S)H$cdwQI*^OR2O=8(6*bg|zNPNQ!W2XW2j!QRzp zL*aM;+;xXsA~?J6k}kRNXiCP0 zqU*q}Mmk&S^ZuTzcyqk|Bfuu(?d;%e_%nxj2S>Jld4h~YF)198wPz>Cs^lt3aU1_v zIyX-*_;0Q$&&6Tun=I$^XWd0SbEA8uyyt)i;THt)6$v z0&d&AG6!nxG~W&oxqA8bgnHEJ%~bgOw;k0$=?pyuqQwt9l@zx)*??zd*Rs<|J2Hnz zfLr<*hEJoCH7GF|8DYdrJW5Y_$?%lIFHLLG3G71**q0ZD_>9n}suCfIsh`c=vnLd* zAP7@_z9I|J2s=GUJ%l8yS&dault0ASh?3GNi<&$821)>hvai+q-0e<+xx@k5CLaF7c5ZymT| z1NHWOm3RYo5 zUm54EocQ%{H#_dFuxksO-^L?{{8VgNMG(4UXD6dtb0cNvBn8z!1;Ezr3Tx0gF*%ZZuvYAv_FOYtxE5VOtx zK6h#@t5nS~@8U*3t_)3jVzr+}pinYESz&8d;D`_`1p&zXbJKeB8(U|%yVnSHQMV&H z91dL=y`oHrK2lT0)(>WK3ZQzW+Rx3NB!+KA2KF9R%Kfa|rSfMWq^KOd%UkC%Hq6Y& zrol8)Z=Z2c(zPbmTnkpOW!>i<6rhw_EaFew9@43q+2b*`lv{f!HZ76_npa0`D95k>W^{M}HrEo3v#N8~y zutOT}271vIzv5f;RoH(46Vjw& literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.bminfo new file mode 100644 index 00000000..48ae70c4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..1d867778c4325fe8a937c6d2c7bfb872722eac53 GIT binary patch literal 9025 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 Yew={^WUR#B{53&CMOV2(@nz`$0>JI6BLDyZ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo new file mode 100644 index 00000000..27f8459b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0d1603bf0a94a81e3d538d52a9d22ade4568df GIT binary patch literal 16690 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%0AIdB+yE7gW|v5{3; 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.bminfo new file mode 100644 index 00000000..133cadc3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.png new file mode 100644 index 0000000000000000000000000000000000000000..5d89be2fe4b3267fefd54d465179947ba0a59dce GIT binary patch literal 9137 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.png new file mode 100644 index 0000000000000000000000000000000000000000..edf9470b993fc87582807c9b49a15f0399a00355 GIT binary patch literal 8631 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 Y&{sSOJ{9J4yZ#k!plhPjsO1v>KMUXSXaE2J literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo new file mode 100644 index 00000000..178d10d0 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..b72c0ecd17ee37fd9730ed3fe168006d22149807 GIT binary patch literal 16309 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 E12bG!U;qFB literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.bminfo new file mode 100644 index 00000000..2066634f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1e61ebd227b4af040fdc6310f0ebb33e585a5c GIT binary patch literal 16934 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 dr#J~s + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..5339ad8a2d85f8b0ec23abe9814f604b0ff3ec47 GIT binary patch literal 9590 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 G^Zx)vO5a@o literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.bminfo new file mode 100644 index 00000000..06167f34 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..59599fcf3644d46c40721e88fb9a418d49ffb09a GIT binary patch literal 17416 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.png new file mode 100644 index 0000000000000000000000000000000000000000..a5dab9a79654445918e106be0c76837efed0e119 GIT binary patch literal 2022 zcmeHHi&xTj6#qIk9cq?YsjIYFX0?2TfDaNMa1u&2mAdStSW=(ZGx zb3TUl(pKUlO*>RWU1vCqHpNUUL&)$I#*qf@*Wc0ZIro0?!D)8KIKuwBX%$s z7y!TyAC8TIupe@owK)`54=*J{U~xPoA_Rcj_0(e_dZ>1zg~vnyz}*1AWd{I^P<|;0 zfcQCJ=3oy1S_Oc!tao_VApp!l)G;y+nlU#whrwVQH*R!ta)QI*zP`Q)1OkafqEIM5 zKfi#0fWW{&G#ZV;V1k2#!@|O_SS${Q!{hN}GC4LjHZCqMAt50#F)=AADK#}UEiH{o zrKYE+XJ=t~p92Sd}pP$cWvpF12K|w)bVPR2GQCV3Tm&+|LFX!|5m6erMRaMp1 z)dGQ_wzgI%6xP+%H8nLgH#dt!qL!AHYuB!|x3`PM;(Pb*NhFfN!NH-SA(>33P$U6TCnqOoW@c0>m0GRVXf$(kb6Tx-etv#&adCNhS*O#jtgO6$|6Z@xudc2d3^cK7E& zO&1m}jzv0?#mcAVW`Zc{iPJ1kB982K7Ve4g^zruAH4$W zgszFcTem!lg1wmfU{39u(b@WK+M|0Blkqp?|B_iXH)9m_Zheh(W~!1OVX2`bdnfm6 zF%6INEHx|AQzPgOjw*4%Hfq@ar-95}x(fp;*EE8hE`pcVSJ+}A_TezyXE2zR_HLUU z0|cFPmiv5Fj<_@Tv2axmCBeH+Wt`qGU@Vk8 zt1~GLKagm}%nZYq0Vuz{$^9jfLWcHu?DLFnt?8=6G$jl1r+*veRwYk+agz4 zmR5|6q#oRC6=C6|)6=(^h|&rC#gPYg9o$2jK<<;UVog~3%=b-QSL`3YdU?d%Xk+G| zi${fBeEodaZ?N!R?dOAha?73Jj(5-Lhnv?h%i&c=WqR~0k(_yARw0-nT%s*_>nN+B z=Ecj*V?k4+2Qtn+!)n^@Q1HZ&8u(RZ{fDCeJjtXV%kO@XHxq#kOTV&W#OHl?{t)5fDn1FcFPMepp` z@}Q}8%DyT33v-Mm+wjK6`HAHCK9%Wki7xrZax#@oWVI%4>5QyN(MDpY`!*GJTX2dO zB>vOec3Q^e5uXuuuCu@%#GbP4v*;z3GNpRj^+%C1gBMw2Ll&A`-S%%%Svre+KMF1$ LN5r;=rWOAO`DIq7 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.bminfo new file mode 100644 index 00000000..1c1bab2f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..27374793146978f1120d3bec8737906ec40986bb GIT binary patch literal 2006 zcmeHH`BRf;5PoT(id5tfEeHsx#TLPXBS3%vNo<0E5Dp1JARsb|974DfF6&4HmB6SR z6+%rw(5eU|wkUzp&NLtzO$?`8DgqKiw1k8N!`H8WhuxXoXLo1zhuwMhDGLeyaq}jN zO#pz+1U!}qBOms}jR-iZy+0j?K{wei$Pa*a7A4S61=lu-cw!I$3?l$8n*gAN^K(7` zkfcDzWD5XZa{!nN9}Ug3ejI*<|i;Ih^tE-!v8xo0hcX#*n^hBXhUS3{k zG}_nK7lXlIu~-}qM<5Ww!^5Maqse4)OiWB%TwHv7JcU9@NJz-Y$T)lUER{;l&CR9J zXmmQgsHg}k2T=J}(3K4k(*UY6f>`^Y_6X=oIXMZv>z|#S zotv9mSXhusrO@&mq?CR9_)(!ytgNgkl}eRL1*sLQtE+0YTBFgdt*t@Ywa=eFYqi?- z^>qk>;PwBvFZlw0p9zJ3Lj@y{O z=s6iL)X&A@(>oAWjn<|OiDLWLT_TTxMepCoYg5p!(0BaAc{&S$L?@A^Qh6DNZ7VwU znsyF#-BfajETY7kHxdRKI4xw$(AGlB9~Pg9UiuVgPFvABcbg9(WCiuJs6s=rJr%ST z`ujUq`^iG--g@5(&uL>&k2N}Pq8elqk;;h_*{96ID2YLRzAIKyuQJ8X-`_L-cBUn# zb^GeuS4JXjuwQY-`8Z8G9^I4`Lib+2DHnMxSUT#JjL=7O9mOg6)q5pt;^9bwOFpru zH&v^ju=hnx3NMqYIem3yL2~!&WTN~aZvol1mp{IBrjs}Ao-Ari-+g4dd1IRA~nmoriQ1DDmH!U5hzAW1JnT_4gnme4Ou?%*8r%xA{F_`bhEz)qj&2*7e_ zZPnTSvNA8Jx#CJ>VjhiGZa>VzJEYaJ5J&A!wdK9K$g{`hyt=R;Cp#*KOfJN(+^P|o z5?YL#R5NM}?})*PyR9b&r*z97d+kyfYf?#!eM=88!q;OgT+<8NK{q?jcEPX7j)|3otLjCib5hFVl{|PJs7mU5{AOF+8#8YH3 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo new file mode 100644 index 00000000..384fabcb --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.png new file mode 100644 index 0000000000000000000000000000000000000000..3041312e1490123f5c69be02d0f32059619476c3 GIT binary patch literal 1903 zcmeAS@N?(olHy`uVBq!ia0vp^jzD~vgBeJ^3hY?|q*&4&eSv}-=Oy|$eh2aul0AZa z85r6H7#Mnl7#RKn*^PD#43V!H7=`#57;K&~Fi4);byCTQfq|JJz$e5NsE3)EnTv}{ zP*6}pLc-YC*u=!d)YR0>%*@=}+`_`b%F4>x+Sp-rnBD#l_v-JuomZBqSs> zG&DRsJR%|@Dk>^EIyxpMCO$qsAt50#F)=AADI+7JprD|zu&|`0q`bVms;a8CwzjUW zuA!l!t*x!Sy}h%uv%kN8!h{JECr+F;ZQ6_(GiJ`5IeYf(IdkSLTC`~C(xuCmEnBy4 z-G&Vtwrtt5XV0F!d-onXbm-*CljqKzyK?2qjT<*^-n@DD?%jL$?mc<(?=IgkSGWJt^wVGSCS?l0xgxprynAQfv@BtlBpCGWynLm(iVY^`UiK`2uCtoXiySKCD zm484+>JZC^pl>+Det*83Kw3aiHJB%5LoHVAN*`#VbLXlH&U%ND~=_FDj&K# zC-v;zkAjyhZ7jmH=dkNJxmD<#X=#~xNSR+z(S$GExgqte+@~Bbj;j$Y8+6wB8Y*r% z(UczS(V?^H!3_~XD>2E&Zij3oWWslRW%!bHvGIWUrG6Nd+K)vsdq)Yts^Y|a`s*peWU*&@BZo66H`mqso5u4 zDi`oQj?Z*25H{Y&E0k2Dta{`}n9rH~XGeBeD;(M3T$w9;MfK}#ma;6{*$?t2-fSsf zb7q<2b(xzcukJX{Zp-KI_$ke^M^t-maz$G2|Cvj-Oql$AS-D|+gIk^8Zss?98>}VP z$o$`b>;3KB%#$z7WfoFu41Rv_{2PAjpI2;uNLpvRa4_x@OuSrYFS20ItobbW->Xe6 z3p+aFLHgS>AC_0VZri-uRAA390i`Q>PItH-r|*{*x>9#fYH9S-DZX0g8J-^qc^KuB w(7(B=kh!-zbZh> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..fa495edf37448c56e849c6408c8cb92adc897786 GIT binary patch literal 1873 zcmX|BdpOkj8voA4_G2@KVKPbmhH?utxvh4Z%mv4|&Q2xm7K0gvqYTDn(HM+dB&}kt zOD3|Yb!?;DY7M%OT#l?rCu~V#Wt&Y&cF)iG<2>*4UcR5_ec$i%zR%}*^SHkM(AL_n z1pv_Ic)0Qq&qTBr`V6uEIhR_3IBYo62LXSs3if8cN8WI#2hRt996SI8dH`%7ar!|3 zjx7R|o(=#9UIIWG>gYGI0{~?c!De&0qG(BUoG4lhbJ%QH92*@L5hVn`VmOq~w-ZZZ zVugBqe&66;ORd;MUT$sykMA<9x~F;wKFjOBt5JwT9fT7CrGZu$E53mLAwk>Kj(U7t zqwFqY`;4cpg%xTvO*Ub%=Y}&$REsLAJQ2tP`r#EALH=%G=A;p0>2eVq4zEK+gQd9O zAk@#r@RB*4pgTfftZpm%D4~|;VWMzy8%#)Pt-owZC?2BJTR-p~w)l$L($aER?A`C@ zc?4>*w&e`k_^&+l8lqVBQ9P|VKB&g5Hl3|lvKEtEhZ++p`WZrSW(%|!2Ro;d?he6s z@Nj!e{Z`^O?|bq!$o{1VmHL4q)k^O{M5JAg%10^rQA+=vwVAf=dBmX9IqQ;Z&HR+ z1_en1J7Z&Gz0!Sjx($s+8=agay-qZdHxlq@@&u3JM>S>z1zlQNUViZOX@w*{e#5km zPN!e*=&&*}G8&zln&OGhu3~{ICM9LBmzS4qZhAUu^2w9$*4I-kiTT6=f6|BuS^-Ex zT%4&|twz7G&_~#j7=FTqMk{V;Xn4V5Kq?HFnVWO7rBLQ(W>o0spZ1pyST5pf=qOtp z9w`WkOvSbIMWs^N zKZsjPeU>3}2q@RUqmi%Me);9*5aAp1YCTu7{L5FtZ@v^i z`r}ni0)Y@Kl`aqU7pJ0W!4xtcP4Cu9$;OZ&I_lWDSq7Bwj_n6ylQU=pKGIWvR<^LX zun_T``MIW(&4g8_hbEeejv;qQ&Zjty5}@>|8QYc+jn$Qv5zk`IuFZ_vK81pObx?Tn zq|G0ggq~+F<9m|bch9m_>sI^Zgq|4A(cBYdR)fQio?Rx*czA zL+6UfsZz>Yb-u@yrx5D#%Fcr|Bv(1U@wfMagn33XVl@=FAc325aQEOo7 z%|p{Y^MaDGFXFz0dDG+nOy_5|(sk9Q7f=b!<9=GbL7|_56kD51_a{Ruxd~ZzGfk^W z3;_L$)exM=aa0m zx%8*MqTU_d2oKnI9IM&UeZjzVue*Q2HN#{3u7^a`gb3`zxq}tiV}{oV0p`1_eUp-s zist9TzfDd3^TyGES7KNmX-zvG?|~O|1yqe$P)s#h9%r`=2Nak;@D?ZoaNf IEPlp+0d2VxZvX%Q literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.bminfo new file mode 100644 index 00000000..99bf9f11 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.png new file mode 100644 index 0000000000000000000000000000000000000000..69525adc794b07b96644c93aaccb6f0a66f8c95d GIT binary patch literal 4458 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.bminfo new file mode 100644 index 00000000..88e68e24 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf400c0635f2d2845b24d530786dbff68760bca GIT binary patch literal 4484 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.bminfo new file mode 100644 index 00000000..7f6a20bc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..d75c51d481f61dac9519fadde6119983de0488d0 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^tw1cp!3HG#H`ihJyShH1A{L`3mF&~ z%{^TlLo%G-&fe&CI6%T}vv`b5ExY=0ySCN*4>kPk8u=ILKUh*~$SFA`Ez3l8vRh89 ziqnItze)?2{Oj2DZ5}f_)6eby1M;MVjuzTX<}<$+`Gx!5Z~fgGbMz7pUz|7n@4I@J zWEVjp7e=;449tNIjT#3WL=qIZ3`zn|6z{xko^U}Tu*K!F$!DAM>bJgc-ZSCxzE)8w zXgNX<1`or~$A8bBo g@aJ)Qv)wP2+h22{g4?EK0Rx)B)78&qol`;+0HPDC*#H0l literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo new file mode 100644 index 00000000..efb5d7af --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.png new file mode 100644 index 0000000000000000000000000000000000000000..fd726d13e64fa6e1b506736dcc0e2d17e118f039 GIT binary patch literal 432 zcmV;h0Z;ykP)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^4L^m3s900AsXL_t(oN9~q9PQySDh22M@Ny#0kC^<%24nfH&I0#%I6+aEO z5Bug9fO;}b!@o!S3nNND!ot=4}SEPvN`+kDVo|H%cQ|}4ctpPNE z2G9T+Km%w14WI!ufCP|##h(MUEX#6X{f$V!!Pln5!?V^9FkHlOe7oM%g7lfYvX)jD z{oU&>1K`7l=)J0{4?G*lJN-9wWG$^QK0biJ$1l?~y~eYFywjiC(M}lOI>2!d1h2-J zZ+s4^c`xXn*wId~Y!^Ua$z7i3|9%Tn^ZsB*dcm?&fLR!ZFZfnSSV_(MsU7JB&rSg* z=&2}*d%U%r)X(U^j`ZU8y30sdb{0j^Bi>q0>T}x~gxmXf87me}(K5@j8_q8@X`1U+ a?fn3cVc9DPn&XlH0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.png new file mode 100644 index 0000000000000000000000000000000000000000..1908d7f0007a3fbd4d8a69a2473b6eccb7f0dd07 GIT binary patch literal 554 zcmV+_0@eMAP)N2bZe?^J zG%heMIczh2P5=M_s7XXYR9Hvtl21zlK^TW6#Eh`;P>^)#82AY~buBt}sauDjFAzb8 zj*)*Ni=qxe5OngehoF;Sgv3T*;KhU@^bm^~lv2CS?#%Q~Gf85)?so7p54_Io?ECY5 z7}i6#JhYd^1$u=PkOERb3P=GdAO)m=6mTGb#mZoNQ>+#{aE${2lM-xDLSQ9qr7gwa zdjf^n6F=-gL%=~1f~z9V2K)@+D + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..22701d68c8f5da4a222ef128b5a99d58588d45c9 GIT binary patch literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^tw1cp!3HG#H`islu#P*AGGHKHUqKdq!Zu_%=xATcwqM9KLIws# zOHUWakPPRyxA%G-4v=XpEI)YkVs$~$o75duf_;ykh*l_8G5bY{PoCgt7`#YxrpcnR zi5!g*_ve_o{&cp#Hs?9}`l(M!swXUa5O#Z8-f9-d30b_-e=hkh`fTuk3;dQ;9*tZeYPmEjdiv^a+8$j#Y$}1y6DAAgZSd=28{#(Rvr`&%yv7t fpSNnG!e7>_i*llthjnxUgPOt9)z4*}Q$iB}L_xY3 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo new file mode 100644 index 00000000..d77571e5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.png new file mode 100644 index 0000000000000000000000000000000000000000..1036c2c9febf513f61a217a2773c8933b8336766 GIT binary patch literal 398 zcmV;90df9`P)_00004XF*Lt006O% z3;baP00009a7bBm000ia000ia0czHX2><{97<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMIczh2P5=M_3`s;mRA@u(n7s;uP#A{YgOUke{Cco`_kaLcrs;Xz2rl8dpdv=vy!LW!)<-wjW>B`Gt z6mq~QNC8Gc3WQ;}vn*?leIMZjw$lVMF!qvBNJbPzXUB1-nx+NV{R(zrol%fj2yyp) zf3EBL77e(t4{P|uC`kMWf?#PF#u_c$;DAw(4A1js=;6R9Nd8Z8g+oRmDIaHw4eY@N zKJiQ;8@b!Z9=l(_4y^I^AtAYUiW3~eRuV!Uj4=wCz@C%y!U#6g1`1$|QOE@LT>8w7 sF-9R1|3+aaVbIEJr@Q~kJBnC&0* + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.png new file mode 100644 index 0000000000000000000000000000000000000000..96265a09a321ec556da8e853b59e3410ca67875e GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz93dtTpz6=aistgPb%?u1b{{!il z3=E|P3=FRl7#OT(FffScPl`Y422{&g;1OBOz`!j4!i;N`_m%<$B}!Z)N`mv#O3D+9 zQW**oGxJLH@={9_O!N%&%>MKw-v_EO@^o@a3?>=L-&v+vya4KE@O1TaS?83{1OUr}HbDRY literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.bminfo new file mode 100644 index 00000000..6c29db05 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..ecbc92df61ed0daea58294b24661aa7f61d66594 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aistgPb%?u1b{{!il z3=E|P3=FRl7#OT(FffScPl`Y422{&g;1OBOz`!j8!i<;h*8KqrN|d-plmzFem6RtI zr7{#GX6BXX<)xM=nCKbknf>WWz7JI6>FMGa;^F=Fnjs&90*7zopr0AF@RNdN!< literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.bminfo new file mode 100644 index 00000000..178da3c8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.png new file mode 100644 index 0000000000000000000000000000000000000000..99b3f701600ebe9125b45f1c952e96f558ee0836 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aistgPb%?u1b{{!il z3=E|P3=FRl7#OT(FffScPl`Y422{&g;1OBOz`!j8!i<;h*8KqrN|d-plmzFem6RtI zr7{#GX6BXX<)xM=nCKbknf>WWz7JI6?djqe;^F=F!baW$0UXYb-_m&6ygCyU)$N&& zOb!0&xy-h6hGa(>W5)>}jj&LCp?;<8az)m2t9feD8es4ne?ec?-CpUBTx&aHdOQn& P#xi)i`njxgN@xNAK0-(g literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.bminfo new file mode 100644 index 00000000..aa3021a8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.png new file mode 100644 index 0000000000000000000000000000000000000000..8c179f90d862c3f076dc0ab5a24a8f9639a9d246 GIT binary patch literal 18334 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.png new file mode 100644 index 0000000000000000000000000000000000000000..b0def0bf22f06bc461b9a18eab34379ca09f7552 GIT binary patch literal 20622 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo new file mode 100644 index 00000000..ee517b20 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc9da1cbcb526f933790fbb4c8cf17d0372ab0b GIT binary patch literal 25746 zcmW(+by!r*+djK2u)qRKm%!2?!cr0vyL7jd#L_7p(o45=x3nPOD=H%0AdLtpk_t!& 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..e289e8304a81b051ce57ec636cd87726f2b04c88 GIT binary patch literal 7901 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 Hu0mjfVv1CR literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.bminfo new file mode 100644 index 00000000..976277f7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd88242b6635c18123aec72d45963f7ac1b2932 GIT binary patch literal 25684 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..b50abfcd033ea137e8148870698e97099dae63ab GIT binary patch literal 7522 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.bminfo new file mode 100644 index 00000000..f3956d98 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.png new file mode 100644 index 0000000000000000000000000000000000000000..21bb6289f2f0461e48df35aeb968fc84871ea78a GIT binary patch literal 25007 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..943238ea800683d01ec8c23889193dd4b9dcd827 GIT binary patch literal 7356 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 iFflP8NlrsgQd1yDZDL3ejv-F~0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..d440d25b8f4b0ad10735a5d6efd8de5048421a69 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kNK@eu#F){lsP*AGGHKHUqKdq!Zu_%=xATcwqM9KLZGT8 zo-U3d8P0ESZ{%$-;9)uN#y)Zz)1?gz|DIVc*)r|Vrhb#i>i4H-o=%u+FhAe&zOh9l zS4qJP7AuKoHwzlMzU(eOS>MWOx=`&)_;o|={HJU8O!be`zLjk}Wg$;$22l2&#HoNb zBa=*@>fAOXpkQvf-c5ODNuZ!wZ|3^5K)ERk-=0(bovZ;Ays*UZ?N*SS(U!YAQ|i|* gl&d>y`)3zp{PYfo%h$D-f$nASboFyt=akR{016Lqd;kCd literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.bminfo new file mode 100644 index 00000000..3c5188bf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.png new file mode 100644 index 0000000000000000000000000000000000000000..587fa11f870a954593b58ac78dac34510fbffa84 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^AwaCf!3HFCoofn!6id3JuOkD)#(wTUiL5|AXMsm# zF#`kN0T5=)y4J}F6qG1&jVKAuPb(=;EJ|f4NX*PD(aTFMQ83Xn&@=nflYAejrp?pE zF(kwJ?d_d{4F(L%j=O8Mio>6Ec0M?C^^94;&SQ4ZmKk4*`hDxc{@qI#C^{xL9b@U` vloB>k%ka4{V}T)s0&h5fmBl?;z0-f|PDX(zH*Q@Ax`@Hk)z4*}Q$iB}|0Y_z literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo new file mode 100644 index 00000000..31b8bd55 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.png new file mode 100644 index 0000000000000000000000000000000000000000..49b1ec0070f8fbe49c7584c608133967d7bc0ea7 GIT binary patch literal 2423 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.png new file mode 100644 index 0000000000000000000000000000000000000000..ecef6416e9fe18063c700c40459ada41754647aa GIT binary patch literal 5435 zcmV-B6~yX^P)Px#24YJ`L;%D9!~n$adCgG(000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb! z3@AGRSP8oT0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000z{ zNklV3TYttjLNg7;E_4ULJp#V7KVP-Kf8YF&TL2zhFfY3)GxsULRrmfLfIH$M zjMPzy0D}DAL*Ep6nmOL}YTF|MZd?$M9s#%^Tf*M1*J+5{5fbSgK_cKj0k`e=0RcDd z_z?lUeXg_D;LdXh;Mr&HSyu%(a_`xU9PM=!15tnn=6Mj{K7iY@1-MheqO*Z?mzoeq z1)!w?(~|-dY`+TNM=Br@`Cs&z^97k6vjE=+@XU@`6u8m$jTFEj8WO(~;BE?yr-Id= z9VAf6KM#TebU?rj0*-=#L%{Q(K)f&ziAsYYx&W+j1|*0czYt(y$6qt>%-$a|@JN7% z2{0~s?2ed?CEI=mEIOSyc#zuthX5=BaA-{DrvQWid`ZBo0FW`C1QgLJIqq|$-r~R# z_sYN*47?P88TbVQVBkoAfq`Fg@hZQ2&zcep+L4!L0D2UFRRH<`bOuh>DKKe2>41IG z<3`o0ekj23c#lEuFuk|TA-X4Ee#MbaKgYU0>=z+G|-|R#|V5K^>cX_ z;J#>>{BA2)+km3Rqk?+UjR5@E0lk4l9T0k8-2?j_u<7+ZI$-R8WdMe*gu#WKZ**Yw zu=nS9>jfAcNWB?!aN%wdfeizF1P}opf#nDsM_@JTdoi%a2z(QPN6E9e@hEA5>UU6a zQsQuvG~6K+kb;4-UI60)7<(Wt0O*9Sof#!NwMVD;N6`+W;}OCt^|3wM220P1X)B@h-sw^Xob z0dxi!bwKPipCMRnML^uf2G4VT5}-4Xq5#42PG=w`fMfu=K~q6L=sj=jo>z9N=c4BS z!9pj<)mhZmShOYVd2b59Q3otKpf@k-7Qki+1lz}zzQ&b;6cS+0yAn{`>SLcno{~B@ z!9aom70iodRDgJ6V6FAIw^!Z(%MB0*^SBWhB5)Xi2W(zd6N}2DGDw+@oAH)r%tJEz z-2o>((3>ZPC2+C_ELQ;U0kQ(HQV+utfQ7=)17aaCv|ycgQZYj!f+G*XJP9L!0g#RD zYk)hw-xC7%?E7mgfcNY?hg{n_UC(MO3x9OFHys2e35yO`EP#^*(3=PKDv z!yo_hXRM6yEv+VAIN>6Y>CML6NzT7dRlY>VxWzb|6CMVuWj99r))DyA@BRSr2@sC; zl}~_itsXXRfV}}22KB1r2)xDsn7M_2kXZ;+FZw*2)r4AKmG2X0e+)k#p43ja;^F5 z%K>;2forj@uL@8>C8OK{XlyTaNra@`1>o2U+QD*8v>e4NtgMVWTt5E&zumenks(pQ zgFpt>(BSk*83BnAGBRWk$RHZsN6ukHMuv3@T{BAl9s0j?T>g$|4QLP*8V0++sMq@S^Zq&xmyfaE0jnMWuL{8m zz1gr+n^I642kUw87#Jo3>WgnDO)qs_+_3HlvOSoWh0fUAA~U?b0PF?){$GE4T}B46 zXe(p$hUi)``_?M1g_?)tR-an88AeKr7g0~mEZM%BS~Mc(>W0LCOy_o91xE1*W;=(J z>!#~?5AvR$@|2X{q24I?^-;L~KYPJSu&@MZV>UC860yqmO?`D#D09<1wv4#M#1`+MEUj`)@fGbx<18T6^@{J{PqSG?< z3{c+_@D%}92)G8|r5z8ZPOzyB)EoU?U`fD=G&Cf`d5>Ugnc_T1^#9~qp*YXW9%Q*h zaxUR)?2^mOP*KA=C$PBATf(ToDc)EbfVjM*9^QJs&$IgXr_YCyJMC}(@YPc7za{{( zDBeV7zg5rz_=*+6-vD?*z-#Lwx+Ob+x@E6V0Q}APb>h>5Ddy>7QNdb}is>VA;+B-` zbBnA)UIL3_@rDW{|92^dD-EF`9MHU!Ns0JS<$*3soTwKcJ>TTUmBSiC8$k

a79u4WJy~Sr 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.png new file mode 100644 index 0000000000000000000000000000000000000000..e6d156cd3a21995727575d5efa520549b43b983d GIT binary patch literal 2342 zcmZuzdpOe#8~%;34LRlTl41x==&N-gUyPa4*cdsK9HJZ((`(N5j(T%QCWkqV!pa;{ z3L%=ahRA6-mBuuuXvyKtr@y{`-s`#U=YH<{y6)?G{=EOj+M>mwickOm#4Rn%?DyG! zA2wj&{hjy$*0fKcFncr-sOmqwxG#jgtkGt`-tVC`ms9o~NQi|?7yyXM{00c1<}2)* zA_PkeN@QB>h@6;wnUaLtzNPGkcP5zL3<~lIChSW9Fb(zbB=}rY`O}YZLj`S#!Cuq# z5di>jjHQ_gK7ze`*)3QNEyi%yNe3pDt_pk+$n!n`%E$Q~PT>H=m}RxB)AxNj z-rFX%ZZ8v40{`$+OwzDEMP2mI=zs-zjMsQFlf;$I1pe!>7bO~1xHL5|6Qbi+Hxs+1 zHhCB;_?SnMtpW{g&in$aK6qnH+A`cbXi*(>k;P+lLBRCQ1TwvAJ{eH8&?~j;UXa;w z;bsXK^;+b?WG{1 z>e1OS$LVhdc-dBs zt~+`PGApZ!BufI)4*8O6UxkgJ%GGOIo$XsqJjd>Jz%Ps5cHFazbFhBb1S$DU2kzt| z<+9qLiLc5C<#zo&P!XEe8A=XcRX_3%No;eAyg*ToGifHc*m4M$&44+ z#rz6}^QdgaJLk_N#IgI`36vpik--ch(=nHx6ll2yerVyplef7WG`z7v50%O)=9$0* zlJY$=#s8#RH(8+Yz+2(8oOEr(>-Xq{m)&)<)~0=M{lbLl z<5&$bpB4Pg+S&Fcje8vh{Q4lzGM~3E3iT^DoGzRdVw80r)Gx*<1XkkDX5ZkHG{wD^ zXSu?Ko-(9C$|Z!kBN}DcLxNr|(cgw70*o?RFPzY{;Yke}xT$2Ez0pIDEa8_`y{e_? zU5RmG!VIn7jPf1m=b1Y0 z*yI@*LXYAv1OFsdlmmkWCOWP5DZ*w-?Kr`PN1h99Z?akL4_Ad??(#UA%J!hI zV&n8pHvH*ymrAKvdhmJNS4RXNe9L+6l{DrOD%0fD&X=GjQ1Hg=G>ob z0}eB6){Y%HNs7f?8CTv}zRx~0VIgVg>e zYg(P^f=#7Or&qn2jS@!v!_r21ky@M7cJq{SfE#&DfT{yd>yx@O40<~Qx)^-{ws5C(1(JtdzWulC`5z*UE5mQf6nI5oUtCl)jZTl;g=1n z13NE^9I4k>$^Y(3ujH3`E`HIf8IeP%5`&|fua2v&q#X^(u`4JDu6wbA|JnjuX{<~A zf;W=wh?>v~Q8I=c=(DiqiY_%`BD`+0#p%PL?d8Lo(R|LB)%YQYS2fITtgz)*@2POs zUpi~grCMwaJ|cqiNWK^1U-l1w-)R}|%>Ig7l~|>)rzpOMn8%ANWIb?luCHcSMc6N3 zDo-xV=H{bcLE5#ricJga)N&1(#Fh9Q`*?Y&ohh?#VV$`l1!$JZ@rXlT)L8@Y8-411@6DhfJt75lW=H*=Ho5Y5Rg zm;PC`f+Ii?6XMso8qsgLf#!34D8@$P%cCQU*v+& zn(tqGlPUug%jV6?np?`5a~e7)fRFX9YN3)>OVD-RUNMNbr+=8SGAdvZ!yX?$I}ze~ zEzMiv2v?5{sSsO#g6)W34R}yx_lr$MY{9l)iDugVf~o?*f+8tWPB8VI`a1=TH<{w=C}Jjew^&H|SzO2aZj9YjKLMqs1U}4VMmR-5gPn3)TXMaKYfOA_U;xVbv=vh4oUO|)EnYs! zSaoe}W^Y`Ji~ZS5zK9DWA}82?EJg`x^CC!Exe%-KPLB`%a*%D+`2GU>?n5|(A@GHkwDf7hQZ$}3nirf<}( zgpJxs1f?V|FWV{Xwa~ne#-Zx9X~NE9f`0#61peO<0ANqR?2SHKFMALEyP;U3Y|W~W H9;E*PDSK+{ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo new file mode 100644 index 00000000..823ca131 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.png new file mode 100644 index 0000000000000000000000000000000000000000..d691c2dba06b78e0b0f930d216aaa125c768706a GIT binary patch literal 3194 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 g>u<2G0to>A2g-+cL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.png new file mode 100644 index 0000000000000000000000000000000000000000..30d8de298e5aeadb76c5df9b5a519d08535f5a66 GIT binary patch literal 65220 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 z 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f89b9ab101b723c6a8a667e1168554599202b3 GIT binary patch literal 2491 zcmaJ@XE+-Q8%?Mcf|9n>XlyD->QZhKn*^;rgVg*`D~;L|jd3ZpgGFt`QY#Tr)8~_y6~N&-S~PE1DyXmCEb--7Y+v=V;=|raPt2PAmGnJfeVxEk>Ndk zwgoQHtK59c=zN$xqmL5l+ES-jV-9S&Gs0E?=qpt#CrHSpr4Vm8R9Ev%YqdVp51TgTRUe;iSo4R z$*X(xX7Y-5S?1ohEGT)VWgn0?GMR-5SCeL&=WdYybi=ip5p&7H^0B??^1~q*jo(+c zNzm4k71*M(Teu|3Rj+XdG2J=~U+WO9u9_)6!`AZe;{O(N-8by2vU_Xm{${E|avw$^ zcYjy}bLf@z={EXa5K`kH!j5c@orZ`+zfK!E6FGO+Tw;piM(GY4gv_zH((rOg*9QR|SVE zQlZPjUTcU(|1Gc|Dx(rlffek8U~SFLk#0xA1zhp20QYTiK1^B4dQi9~&sGoDV!_ek zN6q)AZ=#W0^&-`>*g7#ToD1K%3h6eBp3;WRLj5G(O~h>Uhqms`?pvK95yW+|(Fbd< z!`8x&XHmNAIH#QayIdyy?i9x2SpaIdkX*jp*JUB;n7>N=Q|2bYE!ynKCn8fTL7G3F zTi)bU>!&Vm=>8^ke_rzv5R~_DW)_?#ypZ>2hLn)Y@6XltE`JBUmLI~jtRpn$yt!j; zDy$0l6j|bEVXs8#+hu=eq~!(-msX^Q(7QPxRIV}eKs%6nji8{dkCzPDywu>jq2N-l zRK27T#Wk|2HN~V=&mMBL>1;hct z-%-oo4^T1ciktX&^(y>Al#j45+OEC{Ym{>=*kizyeT0#uWk zmQZbYumb@VFg3yl2Uf2`F*fKKsG+OQ!tt$ZjE{g2{D>C*&3 zc*KV|MQs)vnJx#Af6?&4GBXB5B$?pljehWy&8;l?80NJI4#TrFr zndjZ>ias;kRAAyv+*_L>tMcHAM}lF&@C={V2rX@Q2;U#H6@TwR33p0a#m<_sgSb-| zSeh6^d7=o~e^xRcr=^Kd0^KLO$|mMl$HIZH%D(?~vs!D}aZO>og}k)lFS!mO5EEL~ z!OvILhQ_IKARg+jg;oSA?yYF{Shp;i86og&t5WcuT@(UTzMUm=AnO^wA6uXMMr$}e zXF@!Wb0I|;Tfo&U5LgsEmca|JNB0LG9A6^ zs1zXL*Iy8Z*&Ud|-Y|N=6(ha#p;Jy74va79HEi7TJ#1M}3(GA}$4a)F+ZEfGx1cW~ ztn%7{;5+w?DR1vo!(x{vu>o?N%L$&+C1$e*qSIoKfa?uU-ncvMnk0BeK+PWd7;9JgxP;rs%*_sf1Gg{iEp5L|6KfhjbEaX z-oetRZ4}qbGOYYQV^l^jY9{3VG{iczA>k}Cu>MLP@zt*Z>9FS0`RqB6(}I>;QL8|z zhO{4jEJgpJV!^t+bE>c$g8{FE%%HHT}lNK|?1Bmo)#2X_CMLR!~$ZsxqG`j2dA z?x~~@@AoSoRg?^>ead=t+#WIs)G3@t?!sR9?s4x6ClpzG&iU9O=tVi)o!RLxoE+0w zb7ozjn4lOIzqr~}u5U;e-6NoIN zGH9(vXG4`WULvw${B5FR?y62Oq$Inv0M0t0W$fzN@6^ms%^=dMWHfQemCK)OyPbNq z6$VM@!*OJ9Vyf9!-JHfmIGf&Ghn)=dO5P?H0aj|38>+fZn66!+5?GQ*vgsHYdmI7h zML(5k-|X??#V%!dto;*uB)a*}=i0DEQET0#TV%&5vC&J4{rl}m4q z=&E_kr=`M>bL!^gdD28~d)`bx(#Muh(_rMA`?}0;n@E}ncch9?yYSrM$@B9si_wdE z^w|h}Q~x_jxcyNwOZ#B9L)U>pU$yS>?fwe#!@p*X-=$r9xfQyJQls!Zo7*_syf!UC zc%4OfNhEmxK;$0!b=|K;asEDPEw>bPYb4K(L~Dw(t=Z3sk7};pJUY3w{__e8;P9M& zs>ZuY_(78A5y;k&AMolX4Mjai%-DRgv>vv!6@Q+2%gfYBY>n2WoQJ?3+**NGp7sZ5 zP|lG@AW?<-}v;Dxmir&|o!9HC2V*@88;FsBfZIr{nzOzld + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.png new file mode 100644 index 0000000000000000000000000000000000000000..989e95365e2577b8bea6400bf3b3d1747aea3357 GIT binary patch literal 4402 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.bminfo new file mode 100644 index 00000000..e3433617 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..fe88498fe1b800f229c17411db878d74a2dfaae9 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yV6+3W`8e2sJ*Xv%{}3vcNsTqe0Q#+Bj)1l;#*uBwi>#X zlrMY1xcun*O>7TL4zY8{H+*13CJxlkS;Khzhu^hp2PQKml)v^o$b7Rw>fd3ObK*cN O89ZJ6T-G@yGywp!8$YN3 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.bminfo new file mode 100644 index 00000000..bb166011 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.png new file mode 100644 index 0000000000000000000000000000000000000000..2b5c4c49cc073ee46e1156b608ba8695f4537276 GIT binary patch literal 1708 zcmV;d22=ToP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XS000XS0e@s)kpKVy8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp1^r1xK~zXf?N>=}TV)h&fij6dfLOtQKx|=w*dg&_kl1y_f*q6&q)n5iY1}4h zQYW7MJkPToJ09c2L+s3H1~(m0q{F$NpVLNFXsebTSGs!7&He7V=T6`2x&P%=GBq{z zzSryhI1-6`GEl44`VoNhy2-m0zu*6>&*$qA2!TKVd_U1(Fo;AV0oug)`+NP!+X>nI zERN|E@pv5NatWnU@syU!Mdb5&1`tqo4DQ%wvwg0+cr!_*QWqHgA%T(2W=}wh#YIG; zQFuIFIGirH+#bYYaa1bhQ-7CWnVC`D-Rp~2}V*Z&wxLGKqv$+ zpEkQgF&BGz%6SHm(p|n<80m3U7asT}6w)0@|dm^7qE( z79Q^HW54$Zdk2RomCJCl4066-`yl-|zSJRJ76N`P=~-MXuvSIbc{r2H6Hq|c&|dAL zNuWlng_TAFE6oP~O$XjTK=0@=4yil)`&cZN;PUhd#9}do!(r$!FAG5{5}g=(nXYg& z&eV3$5I{a9%`0SCUuj@zd0DA2@2st3dv{MUK79NHdxt%&GniC5tr!alAruOQe$=6! z%h1r!1&K;Pr9(A#Yci9@Qlo`>vyFPANuUPnTt}t0gmSgUXAQM_UDdq1v5D=6d)Q^F zcbN9ItsP}!wQI_!_$GK+hkGt$`mL}Oqd>6VrKxlV6*g3vTB_Am`qG&U!Xb`|-wVIb zgJ>j(LVf|uOnqm49o@}s6-2wcj%uX}AN^D+B@_yIwFfRiwwQYt{7OYHnQ;{76~Jjj3Z4=#v^1JP@wEkSUA%rvjuj}u1rB95hL>) zD&<9#iUq!Bk!0Xv?{a&UU$JALpXrc&ksUk$7KeTh(-;o%a0Dr8JQ_kM;Dg)cf{lUA z&ztdJ&IB`Uolb{Jz1WDY1R0Bj5cK<0W}G~8Ch&`l&14f|iiGJxE`>Zbla3=6b>F-#`20=DyAbJ*c=IpB4R_TM#!joGun%|<;Fm^BR!YAkD!yBalicXPRp#_|&C zwF>K)N1CfM!V-9y5hqh_vsq!am|!u@!7_Ira}TC;oq=(dYBVCsT`qp5Z(gb~XY4y^ z6fy9yyYmZqthU?O+1bV}b&G4U$%P@iJD1C-`b$?kh1I+f#+gY>PK;sV&P_~=kK*q5 z815P-Fg<-=jc0-DQ<{)+x~pHDV{x8LrLncOg{M!S;_qkAaCCHp-Cd4Kr;Td0goSL1 zJ>Z8&vn!@khH=~;8N$e4S1>ws4Wq+D4B$3q9vGER@y%3Mbhy*P0j~`Gp*COH$Fnp%ea2!4-8-X6C(sR7z}Ep2Ahk( zKj~1X#pCgOBL;(A?Pjgp+{*_C2YB>|7r@>_Y;-$VS*oJ2kYN`G$k@hOPGVwg7{dzq zcLHC=*vL&-%w|R6mAhI*SWEZG0lCy2b}Q;!eQUf7x~#c?E^q0-eNXkt;6A2~>%RY8WS^e?0x6N59|m@-adsLe8JpQD%uG(O zlW(b}>eu!X87`bKmGdN#*4@6I@H6&99_-184ZgX`yx zDR%D<`jK}l%)kfp^Yfp|&K;<%!T;=k67N>do%;u}p+xPW2 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca6ffd16258c65d03ef4387336bb7241f0cd053 GIT binary patch literal 2579 zcmV+u3hecXP)004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck00009 za7bBm000XS000XS0e@s)kpKVy8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp31mq`K~zXfomY8K)JGPcO}qu>1VN)wqDBmwq_U~ax^7vR)!ReNu3ZK_h0 ztcg|Xs%1>6F^Q$F$0i=gF~Eut4pBg^8RkBKfq?1t+@zr?J{*O^iFQ>IsKqvtKmpn8?*1J|KoNhm8< z1c^=1x3kMU{SXW@CC{=N0yHXCKo|T9Gsu6&42pNXI^{uM!paoSh1GV?#Z?u)l+a98 zr1+E>bha#{lSYsp@K=ZlrVnNYBcs&QY2B7@mge`0#Y8!UhE3g&ojF@b+Kdt$nP z8J8|&R{4*aS^0O*$?$&np%>vkv>xosP#|6bsFh@Vo-=xmQ-GZd0sAT#?6Q(Ejr;`D z%YV*_g4S|P{7={W-MeuCEEFfbjK}VP@3Ylj&Ip%-{Qz+RxRy4eX{ekeOsJlUjGNQ(^F(4igKw)nU*YEN~D=M^`txd;8Gc(~GX|9(0rS_VwfL z&=7|1ji7&E5YEbKR9`zx%;iArEci8f9y2N56qy0Zv$L@NxKd88VrIo}eP4x4dPyi8 zbVj`jdb1r(Ep6!QA4E_80D2w+(-ky zp|iV-8291M@G$O=PvGI?6eb=`Vr1+AYU}FJl=i+qRD8{7#RJOww@GNBJgl>^B|({# zzx2f@M{$uWR*5naO_{TTfcnWeU>^bY5@0vlIy=$U(JqW{qW{hv43CcC0WlsY;8EH{ zA9<&^tbz!T(qsJK%%c1d7Uc#iN{b{+vvwgXRIMk*ABmW7VZ_dd!DNA}x*F}B-4xp% zv~j?WPBgc+k?UK@T7w+q+z-yOm|0v{ol^Lc=t>l+%-l(AQ=={-$(u2woIq+5BZ zm9XSxOQBP}#tIc@c`ERin#o00n++ANDm1pX6IeTLQ=Dt->xGI-itVsjN!?^+juO<> z)sQDT(LZ=cY@q+n5PB#C4fKA#v4n&sh3{+_Jm*3ml6Zf?N|%NZV^Qq4GIekj&pj>( zQ*ILM9GF0ERl86_=5kd~`jnxVK+R?o^m-kc9u`V3zM0z%_2}$uM}KcOdT0}^&CRH; zs)EU6CJ!zIE`BZ`2yTP z%D0#* z->C3>?p-pes9a39G=w^cw`Pt+bWP2&Zpzq&*49=`OiT#i>FH@qjE`gF?p<`Xx8Zhu zjS!JZuO*jeAeESMQ1#^tNQ{ZX)x-o`&qx()eHTJ7eUN}lr5{j(5Fsj;sMX|ds-dq? z$8lh4?E{)=ggW0PVRB77N-;SMs!dtXBOEz?o;ckCU?^Zq(WYCvId`#Zo!R{fE@x?egw@ z8B-iQUPg;3a6fJnl9N-Am6?Vd0?WRUf$QnXNJ~ycQhW@eqb|c4{b$jw2+(uO;5)e- zzI4?^W|F>1T}>F`UYkD)_hfL^uxy*hGy%a(r}z=G$#+g2j2Po?_nzi05V@WP z#%w`V%pb^pkA|4H@hI+j`d^R$z_D%fc&_o*lo_SlnIrITGf``D+@C~@vX3{yb9fy*$EdcSq`vH5l=r-&R4Y8} zin4|oRePwbe23}ek;n^BiO%(DK<9@4`oix?#NHCTmKDjjh?{~z@gB7>dsvb30I@m1 zbgF&SKkuZQ#vkcLb7HT-n(w=l{L{I}mT piWM{~C{#{{b5OJECC+$%Fs^002ovPDHLkV1l(R)qwy2 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo new file mode 100644 index 00000000..e0a32e05 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.png new file mode 100644 index 0000000000000000000000000000000000000000..00350cced69ee879a4131abe25c66e2b4eff8792 GIT binary patch literal 800 zcmV+*1K<3KP)O4IQN!H##yVj!fE!!>E~e1Y1P798f~UmDy%A3lUo7 zIHQEw&C@xC5{>3G^Bwp$-*?{UIk)#YA7gVYlgTVZA`wX-5b*nazO3Kxe;y15A0?B? z>+{ae{2q-)AFQvhzY~c>LwrD^(SX@(27|!>5{U$OJRYp9tn`Q!1Gsb|B6Pg$bUNP( zg+lOnJkV;jU^pDY-`4GRA)C#DLZKkSek>Nd|4#x;^#(awtyX9@o5ujBy=b@Fu)V!a z*$lB^#wGwVVMHP&^)owY9ZR3}-oybImDuxm*UNQu&=dbLnAY zV}n!hdc6)}u^3q7u@>|^R7d!4i|kZu?Jn%BTQLEKZsZ^#eh*_*u zXNSW9DwXORD&wtLntmQ{Y=IOqkw~0K*D?K3DR9YrPNh<}=dL>xd?V`3fVxg2MNJyZ zalhY({r&xse&BKe>J + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.png new file mode 100644 index 0000000000000000000000000000000000000000..fc99dc750ca1e0a42f35bc91a0e221695332ccc4 GIT binary patch literal 489 zcmV<{92XskIMF-jl7z{8n#3w&b0000QbVXQn zQ*UN;cVTj608n9RZgehAMN}YmGcGkQF)%Rna-jeK0a8gsK~yMHm6E+m!%!5*k4`>; z;1ejmfwRuOgp&|l0x?6AKx4^=EeWUuwXqUQC>=WZ0#dA91R;YE=uoiGA=0Td*fh!U z-n4}XSv>HA%jI{^{rF$VmthzO48!PxAiPPE^iIZ>qA17hc6(!`EX#G>Em0J2n$2c7 z9*=Q8pJz-a6YO+45oz#Tuh(~0IslPx`~7|r$1zT?;15ZXpzr%>sZ@HQjX~42!&a;H zQzWlR(-gbiZo>2Y8L%vS9|S?6m?sQFlx6u7F4c>#D2fWDJoIRmWyNr<@c54f2olFU z&1SPgDGzO0tyV*j&reT!z1M_ZtVmol7z|Jp1qXVryjd=nKSrZb_8LVp%|qAq;Ni~N z&vH;zb+1yX_@3vbbZfehvREu|I2>ZFR{JJd9cA*mY}?-EI8G(G1dT=m9mhfPRi + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.png new file mode 100644 index 0000000000000000000000000000000000000000..4aa35f0ca550e0c7f2892fc825da8543b3e8371c GIT binary patch literal 980 zcmV;_11tQAP)OBod?ML`+Vpg@cfgoQzg!GX9?qhg%hh%!?q zF)h>a-v9j%rGb!0dXm$>@7?x0x3@P>2f(csFP7@-u-LAlpsE38YduVrbud+2MP7L= zaxc~(x9l=<%BqoFVuP{R3S*HKS%nqIw3Ne8Z~+E$84M=X8Kx4X=NBVAub9v>pupD1 z7psclYl-1&DJ{2%4>iDSZQu(G&&=Vw-GP4c;G|RB%PFlEXaBeZ0}~GXBoE0Ncg`B0 znTP$C^z6L2mzG<|hZL$kX4z-wmf@3HK=wZY{AaR;rzl{04g&<@ z5LQ-Er8tKP%wrp(?zLaQeo&Be z46p4iMoD)%0%DXEYbx;@TT_4P+R~MZ%+5FjoK#j{Q~#7!2q(7)?@77^zr>ru>(#jH zjE-2GX+MU5SY^59m(cV#fWP!+6nIPS8w1{vUkw8<$*whR-rPCE*@>Npaj0b<0#7Lj zj3b{W$14a*P}Gp!@izn@qsM{F$4(f@$qyWOJp#Da7+%_KKxRiAQrp83(RL7Ftv=A- z@r1t33&D52pl|kuzK#MCWx%euM$w(2$B8V0WIu5VSRa91YutHydo)sRAH|X8FdS&w zir{-*2<`Sj$RiJgKBSYb^-Wt4lq3Uo#@36mFu+LgoTpCYKXc-v9dNB_W8rygBMG_h ziO}bp5G2RKoiluIvJBV}a|Q3mY3C(8kKm@>IeeJ_)~oTnL%Te%{{;mQT&wv;ibss# z>wKeX@PQ!Q@h9?U`oLH6w@LcoIyDXm?({@R&t}oNR`WR_9x-ab_J~Vh^G($@_=Hyp zuUF%-1h;x4q|-}`MXPN)E}j5t0KfTPyUu)N9lAdYT%7?d1;+&d0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..ce821050c1f4c852e21b31254d63362ddbd35903 GIT binary patch literal 1206 zcmV;n1WEgeP)_L1R0UD-0zP6IgJ^6@)YwN%r)f-^s2#^f6SUDPNKkymP80;e@K7*t zL0H}U@NAHo{?o3RHO$<5?)vR}&b}MP{~~?o4d{)1&~@}cYq$>SiV0HtH_%-E8Vz4{ zqoM68>f1U|*J^~i#Q=4)0kuu-Q0Xs2sk;QFwhc-t?HZ{S)r~Ev*0dlKuTbcWy(lFP zFC`8yrK*PJJV0yc5f{DTI5q<@ILV%nEUwjG>=eIFe+=$m3|r*w%ssB00637vd(PruHdpW4O9ObnS%Lj{EjOz?nPxoQUoxq_(;WZO6s2<8tlgmb9nD+rEKJ9_2xBnk*@94tMckf|j^mq6}VeC=$4EWQw zgu&r4nEG$xY=tThIB~jHRIZ$mQA^=<-Ll2Y3yMw`dzrpPbQme|;AlwKs z(eC_~nRtcb_$SxJws5$b!t2d48Yg8e2Y_QAUMmTRM(LyUhVawfVf->O2J?&!W0SMR zfMXwBgTqffp9$AcxHJ{VS`aw;{?(EIr)vvy^L7l4j^oEW_i6t_*rN6>0v!FI8%qS> zidV?16#SID9s-WM+gTEjOs2#^$H@Hyw+S+g2ao5A0k6K-1vZDJZN!mN9m21?W5@v< z4hPoP*I~6Ic1^@f7vNOGKDpuA?;$iL< z$I2QOm)EfA_F|XE15HssjdxzpYs7iPlj6DZit0i@lel=8Dpid+zzYiC*%OH+#Bk%v zIXpmPg4YzP?0i)LfI5W_llPmqghwq`&fyhGjd=LqxV*APRLob1X8-^I literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.bminfo new file mode 100644 index 00000000..09a29946 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddcbe26c874c8074bf07bc2b2df487265129767 GIT binary patch literal 1410 zcmV-|1%3L7P)b-ELpq^ z6*m*6i7~slWeYCuhh@&WWYg&uyx;`|lp!q_TcGzsp-@1e7Z4oiFwV`nIF)SKvSkyH z&8U@|Y+f+SWJ&=kAYOW-&))aY^6jGhxIM{})1K2lpL5>t>08^OuX zdn3%Y2AHcqML|_POqF#oRUCk^q6UUCC-hc3^rd#_N~)o?R6$d`ADW^HXv|Yqo6C@2 zXhnX372$Z9tk`)NGl|1z5{J*EJX5IzD6$_ClY5|rLm@q*_S+$}^@q@UD+q(x zf}Y-9BqV3R<({O^PNIW7G>OjPNy-Uf-mZfZfOp5?>J~4wtv=|<@*lnE9HKd+8Rsuv zMxv$`S>KOC`Lh?fS|ePYo#F%>UU9*X%8LP1UkbqC3g8L>Vv-I>fCY4H-npj52OWhQ z+I#}kL(pYORv3y((b07UWwtt`HeNz@t`;qAZ356a6hak++c^Ak0JR-K{4o;3-0d|I zfa}I(;cz{L8_)Sr*zUts55!TMUAM3+Q;n{kUK~CCHRL&YINjWg^~u@jCV-80?F@(4 zcLs6I6T+OWb_p;q`5=BDp*tTAFQ9PquYTMZg*fVkfe^Gm-NhD#0j=%7q3`COuvjaw zIXN9?&h=1u5CTW$+Nxa`0E~KZLX96&+MoLo5QB;#N2HT zVLs}#6K%p7`_!m()ZlDOE3VzRfkOLX7@B@SqOKMz5|o%9zX`L~s3bt7r#wmAQ=;V_ z97I}1CX94dlTy-{Tar@Y_Xn_@O0;x!I$qtNM8DgEJjV&lid!iGrh7^xoE+(j zDt)mS$Ee4+J@@fuf*i#syRjy_5o$MFHsF zhZPAHjVr2YvBv3rdEGIr*2tC$Klyiv7+bNK8>k z0RH!3MS6O4S5)fEVq{>V!i41?WZ~3zzhHG*8J>=PU93GIz(ZdUkJ$c6F{jv<9}OrG zlTVUTTNr*trzx@_eq%mN_1|E9W;LFgwKTl)xcJ8yjwb-!6n>aoZ!QV9THZN_@6!~J zO~_H3ut$-LMN8r_Z`nJT6Z)XqD-X*3Z;6=v~v!ZXGa14JIQ4K05YfN9akVw Q$p8QV07*qoM6N<$f=pG4+W-In literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.bminfo new file mode 100644 index 00000000..0bdea9e2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.png new file mode 100644 index 0000000000000000000000000000000000000000..22d906a475e5360363549e24d568aaf83fd01412 GIT binary patch literal 1199 zcmV;g1W@~lP)gbz4m_lwdbnU5FIH3Kd;c;zA@Cw3#*} ztx`cDQG`P2N}4W&x-hmx0=6}a#Gi%f!lqc-Dx{PDnMvNvd+&Pg&zpIZHVYSCa_7GL z&N<)tKQF-lyqNqM8aXE*zaF2!f=r}}#pJ_d)+ zip^I3^jDkG`UXGSl-8R+rBvEVYoOK76{~QofpW{{46W&ywvg7H1s4|AhFXka8_|^I zv=)jU7^}x5o3s(S#6!2_vS>R@$4waFPyy%qJ?T~3#6x2;4a|%zBJxTBj0f`9wpmoR z&KQEAjuILMCJ=F;K{?m>nlX@vV9Ht{Hd<2CP)}&c6ag2Za)W6{8Mih&_m!ClG~-qo z^ZSVU$R-~kXNXGQ&YtsOz-!t?-G$BH>3VGh7WH?3pLvU!D)Mo$|Bw!Xi9*HK1|B?i z4x{~VC>iMtGf8%+A`X6h7T*oLSx>G>v<&A9y=Uqn3Vcs7d^6*cFjI+Has`e&6|Xhc z_+M2lt_xMZF#><(aYq>@0e`&ZYdI!M80gw=DOz2DVPv{S)N^y3DdsQ-QaE8M%;Bif zB(P<`IoCZR`y~jXNe+TqjWe_3T!%q}06uvUw{=A)Y}qdX+Oi1(5C#}ZS<(`4plNHV z6lysL!NW#kEcC#yHCEh`mI|~uK5l(_9Iss%h4aCyNZJm(fWU2mG*>5z^hgKc3>Z}Pwzp; z>?|sr=ap^S4u2^c8%IRSGg5~1-2U(u9QyVo_P>1?Ua<&oVFABhn!q1Nhp=a)56^Tx zi_*P&STC1RoS2wa3i<|4i@}fH$AeaH{v + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.png new file mode 100644 index 0000000000000000000000000000000000000000..3b61d9ed46f60823120ccba2b53b53bb1cbe7c2a GIT binary patch literal 1662 zcmV-^27&pBP)7%mzWO9U#Q1ksp)ns|Fb;fX{IYQzV9 z@xdS_CW;Y7xg=;1V+9f`mk1O?OMxO4+U4akFdJt~r)ve_EeRJ=EMhlU3Ix5Q)X%4+P;*RGStLPJdv7Zs?EW z0Gd`tE|pLO(qOX4b@!P#Tt~3E)npVf!r#Cc24$$j^!;&qllmV(x~MgTqcJG53`H~H z*cJ=|Dr*J|%K}wL8M|IJE_1;gcDsHCK_DEu+I+umKvT8kMBGULhcfH#A3;k)4N`Ss z6qPc-YOnU0aJN(JT4-o%~ zUXVvj!xKksVhZB1m|oH3(UKmj35wXewhimsS7GUtdMLUMZdze1gNRnZv#Z;1v*QSI zBO@^AokO(o=5lEYz90n2hgfwDDXko=sDK;kx2;>SdDHV4*!vxBT=)w*ZSMSHH-hI* z;pN94!+|%pK`hB&t_53F5U;LAtf2w*$tj3NBAyp$9>KMp${s{Je!|8VH({89r@MO) z35O9dbc7G@$70g?!S_FaN@FBUI-mEz{iJsvA4gEBlK#Fc$lV&j+_`f-sd|pR6JY0( z2m4=m{S^#<{SDGx7Z8f_W-&ZUIyYz(Tp~*NVDtNY5U7zo{i8%t*^?@D*yBGG3LzG+ zfh#E7eCA{ib}X2G?WOJ8XAJH89)st*5RAu(ONpc?!KLM=N_>2g!&S@`Ox%ngsAm(&A&;?CG{d!Y>mYA<7oc`26AK;$|Xq zAWhGTbLK-zrV!9%)WjmFYD%G+gun!bLN0?dohLjc@oFal-WwU|dMlY+)KMs$UztdF zCsQ~WqzkF!2${vaj|d)wUXpPuGdft~W~QXL&So zC-YJ-cVEDtCr?~~5LjLT@Zme#29vX!=en!c?m0#cZ%n1UBa&z3qnR(=R+b=$#JT8= zaxRE`HiK)uJvjc$;q1k;XLiW9d<%{q*pvS67`yAUf%J24OUpuARsV2A$rxSt%w@*J zMrvMMx1AuDVo52hN+Cb2l*X=`s&Y + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.png new file mode 100644 index 0000000000000000000000000000000000000000..610025877ce95bacc559fb3ba5cf352aaa8f20ae GIT binary patch literal 1018 zcmV>lBgUr2w$^IvNl*|g^{!RKgGeo+2rB*p@gPXmgH(j-K|vI; z+IkSY2p&8sDtPc8(39Z7AGDQLQ=7JF(rk8Sd~aqp#H4kDvutK}X7j%9eeZj_49dop z{_CGTyS8mIH90=K6>(8cU1tyjApmMq2O`42dT7VU?DWt0U{v>mP8!L&dowgVkPwS z9*)Etlg|zvKiyd#&skI}!oi3J4{X~4LD!g|hrpVI2e00~0}r!oZf&d2W@ew@^2UDx z_!3#jR5Fdj)GW0l)PkN4?A;0JnGB?`=;@gpOpcFq1ZE%%rNpyQhw=u?;)(2r1cVc>E~mB>{Jx@eKHx&C4fKHsu6 z>Jy>Bh(Lux3jp9D!N^eZCh@z$zmi0N01y$GD_|~UFo36R#K@)uB1@pvj?@sEvChb2 z`rcl^af?gDNg}e4FN-wpGJ!#}RweU|uz;s40O&bkZA*hm zA%gorppZzO`AsH7QFv)A^WGFD+>m zMV`xK-V6;6cgEteW$V_pLt`=tu~-aU1^D5a$CO0Ts=DB$rqpjoZz+B54_h=OkfYY*6951J07*qoM6N<$f(?z%YXATM literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.bminfo new file mode 100644 index 00000000..72eeef8a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.png new file mode 100644 index 0000000000000000000000000000000000000000..f04fc915bcef38f7c7c5dc68143c10ae1410376c GIT binary patch literal 1705 zcmV;a23GlrP)hJ(#8N4Kt}>v}sq_j7!|Gggp!nlI;Ty1mbPd7kIx zaLcpzz$dras=0>a+&;r{m-2$pCd+|lL6m|5&qoc<#OJ*VHoG- zK`fMwZ(PjA@RT2~*VyMLyIv231EHdww+@=Yey%>-BTsdBUN$!~Whdp=)~cLfjgFOPP&KWN=$+94!qY zl+-FhiVTB}<%8Luf1jZ656pP5FXE2jap}+r0jOMcRyNyKv3z^uC2O2EE zOQ;J3Ao4m+4yQm9^{de|9i@s2wOpoZ^U&#CnajboEqLpmfN7c(sy15i%bsui;J!DP zWCkY=xB?*v6x?Mqq>sZgw_U>VOzRKqUafwBWclc>2h)j94OpB|W_mB^jJZIlGQp z1CSNznGLV3OO`@2{5Ri!gcB!zp}-FMcPz(4uXp0_%wJR)?;qB4pGcTz5Nj(-!XjWs z43XZW)d~$%2dg*|O`vzhO7yLI1hNu9cKRwx#X_w|q9jT@=Lysr9`$#N*m2}lY<%zq zYLg2=;?c1>if@PB$JQtIqC40Dm-;J+fVFL%dhP@n4T2Kttq39xI;e#Aicq zVNRU{t}EH|b>`A6NF$c%lOxfXM13S;)BqgY`Fdh3h2~_EjSdi8VnzVLU~j1FI*$|dNe zk!&W7;d5uU*OWXmkURSF_APey%A|PF{tZr0u=JIXR|ZY_s5ss;qL)e)qVFYlvU)5Wt8Y$q!y{FMhl7hT`9q)b?F%M#_6wB zGP^3-H_d3YCbWf1Ln68U=bwJKG&(vAk;>!*-ro^7M1Ru)rvy2FN!h;hG9@#OUK+W8 z-%k!*1|N8A(f_dL!#%r0C6jwE91K6#+S!?iCX$c>L1?rxi&O=xpj@t^qG{x)v}g)B z%w?u=ZE6y^%=Bz182VWBT6di~eW?1s01MCiJ9o-uC~MTYe7|ZKt2j<*qv6#Xj;k;# zmWf7W+cRppaK+NpbDCBeF9JJND00000NkvXXu0mjfC}ScQ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.bminfo new file mode 100644 index 00000000..6312ab5f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8a0647401c8a19882d2b40eedbfaa8c47566c2 GIT binary patch literal 997 zcmV&C4Mb)hl|6&YfT0~AVumNJM6rKlj21{GqAAYB-h7@XoljZ>W6hyrCS zqNYXQc<=lF_ajMzK;lVGe*4b-=iJ`^`(D6*fvxTWY>rlx);7axZ-S+!5ti!nC_Y_} zqEqKkRCN~SsyY-_I$)}>!&GiZL0L8OZKq)@Jqe?=3Py{}JWC~VODd3CTmi*CAfVLI z0)Jq0e_(TeI9^n)1z7FPV$n4@g)d_s^brT#Ua@9AQ75i_qaO5+d+?1osA$|dV|4O2 z#(pUL`CF_VFDlalEcQmRI6?sfWbl;&*o;wFSu3t=%-Vq4gP{o}fJVYljmH%-j+t$9 z0%+chVG0&ncg|TMa0j6TlCX;hLa;?^Ea}BMxB{ zl-G!>i;Q_}gVeqH3;1C&)BrXg|0M?;HCeR)epCE`-xPnaRyi;;GlS{rX+i!xJ3A}1 zBPNR$5S7yb!R&UyjaiownR!WYsaoX0HZ6dK7sJ3y;;RwhHSw7XcuHKVw%*XH1#HN; zD2noWJ;=Z3g^8Gb+k@vrz*4n!>CIZeIzx--z}V|W0TmVA_lg@{(alTMBK9|G0TF3U z;^%RZiHgh*yeN6-#k(;oTtJITln|9fOqLLxBKfrNlm>p*azJ=$1Ky0%JFgfNQ<3G- z6h4kq;Q|_)*FUO2Wlt`mQzf4kmL#?qIUp?g9Nv-%C%-3tpn^}t&u%JQK#QWTZMP01 z-)TVfe#xhW?h{*#9I!U=44Awq(}B>vwSo(2+;v`e8V+^sMs%9w)7I<}JAfRpm_M32 zZ|lF2%^<`-UV&I;EZjMpZ^~8zmUH0nyyI^LV#^Z>AoIBg4ng=Y z>&WDQIA;*_y(>lMD)`7G$N|ea^m#0C9U;&=gT+|p9{Rq3e+Az#pYvz_w~l~6baM?X TwZw1X00000NkvXXu0mjfrZTiC literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo new file mode 100644 index 00000000..ad7e92cf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.png new file mode 100644 index 0000000000000000000000000000000000000000..db281ccd45082fc82ec0c6d6c9c4a9e9f6295f5d GIT binary patch literal 1402 zcmV-=1%>*FP)&zAQZqKhfr4Bttz255rKN>lC>KRb%S~>Yxm)~U%Vw6iTkygb zr;|a)eM9L05hw_vEtEbx-_y6eO(s8XPx9ozdEb1VbH4BC_elO1SsdqJvA4rq+X|Dd z1;#VYFrGe((wasXPBp+#T@QV=10|Jq=qhZ`S#8jkpGL8z1{(88XiU}67z0)tD^XNd zfuhn12zZIaY;VI_BKTS&_*yD7Sj7O7t(8wsE-Ycx?SYGVV$RFw^i>W%x@J5WpY>pj z`JV8MR!*8(Scdzd;KgM=S7;~~1B|w2J~_<-CK%vv7C@ADHTri*{B!E69Y4QOJm|wy;15pS`YdyoqNmdprTXsVVzF+zj zUp;I@(M&v4(=jM;$3l5iihZU?%svVPsB|VVfKJLi**KsR&GG~i_ZZ4$V}yg8#C zo#TF7AM@j?%a81O8E&jxM%%Or+OY)WjP6FRYd1~|#vtCZ16@-qjN`|KqfKG}t&ZU8 z4iAd2c%fsKf9FBhePC01D>@mx?7A1ZKX{N-BgbvuPiUGff!=ip@{wrfolp$#!j7^i z)ZSW#lLf3#sTTt_Wwh~?YdXBpGI+^VFAwTrp|n*BFm-zQ^W>Tw^sHQmZCr)2yD5+j zM=|e!!nF(0rfAgN_Mvaak98k8!~m)rm4)Cs2G?Kn@)h^H!MFMgD^V%?pPX#XK)>%- zoE%ladN%_Z{acaQABo)Y-H2kpgT^i&2Hbu;lVlSEHl#M8cZQvL0Zt%e=Msiy!MFN; z&0b`EA%*>#5%vxv`c`hjGLnvp5g9UjBa!|`1l0HUqv}UB9M?=Z+8&3Oj=d=ctUuDg zwgtZ80p>vl9%lY?4t%S(?)edG4MV1LJ5G)(P<=-M<4_t*!)eItjYn#C7!>`n$RF5) z1D9UMyM}l0^oOU!fM=8IKqgqgcC0&G%S~Gi`YqKKq&uTv`YRQ>zQfS=9b!&IYF9YY zySG95?HhO{>s36JP|YpiB@$}0Yl(VFsHBzQINlqL%8_g+d!)?!Q95`8i5+iauQ^P3 z3&<%b76a7ADn3cgZnZ124oRY(LUJ!I@jf%hTERYRII{b8qRyp-?M?xX+}MhJ<_J9W z_^`-KI-$~t0dzr-R^iOSuBg(P`AFagg6El~)e*=Uih<0z69+1`t-=?*LVz+ffZaZ% zAec-*5;ZMSD16~@;8|F~%SbpCwF-a4;AE0QsTKq1_94+_!QnIt0ZOfrj}$o1zyzOv z9Dw8&>i8IhKPE4&@Hs_(QD{IppL~*(#bv@@|5h;INs{Lkh6J#aLLZarO(mgLODiXM zzNVDffIPJUxkY;B5)LNQNuiHP^`??=vy~HEo*NSI-$^3*2b5;w-gP15b^rhX07*qo IM6N<$g05?QHvj+t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo new file mode 100644 index 00000000..a84529da --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.png new file mode 100644 index 0000000000000000000000000000000000000000..9e554d6591e072403d77874af4d5191081031db6 GIT binary patch literal 1411 zcmV-}1$_F6P)razc9LM`N%*}b( zJ=xwa%i@+@BswEwW6U8lLO~Hkydbnlp|nsaw1t9gEv29$0y;%>+lwVzT;hD;l*XB% z<+2G*oXVw?aw&yETcF>a-)YO!Wb$(RCf^)5=jr!z&hI(-J)-|bRSoA*Wo?75z6Dy# zS!n8-p)sF9#fj5Un@&M(IEivY1IlWxP}NwV(pykkZAMAe2`F_&D76MCH6bfBwJ5Hv zL2*S5!to-J&f1FAMB%H6!dH`Atrq}VOADWL&Ia&w%7-ClhuhER%8xhjacI(q(P zn8(6vxyEc{G$mkib`eu^VS5+(np|Bi05q0nJ~_bv4i+%X02D?ltF7lF1=E_t?Zfzt zAL_Ou*gRJueG-d|Q(yAn>99#fu|xVN4-}H%UB`unlmsx9|9Drv;u%`%4(vU5>ZZbGK>xh?kxR`4zCH{dd)Dqb5Sr6 z2b1RrF1Xn3Y02Tw%2XNw@LJwwaOZY#zk0MCujE_|`N#$C&6OXcXgCp_%RiuF&WMY% zwYW5EfZ8R7Y%CrMXCllV34WSsLrQfPHe@vm01E7O0X@vU6F?vHT_@1R{L;ZTq*+rS zZrujSWigJnCu4N^Z?wAAXme{(IGTX`(KuvvZiVDh8l+cJAvvFhE%KcL;N`>TdAQ<+ z4<*0)p<>Rx=7W74*qGe{+ei?VoqptB_hE;62gdLiCnuC>a+O2!G?sh!jkocMY8&di z7SZPlV%@%z0$}68R=#uP4L?d*c-c)q2lX;29hCrD8@oMheW!L824RQASpcg;j-0`5 zIQnQi(r&+p?G@Y6cy9^!CxckKw?P1GIB=Gig~C-Vy!@7*@3?;oSfAO1+oM5Lu>Z-4 zx+K__Z^AH=2h)%ghX%GXZ^8b%F^JWCiqrNb3`_;_LYhSYtl!^+KPTCp4~J8b#umU| z)8I$F;|Kxtw*&Y}mk8V9kEnif0Q$#=ko`vt4)nz!uRjiPx;QlVEb-qxFE$H+bs4AF zvA}mc!2Ezc@Q``X4Sv+Fu^@ZtL3ED?ky4w8Yk_Z|ewdER2N~Gk{Sh+lAENkC5_TCr z3;m9HO^QhXyqMkyGKGa~#o9gf+;r3xr`BO}VGO>XZ-BBt1ts^z*w^&|(tm#+l_TkR z=h!B!NjBoS-3IP(yhucCb~RB?iPm1j7dSVkLqTsMWZg+f`)w1%ws&Eg%E8|H`0!JJ zw5UV?C^X0UBsII0uE;thiFyiY${XN)MtuBpSlm+N-%EhJcQ<7Auc7MM1HC5`do1zr z`j+_fl0u~bpbrFTC7e0Z6$@25KDt?tnPEQMn2N2Yw-8hF#)>!BypAo#H<8`A3toR1 zAd3dDuMa5_%)4S#(;`tg*~2`$5L(MGF5}}I+coWco`sW1c`}6npsx=p($lFFk*+8! z)$oyk9u`dDo`q0IzFft}NcaLdu*~Q33W}ov)qL_ujVt RYq + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..daf85eadd142ac8dc6d04d83af2fa58fff5a0709 GIT binary patch literal 1344 zcmV-G1;6@KJ=QkHOb}(ggVw!p0;o|o)i`4u&z3RlA-HBP| z1@|+moV2>J3)`mKTf6+8C@aqkkSlBX%@qciX8|(|Kw%_lVL882Fg=@hII* zlQvAwE?~rH!Go43xDptOPcH}J;%6V?J%1tmuGezA;{^f=99{-Sm~|_Fo>{X93^JdN zVBd!{5VI3~SeWcURbw-%Z{J5*O%n=K^^g`+AWp16cgsx}`sxvO9*raECAzK55?%}7X0KzwrAKRO^h)(bcpRt>`{JM->v84H&`-+{#r-fC3PJ6N(l zg=OFl#$PldCN3E}?4*!gdwba4{SzCm9XPg~?5p0!^4ccilG40@6W6L(Ti_L&n9VGB zoZ0FCZ#63D0_IH*VeYGexwq;7pcyk^&}hPoQ4{+0M)c|ocs`{6JK&Ar3Xmym-zppr zD(61-wGxqmZ)0B93{#H^rmhmi{@V^bJLPqvoe~l77G^XJFt!)N(yc;ldIV$e z!5I4Vtoo5rZwKr>xZ?$aGNKYMD`04qW30W91E^~9>gM)A z^|sAdSXtk~lH(BIV5fM(nLS%ES(1YrU;1IPs}TCf>Cm^N;=63p^+hiF2H5wzo#WR42S4_5Vz2cR7W>4V@wspj(_yFkd zL-Oo&->sOGA&1caEX + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..a58a852d34e3cfcdd4b3f8b1936c63964b241206 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^dO$3}!2~3^eneaVQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5yFi#xbidgpkd6}9h?3y^w370~qEv>0#LT=By}Z;C1rt33JN{;Z3ugsLw0giXCLJMCQU)epZf%y!GV9x$tHaWQXira#y9fa%{(UB7-| z>bFxm%g=mr*!*YPTx&NCU*oOTZdi=iva02t$>LDeFUus?YArN>o4)NSlknOv-cIlL RJp#Iw!PC{xWt~$(69Av5b0Po$ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.bminfo new file mode 100644 index 00000000..843b6778 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.png new file mode 100644 index 0000000000000000000000000000000000000000..e4efcc3ced5b1f19da4eb586c5a41193faf7cc4e GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^xa~60+ z7BevLZ3AJ(b0>B#1?ebpjVKAuPb(=;EJ|f4NX*PD(aTFMQ83Xn(6h`juJZ$`+34xw z7~bzsgYnG*CwM38AZPl8Mj-_QB~ xlvwiD9J~c)I$ztaD0e0syi@b$0*& literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.bminfo new file mode 100644 index 00000000..7b43a746 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.png new file mode 100644 index 0000000000000000000000000000000000000000..e888f6ea24aed9acd392b935bb46ecd4a2584fc5 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^xa~60+ z7BevLZ3SV*->Of7JIrl zhIn|ty<*7Mq$to5sPE~XvBHwY`~gFWOi26OPPe4fUI$k*nBQFg k-65;})|kEgk0Xcvr?WXrqj~1;0y>w$)78&qol`;+06QCRQvd(} literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.bminfo new file mode 100644 index 00000000..b9d59773 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.png new file mode 100644 index 0000000000000000000000000000000000000000..eb808a8ba8525032e907e9c6db34ee8fc8a593f5 GIT binary patch literal 1324 zcmV+{1=IS8P)~)x_beDJi?a0+1_e#pKAW9)C_~ahE(ir4w^m?^THL?zk31 zlUn>uz9+5m&ROHLi

`JijRBlCn=(05V0jm>eU(Fa`WY01jhi7L|*UgL!RuN(;@j z1fY_zmVzfGvl6rNmjS5WtWg4t&guk!16f>i76-F=_nH|qfa}egnAblDpIQQBE(7pk zvPPx}Fr&v11u=w`UQi~+5enwA-J{(vJpmskYYD*NllRSlgbcX_z@4(1xKmb>yjTgN z(FlXVAk2T8OeV2*GDBtoxWzR>IJQC9^+-L|9sWr8zpkx|sj~ohVPF*afqZKW_>uhG z2=Fa=<(f~F3qEZ86qi3yp}tXthL2TfY*Inh+=5)09ChkG@w=y^FIoUDhc1bLlwK{; z`gF)3$98LRQv9nvWz^SVxi z-J)P#lQ${hpR@yBM{Kbz&lO=^LD-q_1N9D3H!eCN7PT-vG-~K z0^>KJr|*Uo4-5_t;`@OC^nBin=GMLr{quLeyIjeA4?tIa=GhMT=68QoEX<)6+=Z+Sb`)J_q}E&Vp?hRv}pl zyZzhn8K5WLm5wemz}kzpG0Yjw zef83Rz^(*eF|I7f>C!S0zCht~3yaXw3*D-g0M@RGw$5%bKB9jq$JQ86%u@LH>;kIW zs^AylX$Dxk>^i!xigCI4I#^i_-zZmXPI90-NslUZB{nA8;@JaFN&qX@b!WE)z`-UX z@7(xMIRfLK!@l-FY%h8S&!4a-kiBRO_wdKf0Bawd&h8#Da+l~uut5aRQ<1qG!N00J;1RQlo zcz+Ng2ZFKp`U`mdiWgow>jKZ{H8_|XGb#YqKKg2EwM8N<1y-eKeH!C-SXIP2IsyKo1~VZ-GYQV4k{%81%B4#GLoLRFWh+ i5$f@_%^Ds7*!%;BoN&|)DknDp0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.png new file mode 100644 index 0000000000000000000000000000000000000000..80542b26d964fac62e136e37dee476551446bf6f GIT binary patch literal 5129 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..ecbe089b3f6967203d55895659086e12c6c4adba GIT binary patch literal 3900 zcmV-C55w?@P)yfGp0000ObVXQn zQ*UN;cVTj60B~VxZgehgWpp4kE-)@NWrZ?j000iBNkl*r&UVQPz2V8d9Wdp-TU3cAeRkz)CTe{|&YyJ`6 zkG$~03w!tN+jqIr>9tq=0DR^=^UO27Lx&FOf(tH4_uhMN8ai}n8Z>B7{=Dn1yQa#@ z%IfCLo4@j3ClX*QdiCmcbDutaW<2n~1L^hGUr*!5k53aPPE22Z`DGe2W=#6*v(M5q z&peZYz|1(e-$^H()Ub4Uz4_;#zdLXD@83VY^2#e2bdXN{`t{2e_fG=`3`mz=dTHv~ zwJRdC7h7zxK5=P-nmhc76`ozEM~@!ko_zAjG;P|n^xb#gr4K*+Fn#gG7iq$T3HftX zRaGYO=9_P(Pe1)M-F^4nDXzIYF0UV6?=;_h^Zj(xQAeeSSUTg3Gtw!ioRWfII_61@BNnd~cbs9HrT>kEdAAZR8+H0?+QKLqs8*jX^`uO9IKOt^2dGEdVP8~aT zOq*`HY1(YF%~H2+-IDM2+;h)#&_M@f^WFaY@1OSDZ@+wGOD(ljbws064Vpi&&OZC> z;bigs_ur>kvu0(0r1S2(@227|#_JMX-cHr{ySDJ@&J zOxth2ecE>0Z8OLN4?Hlfw%TfGi!HXugtp##>$JlTJLGfNcH3>2&-FL56%`eu1Im0g zi0ZH+u{vIP<(1Vy&YU?jM}SlS6#-HC;DZmc_T|A>UwxIPPoJJ8b^rbMr;k7WmZiB?D^o9}=}a+Ot9Iimz??$-)7GjN97Z- zVZ(-{=bn2mjTkW^ee}^snb`H$U!U{CXT;)GsX>DV`A9B2&f5VfgWqPGZPJM+o|p}I zBnkrZgv>?lO|E7dKDyL9Q&Fe=G(KuLqX zl}Q8u)EgdofPDP%$Fqc@+vaE}rz#WuOJF4A#{mZ% zkijA%arJ`34m&J=CqaQl;+GOa)aXG%dcxmhWl(il;hB$s0EqVyapdWT9(pLC-gqNdCM1+q=REe2qeIF-g##p&LlDO9Wu@riF@w3CtZE@)hXndJq|oT>OXCZ z0HBP=3*&hSjHoq7#I#IRNkG+BrMBJALU56*xK z^VxXqHzRmN;L;MLx~{4vOkY4i6*~3QQ-`=$l+X_5f1Xuo)?a`9Iiq!L&XHyy{{)v+mgJG$`j+i$-;R~RHTtcXmO5m`xW4Gx*Dw%RK1)Qr$bs7^>D7Nz&6 zh|EbPc>j3?fzJTs&4(X;IJbOYNr@?&v=6+$l~&-?_`;*%x$J3#m0jK!!NSb@h&Z}V zeki*|kzgb%x?~%es)NK)C5Zoi1?#5at)Cu!^wI2jm4kQG_M+Y!sS7JQu}A@;B-+!O z{avTw+3?W6w-PL>Q;w*z>Ha#fYea+Dy)l~`uUou3>eHtWiOq-^sci}BZ?BL+7h?bq zNH!0kP4WOzRnm2p)!OCN6ly4wn6Zn>-4`g=o1=^(WMuY1AhxZUgk$W#GhjtSq&e@w z2OrGRLZCR$wL9&!)3qh2zg{ssZ5i#mO52YUvlM7rXLJ-!n;Mca_c$_5j+cA%=wbZL zZyQ{1qC}kcZHVkGc#^h}DD2v6ug$wOz~z%@D-xoiICwURa!@#Bd?aRa z#%R)9BFsu4&jKSUjn?+UhCOD~uwRbGlf5qVlFvOfD6--`m(;4 z$~XcDnW@Z5q$X!dkbhpG*Tw<93gBM7dS%v^Uw(P69+D3THJX%wQ%1dRu~$aM#>dFa z^B#t%=e3~Tr-hA`T`8&TU4EhBeDpd*g&nrsa zHbPj;Cmtvdgc1OWhkzTAh59Y5IRLCSjRK@Sq%UBjF;AES{L0F-GLS5kcCyfI8MTTIVE^b-uiF)C?JHes_%PXGOkE44V+0d{`#X zzJ2@WoG6U6Mk;{Pp1)~agvf{2yy1$&_pdc|W6Nr8DYlSCBLnKIpqWU4*ibLGh{_A(2r891Al3)(d#ky?GvZ-UOVsd6HBC15mjYNs%K# z<{aPo%{hq5lQ{&IS!S7WrbC)8^hi=<;=u?oQBd!h^SvfS)VXp*bVN>7A~#1S+LZuOIF}KjE4~cl!TabkaV7i z1o0dJBt)$+#ES^}T~+gUabFRvZJxsb1fHZ2sFlF8-KKDKsq%scx4KD%}6)?c@2(`H5yH6ABF4=o<-=w85Ue00tvyxedk z2N6Jkyhw(JjTG(?zmE?rm&JX$g{>QAi&_>AtRI-+uUCOYY~Sv$sHhkdpk^WyiJg{S zdg*Ba^o?fCnqAYhY10dvH*bDi{N1svtn6=bO#|nMifHh>ghv7x4@azs9wI)A0LK(^ z;#pqsb_lBs)5LzY{2$7XD~GKZwq#h7FyCtyKX<)aE2KA}003B8_`Y3IeU;QDtGj>BK*~DjGFvbY+kj&%@+Y zfJdbCY9uYY?6UdaO#b0#r{@0yaw+6GyRx!!V&uq(xMsQvQL@@PgBhsiBkw0Nt$ynImP*x-d1Uiit#p{JTOY4S*X9@wBk1MmL3 z2FMK}g5PLtW*&`=EX>n7hwUBKCCrPd<-?kXEgaT3tURny*!*GM zd)5yrd4DvP_Kng-y^pAj_1pjaQVxT_P#!M~cy+!gmA}2})%z!x1~wD0OUW1j0000< KMNUMnLSTZ9hjthM literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.bminfo new file mode 100644 index 00000000..424be841 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4a45a46286b4fa3f43f5ebf2facac0926ae9d9 GIT binary patch literal 5481 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..14e22c3d457bb34d4b958dd2ca99e9b2db350c20 GIT binary patch literal 3983 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo new file mode 100644 index 00000000..951d1f19 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..1596b64cc49af52d4c4f1af726d7c1bfbf621aee GIT binary patch literal 5398 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ec2c8d9f3a7dc9cd224b0ed61d9696e608e16c GIT binary patch literal 3986 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.bminfo new file mode 100644 index 00000000..5a4f02d5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.png new file mode 100644 index 0000000000000000000000000000000000000000..447c12ce3c4430bc9dca58e8888fd94a05849cef GIT binary patch literal 2035 zcmVtQuq`1*k;(N>`)|ZRav)`X{Q2@{1hb|BR{bAf>MBKb z)e2$vRz*I6ydEjkt}VXaMTeC-tM*+O`>w*!^*;3Kb1-%kqU?=@rlld%R}#qWQ9+H% zOjf>q=hJAIbk_*;9tL`T3vFu|RgBte;ZW_I_W@z%JPII5;&w%7MNzQBK5)eeV^E(3 zPzPN{3Hq82LEn;vsuN3uwX5cCB9L^np(f<)Res!2n~5RK1?W2~U^86>Z1j=wL-aOg zpuZ^ttv4f(nWC&2KVeKDfyRy&lq4;FL1gurX9bJ?3SrJ*p!*EqxCB^F0`~LtQ6ZsJ z&^9IEQq?jcYJ+S)VWy7?Q1}X&XMVb(Mc-b+R8>OPRsy^EiVMbC#wZ=fH!-+=wEVJIb_mQLf>(m)szRp`T-#-@Wt&5`193s zxN-e=fKU#>ah?&{gswX)p{Y^gc%(x`Qxu6c8vIWQYVb4uWAkhmY)Nr*V#0a z(DB(ssBce3^QUu=5g**>;W=U6_h|!TlVjy^7c0XAQ~zng9Av3;Lea<;0$DQH5c3|u zh(J0`5nzra&^CU*pDiF5>RayUt(D?J`2uVX4?OZ8?{n+I1HJOn$V%Z?|7iQW(JO=hUn!19xDhn z@nKUpHZ?A&=*Hy;7&RxLYt3L2%x82?bF$rpd7gTipChsCnN?1pS+o5JnB#&m?IKVj z;SX>z&!Oi_Df;hv;QD(3*ttn@j=z86VSpsNwgk*C%~e<|{S`EE2DB|IILu6yDTN@b zsddzP`e*|pA~rgKL@+oAYl?Tlm{m;MJ_r`}r8*Dv)_FqL@HmRIgB@W{&kX07N&ha? z`1E-BhxLC|VW8^}fmGbL3bH1DDI zIei4%A&!qiU%flD_okrsPd-T8s`v|G{3*$IK}nLgD}Gj4vP7`z&OlEXU28J`_!L22 zbio)2V-zci=0z?-LPA|Bo8{y3mz6M#j1$I^O>rUilic5)K!2kr23n`0sz52c@`7(N z$4&WGAemy8`+=l@I!)tI40NV4IteUaZVBS#L+meqhcRyE#9Pr&Tlh~^cKIT!(2+)n zOc#t8RcjujR0xZHAE73}&^#5LH@%S&t7!9@F)4&V5RCiIrrDp+5>(Wxh@*i9`y0|F1c@2y^fsFxI1t&|A)eFmwb%-|Pvq zdKxa32V(Qf{zV)+b2uQk>|}ZUVE5Y`xSQ#UW!WC57dBF_QBkgvCI~F7A`6XcOT?hI z4At-FqrZn0XlGPxjEG%?I7TtL4yMuZE9bsvH=l%|MT()0X*BpOF-l#85u4?|^pdnR z+fNY8AHmQbL!ce>&yUf6Pt5&XK6v@ilutqXwI4(84{fsyy5<0;K!$-fUR&kRw<?@)grG%X9l&*>TdNNbulA*~ zR8NJuXF4=rdLw0O21+g1*1Uk*e2B2N;OdM%8dtEuOypHe^J zv4>KJ-Pa13yPxH%ms86);nT2ohr-gm1QyL=Sb7%0*0T_{-ubX;=CM)wq9`*+ShakH z_(b{Sa6n=^pR;zAcif&Bzng_wf%f7onNUI%?UxHhnR4M+Mu6}ZuZ7|@JwPZFl@|Cw z$5I1@qx%AcqpA0`H$ZrE58tZ-gf~<&zLyF4DKa7Hb$NYQ=u8nt^v`3%c}O&t_@ziJ zmg90t+;>J=;{S@i@u9?1$+sQ?M5qarJ0(85c#e`p5b+>6YA2H6TFFD-{~JXcwBEu~ R!}0(C002ovPDHLkV1lq*zh?jd literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo new file mode 100644 index 00000000..b6b9f396 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.png new file mode 100644 index 0000000000000000000000000000000000000000..08dc54d3947338d52b0db7cb2f58eb0fe6ad20c3 GIT binary patch literal 1157 zcmV;01bX|4P)Z32lh6khZ z!DviOtT84gHPIN2!NfEsBB_#6AY}te2oj+{SyIR8@!aK*FDvI=jJQA zXLu!er_S~j*XN&lx~&NibT|qr8=RId@;)+4_J}90a_(Ag>4ENZ-5m%ggNP`rh#TuL z3>~9aXE*i~k*kt>%afbg-T7P_)>0uv^)M3V8aM~V;&2$IX8!ch2Ci!EGH<7ET)5nU zm>xmYkPt`2%8TO8U=V>3`KA<9E$vciT`XMR^bTIjBi>lH4ApP4KdTIoXVh?1kzj_Gkwbe25PH30crF59Rp7VU*oD| zzi`&jw)@gcAn+;rZT0E0g9XQqLe@fvZNi-RgjK75x(36cTNDPPAN^_Q#C%>JOZo5JL)}&I zXeQTRb-F0Ot)&C@BOJ5%N8l{)qu5x{Z|rne{(NOYUg=@T<|-5}2CFax#w1LC9hi#fY8ygO(i(`_%*?z$*umweSnC-o zlfZ_a*!nvMjyp+sHrn9LbLTX5J&8yvhy=S1-o-#k=oor$I>Au$Omf1wd%tr*H&%>E zTP_(~_RC$)B2o0@I{?!FLm5~@3*HhZN~({+6ja2m+!;H8;1cl5JCmjs(_apcsXzYP zvECYX$$&BM$RPtuqw+;}p-s#xaKg0K2_;|!7ABv9&ZVqNU?9UQV*J`Hg5&F7N@L2E z-R{lKG)*iUOMD*bU%s{WOjfDgw$%wCpezC5ti){Ap!5h>os!}I?9Lo@sGZ5h^tq=s z*pw150*<3(U~x!#_F$D;aOY%LWU>{NV7FX|iGkip-Jsez>6S6G8+_-Y-K)QbwGoCP z=YM^7Dj5$e$guJj94rJkkCBgOpeD8VrD1LGLEvc(HWeCCel}pd(BJ#Jt|n6u-6H0P zR&n=ccv6b)p8Esqk(0u!d95y^=XRr+-DppF>)6_TgKx|GxY+BfwW+>3@y&gQ?}z>d X?E9A&gMxtw00000NkvXXu0mjfr~@7e literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.bminfo new file mode 100644 index 00000000..25a31bc6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.png new file mode 100644 index 0000000000000000000000000000000000000000..7c697201d3bbe4525f54b29eda2f00bb1042bffd GIT binary patch literal 3301 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..38139f1f5fdfce35e5cfd48cb134eed707c521ff GIT binary patch literal 3080 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 WV(yF>mF`sl0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.png new file mode 100644 index 0000000000000000000000000000000000000000..3b61d9ed46f60823120ccba2b53b53bb1cbe7c2a GIT binary patch literal 1662 zcmV-^27&pBP)7%mzWO9U#Q1ksp)ns|Fb;fX{IYQzV9 z@xdS_CW;Y7xg=;1V+9f`mk1O?OMxO4+U4akFdJt~r)ve_EeRJ=EMhlU3Ix5Q)X%4+P;*RGStLPJdv7Zs?EW z0Gd`tE|pLO(qOX4b@!P#Tt~3E)npVf!r#Cc24$$j^!;&qllmV(x~MgTqcJG53`H~H z*cJ=|Dr*J|%K}wL8M|IJE_1;gcDsHCK_DEu+I+umKvT8kMBGULhcfH#A3;k)4N`Ss z6qPc-YOnU0aJN(JT4-o%~ zUXVvj!xKksVhZB1m|oH3(UKmj35wXewhimsS7GUtdMLUMZdze1gNRnZv#Z;1v*QSI zBO@^AokO(o=5lEYz90n2hgfwDDXko=sDK;kx2;>SdDHV4*!vxBT=)w*ZSMSHH-hI* z;pN94!+|%pK`hB&t_53F5U;LAtf2w*$tj3NBAyp$9>KMp${s{Je!|8VH({89r@MO) z35O9dbc7G@$70g?!S_FaN@FBUI-mEz{iJsvA4gEBlK#Fc$lV&j+_`f-sd|pR6JY0( z2m4=m{S^#<{SDGx7Z8f_W-&ZUIyYz(Tp~*NVDtNY5U7zo{i8%t*^?@D*yBGG3LzG+ zfh#E7eCA{ib}X2G?WOJ8XAJH89)st*5RAu(ONpc?!KLM=N_>2g!&S@`Ox%ngsAm(&A&;?CG{d!Y>mYA<7oc`26AK;$|Xq zAWhGTbLK-zrV!9%)WjmFYD%G+gun!bLN0?dohLjc@oFal-WwU|dMlY+)KMs$UztdF zCsQ~WqzkF!2${vaj|d)wUXpPuGdft~W~QXL&So zC-YJ-cVEDtCr?~~5LjLT@Zme#29vX!=en!c?m0#cZ%n1UBa&z3qnR(=R+b=$#JT8= zaxRE`HiK)uJvjc$;q1k;XLiW9d<%{q*pvS67`yAUf%J24OUpuARsV2A$rxSt%w@*J zMrvMMx1AuDVo52hN+Cb2l*X=`s&Y + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..f52455b460ae8fd386b6dd318751a0606de26183 GIT binary patch literal 1458 zcmV;j1x@;iP)HHC$RU$0)h`t|bV%bJ{=oW%_Y z?%liVeSLkHn3%x3ckl4&(u(-G=-_6g@V`^#&0|NtSXlQ_H zYCR+*q$46C;ujqt)#dN%4=XDxQjjl>jg4V+bQEviyus_&ujRaY^$H^+BN!eY#?a8v ze-6KEX=y=dXy}3t!0FSc@%i&->1=v>8sp>RQmDVbAHBW3=uqeqX>)zu}Zv$IqC zna_FJ+uL#f{(S@n20{lQB_##Vo;{QCImN=l0_NuCFgZCXlMw91ix(Ii9K_S7Px0i* z69Ikj-~oz@i=p_(%a<=vSy>5xe}DY|EI?k@*46}wRPny4sR^~UwWz45KuJjnE?v5W z^XJdwfG$8%Qj&(evheEas$41R?CdNW8yito zRfQWjZa_H*85tQkbLNZyL`O$MiHgL;M46IJ96EGpMTa8w;yRsh@7_IVG#YWuhYueF zpt-pjH8nL_fb{fqP_wwWI2=EI9KpfCh>eXE3aLd{SlGG_fSLd^Gc)2II)S`y2uVuV zc~({y($dn9nwkpbdn6DIPXh8m%0RnP@hYugh zbUbtluhfO25}3l)*Vp6PwQKrCRug=q3rGp=N^zMBI*0(&ptQ6UD$!8s7T0WO5FQ?m z`1p9Vwzi_EsE8BjQlwJ6O6$>{K0ZEhc6NrNqoah3E>Z~tMNGc!YEWTd!;!qTQeK|wMNgT{0C z@L~NLu=BdQIw`(m#|~IqTZ^FNmoDNnLqkIWV8?7KH#ZmM<>jIaC!iVh25sNIed2f8 z&cVR}uCA`Iva*7QhX+T-_U+rTb?a7a*|G&?Wn~hmn>TOb`t|Fg2eUx_38)jay?ggg zx3#rNS58h&*t2JkP{k{OcJACMbZy(V4W_21;98-m3>l{(O{7b0VgXc?{i)SJ6`Xkd z__4geV*B^+2dClH%gakX^SQmfy-dVO)bE5=15SMO=uw%RE~A}!uLV$|ePOrka-(zJ z{~N@`#YF(veN0S@(7;{9uyFzwXSzE&I)px7U*CTK%+1XehS?u1NL%jSy<2!E2(P@S zWl0a|;|^jmWos$Ma8Y1>rs%Y=js^r#2L}!ufSsM46m)ZQ6KZ%YEiDC{LE`#g!P~cQ zi(|NAHgZrFJRqGkhBWq=@;Tb7)WIhFUO;O0Q8xtAXAhe>L7_ zWw|m2%-h==oQS_#Oea?WeNP&=i`XfPm^d{LGg=}@yl^Udl>h($ M07*qoM6N<$g2&yl<^TWy literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.bminfo new file mode 100644 index 00000000..a9c1b946 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.png new file mode 100644 index 0000000000000000000000000000000000000000..f04fc915bcef38f7c7c5dc68143c10ae1410376c GIT binary patch literal 1705 zcmV;a23GlrP)hJ(#8N4Kt}>v}sq_j7!|Gggp!nlI;Ty1mbPd7kIx zaLcpzz$dras=0>a+&;r{m-2$pCd+|lL6m|5&qoc<#OJ*VHoG- zK`fMwZ(PjA@RT2~*VyMLyIv231EHdww+@=Yey%>-BTsdBUN$!~Whdp=)~cLfjgFOPP&KWN=$+94!qY zl+-FhiVTB}<%8Luf1jZ656pP5FXE2jap}+r0jOMcRyNyKv3z^uC2O2EE zOQ;J3Ao4m+4yQm9^{de|9i@s2wOpoZ^U&#CnajboEqLpmfN7c(sy15i%bsui;J!DP zWCkY=xB?*v6x?Mqq>sZgw_U>VOzRKqUafwBWclc>2h)j94OpB|W_mB^jJZIlGQp z1CSNznGLV3OO`@2{5Ri!gcB!zp}-FMcPz(4uXp0_%wJR)?;qB4pGcTz5Nj(-!XjWs z43XZW)d~$%2dg*|O`vzhO7yLI1hNu9cKRwx#X_w|q9jT@=Lysr9`$#N*m2}lY<%zq zYLg2=;?c1>if@PB$JQtIqC40Dm-;J+fVFL%dhP@n4T2Kttq39xI;e#Aicq zVNRU{t}EH|b>`A6NF$c%lOxfXM13S;)BqgY`Fdh3h2~_EjSdi8VnzVLU~j1FI*$|dNe zk!&W7;d5uU*OWXmkURSF_APey%A|PF{tZr0u=JIXR|ZY_s5ss;qL)e)qVFYlvU)5Wt8Y$q!y{FMhl7hT`9q)b?F%M#_6wB zGP^3-H_d3YCbWf1Ln68U=bwJKG&(vAk;>!*-ro^7M1Ru)rvy2FN!h;hG9@#OUK+W8 z-%k!*1|N8A(f_dL!#%r0C6jwE91K6#+S!?iCX$c>L1?rxi&O=xpj@t^qG{x)v}g)B z%w?u=ZE6y^%=Bz182VWBT6di~eW?1s01MCiJ9o-uC~MTYe7|ZKt2j<*qv6#Xj;k;# zmWf7W+cRppaK+NpbDCBeF9JJND00000NkvXXu0mjfC}ScQ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.bminfo new file mode 100644 index 00000000..a65e4d1c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..c94da02a823dc2996fba25b028f2fd86a3a1ed5e GIT binary patch literal 1457 zcmV;i1y1^jP) z-|g=1#)l6du(Y&<_4Rdp`t%8FYin3tUB$}E3YM3b<=Vo+0zQ8Hh`zo)JbCg2YE!#s z&z@}w3JUr~2T1MmclE*6)|M3HgOih!n3$Nr`1m-+#>Qlgj*envWCX**!x$PG`eyOk z^XJcT?%cUW9e``su3=+iLv}VjJ&pJ8-%Fw1-d=QecA~w#9c^uGXl-qk_3G6t?Kywv zdinAt9zT8zFE20X0K~?|;_chF(muObTwKKb{5+s4Gs>XzrPJrfU z`g-K&=R@(2ckkYzqM`!s?(X{oumE}8+1U{wQpN9$jg5Hp=n)=1e29XA0^GWF3pa1x zM09jC0s{l#>goz-XJ-ry44|~M6doQPUjfX`%@a($lOT7cx_WKgrHs3-&n2gBdrACZxfLLs#X2ng8K0;qPr zyng*!+A=dU6He&_M@L6Id-e=Rj~>O18#iR0XkBb*C;>wjPP!2>@ zRh2ldtgK8Z(*pST_<#W3-rnH3ot+)jOhC~lu3-BFDJm+G?zrd_9;pjOB`}4ptE)q9 zZtk}tD@%=%-_X!d`WK#_o;Y#h1WunmEyF{ONd-YNGc%zk8fv=5H5v`hpFfWa7cSt% zix;?m|2{kTN|B9?O^uphaRqOrE68hjc(@d15ei6J2%_Ra05l?VV~TURpVYE5wb30d zMaPaE`;7(ZWfmtT6f7nt2AmBRrl4FrH#Rl~Mdms0<1@a#zOoTg%0(8m0H&sfgXEMn zaA|f=ir5(`r4jP-@}Lq{Ho(rwKLNiPG)*gt@4rGqLIj--qR<2*=LFzP&@I%3yt5#= zSLrE7(xsAEKowSU3MS_v=)8%Lf1^tPrrTjwMbl*LFR>7?^GXw;Ebe){w&&YU@; zn?-D$as6+uR3FDfPz^GxdO&H_U zOeOP(4uA@+pVY*TGvN3hCJ+I*>%9Q~9W-h{C((g^etxjDw46A8{P>UizWh~t2NmC` z>L0@z^NAhtt;OkN1W;tsz@g+$xqAvqBk1evuNoK_#2OkJ9{k^b7Mcr6tnX9-b5$Tm zS+1Wiab?LJ?vyd0=49K#!eYwE$f)_qkt4}^dV1!E4 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.png new file mode 100644 index 0000000000000000000000000000000000000000..b4abba3b5c939ef66949b948c64bddea6b591ee5 GIT binary patch literal 5211 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 VW%KG> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.png new file mode 100644 index 0000000000000000000000000000000000000000..69b11ca6fe4bbc0f5b9211d576cfdbb97b02cb7b GIT binary patch literal 5954 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.bminfo new file mode 100644 index 00000000..5403932d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.png new file mode 100644 index 0000000000000000000000000000000000000000..e70260fdb63f7ad5a1218a69fd0f8f90620b0569 GIT binary patch literal 3953 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 LNkvXXu0mjfZ4HtE literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.bminfo new file mode 100644 index 00000000..18ea1869 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..24f07b78f67bbe9a4c6fb230cac2eb52e9e87eeb GIT binary patch literal 3051 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo new file mode 100644 index 00000000..4d9c8a7d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..04e328f815e1614592ff37792be2bd5700be8fad GIT binary patch literal 1000 zcmV>P))7&H8*F`WKAtnqfD=SRR`glAw$Kv85tLq!YR@RuEf5CHql!4)KezHD5p-{MG z;&UZ?dhcR)OcRR4#A;FE@i>x{#QN|LKB%w9Wa^?*VCn585Lso^=49OALZi`a$kYuD z3CrDkOu4=ILos6US8Qx1c^a~yyJ<7G+yVC)wZkLsn4T>PF14B%D{fyW>OgKH<$j;{J>C?Ex z*skNp)0{Yg@2$6K&df{)q?GEmXjj)8MRMswwVM9HVVoWx?KwGcNd+1;G&ZEsG=liK z^x4^)+x8vh=jR_QDk}Q2xVYG(RKB;NR49`A0|#i%eSM3T*K)Wnj=KH(rRrU~I{pU9 W_ietdz + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..ca2f0c14c92842a7cff0ae5adcb929c95bb64e35 GIT binary patch literal 4344 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 mIV8c*2^p@t;CquZ@&5s`?Be?Ws9He)0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..e5511f3777510a0aad1350b8e0b1dfa0db74f804 GIT binary patch literal 3157 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.bminfo new file mode 100644 index 00000000..d1b6d05d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..00bcd441b5231fab8012cdc7871c1fbd06afbea2 GIT binary patch literal 4347 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.bminfo new file mode 100644 index 00000000..9562b5d5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..2f82f9acf6c58f4ce3aea6fb0d42040226c159ac GIT binary patch literal 3459 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.bminfo new file mode 100644 index 00000000..1755670d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..be819bfe99878d5f68dac7e8d84e5c29f51b7ee4 GIT binary patch literal 4485 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 X?tZtab6Wj900000NkvXXu0mjfl;gHz literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.bminfo new file mode 100644 index 00000000..d80ac654 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..d665e9ff5f9791bf0ea2bbd9db30ca81c44dd895 GIT binary patch literal 3424 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b1996de5da170ceb94f8f8ce332ffcb4d64329 GIT binary patch literal 4225 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 X;(x4_wC=Wd00000NkvXXu0mjfw=oq+ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.bminfo new file mode 100644 index 00000000..405ec0c6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..957cd95fd47734016ea57acb31ea17df07a0eaf1 GIT binary patch literal 3221 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 Hu0mjfzvV#% literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/Mpbutton_control.png b/mappFramework/Logical/VC4/Visu/Bitmaps/Mpbutton_control.png new file mode 100644 index 0000000000000000000000000000000000000000..6a48d5ff812717b998d5be17c33666aaf463dd6b GIT binary patch literal 1013 zcmV004&&004{<008|>004nL003F*009yY002DZ000@zy2&Ck0003k zX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHyu&tqU?a_05zrGr z_7{-)bTFHV18fe2Edyegq*j3JWpK_fs4U7%&nQtaw6wHTa7@WhN>vE1EG|jSEmrW% zOU^GU$S+DPNlgK&g}4t41R)ARA*KP;XrakKWdMo?2Ftm z#)SC@Gv-JzF!(QJU|{)!5HsmzU|68Tz`#EhA*N=?z#yQ{z_4!)0K&6R{?;bADF6Tf z32;bRa{vGf4*&oQ4*`<-1El}}02*{fSaefwW^{L9a%BKeVQFr3E>1;MAa*k@H7+qQ zF!XYv0006ENkl15~g*)Eq0<s)mk8FXa4Ki#S*z8kOnOj0P4!naeR#XwY`I((duqL22hb5v{Z`-Ae>qgK j-foZYzQDEo{?g + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.png b/mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e5df8787cac9a89fecf9c7eb447f38d5d565de GIT binary patch literal 21997 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 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr new file mode 100644 index 00000000..4d4731d1 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr new file mode 100644 index 00000000..f68624e1 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr new file mode 100644 index 00000000..3a06a71e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr new file mode 100644 index 00000000..b1168cc6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr new file mode 100644 index 00000000..ab1d23a2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr new file mode 100644 index 00000000..f2774dfe --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr new file mode 100644 index 00000000..738127ff --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr new file mode 100644 index 00000000..f2273614 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr new file mode 100644 index 00000000..ab382780 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr new file mode 100644 index 00000000..c591fd13 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr new file mode 100644 index 00000000..a8f40f22 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr new file mode 100644 index 00000000..84474499 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr new file mode 100644 index 00000000..cd05f67c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr new file mode 100644 index 00000000..aed26ff7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr new file mode 100644 index 00000000..dd6d7f55 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr new file mode 100644 index 00000000..bc8f4162 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr new file mode 100644 index 00000000..794f12ab --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr new file mode 100644 index 00000000..43d17b80 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr new file mode 100644 index 00000000..e3a41f4a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr new file mode 100644 index 00000000..6b4c45ac --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr new file mode 100644 index 00000000..cec2835e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr new file mode 100644 index 00000000..c584eb9a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr new file mode 100644 index 00000000..bb7632d6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr new file mode 100644 index 00000000..cadb57e8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr new file mode 100644 index 00000000..fad588eb --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr new file mode 100644 index 00000000..4a66802b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr new file mode 100644 index 00000000..37a863c9 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr new file mode 100644 index 00000000..ebbe19fb --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr new file mode 100644 index 00000000..cb5bcdcf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr new file mode 100644 index 00000000..a9d80516 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr new file mode 100644 index 00000000..bd5aff57 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr new file mode 100644 index 00000000..6673fbe5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr new file mode 100644 index 00000000..576bc3e6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr new file mode 100644 index 00000000..66b2fd67 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr new file mode 100644 index 00000000..5c58a1b4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr new file mode 100644 index 00000000..155197b0 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr new file mode 100644 index 00000000..67903832 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr new file mode 100644 index 00000000..9b73f4a4 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr new file mode 100644 index 00000000..85b81a05 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr new file mode 100644 index 00000000..b253b85c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr new file mode 100644 index 00000000..6f91edec --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr new file mode 100644 index 00000000..74c03be6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr new file mode 100644 index 00000000..b6f9b030 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr new file mode 100644 index 00000000..771ebc66 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr new file mode 100644 index 00000000..ce3c0726 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr new file mode 100644 index 00000000..6cf1e8e1 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr new file mode 100644 index 00000000..29169210 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr new file mode 100644 index 00000000..4db49d73 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr new file mode 100644 index 00000000..11ea810c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr new file mode 100644 index 00000000..8dffa2b5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr new file mode 100644 index 00000000..7177f71c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr new file mode 100644 index 00000000..5a937ebc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr new file mode 100644 index 00000000..d94c3c6f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr new file mode 100644 index 00000000..686e2f7d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr new file mode 100644 index 00000000..17365678 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr new file mode 100644 index 00000000..05c57ac2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr new file mode 100644 index 00000000..2b96dadc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr new file mode 100644 index 00000000..33453874 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr new file mode 100644 index 00000000..901ec1bd --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr new file mode 100644 index 00000000..bef3f97a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr new file mode 100644 index 00000000..5e39b22b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm new file mode 100644 index 00000000..7dd49e69 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm new file mode 100644 index 00000000..e53026de --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo new file mode 100644 index 00000000..6869e9ae --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo new file mode 100644 index 00000000..83d1917b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo new file mode 100644 index 00000000..764b9541 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo new file mode 100644 index 00000000..b2a902c5 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo new file mode 100644 index 00000000..962c5086 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo new file mode 100644 index 00000000..f08d1727 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo new file mode 100644 index 00000000..cf68c914 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo new file mode 100644 index 00000000..0426fc60 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo new file mode 100644 index 00000000..f692f2fc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo new file mode 100644 index 00000000..978d2c25 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer new file mode 100644 index 00000000..09b5bb82 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer new file mode 100644 index 00000000..eac10e60 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer new file mode 100644 index 00000000..a8dba7ee --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer new file mode 100644 index 00000000..b560ccee --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer new file mode 100644 index 00000000..2c81124f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/Visu/Package.vcp new file mode 100644 index 00000000..2f2ed4b6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Package.vcp @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page new file mode 100644 index 00000000..0414c92b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page new file mode 100644 index 00000000..17c7bb60 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page @@ -0,0 +1,1179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page new file mode 100644 index 00000000..e5328343 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page @@ -0,0 +1,549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page new file mode 100644 index 00000000..be33f100 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page @@ -0,0 +1,2138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page new file mode 100644 index 00000000..40ccd867 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page @@ -0,0 +1,1122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page new file mode 100644 index 00000000..45b0cc33 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page @@ -0,0 +1,1431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page new file mode 100644 index 00000000..9227bde2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page @@ -0,0 +1,3344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page new file mode 100644 index 00000000..b09056b3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page @@ -0,0 +1,2522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page new file mode 100644 index 00000000..db355888 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -0,0 +1,2048 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page new file mode 100644 index 00000000..6c7ea18f --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page @@ -0,0 +1,774 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page new file mode 100644 index 00000000..a99c913a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page @@ -0,0 +1,2577 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page new file mode 100644 index 00000000..fc3a18da --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page @@ -0,0 +1,1931 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page new file mode 100644 index 00000000..2d406f5c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page @@ -0,0 +1,1092 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page new file mode 100644 index 00000000..e18fcb8c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page @@ -0,0 +1,1961 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page new file mode 100644 index 00000000..3d734f6c --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page @@ -0,0 +1,2314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page new file mode 100644 index 00000000..42ff373b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -0,0 +1,1101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page b/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page new file mode 100644 index 00000000..34b2271b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page @@ -0,0 +1,639 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page new file mode 100644 index 00000000..62009ab7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page new file mode 100644 index 00000000..918e36d9 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page @@ -0,0 +1,1421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page new file mode 100644 index 00000000..ce575a83 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page @@ -0,0 +1,1189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page new file mode 100644 index 00000000..efc327d7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page @@ -0,0 +1,869 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page new file mode 100644 index 00000000..ee5ce0da --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page @@ -0,0 +1,2630 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page new file mode 100644 index 00000000..8cefc4d0 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -0,0 +1,3428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page new file mode 100644 index 00000000..7fab0d4e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -0,0 +1,640 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Palette.vcr b/mappFramework/Logical/VC4/Visu/Palette.vcr new file mode 100644 index 00000000..d8d2d534 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Palette.vcr @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs b/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs new file mode 100644 index 00000000..0505caa6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs @@ -0,0 +1,2316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs b/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs new file mode 100644 index 00000000..1c2947ad --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs @@ -0,0 +1,2316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp new file mode 100644 index 00000000..9cb0f78a --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp new file mode 100644 index 00000000..ffbf3fd7 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp new file mode 100644 index 00000000..3df19472 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp new file mode 100644 index 00000000..a24c81c3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr b/mappFramework/Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr new file mode 100644 index 00000000..de6336f2 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr @@ -0,0 +1,1247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TouchPads/MpNavigationPad_ver.tpr b/mappFramework/Logical/VC4/Visu/TouchPads/MpNavigationPad_ver.tpr new file mode 100644 index 00000000..01034f01 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TouchPads/MpNavigationPad_ver.tpr @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/TouchPads/MpNumPad.tpr b/mappFramework/Logical/VC4/Visu/TouchPads/MpNumPad.tpr new file mode 100644 index 00000000..4f2b73a3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/TouchPads/MpNumPad.tpr @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre new file mode 100644 index 00000000..9f8e9378 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Availability.trd b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Availability.trd new file mode 100644 index 00000000..abab05cf --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Availability.trd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_OEE.trd b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_OEE.trd new file mode 100644 index 00000000..d6197334 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_OEE.trd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Performance.trd b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Performance.trd new file mode 100644 index 00000000..26e37ba1 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Performance.trd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Quality.trd b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Quality.trd new file mode 100644 index 00000000..79f86ee9 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Quality.trd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Trends/TrendData.tdc b/mappFramework/Logical/VC4/Visu/Trends/TrendData.tdc new file mode 100644 index 00000000..c45b41b0 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Trends/TrendData.tdc @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/VCObject.vc b/mappFramework/Logical/VC4/Visu/VCObject.vc new file mode 100644 index 00000000..62918c3d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/VCObject.vc @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Vc.dob b/mappFramework/Logical/VC4/Visu/Vc.dob new file mode 100644 index 00000000..f2929629 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Vc.dob @@ -0,0 +1,7 @@ + + + + + VCObject.vc + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk new file mode 100644 index 00000000..9a080ac6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -0,0 +1,2501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg new file mode 100644 index 00000000..2602c2e3 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp new file mode 100644 index 00000000..4b870a86 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp new file mode 100644 index 00000000..80a7db74 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -0,0 +1,432 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp new file mode 100644 index 00000000..a5bf5e89 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp new file mode 100644 index 00000000..4251e8bd --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp new file mode 100644 index 00000000..18ecf16e --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp new file mode 100644 index 00000000..29af5fe8 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp new file mode 100644 index 00000000..a4914556 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp new file mode 100644 index 00000000..fd9fd267 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp new file mode 100644 index 00000000..3bab4dc5 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp new file mode 100644 index 00000000..c9e49e11 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp new file mode 100644 index 00000000..091fe6de --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp new file mode 100644 index 00000000..a16e98a9 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp new file mode 100644 index 00000000..2667cab7 --- /dev/null +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo new file mode 100644 index 00000000..a31ecc7c --- /dev/null +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso new file mode 100644 index 00000000..9f3f4303 --- /dev/null +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -0,0 +1,16000 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/Internal.dso b/mappFramework/Logical/VCShared/DataSources/Internal.dso new file mode 100644 index 00000000..5bfa9c91 --- /dev/null +++ b/mappFramework/Logical/VCShared/DataSources/Internal.dso @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr new file mode 100644 index 00000000..6291a5f3 --- /dev/null +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp new file mode 100644 index 00000000..d862b1dd --- /dev/null +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp new file mode 100644 index 00000000..a9f2a806 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp new file mode 100644 index 00000000..c04608ff --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp new file mode 100644 index 00000000..879fadd1 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp new file mode 100644 index 00000000..3850269c --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp new file mode 100644 index 00000000..e6d2ec97 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp new file mode 100644 index 00000000..1449a1f3 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp new file mode 100644 index 00000000..c667e41c --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp new file mode 100644 index 00000000..f9fec707 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp new file mode 100644 index 00000000..87b8beb6 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp new file mode 100644 index 00000000..c0719fe6 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp new file mode 100644 index 00000000..c4ca5bb3 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp new file mode 100644 index 00000000..20a557ff --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp new file mode 100644 index 00000000..bc98c4c5 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp new file mode 100644 index 00000000..601d3afc --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp new file mode 100644 index 00000000..eff8f332 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp new file mode 100644 index 00000000..a2ebec46 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp new file mode 100644 index 00000000..d8e3b9ed --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp new file mode 100644 index 00000000..b7d22892 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp new file mode 100644 index 00000000..154a479b --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp new file mode 100644 index 00000000..9cc970d8 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp new file mode 100644 index 00000000..ee0322c8 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp new file mode 100644 index 00000000..a6b3ce90 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp new file mode 100644 index 00000000..bb3536d5 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp new file mode 100644 index 00000000..db8f34bd --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp new file mode 100644 index 00000000..dae21557 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp new file mode 100644 index 00000000..c3bd3f01 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp new file mode 100644 index 00000000..42934d4e --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp new file mode 100644 index 00000000..26baab87 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp new file mode 100644 index 00000000..55b4f7e3 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp new file mode 100644 index 00000000..4b74bf12 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp new file mode 100644 index 00000000..5ec9e3a6 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp new file mode 100644 index 00000000..bbfebcd8 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp new file mode 100644 index 00000000..bc066e4f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp new file mode 100644 index 00000000..c9070fa4 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp new file mode 100644 index 00000000..417e2622 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp new file mode 100644 index 00000000..b5e67162 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp new file mode 100644 index 00000000..7620559e --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp new file mode 100644 index 00000000..d06375a9 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp new file mode 100644 index 00000000..b54b0cab --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp new file mode 100644 index 00000000..6021ba64 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp new file mode 100644 index 00000000..2077a44f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp new file mode 100644 index 00000000..47fb1c3f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp new file mode 100644 index 00000000..dba63514 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp new file mode 100644 index 00000000..79f46747 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp new file mode 100644 index 00000000..f046bc91 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp new file mode 100644 index 00000000..9c8475e8 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp new file mode 100644 index 00000000..dc4ce9d0 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp new file mode 100644 index 00000000..034c8b00 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp new file mode 100644 index 00000000..bd809c6f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp new file mode 100644 index 00000000..104e8a65 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp new file mode 100644 index 00000000..c895eeab --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp new file mode 100644 index 00000000..6abce760 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp new file mode 100644 index 00000000..1fc9be9a --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp new file mode 100644 index 00000000..1bb39903 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp new file mode 100644 index 00000000..875fff16 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -0,0 +1,1649 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp new file mode 100644 index 00000000..10ac29cf --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp new file mode 100644 index 00000000..cb262c44 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp new file mode 100644 index 00000000..98b505c3 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp new file mode 100644 index 00000000..30492c45 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp new file mode 100644 index 00000000..fc49ab86 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp new file mode 100644 index 00000000..5e73ed85 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp new file mode 100644 index 00000000..972bc566 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp new file mode 100644 index 00000000..facf1ffb --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp new file mode 100644 index 00000000..31d96dc4 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp new file mode 100644 index 00000000..b25096dc --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp new file mode 100644 index 00000000..27b2fbfc --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp new file mode 100644 index 00000000..a6aab6bb --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp new file mode 100644 index 00000000..a1576894 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp new file mode 100644 index 00000000..863c1c34 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp new file mode 100644 index 00000000..18c3a5af --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp new file mode 100644 index 00000000..eaab3c24 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp new file mode 100644 index 00000000..cb516990 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp new file mode 100644 index 00000000..1d4af627 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp new file mode 100644 index 00000000..468c8dfd --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp new file mode 100644 index 00000000..69e9aa1f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp new file mode 100644 index 00000000..0f451903 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp new file mode 100644 index 00000000..05fa1d8d --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp new file mode 100644 index 00000000..5bc4fef2 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp new file mode 100644 index 00000000..f8fd0b3d --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp new file mode 100644 index 00000000..2c97560f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp new file mode 100644 index 00000000..4a3f8273 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp new file mode 100644 index 00000000..4ac5aa86 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp new file mode 100644 index 00000000..6ae173e5 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp new file mode 100644 index 00000000..6b57c4a5 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp new file mode 100644 index 00000000..18f7ec2b --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp new file mode 100644 index 00000000..d50a4d0a --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp new file mode 100644 index 00000000..a495de81 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp new file mode 100644 index 00000000..318f30f9 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp new file mode 100644 index 00000000..29b6625f --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp new file mode 100644 index 00000000..16fa06df --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp new file mode 100644 index 00000000..186a5fbf --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp new file mode 100644 index 00000000..fcff784d --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug new file mode 100644 index 00000000..6f36239b --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug new file mode 100644 index 00000000..c50e3d53 --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug new file mode 100644 index 00000000..de9e787d --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug new file mode 100644 index 00000000..b8da98f6 --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug new file mode 100644 index 00000000..ad19d93c --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug new file mode 100644 index 00000000..eb30e49c --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug new file mode 100644 index 00000000..7cb2a7a1 --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug new file mode 100644 index 00000000..5124e035 --- /dev/null +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/VC/PS2-Keyboard.dis b/mappFramework/Physical/Simulation/PC/VC/PS2-Keyboard.dis new file mode 100644 index 00000000..c9744984 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/VC/PS2-Keyboard.dis @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/VC/Package.pkg b/mappFramework/Physical/Simulation/PC/VC/Package.pkg new file mode 100644 index 00000000..e906aaff --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/VC/Package.pkg @@ -0,0 +1,7 @@ + + + + + PS2-Keyboard.dis + + \ No newline at end of file From 38e532240e7821cd18fae3d595e34286c86d7e5f Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Fri, 9 Dec 2022 17:03:25 +0300 Subject: [PATCH 004/159] - Query page completed. - AlarmX hmi codes belong just VC4 anymore. - 'RefactorOp' of the UserX codes was done to UserX Page of VC4. --- .../AlarmX/AlarmMgr/AlarmMgr.st | 6 +- .../AlarmX/AlarmMgr/AlarmMgr.typ | 3 +- .../AlarmX/AlarmMgr/AlarmMgr.var | 4 + .../AlarmX/AlarmMgr/ExecuteQuery.st | 8 +- .../AlarmX/AlarmMgr/HMIActions.st | 51 +- .../VC4/Visu/Layers/MpBackground.layer | 2 +- .../Visu/Layers/MpUserXSignMessageBox.layer | 2 +- mappFramework/Logical/VC4/Visu/Package.vcp | 1 + .../VC4/Visu/Pages/MpAlarmXHistory.page | 114 +- .../Logical/VC4/Visu/Pages/MpAlarmXList.page | 39 + .../Logical/VC4/Visu/Pages/MpAlarmXQuery.page | 466 ++ .../VC4/Visu/Pages/MpUserXLoginUI.page | 50 +- .../Visu/Pages/MpUserXManagerUI_Roles.page | 180 +- .../Visu/Pages/MpUserXManagerUI_Users.page | 292 +- .../VC4/Visu/Pages/mapp1StartPage.page | 4 +- .../Logical/VC4/Visu/VirtualKeys.vcvk | 16 + .../VCShared/DataSources/DataSource.dso | 6262 +++++++++-------- mappFramework/Logical/VCShared/Package.vcp | 3 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 6 + .../TextGroups/MpAlarmXListUIQuery.txtgrp | 31 + .../VCShared/TextGroups/MpUserXGroups.txtgrp | 20 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 8 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 6 +- mappFramework/Physical/Simulation/PC/Cpu.sw | 47 +- 24 files changed, 4187 insertions(+), 3434 deletions(-) create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index 8e0bcbb8..57a7860d 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -56,10 +56,12 @@ PROGRAM _CYCLIC // Call all cyclic actions AlarmHandling; - GetBacktraceInformation; ExecuteQuery; QueryTableConfig; AlarmSampleFub; + HistoryExportLayer; + FirstInCycle; + // Check if any reactions are active. // Typically the MpAlarmXCheckReaction() function is called from other tasks within the application. @@ -105,7 +107,7 @@ PROGRAM _CYCLIC MpAlarmXListUI_0(); MpAlarmXHistory_0(); MpAlarmXHistoryUI_0(); - + END_PROGRAM PROGRAM _EXIT diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ index 81dd7fb9..e8b9287c 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ @@ -20,6 +20,7 @@ TYPE AlarmFilterCfg : STRING[1000]; (*Filter configuration for the AlarmList widget*) TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the alarm query Table*) Query : AlarmQueryHMIType; (*Structure which rearranges the query data from AlarmQuery into a structure of arrays for easy connection to the Table widget*) + HistoryExportLayer : USINT; END_STRUCT; AlarmQueryType : STRUCT (*Structure for query results and status*) State : ActiveAlarmStateEnum; (*State variable for the query state machine*) @@ -35,7 +36,7 @@ TYPE Name : ARRAY[0..MAX_QUERY_RESULTS]OF STRING[80]; (*Name array*) Message : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[255]; (*Message array*) AdditionalInfo : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[255]; (*AdditionalInformation1 array*) - TimeStamp : ARRAY[0..MAX_QUERY_RESULTS]OF DATE_AND_TIME; (*TimeStamp array*) + TimeStamp : ARRAY[0..MAX_QUERY_RESULTS]OF STRING[80]; (*TimeStamp array*) Code : ARRAY[0..MAX_QUERY_RESULTS]OF UDINT; (*Code array*) Severity : ARRAY[0..MAX_QUERY_RESULTS]OF UDINT; (*Severity array*) QueryCount : USINT; (*Count of query results for building the query table configuration string*) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var index 25adba28..6f24b836 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var @@ -14,6 +14,8 @@ VAR CONSTANT MAX_SAFETY_DOOR : UINT := 5; (*Maximum number of safety doors (Value+1)*) MAX_ESTOP : UINT := 2; (*Maximum number of emergency stops (Value+1)*) LOCAL_FOLDER : STRING[10] := 'AlarmX'; (*Folder name on the file device for AlarmX files*) + DISPLAY : USINT := 0; + HIDE : USINT := 1; END_VAR (*Structure Types*) VAR @@ -30,4 +32,6 @@ VAR CommissioningModeActive : {REDUND_UNREPLICABLE} BOOL; (*Boolean value to enable commissioning mode. By default, this inhibits the Alarms[0] alarm*) i : USINT; (*Index for loops*) MaxIndex : USINT; (*Maximum index for the alarm list*) + isFirstInCycle : BOOL := TRUE; END_VAR +(**) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/ExecuteQuery.st index 8ab58b32..fb0a52bb 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/ExecuteQuery.st @@ -54,10 +54,12 @@ ACTION ExecuteQuery: HmiAlarmX.Status.Query.Name[i] := AlarmQuery.Alarms[i].Name; HmiAlarmX.Status.Query.Message[i] := AlarmQuery.Alarms[i].Message; HmiAlarmX.Status.Query.AdditionalInfo[i] := AlarmQuery.Alarms[i].AdditionalInfo; - HmiAlarmX.Status.Query.TimeStamp[i] := AlarmQuery.Alarms[i].TimeStamp; + + HmiAlarmX.Status.Query.TimeStamp[i] := DT_TO_STRING(AlarmQuery.Alarms[i].TimeStamp); + HmiAlarmX.Status.Query.TimeStamp[i] := RIGHT(HmiAlarmX.Status.Query.TimeStamp[i], 19); + HmiAlarmX.Status.Query.Severity[i] := AlarmQuery.Alarms[i].Severity; END_FOR - - + END_ACTION diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st index 92464a6c..dc8521ca 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st @@ -1,34 +1,3 @@ -ACTION GetBacktraceInformation: - - MaxIndex := (SIZEOF(MpAlarmXListUIConnect.AlarmList.InstanceID)/SIZEOF(MpAlarmXListUIConnect.AlarmList.InstanceID[0])) - 1; - // Find selected alarm in order to show backtrace information - FOR i := 0 TO MaxIndex DO - IF (MpAlarmXCore_0.PendingAlarms = 0) THEN - // No pending alarms, reset instance id - HmiAlarmX.Parameters.InstanceID := 0; - EXIT; - END_IF - - IF (MpAlarmXListUIConnect.AlarmList.InstanceID[i] = HmiAlarmX.Parameters.InstanceID) THEN - // Found an alarm - MpAlarmXListUIConnect.AlarmList.SelectedIndex := i; - EXIT; - END_IF - - IF (MpAlarmXListUIConnect.AlarmList.InstanceID[i] = 0) THEN - IF (MpAlarmXCore_0.PendingAlarms > i) THEN - // Alarm not found, list can page up - MpAlarmXListUIConnect.AlarmList.PageUp := TRUE; - END_IF - EXIT; - ELSIF (i = MaxIndex) THEN - // Alarm not found, list can page down - MpAlarmXListUIConnect.AlarmList.PageDown := TRUE; - END_IF - END_FOR - -END_ACTION - ACTION QueryTableConfig: // Configure visible list @@ -43,3 +12,23 @@ ACTION QueryTableConfig: brsstrcat(ADR(HmiAlarmX.Status.TableConfig[0]), ADR(',"to":19, "visible":false}]}')); END_ACTION + +ACTION HistoryExportLayer: + + // AlarmHistory Export process has been completed + IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN + HmiAlarmX.Status.HistoryExportLayer := DISPLAY; + END_IF + +END_ACTION + +ACTION FirstInCycle: + + // The system has been opened just now + IF isFirstInCycle THEN + isFirstInCycle := FALSE; + + HmiAlarmX.Status.HistoryExportLayer := HIDE; + END_IF + +END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer index 09b5bb82..337c1304 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer @@ -84,7 +84,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer index 2c81124f..86729dc1 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer @@ -33,7 +33,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/Visu/Package.vcp index 2f2ed4b6..dff1095a 100644 --- a/mappFramework/Logical/VC4/Visu/Package.vcp +++ b/mappFramework/Logical/VC4/Visu/Package.vcp @@ -399,6 +399,7 @@ + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page index 0414c92b..185b66a1 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page @@ -960,7 +960,7 @@ - + @@ -1075,13 +1075,12 @@ - + - @@ -1102,6 +1101,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page index 17c7bb60..5d9b4eb4 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page @@ -1002,6 +1002,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1120,6 +1146,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page new file mode 100644 index 00000000..f4093fb3 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page index efc327d7..37bb6241 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page @@ -113,12 +113,12 @@ - + - + @@ -129,7 +129,7 @@ - + @@ -157,14 +157,14 @@ - + - + @@ -176,7 +176,7 @@ - + @@ -195,7 +195,7 @@ - + @@ -207,7 +207,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -353,7 +353,7 @@ - + @@ -369,7 +369,7 @@ - + @@ -467,7 +467,7 @@ - + @@ -481,7 +481,7 @@ - + @@ -495,7 +495,7 @@ - + @@ -550,7 +550,7 @@ - + @@ -587,7 +587,7 @@ - + @@ -604,7 +604,7 @@ - + @@ -621,7 +621,7 @@ - + @@ -641,7 +641,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -685,7 +685,7 @@ - + @@ -715,7 +715,7 @@ - + @@ -732,7 +732,7 @@ - + @@ -803,7 +803,7 @@ - + @@ -818,7 +818,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page index ee5ce0da..61c71b80 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page @@ -136,7 +136,7 @@ - + @@ -172,12 +172,12 @@ - + - + @@ -245,7 +245,7 @@ - + @@ -268,7 +268,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -398,7 +398,7 @@ - + @@ -415,7 +415,7 @@ - + @@ -432,7 +432,7 @@ - + @@ -449,7 +449,7 @@ - + @@ -466,7 +466,7 @@ - + @@ -483,7 +483,7 @@ - + @@ -500,7 +500,7 @@ - + @@ -517,7 +517,7 @@ - + @@ -550,7 +550,7 @@ - + @@ -610,11 +610,11 @@ - + - + @@ -625,7 +625,7 @@ - + @@ -635,7 +635,7 @@ - + @@ -645,7 +645,7 @@ - + @@ -674,7 +674,7 @@ - + @@ -684,7 +684,7 @@ - + @@ -701,7 +701,7 @@ - + @@ -711,7 +711,7 @@ - + @@ -778,10 +778,10 @@ - + - + @@ -842,7 +842,7 @@ - + @@ -870,7 +870,7 @@ - + @@ -885,7 +885,7 @@ - + @@ -900,7 +900,7 @@ - + @@ -915,7 +915,7 @@ - + @@ -930,7 +930,7 @@ - + @@ -945,7 +945,7 @@ - + @@ -961,7 +961,7 @@ - + @@ -1029,9 +1029,9 @@ - + - + @@ -1059,7 +1059,7 @@ - + @@ -1133,11 +1133,11 @@ - + - + @@ -1162,11 +1162,11 @@ - + - + @@ -1191,11 +1191,11 @@ - + - + @@ -1250,11 +1250,11 @@ - + - + @@ -1279,11 +1279,11 @@ - + - + @@ -1323,11 +1323,11 @@ - + - + @@ -1382,11 +1382,11 @@ - + - + @@ -1411,11 +1411,11 @@ - + - + @@ -1470,11 +1470,11 @@ - + - + @@ -1499,11 +1499,11 @@ - + - + @@ -1590,7 +1590,7 @@ - + @@ -1606,7 +1606,7 @@ - + @@ -1621,7 +1621,7 @@ - + @@ -1637,7 +1637,7 @@ - + @@ -1707,7 +1707,7 @@ - + @@ -1735,7 +1735,7 @@ - + @@ -1809,11 +1809,11 @@ - + - + @@ -1838,11 +1838,11 @@ - + - + @@ -1867,11 +1867,11 @@ - + - + @@ -1926,11 +1926,11 @@ - + - + @@ -1955,11 +1955,11 @@ - + - + @@ -1999,11 +1999,11 @@ - + - + @@ -2058,11 +2058,11 @@ - + - + @@ -2087,11 +2087,11 @@ - + - + @@ -2146,11 +2146,11 @@ - + - + @@ -2175,11 +2175,11 @@ - + - + @@ -2254,7 +2254,7 @@ - + @@ -2269,7 +2269,7 @@ - + @@ -2298,7 +2298,7 @@ - + @@ -2328,7 +2328,7 @@ - + @@ -2345,7 +2345,7 @@ - + @@ -2416,7 +2416,7 @@ - + @@ -2431,7 +2431,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index 8cefc4d0..ce8e21ec 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -96,7 +96,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -147,7 +147,7 @@ - + @@ -228,7 +228,7 @@ - + @@ -244,7 +244,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -271,7 +271,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -425,22 +425,22 @@ - + - + - + - + @@ -450,7 +450,7 @@ - + @@ -461,7 +461,7 @@ - + @@ -478,7 +478,7 @@ - + @@ -489,7 +489,7 @@ - + @@ -506,7 +506,7 @@ - + @@ -517,7 +517,7 @@ - + @@ -534,7 +534,7 @@ - + @@ -545,7 +545,7 @@ - + @@ -574,7 +574,7 @@ - + @@ -585,7 +585,7 @@ - + @@ -604,7 +604,7 @@ - + @@ -615,7 +615,7 @@ - + @@ -636,12 +636,12 @@ - + - + @@ -701,10 +701,10 @@ - + - + @@ -765,7 +765,7 @@ - + @@ -780,7 +780,7 @@ - + @@ -795,7 +795,7 @@ - + @@ -810,7 +810,7 @@ - + @@ -825,7 +825,7 @@ - + @@ -853,7 +853,7 @@ - + @@ -868,7 +868,7 @@ - + @@ -883,7 +883,7 @@ - + @@ -898,7 +898,7 @@ - + @@ -913,7 +913,7 @@ - + @@ -929,7 +929,7 @@ - + @@ -1027,7 +1027,7 @@ - + @@ -1041,7 +1041,7 @@ - + @@ -1068,7 +1068,7 @@ - + @@ -1110,7 +1110,7 @@ - + @@ -1165,7 +1165,7 @@ - + @@ -1202,7 +1202,7 @@ - + @@ -1219,7 +1219,7 @@ - + @@ -1236,7 +1236,7 @@ - + @@ -1252,7 +1252,7 @@ - + @@ -1264,7 +1264,7 @@ - + @@ -1291,21 +1291,21 @@ - + - + - + - + @@ -1335,21 +1335,21 @@ - + - + - + - + @@ -1379,21 +1379,21 @@ - + - + - + - + @@ -1423,21 +1423,21 @@ - + - + - + - + @@ -1467,21 +1467,21 @@ - + - + - + - + @@ -1511,21 +1511,21 @@ - + - + - + - + @@ -1555,21 +1555,21 @@ - + - + - + - + @@ -1588,7 +1588,7 @@ - + @@ -1603,7 +1603,7 @@ - + @@ -1619,7 +1619,7 @@ - + @@ -1716,7 +1716,7 @@ - + @@ -1730,7 +1730,7 @@ - + @@ -1744,7 +1744,7 @@ - + @@ -1771,7 +1771,7 @@ - + @@ -1798,21 +1798,21 @@ - + - + - + - + @@ -1900,7 +1900,7 @@ - + @@ -1937,7 +1937,7 @@ - + @@ -1954,7 +1954,7 @@ - + @@ -1971,7 +1971,7 @@ - + @@ -1988,7 +1988,7 @@ - + @@ -2004,7 +2004,7 @@ - + @@ -2016,7 +2016,7 @@ - + @@ -2043,21 +2043,21 @@ - + - + - + - + @@ -2087,21 +2087,21 @@ - + - + - + - + @@ -2131,21 +2131,21 @@ - + - + - + - + @@ -2175,21 +2175,21 @@ - + - + - + - + @@ -2219,21 +2219,21 @@ - + - + - + - + @@ -2263,21 +2263,21 @@ - + - + - + - + @@ -2296,7 +2296,7 @@ - + @@ -2311,7 +2311,7 @@ - + @@ -2327,7 +2327,7 @@ - + @@ -2391,7 +2391,7 @@ - + @@ -2404,11 +2404,11 @@ - + - + @@ -2418,7 +2418,7 @@ - + @@ -2576,7 +2576,7 @@ - + @@ -2591,7 +2591,7 @@ - + @@ -2607,7 +2607,7 @@ - + @@ -2623,7 +2623,7 @@ - + @@ -2652,7 +2652,7 @@ - + @@ -2682,7 +2682,7 @@ - + @@ -2763,7 +2763,7 @@ - + @@ -2796,7 +2796,7 @@ - + @@ -2867,7 +2867,7 @@ - + @@ -2882,7 +2882,7 @@ - + @@ -2898,7 +2898,7 @@ - + @@ -2914,7 +2914,7 @@ - + @@ -2978,7 +2978,7 @@ - + @@ -3040,7 +3040,7 @@ - + @@ -3055,7 +3055,7 @@ - + @@ -3071,7 +3071,7 @@ - + @@ -3101,7 +3101,7 @@ - + @@ -3118,7 +3118,7 @@ - + @@ -3189,7 +3189,7 @@ - + @@ -3204,7 +3204,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 7fab0d4e..78e0cafe 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -342,7 +342,7 @@ - + @@ -352,7 +352,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index 9a080ac6..28ae4dc8 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -2498,4 +2498,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 9f3f4303..daa9b383 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -11826,43 +11826,251 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - @@ -11881,7 +12089,7 @@ - + @@ -11890,7 +12098,7 @@ - + @@ -11936,111 +12144,29 @@ - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -12064,120 +12190,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12196,88 +12208,50 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + + - + - + - + + - + - + - + + - + - + - - - - - - - - - @@ -12294,112 +12268,16 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -12408,279 +12286,456 @@ - + - + - + - - - + - - - - - + + - + + - + - + - + + - + - + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12689,1686 +12744,507 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - + + - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + - + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - - + - + - + + - - + + + - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + @@ -14377,7 +13253,7 @@ - + @@ -14386,723 +13262,962 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + - + - - - - - - - - - - - - - + + + + + + - - + - + - - - + + - + - - - + + - + - - - + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - - - - + + - + - + + - - + + + + + - - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + - - - + - - - - - - + + - - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + - - + - + - + + + - - - - - - - - - - - - + + + + + + + + + + + + + - + + - + - + - + + - + - + - + + - + - + - + - - - - - - - - - - - - - - + - + - + - + - + + - + - + + + + + + + + + + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - + + + - + + - + - - + + + - + + - + - - + + + - + - - + + + - + - + - - + + + - + - + - - + + + - + - - + + + - + - - + + + - + + + + + + + + + + + + + + - + - - + + + + + + + + + - + - + - - + - + - + + - + - - + + + + + + + + + + + + + + - + + - + - + - + - + - + - + - + - + - + - + - + @@ -15111,7 +14226,7 @@ - + @@ -15120,7 +14235,7 @@ - + @@ -15129,7 +14244,7 @@ - + @@ -15138,42 +14253,72 @@ - + + - + + + - + - + + - + + + - + - - - + + - - - - - + + + + + + + + + + + + - + + - + - + + + + + + + + + + + + + + + + + + @@ -15182,7 +14327,7 @@ - + @@ -15191,34 +14336,65 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + + + + + + + + + + + + + + @@ -15227,7 +14403,7 @@ - + @@ -15236,7 +14412,218 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15245,7 +14632,7 @@ - + @@ -15254,54 +14641,206 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15310,7 +14849,7 @@ - + @@ -15319,678 +14858,1181 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + - + + - - + + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - + + - + - - - - - - - - - - - - - - - - - - - + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + - + - - + + + - + - + - - + + + - + - + - - + + + - + - + - - + + + - + - + - - + + + + - + + + - + - - + + + + - + + + - + - + + + + + + - + + - + - - + + + - + - - + + + - + - + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - + - + - - + + + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + + + + + + + + + + + + + + - + - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + - + - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + - + - - - - - - - - - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index d862b1dd..f432fdf6 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + @@ -98,6 +98,7 @@ + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index f9fec707..1de874ed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -6,11 +6,17 @@ + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp new file mode 100644 index 00000000..d79cd0c6 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index f8fd0b3d..c7436082 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 318f30f9..526efd53 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -6,7 +6,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -34,7 +34,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 29b6625f..a7feac2c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index e074c21c..d145154b 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -39,7 +39,47 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -67,6 +107,10 @@ + + + + @@ -108,5 +152,6 @@ + \ No newline at end of file From a499a612bfebd66719b4ea25ee080de992721ac6 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Mon, 12 Dec 2022 12:55:37 +0300 Subject: [PATCH 005/159] Alarm query config action have been deleted. Because VC4 does not need it. --- .../Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st | 1 - .../Infrastructure/AlarmX/AlarmMgr/HMIActions.st | 15 --------------- 2 files changed, 16 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index 57a7860d..035b61b1 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -57,7 +57,6 @@ PROGRAM _CYCLIC // Call all cyclic actions AlarmHandling; ExecuteQuery; - QueryTableConfig; AlarmSampleFub; HistoryExportLayer; FirstInCycle; diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st index dc8521ca..1e5b6288 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st @@ -1,18 +1,3 @@ -ACTION QueryTableConfig: - - // Configure visible list - HmiAlarmX.Status.TableConfig[0] := '{ "specRows": [{"from":'; - HmiAlarmX.Status.Query.QueryCount := 0; - FOR i := 0 TO 9 DO - IF HmiAlarmX.Status.Query.Message[i] <> "" THEN - HmiAlarmX.Status.Query.QueryCount := i + 1; - END_IF - END_FOR - brsitoa((HmiAlarmX.Status.Query.QueryCount), ADR(HmiAlarmX.Status.TableConfig[0]) + brsstrlen(ADR(HmiAlarmX.Status.TableConfig[0]))); - brsstrcat(ADR(HmiAlarmX.Status.TableConfig[0]), ADR(',"to":19, "visible":false}]}')); - -END_ACTION - ACTION HistoryExportLayer: // AlarmHistory Export process has been completed From 75c2b22406c736ec076794c96651609a6baa690c Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Mon, 19 Dec 2022 19:43:34 +0300 Subject: [PATCH 006/159] UserX tested and completed. --- .../Logical/VC4/Visu/Pages/mapp1StartPage.page | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 78e0cafe..851aac19 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -50,10 +50,10 @@ - + - + @@ -342,7 +342,7 @@ - + @@ -352,7 +352,7 @@ - + @@ -402,7 +402,7 @@ - + @@ -412,7 +412,7 @@ - + From bab75367989d2ea1ffce15aa2263d5a30b63a659 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Wed, 21 Dec 2022 11:36:16 +0300 Subject: [PATCH 007/159] UserX File Dupliacte bugs fixed and tested. Completed. --- .../AlarmX/AlarmMgr/AlarmMgr.st | 3 +- .../AlarmX/AlarmMgr/AlarmMgr.typ | 9 - .../AlarmX/AlarmMgr/HMIActions.st | 16 +- .../UserX/UserXMgr/HMIAction.st | 61 ++++++- .../UserX/UserXMgr/UserXMgr.typ | 2 + .../UserX/UserXMgr/UserXMgr.var | 3 + .../Visu/Pages/MpUserXManagerUI_Users.page | 163 +++++++++++++++++- .../Logical/VC4/Visu/VirtualKeys.vcvk | 16 ++ .../VCShared/DataSources/DataSource.dso | 35 +++- mappFramework/Logical/VCShared/Package.vcp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 4 +- .../PC/Connectivity/OpcUA/AlarmMgr.uad | 6 +- 12 files changed, 288 insertions(+), 32 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index 035b61b1..fa636164 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -58,8 +58,7 @@ PROGRAM _CYCLIC AlarmHandling; ExecuteQuery; AlarmSampleFub; - HistoryExportLayer; - FirstInCycle; + HMIActions; // Check if any reactions are active. diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ index e8b9287c..edf55909 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ @@ -4,21 +4,12 @@ TYPE AlarmHmiInterfaceType : STRUCT (*Structure to hold commands and status from the HMI*) Commands : AlarmCommandsType; (*HMI commands*) Status : {REDUND_UNREPLICABLE} AlarmStatusType; (*HMI status*) - Parameters : AlarmParametersType; (*HMI parameters*) END_STRUCT; AlarmCommandsType : STRUCT (*Structure to hold the commands from the HMI*) ExportAlarms : BOOL; (*Triggers an alarm export of the alarm history. Connected to a button on the HMI. *) RunQuery : BOOL; (*Triggers the query to run. Connected to a button on the HMI. *) END_STRUCT; - AlarmParametersType : STRUCT (*Structure to hold the parameters from the HMI*) - InstanceID : UINT; (*The instanceID of the alarm that was most recently clicked in the AlarmList. Set by an eventbinding in mapp View*) - END_STRUCT; AlarmStatusType : STRUCT (*Structure to hold status information to the mapp View HMI. (This structure is not compatible/relevant if you are using a VC4 visualization)*) - AlarmHistSortCfg : STRING[1000]; (*Sort configuration property for the AlarmHistory widget *) - AlarmHistFilterCfg : STRING[1000]; (*Filter configuration property for the AlarmHistory widget*) - AlarmSortCfg : STRING[1000]; (*Sort configuration for the AlarmList widget*) - AlarmFilterCfg : STRING[1000]; (*Filter configuration for the AlarmList widget*) - TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the alarm query Table*) Query : AlarmQueryHMIType; (*Structure which rearranges the query data from AlarmQuery into a structure of arrays for easy connection to the Table widget*) HistoryExportLayer : USINT; END_STRUCT; diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st index 1e5b6288..629143c8 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st @@ -1,19 +1,21 @@ -ACTION HistoryExportLayer: +ACTION HMIActions: // AlarmHistory Export process has been completed IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN HmiAlarmX.Status.HistoryExportLayer := DISPLAY; END_IF + + // if the system has been opened just now + IF isFirstInCycle THEN + FirstInCycle; + END_IF; + END_ACTION ACTION FirstInCycle: - // The system has been opened just now - IF isFirstInCycle THEN - isFirstInCycle := FALSE; - - HmiAlarmX.Status.HistoryExportLayer := HIDE; - END_IF + isFirstInCycle := FALSE; + HmiAlarmX.Status.HistoryExportLayer := HIDE; END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st index 586bba43..c19651d7 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st @@ -36,6 +36,9 @@ ACTION HMIAction: UserXCheckState := USERX_NEW_EXPORT; END_IF + // Check Export Req. + HmiUserX.Export := UserXMgrUIConnect.Export.Dialog.Confirm; + //Duplicate file checks HmiUserX.FileDuplicate := FALSE; FOR i := 0 TO ((SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames) / SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames[0])) - 1) DO @@ -49,10 +52,66 @@ ACTION HMIAction: IF HmiUserX.FileDuplicate AND (HmiUserX.ConfirmOverwrite) THEN UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; HmiUserX.Export := FALSE; - HmiUserX.ConfirmOverwrite := FALSE; + + ELSIF HmiUserX.FileDuplicate AND (HmiUserX.CancelOverwrite) THEN + UserXMgrUIConnect.Export.Dialog.Cancel := TRUE; + HmiUserX.Export := FALSE; + ELSIF NOT HmiUserX.FileDuplicate AND HmiUserX.Export THEN UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; HmiUserX.Export := FALSE; END_IF + + // Manage Export Layer + (*Close*) + IF UserXMgrUIConnect.Export.Dialog.Cancel OR UserXMgrUIConnect.Export.Dialog.Confirm THEN + UserXMgrUIConnect.Export.Dialog.LayerStatus := HIDE; + END_IF + + // Manage FileDupliacte Layer + (*Close*) + IF HmiUserX.CancelOverwrite OR HmiUserX.ConfirmOverwrite THEN + HmiUserX.FileDuplicateLayerStatus := HIDE; + END_IF + (*Open*) + IF EDGEPOS(HmiUserX.FileDuplicate) THEN + HmiUserX.FileDuplicateLayerStatus := DISPLAY; + END_IF; + + + // if the system has been opened just now + IF isFirstInCycle THEN + FirstInCycle; + END_IF; + END_ACTION + +ACTION FirstInCycle: + + isFirstInCycle := FALSE; + HmiUserX.FileDuplicateLayerStatus := HIDE; + +END_ACTION + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ index 38f3310f..540529f3 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ @@ -13,6 +13,8 @@ TYPE NewFileName : STRING[255]; Export : BOOL; ConfirmOverwrite : BOOL; + CancelOverwrite : BOOL; FileDuplicate : BOOL; + FileDuplicateLayerStatus : USINT; END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var index be11019b..c27c93a4 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var @@ -7,6 +7,8 @@ VAR END_VAR (*Constants*) VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; USER_LIST_MAX_SELECTION : USINT := 20; (*Maxiumum selections on the User List *) USER_LIST_RANGE_START : USINT := 0; (*Range start (used for UserXMgrUIConnect)*) USER_LIST_RANGE_END : USINT := 20; (*Range end (used for UserXMgrUIConnect)*) @@ -26,4 +28,5 @@ END_VAR (*Variables*) VAR temp : STRING[255]; (*Temporary string holder for checking file names*) + isFirstInCycle : BOOL := TRUE; END_VAR diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index ce8e21ec..b6bdb862 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -2904,6 +2904,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2918,7 +3071,7 @@ - + @@ -3033,12 +3186,13 @@ - + + @@ -3048,12 +3202,13 @@ - + + @@ -3075,7 +3230,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index 28ae4dc8..cc623d27 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -2514,4 +2514,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index daa9b383..4c41f68c 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -15842,7 +15842,7 @@ - + @@ -15851,7 +15851,7 @@ - + @@ -16035,6 +16035,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index f432fdf6..6a576c35 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index a7feac2c..79fed17e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -79,7 +79,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad index 0cb1f32c..139c48c1 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad @@ -1,6 +1,6 @@  - + @@ -53,9 +53,7 @@ - - - + From a14d7a39d31ac5d4fe7c7958823699c845cb76d0 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Wed, 21 Dec 2022 14:38:30 +0300 Subject: [PATCH 008/159] UserX and AlarmX functions tested one more. Theese look like working without any problem. --- .../UserX/UserXMgr/HMIAction.st | 29 +++++++++++++------ .../UserX/UserXMgr/UserXMgr.var | 4 +-- .../Visu/Pages/MpUserXManagerUI_Users.page | 14 ++++----- .../VCShared/DataSources/DataSource.dso | 18 ++++++------ 4 files changed, 35 insertions(+), 30 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st index c19651d7..b4715f8e 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st @@ -1,6 +1,6 @@ ACTION HMIAction: - // Check if the file name has already been used + CASE UserXCheckState OF USERX_START: IF NOT UserXMgrUIConnect.Import.ShowDialog THEN @@ -35,9 +35,10 @@ ACTION HMIAction: IF UserXMgrUIConnect.Export.ShowDialog THEN UserXCheckState := USERX_NEW_EXPORT; END_IF - - // Check Export Req. - HmiUserX.Export := UserXMgrUIConnect.Export.Dialog.Confirm; + + + + //Duplicate file checks HmiUserX.FileDuplicate := FALSE; @@ -52,30 +53,40 @@ ACTION HMIAction: IF HmiUserX.FileDuplicate AND (HmiUserX.ConfirmOverwrite) THEN UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; HmiUserX.Export := FALSE; + HmiUserX.FileDuplicate := FALSE; ELSIF HmiUserX.FileDuplicate AND (HmiUserX.CancelOverwrite) THEN UserXMgrUIConnect.Export.Dialog.Cancel := TRUE; HmiUserX.Export := FALSE; + HmiUserX.FileDuplicate := FALSE; ELSIF NOT HmiUserX.FileDuplicate AND HmiUserX.Export THEN UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; HmiUserX.Export := FALSE; + + ELSIF NOT HmiUserX.FileDuplicate AND UserXMgrUIConnect.Export.Dialog.Cancel THEN + UserXMgrUIConnect.Export.Dialog.Cancel := TRUE; + HmiUserX.Export := FALSE; END_IF - - // Manage Export Layer + + + // Manage FileExport Layer (*Close*) - IF UserXMgrUIConnect.Export.Dialog.Cancel OR UserXMgrUIConnect.Export.Dialog.Confirm THEN + IF UserXMgrUIConnect.Export.Dialog.Cancel OR HmiUserX.Export THEN UserXMgrUIConnect.Export.Dialog.LayerStatus := HIDE; - END_IF + END_IF + // Manage FileDupliacte Layer (*Close*) IF HmiUserX.CancelOverwrite OR HmiUserX.ConfirmOverwrite THEN + HmiUserX.CancelOverwrite := FALSE; + HmiUserX.ConfirmOverwrite := FALSE; HmiUserX.FileDuplicateLayerStatus := HIDE; END_IF (*Open*) - IF EDGEPOS(HmiUserX.FileDuplicate) THEN + IF HmiUserX.Export AND HmiUserX.FileDuplicate THEN HmiUserX.FileDuplicateLayerStatus := DISPLAY; END_IF; diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var index c27c93a4..0b2e1e3d 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var @@ -22,11 +22,9 @@ VAR HmiUserX : HMIUser_Typ; END_VAR (*Enumerations*) -VAR - UserXCheckState : enumCheckState; (*Used by the HMI Action to check for duplicate files*) -END_VAR (*Variables*) VAR + UserXCheckState : enumCheckState; temp : STRING[255]; (*Temporary string holder for checking file names*) isFirstInCycle : BOOL := TRUE; END_VAR diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index b6bdb862..d0c9d341 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -3027,13 +3027,12 @@ - + - @@ -3043,13 +3042,12 @@ - + - @@ -3186,13 +3184,12 @@ - + - @@ -3202,15 +3199,14 @@ - + - - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 4c41f68c..dcdf8257 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -15851,15 +15851,6 @@ - - - - - - - - - @@ -16065,6 +16056,15 @@ + + + + + + + + + From de5306df5263e932e9fd7df3d8757118e969bef7 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Thu, 5 Jan 2023 09:30:34 +0300 Subject: [PATCH 009/159] AlarmX page change buttons added. FileMgr added but it is not completed yet. --- .../VC4/Visu/Pages/MpAlarmXHistory.page | 43 +- .../Logical/VC4/Visu/Pages/MpAlarmXList.page | 2 +- .../Visu/Pages/MpAlarmXListUI_Backtrace.page | 38 + .../Logical/VC4/Visu/Pages/MpAlarmXQuery.page | 40 +- .../VC4/Visu/Pages/MpFileManagerUI.page | 116 +- .../VC4/Visu/Pages/mapp1StartPage.page | 4 +- .../Logical/VC4/Visu/VirtualKeys.vcvk | 20 +- .../VCShared/DataSources/DataSource.dso | 4579 ++++++++--------- .../TextGroups/MpFileManagerUIDevices.txtgrp | 20 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 20 +- .../TextGroups/MpFileManagerUIText.txtgrp | 6 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 6 +- 12 files changed, 2503 insertions(+), 2391 deletions(-) diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page index 185b66a1..3f515b1c 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page @@ -929,7 +929,7 @@ - + @@ -968,7 +968,7 @@ - + @@ -983,6 +983,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1086,6 +1112,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page index 5d9b4eb4..776bf0db 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page @@ -1013,7 +1013,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page index e5328343..ff872317 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page @@ -520,6 +520,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -535,6 +560,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page index f4093fb3..82226ffe 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page @@ -375,7 +375,7 @@ - + @@ -390,6 +390,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -421,6 +446,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index db355888..fddf5254 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -195,7 +195,7 @@ - + @@ -295,7 +295,7 @@ - + @@ -326,7 +326,7 @@ - + @@ -357,7 +357,7 @@ - + @@ -388,7 +388,7 @@ - + @@ -419,7 +419,7 @@ - + @@ -479,7 +479,7 @@ - + @@ -488,7 +488,7 @@ - + @@ -562,7 +562,7 @@ - + @@ -581,10 +581,10 @@ - + - + @@ -789,7 +789,7 @@ - + @@ -805,7 +805,7 @@ - + @@ -836,7 +836,7 @@ - + @@ -867,7 +867,7 @@ - + @@ -898,7 +898,7 @@ - + @@ -929,7 +929,7 @@ - + @@ -1294,7 +1294,7 @@ - + @@ -1309,7 +1309,7 @@ - + @@ -1324,7 +1324,7 @@ - + @@ -1339,7 +1339,7 @@ - + @@ -1354,7 +1354,7 @@ - + @@ -1369,7 +1369,7 @@ - + @@ -1384,7 +1384,7 @@ - + @@ -1399,7 +1399,7 @@ - + @@ -1414,7 +1414,7 @@ - + @@ -1430,7 +1430,7 @@ - + @@ -1446,7 +1446,7 @@ - + @@ -1462,7 +1462,7 @@ - + @@ -1478,7 +1478,7 @@ - + @@ -1494,7 +1494,7 @@ - + @@ -1509,7 +1509,7 @@ - + @@ -1524,7 +1524,7 @@ - + @@ -1540,7 +1540,7 @@ - + @@ -1556,7 +1556,7 @@ - + @@ -1572,7 +1572,7 @@ - + @@ -1588,7 +1588,7 @@ - + @@ -1604,7 +1604,7 @@ - + @@ -1620,7 +1620,7 @@ - + @@ -1636,7 +1636,7 @@ - + @@ -1652,7 +1652,7 @@ - + @@ -1668,7 +1668,7 @@ - + @@ -1684,7 +1684,7 @@ - + @@ -1699,7 +1699,7 @@ - + @@ -1714,7 +1714,7 @@ - + @@ -1730,7 +1730,7 @@ - + @@ -1746,7 +1746,7 @@ - + @@ -1762,7 +1762,7 @@ - + @@ -1778,7 +1778,7 @@ - + @@ -1794,7 +1794,7 @@ - + @@ -1810,7 +1810,7 @@ - + @@ -1826,7 +1826,7 @@ - + @@ -1842,7 +1842,7 @@ - + @@ -1858,7 +1858,7 @@ - + @@ -1887,7 +1887,7 @@ - + @@ -1933,7 +1933,7 @@ - + @@ -2004,7 +2004,7 @@ - + @@ -2019,7 +2019,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 851aac19..60ba5641 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -222,7 +222,7 @@ - + @@ -232,7 +232,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index cc623d27..bf443ac5 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -2298,10 +2298,6 @@ - - - - @@ -2530,4 +2526,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index dcdf8257..d96dab99 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -10522,747 +10522,280 @@ - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -11286,7 +10819,7 @@ - + @@ -11298,27 +10831,27 @@ - + - + - + - + - + @@ -11330,7 +10863,7 @@ - + @@ -11343,10 +10876,10 @@ - + - + @@ -11358,7 +10891,7 @@ - + @@ -11370,15 +10903,17 @@ - + + - - + + + - + @@ -11390,7 +10925,7 @@ - + @@ -11402,7 +10937,7 @@ - + @@ -11414,34 +10949,20 @@ - + - - - - + + - + - + - - - - - - - - - - - - @@ -11452,7 +10973,7 @@ - + @@ -11464,17 +10985,7 @@ - - - - - - - - - - - + @@ -11486,19 +10997,17 @@ - + - - - - + + - + - + @@ -11510,235 +11019,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -14036,46 +13317,594 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14084,7 +13913,7 @@ - + @@ -14093,65 +13922,206 @@ - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -14160,7 +14130,7 @@ - + @@ -14170,36 +14140,113 @@ - - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + @@ -14208,7 +14255,7 @@ - + @@ -14281,7 +14328,7 @@ - + @@ -14291,107 +14338,124 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -14424,182 +14488,220 @@ - + - - + - + - + - - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -14620,7 +14722,7 @@ - + @@ -14653,7 +14755,7 @@ - + @@ -14663,162 +14765,228 @@ - + - - + - + - + + - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -14849,123 +15017,94 @@ - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14974,16 +15113,17 @@ - + - + + - + - + @@ -14992,16 +15132,75 @@ - + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15010,7 +15209,7 @@ - + @@ -15019,165 +15218,66 @@ - + - - - - + - + - + - - - - + - + - + - - + + - - + - + - + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - + @@ -15186,7 +15286,7 @@ - + @@ -15195,731 +15295,511 @@ - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + - + + - + - + - + - + - + - + - - - + + + + + + - + + - + - + - + - + - + - + - - - + + + + + + - + + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + + + - + + - + - + - + - + - + - + - - - + + + + + + - + + - + - + - + - + - + - + - - - + + + + + + - + + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + - + + - + - + - + - + - + - + - - - + + + + + + - + + - + - + - + - + - + - + - - - + + + + + + - + + - + - + - + - + - + - + - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + @@ -15928,7 +15808,7 @@ - + @@ -15937,7 +15817,7 @@ - + @@ -15946,7 +15826,7 @@ - + @@ -15955,116 +15835,221 @@ - - - - - + + - + + + - + - + + - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + - + - - - - - - - - - - - - - - - - - - - - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index 7620559e..b4dd8597 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index d06375a9..97a33fe9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index 2077a44f..1353b2c0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -6,7 +6,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 5e73ed85..0ab182e2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -6,7 +6,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + From 3b1c4bb580cfef8f66f3b53811a0ae8af8c772b3 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Mon, 9 Jan 2023 21:10:24 +0300 Subject: [PATCH 010/159] - AlarmX updated as requested, - UserX updated as requested, - FileMng is almost done. --- .../AlarmX/AlarmMgr/AlarmMgr.st | 4 + .../AlarmX/AlarmMgr/AlarmMgr.var | 1 - .../AlarmX/AlarmMgr/HMIActions.st | 21 +- .../File/FileMgr/FIFOOperations.st | 12 + .../Infrastructure/File/FileMgr/FileMgr.st | 4 + .../Infrastructure/File/FileMgr/FileMgr.typ | 25 +- .../Infrastructure/File/FileMgr/FileMgr.var | 7 + .../Infrastructure/File/FileMgr/HMIActions.st | 89 +- .../UserX/UserXMgr/HMIAction.st | 26 +- .../Infrastructure/UserX/UserXMgr/UserXMgr.st | 3 + .../UserX/UserXMgr/UserXMgr.var | 1 - mappFramework/Logical/VC4/Visu/Package.vcp | 1 - .../VC4/Visu/Pages/MpAlarmXHistory.page | 2 +- .../VC4/Visu/Pages/MpFileManagerUI.page | 1147 ++++++++++------- .../VC4/Visu/Pages/MpUserXLoginUI.page | 869 ------------- .../Visu/Pages/MpUserXManagerUI_Users.page | 764 +++++++++-- .../VC4/Visu/Pages/mapp1StartPage.page | 43 - .../Logical/VC4/Visu/VirtualKeys.vcvk | 108 +- .../VCShared/DataSources/DataSource.dso | 403 +++--- mappFramework/Logical/VCShared/Package.vcp | 3 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 63 + .../TextGroups/MpFileManagerUIText.txtgrp | 27 + .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 4 +- .../UserRoleSystem/User.user | 4 +- 24 files changed, 1800 insertions(+), 1831 deletions(-) delete mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index fa636164..d005b287 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -15,6 +15,10 @@ PROGRAM _INIT DirCreate_0(enable := FALSE); END_IF + + // if the system has been opened just now + HMIAction_Init; + // Call action to intialize alarm samples AlarmSampleInit; diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var index 6f24b836..148a676f 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var @@ -32,6 +32,5 @@ VAR CommissioningModeActive : {REDUND_UNREPLICABLE} BOOL; (*Boolean value to enable commissioning mode. By default, this inhibits the Alarms[0] alarm*) i : USINT; (*Index for loops*) MaxIndex : USINT; (*Maximum index for the alarm list*) - isFirstInCycle : BOOL := TRUE; END_VAR (**) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st index 629143c8..7a9e9a84 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st @@ -1,21 +1,16 @@ +ACTION HMIAction_Init: + + HmiAlarmX.Status.HistoryExportLayer := HIDE; + +END_ACTION + + + ACTION HMIActions: // AlarmHistory Export process has been completed IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN HmiAlarmX.Status.HistoryExportLayer := DISPLAY; END_IF - - - // if the system has been opened just now - IF isFirstInCycle THEN - FirstInCycle; - END_IF; END_ACTION - -ACTION FirstInCycle: - - isFirstInCycle := FALSE; - HmiAlarmX.Status.HistoryExportLayer := HIDE; - -END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st index f1c3de2e..405516eb 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st @@ -257,6 +257,18 @@ ACTION FIFOOperation: END_IF END_IF END_CASE + + + // declare devName +// HmiFile.Status.DeviceDataProvider[0] := 'mappRecipeFiles'; +// HmiFile.Status.DeviceDataProvider[1] := 'mappAuditFiles'; +// HmiFile.Status.DeviceDataProvider[2] := 'mappReportFiles'; +// HmiFile.Status.DeviceDataProvider[3] := 'mappDataFiles'; +// HmiFile.Status.DeviceDataProvider[4] := 'mappBackupFiles'; +// HmiFile.Status.DeviceDataProvider[5] := 'mappAlarmXFiles'; +// HmiFile.Status.DeviceDataProvider[6] := 'mappUserXFiles'; +// HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Status.DeviceDataProviderSelectedIndex]; +// // Save current archive setings to retain variable FifoSettingsRetain := HmiFile.Parameters.Fifo; diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st index bfa3eee9..0149bd44 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st @@ -73,6 +73,7 @@ PROGRAM _INIT HmiFile.Status.DeviceDataProvider[5] := '{"value":"mappAlarmXFiles","text":"mappAlarmXFiles"}'; HmiFile.Status.DeviceDataProvider[6] := '{"value":"mappUserXFiles","text":"mappUserXFiles"}'; + // Calculate offset for potential additional USB devices FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN @@ -83,6 +84,9 @@ PROGRAM _INIT // Restored the retained values to the FIFO settings HmiFile.Parameters.Fifo := FifoSettingsRetain; + // if the system has been opened just now + HMIActions_Init; + END_PROGRAM PROGRAM _CYCLIC diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ index 62efb93f..ad3234f5 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ @@ -10,19 +10,33 @@ TYPE Delete : BOOL; (*Delete file*) FolderUp : BOOL; (*Move back/up a folder*) EnterFolder : BOOL; (*Move forward/down a folder*) - MultiSelect : BOOL; (*Enables the ability to select multiple files*) CheckFolder : BOOL; (*Run the FIFO check to determine if old files should be deleted*) + FileList : FileHmiCommandsFileListType; END_STRUCT; + FileHmiCommandsFileListType : STRUCT + PageDown : BOOL; + PageUp : BOOL; + StepDown : BOOL; + StepUp : BOOL; + Clicked : BOOL; + END_STRUCT; +END_TYPE + +(**) + +TYPE FileHmiParametersType : STRUCT (*Structure to hold parameters for the mapp View HMI*) OldSortOrder : MpFileManagerUISortOrderEnum; (*Previous sord order*) Fifo : FileHmiParaFifoType; (*Parameters for the FIFO feature (first-in-first-out)*) END_STRUCT; FileHmiStatusType : STRUCT (*Structure to hold status information from the mapp View HMI*) FileNames : ARRAY[0..49]OF STRING[80]; (*List of file names*) - TimeStamps : ARRAY[0..49]OF DATE_AND_TIME; (*List of time stamps for file names*) + TimeStamps : ARRAY[0..49]OF STRING[80]; (*List of time stamps for file names*) + InfoFile : FileHmiStatusInfoFileType; Type : ARRAY[0..49]OF DINT; (*List of file types*) - Size : ARRAY[0..49]OF UDINT; (*List of file sizes*) + Size : ARRAY[0..49]OF STRING[80]; (*List of file sizes*) DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for the file device selector*) + DeviceDataProviderSelectedIndex : USINT; FifoSelect : ARRAY[0..MAX_IDX_FILE_DEV]OF DINT; (*Indicate FIFO selected file device*) DeviceName : STRING[50]; (*File device name*) FileName : STRING[255]; (*Fille name*) @@ -34,6 +48,11 @@ TYPE FolderSize : REAL; (*Size of currently selected folder*) SelectedIndex : USINT; (*Selected index in the file list*) FifoConfigEnable : BOOL; (*Disable FIFO access or change confirmation when FIFO is active*) + FIFOLayerStatus : USINT; + END_STRUCT; + FileHmiStatusInfoFileType : STRUCT + isSelected : ARRAY[0..49]OF STRING[1]; + Type : ARRAY[0..49]OF STRING[80]; END_STRUCT; FileHmiParaFifoType : STRUCT (*Parameters for the FIFO feature (first-in-first-out)*) Enable : BOOL; (*FIFO enable*) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var index 873bcaf9..2fa54be4 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var @@ -40,3 +40,10 @@ END_VAR VAR RETAIN FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR +(**) +(**) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 380af494..95644556 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -1,3 +1,9 @@ +ACTION HMIActions_Init: + HmiFile.Status.FIFOLayerStatus := HIDE; +END_ACTION + + + ACTION FormatDeviceDataProvider: // Select CF device if USB device is not available @@ -38,7 +44,7 @@ ACTION FormatDeviceDataProvider: ELSIF (IdentStatus = 3324) THEN DeviceListCount := DeviceListCount + 1; IF DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1) THEN - //Delete entries past the actual number of devices found + //Delete entries past the actual number of devices found FOR i:=Index TO MaxDeviceNameIndex DO MpFileManagerUIConnect.DeviceList.DeviceNames[i] := ''; END_FOR @@ -77,6 +83,7 @@ ACTION FormatDeviceDataProvider: END_IF END_FOR + END_ACTION ACTION FileManager: @@ -87,8 +94,14 @@ ACTION FileManager: FOR i := 0 TO ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1) DO HmiFile.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; - HmiFile.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; - HmiFile.Status.Size[i] := REAL_TO_UDINT(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); + + // Time Stamp + HmiFile.Status.TimeStamps[i] := DT_TO_STRING(MpFileManagerUIConnect.File.List.Items[i].LastModified); + HmiFile.Status.TimeStamps[i] := RIGHT(HmiFile.Status.TimeStamps[i], 19); + + + // file size + HmiFile.Status.Size[i] := REAL_TO_STRING(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); // Set image array based on item type IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN @@ -98,21 +111,42 @@ ACTION FileManager: ELSE HmiFile.Status.Type[i] := FILE; END_IF - - // Set file selected when the table is clicked Single and MultiSelect - IF (MpFileManagerUIConnect.File.MultiSelect = FALSE) THEN - MpFileManagerUIConnect.File.List.Items[i].IsSelected := (i = HmiFile.Status.SelectedIndex); - ELSIF (MpFileManagerUIConnect.File.MultiSelect = TRUE) AND (HmiFile.Commands.MultiSelect = TRUE) THEN - IF (i = HmiFile.Status.SelectedIndex) AND NOT MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN - MpFileManagerUIConnect.File.List.Items[i].IsSelected := TRUE; - HmiFile.Commands.MultiSelect := FALSE; - ELSIF (i = HmiFile.Status.SelectedIndex) AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN - MpFileManagerUIConnect.File.List.Items[i].IsSelected := FALSE; - HmiFile.Commands.MultiSelect := FALSE; - END_IF + + + + // Fill file info string arrays + IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN + HmiFile.Status.InfoFile.Type[i] := 'FOLDER'; + ELSE (* file *) + HmiFile.Status.InfoFile.Type[i] := 'FILE'; + END_IF + IF MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + HmiFile.Status.InfoFile.isSelected[i] := '+'; + ELSE + HmiFile.Status.InfoFile.isSelected[i] := '-'; END_IF + + + // if file not exist clear objects + IF HmiFile.Status.FileNames[i] = '' THEN + HmiFile.Status.TimeStamps[i] := ''; + HmiFile.Status.Size[i] := ''; + HmiFile.Status.InfoFile.isSelected[i] := ''; + HmiFile.Status.InfoFile.Type[i] := ''; + END_IF; + + END_FOR + + // Mutli selection + IF (MpFileManagerUIConnect.File.MultiSelect = FALSE) THEN + MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected := TRUE; + ELSIF (MpFileManagerUIConnect.File.MultiSelect = TRUE) AND HmiFile.Commands.FileList.Clicked THEN + MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected := NOT MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected; + END_IF + HmiFile.Commands.FileList.Clicked := FALSE; + // Read currently selected device name for HMI IF (MpFileManagerUIConnect.DeviceList.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0]))) THEN @@ -142,5 +176,30 @@ ACTION FileManager: END_IF HmiFile.Status.BackButton := (FolderDepthCount > 0); + + + // File SelectedIndex manager + IF HmiFile.Commands.FileList.PageUp THEN + HmiFile.Commands.FileList.PageUp := FALSE; + HmiFile.Status.SelectedIndex := 0; + + ELSIF HmiFile.Commands.FileList.PageDown THEN + HmiFile.Commands.FileList.PageDown := FALSE; + HmiFile.Status.SelectedIndex := ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1); + + ELSIF HmiFile.Commands.FileList.StepUp THEN + HmiFile.Commands.FileList.StepUp := FALSE; + IF HmiFile.Status.SelectedIndex <> 0 THEN + HmiFile.Status.SelectedIndex := HmiFile.Status.SelectedIndex - 1; + END_IF + + ELSIF HmiFile.Commands.FileList.StepDown THEN + HmiFile.Commands.FileList.StepDown := FALSE; + IF HmiFile.Status.SelectedIndex <> ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1) THEN + HmiFile.Status.SelectedIndex := HmiFile.Status.SelectedIndex + 1; + END_IF + END_IF + + END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st index b4715f8e..09e3462f 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st @@ -1,3 +1,10 @@ +ACTION HMIAction_Init: + + HmiUserX.FileDuplicateLayerStatus := HIDE; + UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := HIDE; + +END_ACTION + ACTION HMIAction: @@ -90,20 +97,19 @@ ACTION HMIAction: HmiUserX.FileDuplicateLayerStatus := DISPLAY; END_IF; - - // if the system has been opened just now - IF isFirstInCycle THEN - FirstInCycle; - END_IF; + //Password change require manage + IF EDGENEG(UserXLoginUIConnect.MessageBox.ErrorNumber = 28690) THEN + IF UserXLoginUIConnect.MessageBox.Confirm THEN + + UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := DISPLAY; + UserXLoginUIConnect.ChangePassword.ShowDialog := TRUE; + END_IF + END_IF END_ACTION -ACTION FirstInCycle: - - isFirstInCycle := FALSE; - HmiUserX.FileDuplicateLayerStatus := HIDE; -END_ACTION + diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st index a97dab37..5d5efccb 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st @@ -15,6 +15,9 @@ PROGRAM _INIT DirCreate_0(enable := FALSE); END_IF + // if the system has been opened just now + HMIAction_Init; + // Initialize mapp function blocks UserXMgrUIConnect.User.Create.Lock := FALSE; UserXMgrUIConnect.User.Lock := FALSE; diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var index 0b2e1e3d..954c6344 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var @@ -26,5 +26,4 @@ END_VAR VAR UserXCheckState : enumCheckState; temp : STRING[255]; (*Temporary string holder for checking file names*) - isFirstInCycle : BOOL := TRUE; END_VAR diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/Visu/Package.vcp index dff1095a..b40f65a7 100644 --- a/mappFramework/Logical/VC4/Visu/Package.vcp +++ b/mappFramework/Logical/VC4/Visu/Package.vcp @@ -394,7 +394,6 @@ - diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page index 3f515b1c..199a88a3 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page @@ -161,7 +161,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index fddf5254..4af098c6 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -56,7 +56,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -290,161 +290,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -570,7 +415,7 @@ - + @@ -589,7 +434,7 @@ - + @@ -632,7 +477,7 @@ - + @@ -675,7 +520,7 @@ - + @@ -800,161 +645,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1281,6 +971,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1339,7 +1291,7 @@ - + @@ -1369,7 +1321,7 @@ - + @@ -1418,39 +1370,37 @@ - + - + - - + - + - + - - + - + @@ -1462,11 +1412,11 @@ - + - + @@ -1477,12 +1427,12 @@ - - + + - + @@ -1493,94 +1443,16 @@ - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1699,7 +1571,7 @@ - + @@ -1714,7 +1586,7 @@ - + @@ -1782,83 +1654,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + @@ -2025,24 +1832,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page deleted file mode 100644 index 37bb6241..00000000 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXLoginUI.page +++ /dev/null @@ -1,869 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index d0c9d341..e520ee54 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -61,7 +61,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -151,14 +151,14 @@ - + - + @@ -167,7 +167,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -197,7 +197,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -243,7 +243,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -290,7 +290,7 @@ - + @@ -307,7 +307,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -339,7 +339,7 @@ - + @@ -644,7 +644,7 @@ - + @@ -752,6 +752,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -859,35 +965,353 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -898,11 +1322,11 @@ - + - + @@ -913,7 +1337,7 @@ - + @@ -933,7 +1357,7 @@ - + @@ -1623,7 +2047,7 @@ - + @@ -2317,6 +2741,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2331,7 +2904,7 @@ - + @@ -2640,7 +3213,7 @@ - + @@ -2656,7 +3229,7 @@ - + @@ -2918,7 +3491,7 @@ - + @@ -3069,7 +3642,7 @@ - + @@ -3226,7 +3799,7 @@ - + @@ -3364,11 +3937,41 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3442,16 +4045,16 @@ - + - + - + @@ -3460,25 +4063,25 @@ - + - - + + - - - - + + + + - + - + @@ -3486,8 +4089,8 @@ - - + + @@ -3514,7 +4117,7 @@ - + @@ -3533,7 +4136,7 @@ - + @@ -3575,5 +4178,10 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 60ba5641..426a168b 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -296,36 +296,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -474,19 +444,6 @@ - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index bf443ac5..cfd48964 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -1414,26 +1414,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -1530,26 +1510,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -2006,10 +1966,6 @@ - - - - @@ -2066,14 +2022,6 @@ - - - - - - - - @@ -2082,22 +2030,6 @@ - - - - - - - - - - - - - - - - @@ -2378,10 +2310,6 @@ - - - - @@ -2394,10 +2322,6 @@ - - - - @@ -2542,4 +2466,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index d96dab99..a25d4ee7 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -13305,15 +13305,6 @@ - - - - - - - - - @@ -15500,24 +15491,6 @@ - - - - - - - - - - - - - - - - - - @@ -15531,24 +15504,6 @@ - - - - - - - - - - - - - - - - - - @@ -15562,24 +15517,6 @@ - - - - - - - - - - - - - - - - - - @@ -15593,24 +15530,6 @@ - - - - - - - - - - - - - - - - - - @@ -15624,24 +15543,6 @@ - - - - - - - - - - - - - - - - - - @@ -15655,24 +15556,6 @@ - - - - - - - - - - - - - - - - - - @@ -15686,24 +15569,6 @@ - - - - - - - - - - - - - - - - - - @@ -15717,24 +15582,6 @@ - - - - - - - - - - - - - - - - - - @@ -15748,24 +15595,6 @@ - - - - - - - - - - - - - - - - - - @@ -15779,62 +15608,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -16051,6 +15826,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 6a576c35..819b17b6 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + @@ -99,6 +99,7 @@ + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp new file mode 100644 index 00000000..be7bb2ec --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index 1353b2c0..da8f841a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -67,6 +67,15 @@ + + + + + + + + + @@ -90,6 +99,15 @@ + + + + + + + + + @@ -113,5 +131,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 79fed17e..8e1040d6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -80,7 +80,7 @@ - + @@ -134,7 +134,7 @@ - + diff --git a/mappFramework/Physical/Simulation/PC/AccessAndSecurity/UserRoleSystem/User.user b/mappFramework/Physical/Simulation/PC/AccessAndSecurity/UserRoleSystem/User.user index edbfcaed..7307e023 100644 --- a/mappFramework/Physical/Simulation/PC/AccessAndSecurity/UserRoleSystem/User.user +++ b/mappFramework/Physical/Simulation/PC/AccessAndSecurity/UserRoleSystem/User.user @@ -16,14 +16,14 @@ - + - + From 13751d404a6574318a3ccfb336e2d48038661dc0 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Mon, 16 Jan 2023 15:14:19 +0300 Subject: [PATCH 011/159] FileMng is completed. RecipeMng almost finished there are a few things to fix. --- .../File/FileMgr/FIFOOperations.st | 34 +- .../Infrastructure/File/FileMgr/FileMgr.st | 18 +- .../Infrastructure/File/FileMgr/FileMgr.typ | 7 +- .../Infrastructure/File/FileMgr/HMIActions.st | 21 +- .../Visu/BitmapGroups/MpFileFIFOIcons.bmgrp | 15 + .../VC4/Visu/Bitmaps/MpFileScan.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpFileScan.png | Bin 0 -> 136 bytes mappFramework/Logical/VC4/Visu/Package.vcp | 2 + .../VC4/Visu/Pages/MpFileManagerUI.page | 286 ++- .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 72 +- .../VC4/Visu/Pages/mapp1StartPage.page | 8 +- .../VCShared/DataSources/DataSource.dso | 1749 +++++++++-------- .../TextGroups/MpFileManagerUIText.txtgrp | 4 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 40 +- .../FileFIFO/FileDialog_FIFO.content | 2 +- .../FileDialog_FIFO_dialog_content.binding | 5 +- 16 files changed, 1315 insertions(+), 963 deletions(-) create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.png diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st index 405516eb..912206b7 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st @@ -1,13 +1,16 @@ ACTION FIFOOperation: R_TRIG_CheckStatus(CLK := (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CHANGE_DIR) OR - (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CHANGE_DEVICE) OR - (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CREATE)); + (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CHANGE_DEVICE) OR + (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CREATE)); IF R_TRIG_CheckStatus.Q OR TON_ScanFolder.Q THEN HmiFile.Commands.CheckFolder := HmiFile.Parameters.Fifo.Enable; END_IF + //device name declare + HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Parameters.Fifo.SelectedDevice]; + brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO IF (HmiFile.Parameters.Fifo.DeviceName = MpFileManagerUIConnect.DeviceList.DeviceNames[i]) AND HmiFile.Parameters.Fifo.Enable THEN @@ -259,19 +262,24 @@ ACTION FIFOOperation: END_CASE - // declare devName -// HmiFile.Status.DeviceDataProvider[0] := 'mappRecipeFiles'; -// HmiFile.Status.DeviceDataProvider[1] := 'mappAuditFiles'; -// HmiFile.Status.DeviceDataProvider[2] := 'mappReportFiles'; -// HmiFile.Status.DeviceDataProvider[3] := 'mappDataFiles'; -// HmiFile.Status.DeviceDataProvider[4] := 'mappBackupFiles'; -// HmiFile.Status.DeviceDataProvider[5] := 'mappAlarmXFiles'; -// HmiFile.Status.DeviceDataProvider[6] := 'mappUserXFiles'; -// HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Status.DeviceDataProviderSelectedIndex]; -// + + // FIFO objects manage + IF HmiFile.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES THEN + HmiFile.Status.FIFOLayerObjects.MaxFolderSizeVisiblity := HIDE; + HmiFile.Status.FIFOLayerObjects.MaxNumberOfFilesVisiblity := DISPLAY; + + ELSIF HmiFile.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER THEN + HmiFile.Status.FIFOLayerObjects.MaxFolderSizeVisiblity := DISPLAY; + HmiFile.Status.FIFOLayerObjects.MaxNumberOfFilesVisiblity := HIDE; + + ELSE + HmiFile.Status.FIFOLayerObjects.MaxFolderSizeVisiblity := HIDE; + HmiFile.Status.FIFOLayerObjects.MaxNumberOfFilesVisiblity := HIDE; + END_IF + // Save current archive setings to retain variable - FifoSettingsRetain := HmiFile.Parameters.Fifo; + FifoSettingsRetain := HmiFile.Parameters.Fifo; // Timer to scan file device in intervals TON_ScanFolder(PT := DINT_TO_TIME(HmiFile.Parameters.Fifo.ScanInterval * 60000)); diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st index 0149bd44..481b424a 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st @@ -65,14 +65,13 @@ PROGRAM _INIT PathCheck.Folder[5] := 'AlarmX'; PathCheck.Folder[6] := 'UserX'; - HmiFile.Status.DeviceDataProvider[0] := '{"value":"mappRecipeFiles","text":"mappRecipeFiles"}'; - HmiFile.Status.DeviceDataProvider[1] := '{"value":"mappAuditFiles","text":"mappAuditFiles"}'; - HmiFile.Status.DeviceDataProvider[2] := '{"value":"mappReportFiles","text":"mappReportFiles"}'; - HmiFile.Status.DeviceDataProvider[3] := '{"value":"mappDataFiles","text":"mappDataFiles"}'; - HmiFile.Status.DeviceDataProvider[4] := '{"value":"mappBackupFiles","text":"mappBackupFiles"}'; - HmiFile.Status.DeviceDataProvider[5] := '{"value":"mappAlarmXFiles","text":"mappAlarmXFiles"}'; - HmiFile.Status.DeviceDataProvider[6] := '{"value":"mappUserXFiles","text":"mappUserXFiles"}'; - + HmiFile.Status.DeviceDataProvider[0] := 'mappRecipeFiles'; + HmiFile.Status.DeviceDataProvider[1] := 'mappAuditFiles'; + HmiFile.Status.DeviceDataProvider[2] := 'mappReportFiles'; + HmiFile.Status.DeviceDataProvider[3] := 'mappDataFiles'; + HmiFile.Status.DeviceDataProvider[4] := 'mappBackupFiles'; + HmiFile.Status.DeviceDataProvider[5] := 'mappAlarmXFiles'; + HmiFile.Status.DeviceDataProvider[6] := 'mappUserXFiles'; // Calculate offset for potential additional USB devices FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO @@ -83,7 +82,7 @@ PROGRAM _INIT // Restored the retained values to the FIFO settings HmiFile.Parameters.Fifo := FifoSettingsRetain; - + // if the system has been opened just now HMIActions_Init; @@ -106,6 +105,7 @@ PROGRAM _CYCLIC // Call function block MpFileManagerUI_0(); + MpFileManagerUI_FIFO(); END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ index ad3234f5..edee8e32 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ @@ -36,7 +36,6 @@ TYPE Type : ARRAY[0..49]OF DINT; (*List of file types*) Size : ARRAY[0..49]OF STRING[80]; (*List of file sizes*) DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for the file device selector*) - DeviceDataProviderSelectedIndex : USINT; FifoSelect : ARRAY[0..MAX_IDX_FILE_DEV]OF DINT; (*Indicate FIFO selected file device*) DeviceName : STRING[50]; (*File device name*) FileName : STRING[255]; (*Fille name*) @@ -49,6 +48,11 @@ TYPE SelectedIndex : USINT; (*Selected index in the file list*) FifoConfigEnable : BOOL; (*Disable FIFO access or change confirmation when FIFO is active*) FIFOLayerStatus : USINT; + FIFOLayerObjects : FileHmiStatusFIFOLayerObjType; + END_STRUCT; + FileHmiStatusFIFOLayerObjType : STRUCT + MaxNumberOfFilesVisiblity : USINT; + MaxFolderSizeVisiblity : USINT; END_STRUCT; FileHmiStatusInfoFileType : STRUCT isSelected : ARRAY[0..49]OF STRING[1]; @@ -62,6 +66,7 @@ TYPE MaxFileAge : UINT := 365; (*[days] Files older than 1 year will be deleted*) MaxFolderSize : REAL := 1000; (*[kB] - Max size of files inside the active folder*) MaxNumberOfFiles : UINT := 20; (*Max number of files inside active folder*) + SelectedDevice : USINT; END_STRUCT; FilePathCheckType : STRUCT (*Setup for checking available folders / file devices for FIleManager*) Folder : ARRAY[0..9]OF STRING[20]; (*Folder name in user partition*) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 95644556..5ce27e19 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -11,14 +11,6 @@ ACTION FormatDeviceDataProvider: tempIdx := (i + USBOffset); IF gUSBAvailable[i] THEN - - HmiFile.Status.DeviceDataProvider[tempIdx] := '{"value":"USB'; - brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); - - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('","text":"USB')); - brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('"}')); - PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); ELSE @@ -70,20 +62,16 @@ ACTION FormatDeviceDataProvider: brsitoa((MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount), ADR(HmiFile.Status.TableConfig[1]) + brsstrlen(ADR(HmiFile.Status.TableConfig[1]))); brsstrcat(ADR(HmiFile.Status.TableConfig[1]), ADR(',"to":49, "visible":false}]}')); + // Create device data provider for FIFO drop down FOR i := 0 TO MaxDeviceNameIndex DO IF (MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '') THEN - HmiFile.Status.DeviceDataProvider[i] := '{"value":"'; - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i])); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR('","text":"')); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i])); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR('"}')); + HmiFile.Status.DeviceDataProvider[i] := MpFileManagerUIConnect.DeviceList.DeviceNames[i]; ELSE brsmemset(ADR(HmiFile.Status.DeviceDataProvider[i]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[i])); END_IF - END_FOR - - + END_FOR + END_ACTION ACTION FileManager: @@ -99,7 +87,6 @@ ACTION FileManager: HmiFile.Status.TimeStamps[i] := DT_TO_STRING(MpFileManagerUIConnect.File.List.Items[i].LastModified); HmiFile.Status.TimeStamps[i] := RIGHT(HmiFile.Status.TimeStamps[i], 19); - // file size HmiFile.Status.Size[i] := REAL_TO_STRING(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp new file mode 100644 index 00000000..6be2b648 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.bminfo new file mode 100644 index 00000000..b11afd7d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.png new file mode 100644 index 0000000000000000000000000000000000000000..2db12636c4693983dcbf4c26f9481353a0b40ac5 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wloB=)|u0R?H{{R2qeE0k%Ad9gi z$S;_|;n|He5GTpo-GwQQyCwz5QSfwe4B@z*oN$0m!nyGPqo1WggMpT7i`^Tq4U%pV a@(hxUJl$t=JGTJUGI+ZBxvX + @@ -375,6 +376,7 @@ + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index 4af098c6..0d88a4f4 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -67,7 +67,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -191,7 +191,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -238,7 +238,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -280,7 +280,7 @@ - + @@ -296,7 +296,7 @@ - + @@ -312,7 +312,7 @@ - + @@ -329,7 +329,7 @@ - + @@ -344,7 +344,7 @@ - + @@ -367,7 +367,7 @@ - + @@ -387,7 +387,7 @@ - + @@ -402,13 +402,13 @@ - + - + @@ -495,7 +495,7 @@ - + @@ -520,7 +520,7 @@ - + @@ -549,7 +549,7 @@ - + @@ -580,7 +580,7 @@ - + @@ -603,7 +603,7 @@ - + @@ -648,24 +648,24 @@ - + - + - + - + @@ -684,7 +684,7 @@ - + @@ -696,7 +696,7 @@ - + @@ -731,7 +731,7 @@ - + @@ -757,7 +757,7 @@ - + @@ -783,7 +783,7 @@ - + @@ -809,7 +809,7 @@ - + @@ -835,7 +835,7 @@ - + @@ -863,7 +863,7 @@ - + @@ -889,7 +889,7 @@ - + @@ -915,7 +915,7 @@ - + @@ -941,7 +941,7 @@ - + @@ -969,7 +969,7 @@ - + @@ -984,7 +984,7 @@ - + @@ -1003,7 +1003,7 @@ - + @@ -1088,7 +1088,7 @@ - + @@ -1125,7 +1125,7 @@ - + @@ -1184,7 +1184,7 @@ - + @@ -1192,7 +1192,7 @@ - + @@ -1200,7 +1200,7 @@ - + @@ -1218,7 +1218,7 @@ - + @@ -1229,10 +1229,170 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1922,14 +2082,14 @@ - + - + - + @@ -1939,14 +2099,15 @@ - + - + + - + @@ -1970,7 +2131,7 @@ - + @@ -2035,6 +2196,7 @@ + @@ -2062,14 +2224,15 @@ - + - + + - + @@ -2080,6 +2243,7 @@ + @@ -2127,13 +2291,13 @@ - + - + @@ -2161,10 +2325,10 @@ - + - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index 42ff373b..bfbde2f7 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -201,7 +201,7 @@ - + @@ -214,11 +214,11 @@ - + - + @@ -229,7 +229,7 @@ - + @@ -311,10 +311,10 @@ - + - + @@ -368,7 +368,7 @@ - + @@ -377,7 +377,7 @@ - + @@ -467,7 +467,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -595,12 +595,12 @@ - + - + @@ -626,12 +626,12 @@ - + - + @@ -642,7 +642,7 @@ - + @@ -712,7 +712,7 @@ - + @@ -727,7 +727,7 @@ - + @@ -742,7 +742,7 @@ - + @@ -751,13 +751,13 @@ - + - + @@ -772,7 +772,7 @@ - + @@ -787,7 +787,7 @@ - + @@ -802,7 +802,7 @@ - + @@ -817,7 +817,7 @@ - + @@ -826,14 +826,14 @@ - + - + @@ -842,14 +842,14 @@ - + - + @@ -858,14 +858,14 @@ - + - + @@ -880,7 +880,7 @@ - + @@ -895,7 +895,7 @@ - + @@ -924,7 +924,7 @@ - + @@ -970,7 +970,7 @@ - + @@ -1041,7 +1041,7 @@ - + @@ -1056,7 +1056,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 426a168b..7bcc7f0a 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -162,7 +162,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -372,7 +372,7 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index a25d4ee7..e46b6c2b 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -3058,86 +3058,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -3280,630 +3206,281 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - + - - - + + + - + - - - + + + + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - + - - - + + + - + - - - + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - - - - - - - - - - - - - - - - - - - + + + - + - + - - - + + + - + - + - - - + + + + + + + - + - + - - + + - + - + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -15684,16 +15261,770 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + @@ -15702,7 +16033,7 @@ - + @@ -15711,25 +16042,26 @@ - + - + + - + - + - + - + - + @@ -15738,7 +16070,7 @@ - + @@ -15747,7 +16079,7 @@ - + @@ -15756,7 +16088,7 @@ - + @@ -15766,16 +16098,21 @@ - + + + + + - + + - + - + @@ -15801,7 +16138,7 @@ - + @@ -15826,184 +16163,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index da8f841a..e5bfd4dc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -66,7 +66,7 @@ - + @@ -98,7 +98,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index 30492c45..6c4265b7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/mappFramework/Logical/mappView/Visualization/Dialogs/FileDialogs/FileFIFO/FileDialog_FIFO.content b/mappFramework/Logical/mappView/Visualization/Dialogs/FileDialogs/FileFIFO/FileDialog_FIFO.content index d5c39ab1..4f9149bc 100644 --- a/mappFramework/Logical/mappView/Visualization/Dialogs/FileDialogs/FileFIFO/FileDialog_FIFO.content +++ b/mappFramework/Logical/mappView/Visualization/Dialogs/FileDialogs/FileFIFO/FileDialog_FIFO.content @@ -4,7 +4,7 @@ - + diff --git a/mappFramework/Physical/Simulation/PC/mappView/File/FileDialog_FIFO_dialog_content.binding b/mappFramework/Physical/Simulation/PC/mappView/File/FileDialog_FIFO_dialog_content.binding index ca0ecb34..6fec6587 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/File/FileDialog_FIFO_dialog_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/File/FileDialog_FIFO_dialog_content.binding @@ -13,10 +13,7 @@ - - - - + From 1eef3eb290deff418b8375b797b9d7e9f7ac2783 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Thu, 19 Jan 2023 11:00:40 +0300 Subject: [PATCH 012/159] The FileMng was made same with mappView. --- .../File/FileMgr/FIFOOperations.st | 25 +++++++++++++------ .../Infrastructure/File/FileMgr/FileMgr.typ | 2 +- .../Infrastructure/File/FileMgr/HMIActions.st | 11 +++++--- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st index 912206b7..718a25a0 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FIFOOperations.st @@ -8,16 +8,25 @@ ACTION FIFOOperation: HmiFile.Commands.CheckFolder := HmiFile.Parameters.Fifo.Enable; END_IF - //device name declare + // FIFO dropdown device should be same selected device + IF EDGEPOS(HmiFile.Status.FIFOLayerStatus = DISPLAY) THEN + HmiFile.Parameters.Fifo.SelectedDevice := MpFileManagerUIConnect.DeviceList.SelectedIndex; + END_IF; + + //device name declare HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Parameters.Fifo.SelectedDevice]; - brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); - FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO - IF (HmiFile.Parameters.Fifo.DeviceName = MpFileManagerUIConnect.DeviceList.DeviceNames[i]) AND HmiFile.Parameters.Fifo.Enable THEN - HmiFile.Status.FifoSelect[i] := 1; - EXIT; - END_IF - END_FOR + + IF HmiFile.Status.FIFOLayerStatus = DISPLAY THEN + brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO + IF (HmiFile.Parameters.Fifo.DeviceName = MpFileManagerUIConnect.DeviceList.DeviceNames[i]) AND HmiFile.Parameters.Fifo.Enable THEN + HmiFile.Status.FifoSelect[i] := 1; + EXIT; + END_IF + END_FOR + END_IF + // Autodelete oldest files based on scanning option CASE HmiFile.Status.DeleteStep OF diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ index edee8e32..6b9cf53c 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ @@ -66,7 +66,7 @@ TYPE MaxFileAge : UINT := 365; (*[days] Files older than 1 year will be deleted*) MaxFolderSize : REAL := 1000; (*[kB] - Max size of files inside the active folder*) MaxNumberOfFiles : UINT := 20; (*Max number of files inside active folder*) - SelectedDevice : USINT; + SelectedDevice : UINT; END_STRUCT; FilePathCheckType : STRUCT (*Setup for checking available folders / file devices for FIleManager*) Folder : ARRAY[0..9]OF STRING[20]; (*Folder name in user partition*) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 5ce27e19..b2d069f4 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -1,11 +1,16 @@ -ACTION HMIActions_Init: +ACTION HMIActions_Init: + + brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); + IF HmiFile.Parameters.Fifo.Enable THEN + HmiFile.Status.FifoSelect[HmiFile.Parameters.Fifo.SelectedDevice] := 1; + END_IF; + HmiFile.Status.FIFOLayerStatus := HIDE; END_ACTION - ACTION FormatDeviceDataProvider: - + // Select CF device if USB device is not available FOR i := 0 TO IDX_USB_DEV_LIST DO tempIdx := (i + USBOffset); From 65f2d2b395a6e4697b839b4b367823a220294193 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Tue, 24 Jan 2023 20:02:34 +0300 Subject: [PATCH 013/159] RecipeMng completed and tested. --- .../Recipe/RecipeMgr/HMIActions.st | 133 + .../Recipe/RecipeMgr/RecipeMgr.st | 2 + .../Recipe/RecipeMgr/RecipeMgr.typ | 32 + .../Recipe/RecipeMgr/RecipeMgr.var | 6 + .../Infrastructure/mappFrameworkGlobal.var | 2 + .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 3169 +++++++++++++++-- .../VC4/Visu/Pages/mapp1StartPage.page | 10 +- .../Logical/VC4/Visu/VirtualKeys.vcvk | 60 +- .../VCShared/DataSources/DataSource.dso | 523 ++- mappFramework/Logical/VCShared/Package.vcp | 5 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 260 ++ .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 19 + .../TextGroups/MpRecipeUIMessageBox.txtgrp | 3 + .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 18 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 260 ++ .../PC/mappView/Recipe/Recipe_content.binding | 11 +- 16 files changed, 4143 insertions(+), 370 deletions(-) create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st index 73cba0ee..31b385b4 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st @@ -1,3 +1,16 @@ +ACTION HMIActions_Init: + + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; + HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; + HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DuplicateLayer := HIDE; + +END_ACTION + + ACTION FormatDeviceDataProvider: // Select CF device if USB device is not available @@ -32,6 +45,110 @@ END_ACTION ACTION LoadPreview: + + // Category name genarate + IF HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX THEN + MpRecipeUIConnect.Recipe.Filter := '*par'; + HmiRecipe.Parameters.Category := PARAMETERS_CATEGORY; + ELSIF HmiRecipe.Parameters.CategoryIndex = MACH_CONFIG_CATEGORY_INDEX THEN + MpRecipeUIConnect.Recipe.Filter := '*mcfg'; + HmiRecipe.Parameters.Category := MACHINE_CONFIGURATION_CATEGORY; + END_IF; + IF EDGEPOS(HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX) OR + EDGEPOS(HmiRecipe.Parameters.CategoryIndex = MACH_CONFIG_CATEGORY_INDEX) THEN + MpRecipeUIConnect.Recipe.Refresh := TRUE; + END_IF; + + + // Default recipe create Layer manager + IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = HIDE AND HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = HIDE AND + ((HmiRecipe.Status.ParameterRecipeMissing AND HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY) OR + (HmiRecipe.Status.MachineSettingsRecipeMissing AND HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY)) THEN + HmiRecipe.Status.DefaultRecipeLayer.Status := DISPLAY; + ELSE + HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; + END_IF; + + + + // Create Recipe Layer manager + IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN + IF HmiRecipe.Status.CreateDialogOpened THEN + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := DISPLAY; + END_IF; + IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = DISPLAY AND + (MpRecipeUIConnect.MessageBox.Cancel OR HmiRecipe.Commands.CreateRecipe) THEN + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; + END_IF; + + ELSIF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN + IF HmiRecipe.Status.CreateDialogOpened THEN + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := DISPLAY; + END_IF; + IF HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = DISPLAY AND + (MpRecipeUIConnect.MessageBox.Cancel OR HmiRecipe.Commands.CreateRecipe) THEN + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; + END_IF; + END_IF; + + // File Duplicate manager + IF HmiRecipe.Commands.CreateRecipe AND + HmiRecipe.Status.FileDuplicate AND + HmiRecipe.Status.DuplicateLayer = HIDE THEN + + HmiRecipe.Commands.CreateRecipe := FALSE; + HmiRecipe.Status.DuplicateLayer := DISPLAY; + + ELSIF HmiRecipe.Commands.CreateRecipe THEN + HmiRecipe.Status.DuplicateLayer := HIDE; + END_IF; + + + + + // Preview Recipe Layer manager + IF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN + HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := DISPLAY; + + ELSIF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN + HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := DISPLAY; + END_IF; + + + + // Active Recipe declare + IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN + HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedProductRecipe; + + ELSIF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN + HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedConfigRecipe; + END_IF; + + + + + // Recipe Edit manager + IF HmiRecipe.Status.EditRecipeLayer.Save THEN + HmiRecipe.Status.EditRecipeLayer.Save := FALSE; + HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; + + HmiRecipe.Commands.SaveSelectedRecipe := TRUE; + HmiRecipe.Commands.LoadRecipe := TRUE; + END_IF; + + + + + + + + + + + // Load preview when a recipe is selected IF (MpRecipeUIConnect.Recipe.List.SelectedIndex <> HmiRecipe.Status.LastSelectedIndex) OR (HmiRecipe.Status.LastMaxSelection <> MpRecipeUIConnect.Recipe.List.MaxSelection) THEN // Check selected recipe name is not empty @@ -74,6 +191,7 @@ ACTION RecipeHMIcommands: HmiRecipe.Commands.SaveSelectedRecipe := FALSE; ELSIF HmiRecipe.Commands.LoadRecipe THEN HmiRecipe.Status.HMIcommand := REC_HMI_LOAD; + HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; HmiRecipe.Commands.LoadRecipe := FALSE; IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN HmiRecipe.Status.ProductRecipeLoaded := FALSE; @@ -187,6 +305,13 @@ ACTION RecipeHMIcommands: ELSE HmiRecipe.Parameters.FileName:= 'newParameters'; END_IF + + // Open parameter dialog + IF HmiRecipe.Status.EditDialogOpened THEN + HmiRecipe.Status.EditRecipeLayer.ParsStatus := DISPLAY; + ELSIF HmiRecipe.Status.CreateDialogOpened THEN + END_IF; + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN MachineSettingsEdit := MachineSettingsPreview; IF HmiRecipe.Status.MachineSettingsRecipeMissing THEN @@ -194,7 +319,15 @@ ACTION RecipeHMIcommands: ELSE HmiRecipe.Parameters.FileName := 'newMachineConfig'; END_IF + + // Open machine dialog + IF HmiRecipe.Status.EditDialogOpened THEN + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := DISPLAY; + ELSIF HmiRecipe.Status.CreateDialogOpened THEN + END_IF; + END_IF + HmiRecipe.Status.EditDialogOpened := FALSE; HmiRecipe.Status.CreateDialogOpened := FALSE; END_IF diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st index 6a385611..60dccf37 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st @@ -136,6 +136,8 @@ PROGRAM _INIT HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; + HMIActions_Init; + END_PROGRAM PROGRAM _CYCLIC diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ index 5c35ae12..1f5815d5 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ @@ -16,6 +16,7 @@ TYPE END_STRUCT; RecipeParametersType : STRUCT (*Structure to hold the parameters for the HMI*) Category : STRING[30]; (*Current category*) + CategoryIndex : USINT; (*Current category*) DeviceName : STRING[50]; (*Selected file device name*) FileName : STRING[255]; (*Recipe file name*) END_STRUCT; @@ -41,7 +42,38 @@ TYPE DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*File device data provider*) TableConfig : STRING[120]; (*Table configuration *) SelectedRecipe : STRING[255]; (*The name of the selected recipe*) + ActiveRecipe : STRING[255]; + DefaultRecipeLayer : RecipeStatusDefRecLayerType; + CreateRecipeLayer : RecipeStatusCteateRecLayerType; + PreviewRecipeLayer : RecipeStatusPreviewRecLayerType; + RecipeLoadLayer : RecipeStatusRecipeLoadLayerType; + EditRecipeLayer : RecipeStatusEditRecLayerType; + DuplicateLayer : USINT; END_STRUCT; + RecipeStatusDefRecLayerType : STRUCT + Status : USINT; + END_STRUCT; + RecipeStatusCteateRecLayerType : STRUCT + ParsStatus : USINT; + MachConfigStatus : USINT; + END_STRUCT; + RecipeStatusPreviewRecLayerType : STRUCT + ParsStatus : USINT; + MachConfigStatus : USINT; + END_STRUCT; + RecipeStatusRecipeLoadLayerType : STRUCT + Status : USINT; + END_STRUCT; + RecipeStatusEditRecLayerType : STRUCT + ParsStatus : USINT; + MachConfigStatus : USINT; + Save : BOOL; + END_STRUCT; +END_TYPE + +(**) + +TYPE ParametersType : STRUCT (*Demo / starter structure for machine parameters*) AddParametersHere1 : BOOL; (*Add your parameteres here *) AddParametersHere2 : STRING[80]; (*Add your parameteres here *) diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var index 181c6bb6..e788b3cf 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var @@ -42,3 +42,9 @@ VAR i : USINT; (*Index to loop through file devices*) temp : STRING[260]; (*Temporary recipe name, used to check for duplicates when creating a new recipe*) END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR +(**) diff --git a/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var b/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var index 9a12621a..4f1c9390 100644 --- a/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var +++ b/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var @@ -1,6 +1,8 @@ VAR CONSTANT PARAMETERS_CATEGORY : STRING[10] := 'Parameters'; (*Recipe category for runtime parameters*) MACHINE_CONFIGURATION_CATEGORY : STRING[30] := 'Machine Configuration'; (*Recipe category for machine configuration settings*) + PARAMETERS_CATEGORY_INDEX : USINT := 0; (*Recipe category for runtime parameters*) + MACH_CONFIG_CATEGORY_INDEX : USINT := 1; (*Recipe category for runtime parameters*) MAX_IDX_USB_DEV_LIST : USINT := 2; (*Maximum number of USB storage devices. Value 2 = 2 USB devices (index 0 and 1)*) IDX_USB_DEV_LIST : USINT := MAX_IDX_USB_DEV_LIST - 1; (*Maximum number of USB storage devices.*) END_VAR diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index bfbde2f7..77f53880 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -57,7 +57,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -97,8 +97,8 @@ - - + + @@ -106,8 +106,8 @@ - - + + @@ -117,7 +117,7 @@ - + @@ -127,82 +127,9 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -213,9 +140,9 @@ - + - + @@ -232,8 +159,8 @@ - - + + @@ -243,7 +170,7 @@ - + @@ -253,9 +180,9 @@ - + - + @@ -265,14 +192,14 @@ - + - + @@ -284,14 +211,14 @@ - + - + @@ -300,8 +227,8 @@ - - + + @@ -319,7 +246,7 @@ - + @@ -333,7 +260,7 @@ - + @@ -341,7 +268,7 @@ - + @@ -354,7 +281,7 @@ - + @@ -362,24 +289,10 @@ - + - - - - - - - - - - - - - - @@ -395,7 +308,7 @@ - + @@ -409,7 +322,7 @@ - + @@ -418,23 +331,23 @@ - + - + - - + + - + @@ -442,7 +355,7 @@ - + @@ -486,7 +399,7 @@ - + @@ -496,38 +409,9 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -537,20 +421,20 @@ - + - + - + - + @@ -567,7 +451,7 @@ - + @@ -581,7 +465,7 @@ - + @@ -594,10 +478,10 @@ - + - + @@ -613,7 +497,7 @@ - + @@ -625,10 +509,10 @@ - + - + @@ -645,7 +529,7 @@ - + @@ -655,14 +539,14 @@ - + - + @@ -672,14 +556,14 @@ - + - + @@ -689,16 +573,41 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -711,38 +620,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -757,7 +636,7 @@ - + @@ -895,7 +774,7 @@ - + @@ -914,7 +793,7 @@ - + @@ -924,9 +803,9 @@ - + - + @@ -935,105 +814,2616 @@ - - - + - - - - - + + - - + + - + + - - + + - - + + - - + + - + - + - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + - - - - - - - - - - - - - - + + + + + + + + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1064,38 +3454,195 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 7bcc7f0a..95b93593 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -162,7 +162,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -372,7 +372,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index cfd48964..28b24697 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -1334,14 +1334,6 @@ - - - - - - - - @@ -2498,4 +2490,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index e46b6c2b..9299b13f 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -15723,7 +15723,7 @@ - + @@ -16024,16 +16024,16 @@ - + - + - + - + @@ -16042,26 +16042,29 @@ - + - - + - + - + + + + + - + - + @@ -16070,7 +16073,7 @@ - + @@ -16079,7 +16082,28 @@ - + + + + + + + + + + + + + + + + + + + + + + @@ -16088,7 +16112,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + @@ -16098,11 +16144,29 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -16112,7 +16176,20 @@ - + + + + + + + + + + + + + + @@ -16121,29 +16198,60 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + - + - + - + @@ -16152,17 +16260,364 @@ - + + + + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 819b17b6..f1b516ee 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + @@ -100,6 +100,9 @@ + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp new file mode 100644 index 00000000..47340e4d --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp new file mode 100644 index 00000000..950ad11e --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 98b505c3..940606a2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -12,6 +12,7 @@ + @@ -21,6 +22,7 @@ + @@ -30,5 +32,6 @@ + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 0ab182e2..6e455924 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -63,10 +63,12 @@ - - - + + + + + @@ -86,10 +88,12 @@ - - - + + + + + @@ -113,5 +117,7 @@ + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp new file mode 100644 index 00000000..1e127e4b --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/Recipe/Recipe_content.binding b/mappFramework/Physical/Simulation/PC/mappView/Recipe/Recipe_content.binding index 3e033541..ec91ce64 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Recipe/Recipe_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/Recipe/Recipe_content.binding @@ -194,10 +194,7 @@ - - - - + @@ -221,5 +218,9 @@ - + + + + + From 5096e14912d35cc167d8472b882381996f23dea6 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Tue, 24 Jan 2023 20:45:33 +0300 Subject: [PATCH 014/159] RecipeMng - default recipe add layer file name input widget Lockage added. --- .../Recipe/RecipeMgr/HMIActions.st | 29 ++++++++++++++----- .../Recipe/RecipeMgr/RecipeMgr.typ | 1 + .../Recipe/RecipeMgr/RecipeMgr.var | 4 +++ .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 21 ++++++++++++-- .../VC4/Visu/Pages/mapp1StartPage.page | 8 ++--- .../VCShared/DataSources/DataSource.dso | 9 ++++++ .../TextGroups/MpRecipeUIMessageBox.txtgrp | 4 +-- 7 files changed, 61 insertions(+), 15 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st index 31b385b4..9d54c641 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st @@ -1,12 +1,13 @@ ACTION HMIActions_Init: - HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; - HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; - HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; - HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; - HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; - HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; - HmiRecipe.Status.DuplicateLayer := HIDE; + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; + HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; + HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DuplicateLayer := HIDE; + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; END_ACTION @@ -91,6 +92,20 @@ ACTION LoadPreview: END_IF; END_IF; + // Lock File name input in create layer + IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = DISPLAY AND + HmiRecipe.Status.ParameterRecipeMissing THEN + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; + ELSIF HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = DISPLAY AND + HmiRecipe.Status.MachineSettingsRecipeMissing THEN + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; + ELSE + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; + END_IF; + + + + // File Duplicate manager IF HmiRecipe.Commands.CreateRecipe AND HmiRecipe.Status.FileDuplicate AND diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ index 1f5815d5..53781741 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ @@ -56,6 +56,7 @@ TYPE RecipeStatusCteateRecLayerType : STRUCT ParsStatus : USINT; MachConfigStatus : USINT; + FileNameInputActive : USINT; END_STRUCT; RecipeStatusPreviewRecLayerType : STRUCT ParsStatus : USINT; diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var index e788b3cf..19b9e40f 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var @@ -48,3 +48,7 @@ VAR CONSTANT HIDE : USINT := 1; END_VAR (**) +VAR CONSTANT + LOCK : USINT := 0; + UNLOCK : USINT := 1; +END_VAR diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index 77f53880..6d9aee7f 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -2404,6 +2404,8 @@ + + @@ -3102,6 +3104,8 @@ + + @@ -3213,7 +3217,7 @@ - + @@ -3221,7 +3225,7 @@ - + @@ -3270,6 +3274,18 @@ + + + + + + + + + + + + @@ -3644,5 +3660,6 @@ + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 95b93593..7564aed8 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -172,7 +172,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -382,7 +382,7 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 9299b13f..677d99d3 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -16133,6 +16133,15 @@ + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 940606a2..89659a6c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + From e0f8bfd07052140d4a25969630679e606d47fffd Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 21 Feb 2023 09:14:35 -0500 Subject: [PATCH 015/159] Basic Audit unit test --- .../Diagnosis/Simulation/PC/AuditMgr.PVM | 31 + .../Diagnosis/Simulation/PC/BackupMgr.PVM | 22 - .../Diagnosis/Simulation/PC/ReportMgr.PVM | 782 ------------------ .../Diagnosis/UnitTest/PC_any/AuditTest.PVM | 14 + .../UnitTest/Audit/AuditTest/ANSIC.prg | 3 +- .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 81 +- .../UnitTest/Audit/AuditTest/Types.typ | 72 ++ .../UnitTest/Audit/AuditTest/variables.var | 8 + .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 10 + .../UnitTest/PC_any/UnitTest/Package.pkg | 1 + 10 files changed, 217 insertions(+), 807 deletions(-) create mode 100644 mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM create mode 100644 mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ create mode 100644 mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm diff --git a/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM new file mode 100644 index 00000000..92d7f237 --- /dev/null +++ b/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM @@ -0,0 +1,31 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=7 ASCIIString=0 + name type force value level type len format place expand specs + VariableMonitorExample REAL 0 " 10.5" 0 8 1 10 1 0 + MpAuditTrail_0 MpAuditTrail 0 " *" 0 24 1 0 1 1 + MpLink UDINT 0 " 136557956" 1 7 1 10 0 0 + Enable BOOL 0 " TRUE" 1 1 1 2 0 0 + ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + Language UDINT 0 " 142823439" 1 7 1 10 0 0 + DeviceName UDINT 0 " 142823457" 1 7 1 10 0 0 + Export BOOL 0 " FALSE" 1 1 1 2 0 0 + ExportArchive BOOL 0 " FALSE" 1 1 1 2 0 0 + Active BOOL 0 " TRUE" 1 1 1 2 0 0 + Error BOOL 0 " FALSE" 1 1 1 2 0 0 + StatusID DINT 0 " 0" 1 4 1 10 0 0 + CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 + CommandDone BOOL 0 " FALSE" 1 1 1 2 0 0 + CurrentRecord UDINT 0 " 15" 1 7 1 10 0 0 + ArchiveAvailable BOOL 0 " FALSE" 1 1 1 2 0 0 + Info MpAuditTrailInfoType 0 " *" 1 24 1 0 0 1 + NumberArchives UINT 0 " 0" 2 6 1 10 0 0 + Diag MpAuditDiagType 0 " *" 2 24 1 0 0 1 + StatusID MpAuditStatusIDType 0 " *" 3 24 1 0 0 1 + ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpAU + + Severity DINT 0 " 0" 4 4 1 10 0 0 e,0,mpCO + + Code UINT 0 " 0" 4 6 1 10 0 0 + Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 + pObject UDINT 0 " 166099080" 2 7 1 10 0 0 + State UDINT 0 " 3" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM deleted file mode 100644 index 1da8d244..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/BackupMgr.PVM +++ /dev/null @@ -1,22 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=BackupMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=1 ASCIIString=0 - name type force value level type len format place expand specs - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 1 - DeviceNames[0] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 - DeviceNames[1] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[2] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[3] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[4] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[5] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 - SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 - HmiBackup BackupHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Status BackupHmiStatusType 0 " *" 1 24 1 0 0 1 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 - TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":1,"to":9, "visible":false}]}'" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":0,"to":50, "visible":false}]}'" 3 9 121 1 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM deleted file mode 100644 index f3bf73fa..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/ReportMgr.PVM +++ /dev/null @@ -1,782 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=ReportMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=32 ASCIIString=0 - name type force value level type len format place expand specs - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI - - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 0 - DeviceNames[0] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[1] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[2] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[3] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[4] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[5] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[6] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[7] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[8] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[9] STRING[50] 0 " *" 3 9 51 1 0 0 - SelectedIndex UINT 0 " *" 2 6 1 10 0 0 - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Images'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2022-10-06-12:45:43" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Report_21CFR1_DE.pdf'" 5 9 256 1 0 0 - Size UDINT 0 " 112760" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2022-10-05-13:49:07" 5 11 1 1 0 0 - ItemType DINT 0 " 89" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Report_21CFR1_EN.pdf'" 5 9 256 1 0 0 - Size UDINT 0 " 112493" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2022-10-05-13:49:07" 5 11 1 1 0 0 - ItemType DINT 0 " 89" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 - StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 - PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 - StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 - RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 - RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 - SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 - CurrentDir STRING[255] 0 " *" 3 9 256 1 0 0 - FileCount UDINT 0 " *" 3 7 1 10 0 0 - FolderCount UDINT 0 " *" 3 7 1 10 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - Copy BOOL 0 " FALSE" 2 1 1 2 0 0 - Cut BOOL 0 " FALSE" 2 1 1 2 0 0 - Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 0 - LayerStatus UINT 0 " *" 2 6 1 10 0 0 - Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - - ErrorNumber UINT 0 " *" 2 6 1 10 0 0 - Confirm BOOL 0 " *" 2 1 1 2 0 0 - Cancel BOOL 0 " *" 2 1 1 2 0 0 - DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 - HmiReport ReportHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands ReportCommandsType 0 " *" 1 24 1 0 0 0 - Generate BOOL 0 " *" 2 1 1 2 0 0 - Parameters ReportParametersType 0 " *" 1 24 1 0 0 0 - Name STRING[50] 0 " *" 2 9 51 1 0 0 - FormatTo21CFR1 BOOL 0 " *" 2 1 1 2 0 0 - PathOfReportToView STRING[255] 0 " *" 2 9 256 1 0 0 - Status ReportStatusType 0 " *" 1 24 1 0 0 1 - FileNames STRING[50][0..49] 0 " *" 2 9 51 0 0 0 - FileNames[0] STRING[50] 0 " 'Images'" 3 9 51 1 0 0 - FileNames[1] STRING[50] 0 " 'Report_21CFR1_DE.pdf'" 3 9 51 1 0 0 - FileNames[2] STRING[50] 0 " 'Report_21CFR1_EN.pdf'" 3 9 51 1 0 0 - FileNames[3] STRING[50] 0 " 'SimpleReport_2022_10_06_10_27_58.pdf'" 3 9 51 1 0 0 - FileNames[4] STRING[50] 0 " 'SimpleReport_DE.pdf'" 3 9 51 1 0 0 - FileNames[5] STRING[50] 0 " 'SimpleReport_EN.pdf'" 3 9 51 1 0 0 - FileNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[10] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[11] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[12] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[13] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[14] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[15] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[16] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[17] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[18] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[19] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[20] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[21] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[22] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[23] STRING[50] 0 " ''" 3 9 51 1 0 0 - FileNames[24] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[25] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[26] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[27] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[28] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[29] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[30] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[31] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[32] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[33] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[34] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[35] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[36] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[37] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[38] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[39] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[40] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[41] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[42] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[43] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[44] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[45] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[46] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[47] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[48] STRING[50] 0 " *" 3 9 51 1 0 0 - FileNames[49] STRING[50] 0 " *" 3 9 51 1 0 0 - TempFilePath STRING[255][0..49] 0 " *" 2 9 256 0 0 0 - TempFilePath[0] STRING[255] 0 " '/FileDevice:mappReportFiles/Images'" 3 9 256 1 0 0 - TempFilePath[1] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_DE.pdf'" 3 9 256 1 0 0 - TempFilePath[2] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_EN.pdf'" 3 9 256 1 0 0 - TempFilePath[3] STRING[255] 0 "'/FileDevice:mappReportFiles/SimpleReport_2022_10_06_10_27_58.pdf'" 3 9 256 1 0 0 - TempFilePath[4] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_DE.pdf'" 3 9 256 1 0 0 - TempFilePath[5] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_EN.pdf'" 3 9 256 1 0 0 - TempFilePath[6] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[7] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[8] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[9] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[10] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[11] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[12] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[13] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[14] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[15] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[16] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[17] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[18] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[19] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[20] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[21] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[22] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - TempFilePath[23] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[24] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[25] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[26] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[27] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[28] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[29] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[30] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[31] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[32] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[33] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[34] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[35] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[36] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[37] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[38] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[39] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[40] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[41] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[42] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[43] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[44] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[45] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[46] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[47] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[48] STRING[255] 0 " *" 3 9 256 1 0 0 - TempFilePath[49] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath STRING[255][0..49] 0 " *" 2 9 256 0 0 0 - FilePath[0] STRING[255] 0 " '/FileDevice:mappReportFiles/Images'" 3 9 256 1 0 0 - FilePath[1] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_DE.pdf'" 3 9 256 1 0 0 - FilePath[2] STRING[255] 0 " '/FileDevice:mappReportFiles/Report_21CFR1_EN.pdf'" 3 9 256 1 0 0 - FilePath[3] STRING[255] 0 "'/FileDevice:mappReportFiles/SimpleReport_2022_10_06_10_27_58.pdf'" 3 9 256 1 0 0 - FilePath[4] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_DE.pdf'" 3 9 256 1 0 0 - FilePath[5] STRING[255] 0 " '/FileDevice:mappReportFiles/SimpleReport_EN.pdf'" 3 9 256 1 0 0 - FilePath[6] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[7] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[8] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[9] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[10] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[11] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[12] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[13] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[14] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[15] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[16] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[17] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[18] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[19] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[20] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[21] STRING[255] 0 " '/FileDevice:mappReportFiles/'" 3 9 256 1 0 0 - FilePath[22] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[23] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[24] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[25] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[26] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[27] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[28] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[29] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[30] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[31] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[32] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[33] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[34] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[35] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[36] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[37] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[38] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[39] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[40] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[41] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[42] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[43] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[44] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[45] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[46] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[47] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[48] STRING[255] 0 " *" 3 9 256 1 0 0 - FilePath[49] STRING[255] 0 " *" 3 9 256 1 0 0 - TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 0 - TimeStamps[0] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[1] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[2] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[3] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[4] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[5] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[6] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[7] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[8] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[9] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[10] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[11] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[12] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[13] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[14] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[15] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[16] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[17] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[18] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[19] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[20] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[21] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[22] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[23] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[24] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[25] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[26] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[27] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[40] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[41] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[42] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[43] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[44] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[45] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[46] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[47] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[48] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[49] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - Size UDINT[0..49] 0 " *" 2 7 50 0 0 0 - Size[0] UDINT 0 " *" 3 7 1 10 0 0 - Size[1] UDINT 0 " *" 3 7 1 10 0 0 - Size[2] UDINT 0 " *" 3 7 1 10 0 0 - Size[3] UDINT 0 " *" 3 7 1 10 0 0 - Size[4] UDINT 0 " *" 3 7 1 10 0 0 - Size[5] UDINT 0 " *" 3 7 1 10 0 0 - Size[6] UDINT 0 " *" 3 7 1 10 0 0 - Size[7] UDINT 0 " *" 3 7 1 10 0 0 - Size[8] UDINT 0 " *" 3 7 1 10 0 0 - Size[9] UDINT 0 " *" 3 7 1 10 0 0 - Size[10] UDINT 0 " *" 3 7 1 10 0 0 - Size[11] UDINT 0 " *" 3 7 1 10 0 0 - Size[12] UDINT 0 " *" 3 7 1 10 0 0 - Size[13] UDINT 0 " *" 3 7 1 10 0 0 - Size[14] UDINT 0 " *" 3 7 1 10 0 0 - Size[15] UDINT 0 " *" 3 7 1 10 0 0 - Size[16] UDINT 0 " *" 3 7 1 10 0 0 - Size[17] UDINT 0 " *" 3 7 1 10 0 0 - Size[18] UDINT 0 " *" 3 7 1 10 0 0 - Size[19] UDINT 0 " *" 3 7 1 10 0 0 - Size[20] UDINT 0 " *" 3 7 1 10 0 0 - Size[21] UDINT 0 " *" 3 7 1 10 0 0 - Size[22] UDINT 0 " *" 3 7 1 10 0 0 - Size[23] UDINT 0 " *" 3 7 1 10 0 0 - Size[24] UDINT 0 " *" 3 7 1 10 0 0 - Size[25] UDINT 0 " *" 3 7 1 10 0 0 - Size[26] UDINT 0 " *" 3 7 1 10 0 0 - Size[27] UDINT 0 " *" 3 7 1 10 0 0 - Size[28] UDINT 0 " *" 3 7 1 10 0 0 - Size[29] UDINT 0 " *" 3 7 1 10 0 0 - Size[30] UDINT 0 " *" 3 7 1 10 0 0 - Size[31] UDINT 0 " *" 3 7 1 10 0 0 - Size[32] UDINT 0 " *" 3 7 1 10 0 0 - Size[33] UDINT 0 " *" 3 7 1 10 0 0 - Size[34] UDINT 0 " *" 3 7 1 10 0 0 - Size[35] UDINT 0 " *" 3 7 1 10 0 0 - Size[36] UDINT 0 " *" 3 7 1 10 0 0 - Size[37] UDINT 0 " *" 3 7 1 10 0 0 - Size[38] UDINT 0 " *" 3 7 1 10 0 0 - Size[39] UDINT 0 " *" 3 7 1 10 0 0 - Size[40] UDINT 0 " *" 3 7 1 10 0 0 - Size[41] UDINT 0 " *" 3 7 1 10 0 0 - Size[42] UDINT 0 " *" 3 7 1 10 0 0 - Size[43] UDINT 0 " *" 3 7 1 10 0 0 - Size[44] UDINT 0 " *" 3 7 1 10 0 0 - Size[45] UDINT 0 " *" 3 7 1 10 0 0 - Size[46] UDINT 0 " *" 3 7 1 10 0 0 - Size[47] UDINT 0 " *" 3 7 1 10 0 0 - Size[48] UDINT 0 " *" 3 7 1 10 0 0 - Size[49] UDINT 0 " *" 3 7 1 10 0 0 - SelectedIndex USINT 0 " 1" 2 5 1 10 0 0 - LastSelectedIndex USINT 0 " 255" 2 5 1 10 0 0 - LastSelectedDeviceIndex UINT 0 " 0" 2 6 1 10 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 - TableConfig[0] STRING[120] 0 " *" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " *" 3 9 121 1 0 0 - FileOverMax BOOL 0 " FALSE" 2 1 1 2 0 0 - ViewAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - Info MpBackupProjectInfoRequestType 0 " *" 2 24 1 0 0 0 - Name STRING[255] 0 " *" 3 9 256 1 0 0 - ConfigurationID STRING[255] 0 " *" 3 9 256 1 0 0 - ConfigurationVersion STRING[64] 0 " *" 3 9 65 1 0 0 - Busy BOOL 0 " FALSE" 2 1 1 2 0 0 - Error BOOL 0 " FALSE" 2 1 1 2 0 0 - DeleteAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - CreateAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - FilterString STRING[1000] 0 " ''" 2 9 1001 1 0 0 - MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 0 - MpLink UDINT 0 " 108715760" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 0 - FileListSize UINT 0 " *" 2 6 1 10 0 0 - FileListScrollWindow USINT 0 " *" 2 5 1 10 0 0 - UIConnect UDINT 0 " 142429730" 1 7 1 10 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 - Info MpFileInfoType 0 " *" 1 24 1 0 0 0 - Diag MpFileDiagType 0 " *" 2 24 1 0 0 0 - StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpFI - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 - MpReportCore_0 MpReportCore 0 " *" 0 24 1 0 1 0 - MpLink UDINT 0 " 108715768" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - Name UDINT 0 " 142391636" 1 7 1 10 0 0 - Language UDINT 0 " 142391676" 1 7 1 10 0 0 - DeviceName UDINT 0 " 142391694" 1 7 1 10 0 0 - Generate BOOL 0 " FALSE" 1 1 1 2 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 - CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 - CommandDone BOOL 0 " FALSE" 1 1 1 2 0 0 - Info MpReportCoreInfoType 0 " *" 1 24 1 0 0 0 - NumberOfReports UDINT 0 " *" 2 7 1 10 0 0 - GeneratedFileName STRING[50] 0 " *" 2 9 51 1 0 0 - Diag MpReportDiagType 0 " *" 2 24 1 0 0 0 - StatusID MpReportStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpRE - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM new file mode 100644 index 00000000..b22bd4a3 --- /dev/null +++ b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM @@ -0,0 +1,14 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditTest +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=11 ASCIIString=0 + name type force value level type len format place expand specs + NumberOfFiles USINT 0 " 0" 0 5 1 10 1 0 + DirInfo_0 DirInfo 0 " *" 0 24 1 0 1 1 + enable BOOL 0 " TRUE" 1 1 1 2 0 0 + pDevice UDINT 0 " 177487960" 1 7 1 10 0 0 + pPath UDINT 0 " 0" 1 7 1 10 0 0 + status UINT 0 " 65535" 1 6 1 10 0 0 + dirnum UDINT 0 " 2" 1 7 1 10 0 0 + filenum UDINT 0 " 3" 1 7 1 10 0 0 + i_state UINT 0 " 2" 1 6 1 10 0 0 + i_result UINT 0 " 0" 1 6 1 10 0 0 + i_tmp UDINT 0 " 0" 1 7 1 10 0 0 diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/ANSIC.prg b/mappFramework/Logical/UnitTest/Audit/AuditTest/ANSIC.prg index bd4768e8..ca86c936 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/ANSIC.prg +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/ANSIC.prg @@ -2,13 +2,14 @@ + \Logical\Infrastructure\Audit\AuditMgr\AuditMgr.typ + Types.typ variables.var testSuite.c autoGeneratedFile.c Set_AuditMgr.c \Logical\UnitTest\Common\CommonUT\CommonVariables.var \Logical\UnitTest\Common\CommonUT\Set_Common.c - \Logical\Infrastructure\Audit\AuditMgr\AuditMgr.typ \Logical\Infrastructure\Audit\AuditMgr\AuditMgr.var \ No newline at end of file diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index b2ca8c29..facb952c 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -1,4 +1,5 @@ #include +#include #ifdef _DEFAULT_INCLUDES #include @@ -8,6 +9,20 @@ #include #include +#define TIMEOUT_TEST_CASE \ + if (cycleCount >= 254) \ + { \ + char abortMessage[80]; \ + char substate[10]; \ + memset(abortMessage, 0, sizeof(abortMessage)); \ + memset(substate, 0, sizeof(substate)); \ + itoa(ActSubState, substate, 10); \ + strcpy(abortMessage, "Timeout in ActSubState = "); \ + strcat(abortMessage, substate); \ + TEST_FAIL(abortMessage); \ + TEST_DONE; \ + } + _SETUP_SET(void) { TEST_DONE; @@ -21,6 +36,12 @@ _TEARDOWN_SET(void) _SETUP_TEST(void) { + ArrangeSubState = 0; + ActSubState = 0; + AssertSubState = 0; + SampleTemperature = 1; + NumberOfFiles = 0; + UnitTestState = TEST_ARRANGE; TEST_DONE; } @@ -29,16 +50,72 @@ _TEARDOWN_TEST(void) TEST_DONE; } +_CYCLIC_SET(void) +{ + cycleCount++; + DirInfo(&DirInfo_0); +} + +_TEST ExportArchive(void) +{ + TIMEOUT_TEST_CASE; +// UnitTestState = TEST_ASSERT; + switch (UnitTestState) + { + case TEST_ARRANGE: + SampleTemperature++; + DirInfo_0.enable = 1; + DirInfo_0.pDevice = (UDINT) "mappAuditFiles"; + DirInfo_0.pPath = 0; + DirInfo(&DirInfo_0); + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); + NumberOfFiles = DirInfo_0.filenum; + UnitTestState = TEST_ACT; + break; + + case TEST_ACT: + // Archive audit + HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); + HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; + DirInfo(&DirInfo_0); + UnitTestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + // Check save location for archive + TEST_ASSERT(NumberOfFiles + 1 == DirInfo_0.filenum); + TEST_DONE; + break; + } + DirInfo(&DirInfo_0); +} + +_TEST AutomaticArchive(void) +{ + TIMEOUT_TEST_CASE; + + // Arrange + + // Act + + // Assert + + TEST_DONE; +} + /* B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2022-09-26 13:08:18Z +LastUpdated: 2023-02-06 16:23:26Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) { + new_TestFixture("ExportArchive", ExportArchive), + new_TestFixture("AutomaticArchive", AutomaticArchive), }; -UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_AuditMgr, "Set_AuditMgr", setupTest, teardownTest, fixtures, setupSet, teardownSet, 0); +UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_AuditMgr, "Set_AuditMgr", setupTest, teardownTest, fixtures, setupSet, teardownSet, cyclicSetCaller); diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ new file mode 100644 index 00000000..4dcf3b35 --- /dev/null +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ @@ -0,0 +1,72 @@ + +TYPE + TestStateEnum : + ( + TEST_ARRANGE := 10, + TEST_ACT := 20, + TEST_ASSERT := 30 + ); +END_TYPE + +(*UserX control*) + +TYPE + UserXLogin_type : STRUCT + Commands : UserXLoginCommands_type; + Status : UserXLoginStatus_type; + Parameters : UserXLoginParameters_type; + END_STRUCT; + UserXLoginCommands_type : STRUCT + Enable : BOOL; + Login : BOOL; + Logout : BOOL; + END_STRUCT; + UserXLoginStatus_type : STRUCT + CommandDone : BOOL; + CurrentUser : WSTRING[50]; + Error : BOOL; + END_STRUCT; + UserXLoginParameters_type : STRUCT + UserName : STRING[50]; + Password : UDINT; + END_STRUCT; +END_TYPE + +(*HMIAudit control*) + +TYPE + HMIAuditInterface_type : STRUCT + Commands : HMIAuditInterfaceCommands_type; + Status : HMIAuditInterfaceStatus_type; + Parameters : HMIAuditInterfaceParameters_type; + END_STRUCT; + HMIAuditInterfaceCommands_type : STRUCT + ExportArchives : BOOL; + END_STRUCT; + HMIAuditInterfaceStatus_type : STRUCT + AuditTrailCmdDone : BOOL; + AuditTrailArchiveAvailable : BOOL; + END_STRUCT; + HMIAuditInterfaceParameters_type : STRUCT + Filler : BOOL; + END_STRUCT; +END_TYPE + +(*MpRecipe control*) + +TYPE + MpRecipeUIConnect_type : STRUCT + Parameters : MpRecipeUIConnectParameters_type; + Commands : MpRecipeUIConnectCommands_type; + Status : MpRecipeUIConnectStatus_type; + END_STRUCT; + MpRecipeUIConnectParameters_type : STRUCT + FileName : USINT; + END_STRUCT; + MpRecipeUIConnectCommands_type : STRUCT + New_Member : USINT; + END_STRUCT; + MpRecipeUIConnectStatus_type : STRUCT + New_Member : USINT; + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index 900bef05..6f3fc9e1 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -13,3 +13,11 @@ VAR Testsuite : UtMgrTestSuite := (Name:='AuditMgr',Description:='AuditMgr Unit Tests',MetaInformation:='Meta'); END_VAR (*Variables used in the tests*) +VAR + cycleCount : {REDUND_UNREPLICABLE} USINT; + HMIAuditInterfaceCtrl : HMIAuditInterface_type := (Commands:=(ExportArchives:=FALSE)); + UnitTestState : TestStateEnum; + SampleTemperature : REAL; + DirInfo_0 : DirInfo; + NumberOfFiles : USINT; +END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm new file mode 100644 index 00000000..9bd4f3fc --- /dev/null +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -0,0 +1,10 @@ +(*Inputs to the unit test*) +VAR_CONFIG + ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone; (*Insert your comment here...*) + ::AuditMgr:MpAuditTrail_0.ArchiveAvailable AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable; (*Insert your comment here...*) +END_VAR +(*Outputs from the unit test*) +VAR_CONFIG + ::AuditTest:HMIAuditInterfaceCtrl.Commands.ExportArchives AT %Q.::AuditMgr:HmiAudit.Commands.ExportArchives; (*Insert your comment here...*) + ::AuditTest:SampleTemperature AT %Q.::AuditMgr:VariableMonitorExample; (*Insert your comment here...*) +END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/Package.pkg b/mappFramework/Physical/UnitTest/PC_any/UnitTest/Package.pkg index ac6f4c68..05874b97 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/Package.pkg +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/Package.pkg @@ -9,5 +9,6 @@ UserXMgr.vvm AppAxis.vvm ReportMgr.vvm + AuditMgr.vvm \ No newline at end of file From 933f7e6e6643a79407b81d9115935ff5ad1922cb Mon Sep 17 00:00:00 2001 From: austin_justin Date: Thu, 2 Mar 2023 10:58:29 -0500 Subject: [PATCH 016/159] Export Archive unit test mostly finished --- .../Diagnosis/UnitTest/PC_any/AuditTest.PVM | 14 ---- .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 0 -> 344 bytes .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 79 ++++++++++++++---- .../UnitTest/Audit/AuditTest/Types.typ | 10 ++- .../UnitTest/Audit/AuditTest/variables.var | 4 + .../Physical/UnitTest/PC_any/Cpu.pkg | 2 +- mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 2 +- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 1 + 8 files changed, 80 insertions(+), 32 deletions(-) delete mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM deleted file mode 100644 index b22bd4a3..00000000 --- a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM +++ /dev/null @@ -1,14 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=11 ASCIIString=0 - name type force value level type len format place expand specs - NumberOfFiles USINT 0 " 0" 0 5 1 10 1 0 - DirInfo_0 DirInfo 0 " *" 0 24 1 0 1 1 - enable BOOL 0 " TRUE" 1 1 1 2 0 0 - pDevice UDINT 0 " 177487960" 1 7 1 10 0 0 - pPath UDINT 0 " 0" 1 7 1 10 0 0 - status UINT 0 " 65535" 1 6 1 10 0 0 - dirnum UDINT 0 " 2" 1 7 1 10 0 0 - filenum UDINT 0 " 3" 1 7 1 10 0 0 - i_state UINT 0 " 2" 1 6 1 10 0 0 - i_result UINT 0 " 0" 1 6 1 10 0 0 - i_tmp UDINT 0 " 0" 1 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc new file mode 100644 index 0000000000000000000000000000000000000000..dd99628f548772e1bfdc1fea46f7c303d7b3aa3d GIT binary patch literal 344 zcmdO%?#r-fTUi1FgZwiFCI$w^2nHx{0Mfj|KtczIJ%BPH0^gE?y&4!GBv23q0QEwF z8G|oF07D29!~g&Pvw-?Q`WYD_81fl<8J05~WVpugmVtqdk>NihHzT8CX-Z~ENNRD3 z6^L+4%*;tmVPIioWMpDw0Ap5!isZ`VoK)xh(!3G|Ms|d-OJ #define TIMEOUT_TEST_CASE \ - if (cycleCount >= 254) \ + if (cycleCount >= 500) \ { \ char abortMessage[80]; \ char substate[10]; \ memset(abortMessage, 0, sizeof(abortMessage)); \ memset(substate, 0, sizeof(substate)); \ - itoa(ActSubState, substate, 10); \ - strcpy(abortMessage, "Timeout in ActSubState = "); \ + itoa(UnitTestState, substate, 10); \ + strcpy(abortMessage, "Timeout in State = "); \ strcat(abortMessage, substate); \ TEST_FAIL(abortMessage); \ TEST_DONE; \ @@ -36,6 +36,10 @@ _TEARDOWN_SET(void) _SETUP_TEST(void) { + TestDone = 0; + TestFailed = 0; + WriteNumFiles = 0; + Delay = 0; ArrangeSubState = 0; ActSubState = 0; AssertSubState = 0; @@ -53,41 +57,49 @@ _TEARDOWN_TEST(void) _CYCLIC_SET(void) { cycleCount++; - DirInfo(&DirInfo_0); } _TEST ExportArchive(void) { TIMEOUT_TEST_CASE; -// UnitTestState = TEST_ASSERT; + + DirInfo_0.enable = 1; + DirInfo_0.pDevice = (UDINT) "mappAuditFiles"; + DirInfo_0.pPath = 0; + DirInfo(&DirInfo_0); + switch (UnitTestState) { case TEST_ARRANGE: + // Force an audit to be generated SampleTemperature++; - DirInfo_0.enable = 1; - DirInfo_0.pDevice = (UDINT) "mappAuditFiles"; - DirInfo_0.pPath = 0; - DirInfo(&DirInfo_0); TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); + WriteNumFiles = 1; NumberOfFiles = DirInfo_0.filenum; UnitTestState = TEST_ACT; break; case TEST_ACT: // Archive audit + WriteNumFiles = 0; HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; - DirInfo(&DirInfo_0); + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); + Delay += 1; + TEST_BUSY_CONDITION(Delay != 2); UnitTestState = TEST_ASSERT; break; case TEST_ASSERT: // Check save location for archive TEST_ASSERT(NumberOfFiles + 1 == DirInfo_0.filenum); + TestFailed = !(NumberOfFiles + 1 == DirInfo_0.filenum); + TestDone = 1; TEST_DONE; break; } + DirInfo(&DirInfo_0); } @@ -95,13 +107,50 @@ _TEST AutomaticArchive(void) { TIMEOUT_TEST_CASE; - // Arrange - - // Act + DirInfo_0.enable = 1; + DirInfo_0.pDevice = (UDINT) "mappAuditFiles"; + DirInfo_0.pPath = 0; + DirInfo(&DirInfo_0); - // Assert + switch (UnitTestState) + { + case TEST_ARRANGE: + // Set automatic archive parameters and force audit generation + SampleTemperature++; + HmiAudit.Parameters.ArchiveSettings.Enable = 1; + HmiAudit.Parameters.ArchiveSettings.FileType = 1; + HmiAudit.Parameters.ArchiveSettings.MaxSize = 1; + HmiAudit.Parameters.ArchiveSettings.Mode = 0; + HmiAudit.Parameters.ArchiveSettings.Hour = 1; + HmiAudit.Parameters.ArchiveSettings.Minute = 1; + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); + WriteNumFiles = 1; + NumberOfFiles = DirInfo_0.filenum; + UnitTestState = TEST_ACT; + break; + + case TEST_ACT: + // Archive audit + WriteNumFiles = 0; + HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); + HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); + Delay += 1; + TEST_BUSY_CONDITION(Delay != 2); + UnitTestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + // Check save location for archive + TEST_ASSERT(NumberOfFiles + 1 == DirInfo_0.filenum); + TestFailed = !(NumberOfFiles + 1 == DirInfo_0.filenum); + TestDone = 1; + TEST_DONE; + break; + } - TEST_DONE; + DirInfo(&DirInfo_0); } /* diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ index 4dcf3b35..6e72b81e 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ @@ -48,7 +48,15 @@ TYPE AuditTrailArchiveAvailable : BOOL; END_STRUCT; HMIAuditInterfaceParameters_type : STRUCT - Filler : BOOL; + ArchiveSettings : HMIAuditArchiveParType; + END_STRUCT; + HMIAuditArchiveParType : STRUCT + Enable : BOOL; + MaxSize : UDINT; + Mode : MpAuditArchiveModeEnum; + Hour : USINT; + Minute : USINT; + FileType : MpAuditFileTypeEnum; END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index 6f3fc9e1..205072f3 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -20,4 +20,8 @@ VAR SampleTemperature : REAL; DirInfo_0 : DirInfo; NumberOfFiles : USINT; + TestDone : BOOL; + WriteNumFiles : BOOL; + TestFailed : BOOL; + Delay : USINT; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg index 10da6089..ca230015 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg @@ -13,7 +13,7 @@ AccessAndSecurity - + diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index 59daebcf..77c0bd46 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -93,7 +93,6 @@ - @@ -110,5 +109,6 @@ + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm index 9bd4f3fc..06937031 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -7,4 +7,5 @@ END_VAR VAR_CONFIG ::AuditTest:HMIAuditInterfaceCtrl.Commands.ExportArchives AT %Q.::AuditMgr:HmiAudit.Commands.ExportArchives; (*Insert your comment here...*) ::AuditTest:SampleTemperature AT %Q.::AuditMgr:VariableMonitorExample; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings; (*Insert your comment here...*) END_VAR From 4ea7b103a4358129165e89c8028395c3ce03932c Mon Sep 17 00:00:00 2001 From: austin_justin Date: Thu, 2 Mar 2023 12:42:12 -0500 Subject: [PATCH 017/159] Automatic archive unit test implemented, but fails --- .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 48 ++++++++----------- .../UnitTest/Audit/AuditTest/Types.typ | 1 + .../UnitTest/Audit/AuditTest/variables.var | 10 +++- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 1 + 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index d1434d80..2368ad09 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -44,7 +44,7 @@ _SETUP_TEST(void) ActSubState = 0; AssertSubState = 0; SampleTemperature = 1; - NumberOfFiles = 0; + TestNumber = 0; UnitTestState = TEST_ARRANGE; TEST_DONE; } @@ -61,6 +61,7 @@ _CYCLIC_SET(void) _TEST ExportArchive(void) { + TEST_DONE; TIMEOUT_TEST_CASE; DirInfo_0.enable = 1; @@ -75,7 +76,7 @@ _TEST ExportArchive(void) SampleTemperature++; TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); WriteNumFiles = 1; - NumberOfFiles = DirInfo_0.filenum; + TestNumber = DirInfo_0.filenum; UnitTestState = TEST_ACT; break; @@ -93,8 +94,8 @@ _TEST ExportArchive(void) case TEST_ASSERT: // Check save location for archive - TEST_ASSERT(NumberOfFiles + 1 == DirInfo_0.filenum); - TestFailed = !(NumberOfFiles + 1 == DirInfo_0.filenum); + TEST_ASSERT(TestNumber + 1 == DirInfo_0.filenum); + TestFailed = !(TestNumber + 1 == DirInfo_0.filenum); TestDone = 1; TEST_DONE; break; @@ -107,50 +108,41 @@ _TEST AutomaticArchive(void) { TIMEOUT_TEST_CASE; - DirInfo_0.enable = 1; - DirInfo_0.pDevice = (UDINT) "mappAuditFiles"; - DirInfo_0.pPath = 0; - DirInfo(&DirInfo_0); - switch (UnitTestState) { case TEST_ARRANGE: - // Set automatic archive parameters and force audit generation - SampleTemperature++; + // Set automatic archive parameters prepare audit for generation + SampleTemperature = SAMPLE_TEMP_VALUE; HmiAudit.Parameters.ArchiveSettings.Enable = 1; - HmiAudit.Parameters.ArchiveSettings.FileType = 1; - HmiAudit.Parameters.ArchiveSettings.MaxSize = 1; - HmiAudit.Parameters.ArchiveSettings.Mode = 0; - HmiAudit.Parameters.ArchiveSettings.Hour = 1; - HmiAudit.Parameters.ArchiveSettings.Minute = 1; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); + HmiAudit.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; + HmiAudit.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; + HmiAudit.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; + HmiAudit.Parameters.ArchiveSettings.Hour = HOUR; + HmiAudit.Parameters.ArchiveSettings.Minute = MINUTE; WriteNumFiles = 1; - NumberOfFiles = DirInfo_0.filenum; + TestNumber = HmiAudit.Status.NumberOfArchives; UnitTestState = TEST_ACT; break; case TEST_ACT: // Archive audit + DTSetTime_0.DT1 = SET_TIME; WriteNumFiles = 0; - HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); - HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); - Delay += 1; - TEST_BUSY_CONDITION(Delay != 2); + TON_0.PT = TIMER_LENGTH; + TON_0.IN = 1; + TON(&TON_0); + TEST_BUSY_CONDITION(!TON_0.Q); UnitTestState = TEST_ASSERT; break; case TEST_ASSERT: // Check save location for archive - TEST_ASSERT(NumberOfFiles + 1 == DirInfo_0.filenum); - TestFailed = !(NumberOfFiles + 1 == DirInfo_0.filenum); + TEST_ASSERT(TestNumber + 1 == HmiAudit.Status.NumberOfArchives); + TestFailed = !(TestNumber + 1 == HmiAudit.Status.NumberOfArchives); TestDone = 1; TEST_DONE; break; } - - DirInfo(&DirInfo_0); } /* diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ index 6e72b81e..333a1267 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ @@ -46,6 +46,7 @@ TYPE HMIAuditInterfaceStatus_type : STRUCT AuditTrailCmdDone : BOOL; AuditTrailArchiveAvailable : BOOL; + NumberOfArchives : UINT; END_STRUCT; HMIAuditInterfaceParameters_type : STRUCT ArchiveSettings : HMIAuditArchiveParType; diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index 205072f3..ac34d162 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -19,9 +19,17 @@ VAR UnitTestState : TestStateEnum; SampleTemperature : REAL; DirInfo_0 : DirInfo; - NumberOfFiles : USINT; + TestNumber : USINT; TestDone : BOOL; WriteNumFiles : BOOL; TestFailed : BOOL; Delay : USINT; + DTSetTime_0 : DTSetTime; + HOUR : USINT := 8; + MINUTE : USINT := 0; + SET_TIME : DATE_AND_TIME := DT#2023-01-01-07:59:55; + MAX_FILE_SIZE : UDINT := 100; (*Maximum file size for automatic archiving (Kb)*) + SAMPLE_TEMP_VALUE : REAL := 5; + TON_0 : TON; + TIMER_LENGTH : TIME := T#7s; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm index 06937031..ff8bdeb0 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -2,6 +2,7 @@ VAR_CONFIG ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone; (*Insert your comment here...*) ::AuditMgr:MpAuditTrail_0.ArchiveAvailable AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable; (*Insert your comment here...*) + ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HmiAudit.Status.NumberOfArchives; (*Insert your comment here...*) END_VAR (*Outputs from the unit test*) VAR_CONFIG From 9ddeec7f8656ac0839bc24b6c61df4586fa29932 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Thu, 2 Mar 2023 17:01:17 -0500 Subject: [PATCH 018/159] Both unit tests are now broken --- .../Diagnosis/UnitTest/PC_any/AuditTest.PVM | 141 ++++++ .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 344 -> 396 bytes .../Infrastructure/LoggerDemo/ANSIC.prg | 11 + .../Infrastructure/LoggerDemo/LoggerDemo.typ | 14 + .../Infrastructure/LoggerDemo/LoggerDemo.var | 27 + .../LoggerDemo/LoggerDemoCyclic.c | 26 + .../LoggerDemo/LoggerDemoExit.c | 24 + .../LoggerDemo/LoggerDemoInit.c | 33 ++ .../Logical/Infrastructure/Package.pkg | 1 + .../Libraries/ArEventLog/ArEventLog.fun | 307 ++++++++++++ .../Libraries/ArEventLog/ArEventLog.typ | 20 + .../Libraries/ArEventLog/ArEventLog.var | 42 ++ .../Libraries/ArEventLog/SG4/ArEventLog.h | 354 +++++++++++++ .../Logical/Libraries/ArEventLog/binary.lby | 12 + .../Logical/Libraries/AsTCP/AsTCP.fun | 162 ++++++ .../Logical/Libraries/AsTCP/AsTCP.typ | 12 + .../Logical/Libraries/AsTCP/AsTCP.var | 62 +++ .../Logical/Libraries/AsTCP/SG3/AsTCP.h | 261 ++++++++++ .../Logical/Libraries/AsTCP/SG4/AsTCP.h | 297 +++++++++++ .../Logical/Libraries/AsTCP/binary.lby | 12 + .../Logical/Libraries/LoggingLib/ANSIC.lby | 23 + .../Libraries/LoggingLib/AsLoggerFile.c | 463 ++++++++++++++++++ .../Libraries/LoggingLib/AsLoggerInternal.h | 73 +++ .../Libraries/LoggingLib/AsLoggerLogBook.c | 138 ++++++ .../Libraries/LoggingLib/AsLoggerServer.c | 373 ++++++++++++++ .../Logical/Libraries/LoggingLib/LoggingLib.c | 290 +++++++++++ .../Libraries/LoggingLib/LoggingLib.fun | 98 ++++ .../Libraries/LoggingLib/LoggingLib.typ | 101 ++++ .../Libraries/LoggingLib/LoggingLib.var | 13 + .../Libraries/LoggingLib/LoggingLibText.tmx | 24 + mappFramework/Logical/Libraries/Package.pkg | 3 + .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 43 +- .../UnitTest/Audit/AuditTest/variables.var | 3 +- mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 17 +- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 9 +- 35 files changed, 3470 insertions(+), 19 deletions(-) create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM create mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/ANSIC.prg create mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ create mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var create mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c create mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c create mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c create mode 100644 mappFramework/Logical/Libraries/ArEventLog/ArEventLog.fun create mode 100644 mappFramework/Logical/Libraries/ArEventLog/ArEventLog.typ create mode 100644 mappFramework/Logical/Libraries/ArEventLog/ArEventLog.var create mode 100644 mappFramework/Logical/Libraries/ArEventLog/SG4/ArEventLog.h create mode 100644 mappFramework/Logical/Libraries/ArEventLog/binary.lby create mode 100644 mappFramework/Logical/Libraries/AsTCP/AsTCP.fun create mode 100644 mappFramework/Logical/Libraries/AsTCP/AsTCP.typ create mode 100644 mappFramework/Logical/Libraries/AsTCP/AsTCP.var create mode 100644 mappFramework/Logical/Libraries/AsTCP/SG3/AsTCP.h create mode 100644 mappFramework/Logical/Libraries/AsTCP/SG4/AsTCP.h create mode 100644 mappFramework/Logical/Libraries/AsTCP/binary.lby create mode 100644 mappFramework/Logical/Libraries/LoggingLib/ANSIC.lby create mode 100644 mappFramework/Logical/Libraries/LoggingLib/AsLoggerFile.c create mode 100644 mappFramework/Logical/Libraries/LoggingLib/AsLoggerInternal.h create mode 100644 mappFramework/Logical/Libraries/LoggingLib/AsLoggerLogBook.c create mode 100644 mappFramework/Logical/Libraries/LoggingLib/AsLoggerServer.c create mode 100644 mappFramework/Logical/Libraries/LoggingLib/LoggingLib.c create mode 100644 mappFramework/Logical/Libraries/LoggingLib/LoggingLib.fun create mode 100644 mappFramework/Logical/Libraries/LoggingLib/LoggingLib.typ create mode 100644 mappFramework/Logical/Libraries/LoggingLib/LoggingLib.var create mode 100644 mappFramework/Logical/Libraries/LoggingLib/LoggingLibText.tmx diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM new file mode 100644 index 00000000..17799678 --- /dev/null +++ b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM @@ -0,0 +1,141 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditTest +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 Index=14 ASCIIString=0 + name type force value level type len format place expand specs + HMIAuditInterfaceCtrl HMIAuditInterface_type 0 " *" 0 24 1 0 1 1 + Status HMIAuditInterfaceStatus_type 0 " *" 1 24 1 0 0 1 + AuditTrailCmdDone BOOL 0 " FALSE" 2 1 1 2 0 0 + AuditTrailArchiveAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 + NumberOfArchives UINT 0 " 18" 2 6 1 10 0 0 + Parameters HMIAuditInterfaceParameters_type 0 " *" 1 24 1 0 0 1 + ArchiveSettings HMIAuditArchiveParType 0 " *" 2 24 1 0 0 1 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + MaxSize UDINT 0 " 0" 3 7 1 10 0 0 + Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + + Hour USINT 0 " 0" 3 5 1 10 0 0 + Minute USINT 0 " 0" 3 5 1 10 0 0 + FileType DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + + TestComparisonNumber USINT 0 " 0" 0 5 1 10 1 0 + VariableMonitorExample REAL 0 " 0.0" 0 8 1 10 1 0 + SampleTemperature REAL 0 " 0.0" 0 8 1 10 1 0 + HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands AuditCommandsType 0 " *" 1 24 1 0 0 0 + ExportArchives BOOL 0 " FALSE" 2 1 1 2 0 0 + RunQuery BOOL 0 " FALSE" 2 1 1 2 0 0 + SaveConfig BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters AuditParametersType 0 " *" 1 24 1 0 0 1 + ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 1 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + MaxSize UDINT 0 " 0" 3 7 1 10 0 0 + Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + + Hour USINT 0 " 0" 3 5 1 10 0 0 + Minute USINT 0 " 0" 3 5 1 10 0 0 + FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU + + QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 1 + QuerySelection[0] STRING[10] 0 " ''" 3 9 11 1 0 0 + QuerySelection[1] STRING[10] 0 " ''" 3 9 11 1 0 0 + QuerySelection[2] STRING[10] 0 " ''" 3 9 11 1 0 0 + Status AuditStatusType 0 " *" 1 24 1 0 0 1 + AuditSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + AuditFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 0 + TableConfig[0] STRING[255] 0 " ''" 3 9 256 1 0 0 + TableConfig[1] STRING[255] 0 " ''" 3 9 256 1 0 0 + Query AuditQueryHMIType 0 " *" 2 24 1 0 0 0 + EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 0 + EvTime[0] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[1] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[2] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[3] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[4] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[5] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[6] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[14] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[15] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[16] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[17] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[18] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 + Text[0] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[1] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[2] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[3] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[4] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[5] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[6] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[7] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[8] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[9] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[10] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[11] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[12] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[13] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[14] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[15] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[16] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[17] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 + DText[0] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[1] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[2] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[3] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[4] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[5] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[6] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[7] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[8] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[9] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[10] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[11] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[12] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[13] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[14] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[15] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[16] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 + Op[0] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[1] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[2] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[3] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[4] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[5] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[6] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[7] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[8] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[9] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[10] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[11] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[12] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[13] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[14] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[15] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 + QueryCount USINT 0 " 0" 3 5 1 10 0 0 + Name STRING[80] 0 " ''" 3 9 81 1 0 0 + Option USINT 0 " 0" 3 5 1 10 0 0 + CustomEventSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + CustomEventsFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + ArchiveAvailable BOOL 0 " FALSE" 2 1 1 2 0 0 + NumberOfArchives UINT 0 " 0" 2 6 1 10 0 0 + DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 0 + DeviceDataProvider[0] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc index dd99628f548772e1bfdc1fea46f7c303d7b3aa3d..828a3b498bebc130e8a232be0208d513437d3508 100644 GIT binary patch literal 396 zcmdO%?#r-fTUi1FgZwiFCI$w^9tJ3I0Mb17frJhadjMrR1imG;TQx91NT47J0P2MT zGX`%4KZYPChX4Qncrh?AzW|CeGK4XdFsx%Z&+wArAEPKxfRWLd(Vmgfu{0&KBqX)C z#0o^X&0QmLG4RmzJ56npc|3z{rM>_3-rsb3F4(Qj5|O zlT)2bigNUVOA<>;i}n0UbCXhw{L>tZk~1>PQi~ZFSrIxx_B!Y179NihHzT8CX-Z~ENNRD3 z6^L+4%*;tmVPIioWMpDw0Ap5!isZ`VoK)xh(!3G|Ms|d-OJ + + + + LoggerDemo.typ + LoggerDemo.var + LoggerDemoInit.c + LoggerDemoCyclic.c + LoggerDemoExit.c + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ new file mode 100644 index 00000000..77ebf780 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ @@ -0,0 +1,14 @@ +(******************************************************************** + * COPYRIGHT -- B&R + ******************************************************************** + * Program: loadLogger + * File: loadLogger.typ + * Author: buchananw + * Created: August 20, 2009 + ******************************************************************** + * Local data types of program loadLogger + ********************************************************************) + +TYPE + +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var new file mode 100644 index 00000000..cb28d341 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var @@ -0,0 +1,27 @@ +(******************************************************************** + * COPYRIGHT -- B&R + ******************************************************************** + * Program: loadLogger + * File: loadLogger.var + * Author: buchananw + * Created: August 20, 2009 + ******************************************************************** + * Local variables of program loadLogger + ********************************************************************) +VAR + myString : STRING[255] := ''; + testDebug : BOOL := FALSE; + testInfo : BOOL := FALSE; + testWarn : BOOL := FALSE; + testError : BOOL := FALSE; + testFatal : BOOL := FALSE; + enableTest : BOOL := FALSE; + AsLoggerLogBook_0 : AsLoggerLogBook := (0); + AsLoggerFile_0 : AsLoggerFile := (0); + AsLoggerServer_0 : AsLoggerServer := (0); + testFloat : REAL := 1.65; + testInt : INT := 0; + testString : STRING[50] := 'Hello World'; + testBool : BOOL := TRUE; + arguments : ARRAY[0..8] OF UDINT := [9(0)]; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c new file mode 100644 index 00000000..ea0665c7 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c @@ -0,0 +1,26 @@ +/******************************************************************** + * COPYRIGHT -- B&R + ******************************************************************** + * Program: LoggerDemo + * File: LoggerDemoCyclic.c + * Author: buchananw + * Created: August 20, 2009 + ******************************************************************** + * Implementation of program loadLogger + ********************************************************************/ + +#include + +#ifdef _DEFAULT_INCLUDES +#include +#endif + +#include +#include + +void _CYCLIC loadLoggerCyclic( void ) +{ + AsLoggerServer(&AsLoggerServer_0); +// AsLoggerFile(&AsLoggerFile_0); +// AsLoggerLogBook(&AsLoggerLogBook_0); +} diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c new file mode 100644 index 00000000..7851204d --- /dev/null +++ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c @@ -0,0 +1,24 @@ +/******************************************************************** + * COPYRIGHT -- B&R + ******************************************************************** + * Program: LoggerDemo + * File: LoggerDemoExit.c + * Author: buchananw + * Created: August 20, 2009 + *******************************************************************/ + +#include +#ifdef _DEFAULT_INCLUDES + #include +#endif + +#include + +void _EXIT logServerExit( void ) +{ + AsLoggerServer_0.disconnect = true; + do + { + AsLoggerServer(&AsLoggerServer_0); + }while (AsLoggerServer_0.status == 65535); +} diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c new file mode 100644 index 00000000..55056df1 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c @@ -0,0 +1,33 @@ +/******************************************************************** + * COPYRIGHT -- B&R + ******************************************************************** + * Program: LoggerDemo + * File: lLoggerDemoInit.c + * Author: buchananw + * Created: August 20, 2009 + ******************************************************************** + * Implementation of program loadLogger + ********************************************************************/ + +#include + +#ifdef _DEFAULT_INCLUDES + #include +#endif + +void _INIT loadLoggerInit( void ) +{ + AsLoggerServer_0.port = 15622; + AsLoggerServer_0.level = LOG_LEVEL_DEBUG; + + strcpy(AsLoggerFile_0.delimiter, ","); + strcpy(AsLoggerFile_0.device,"C"); + strcpy(AsLoggerFile_0.fileExtension,"csv"); + strcpy(AsLoggerFile_0.fileName,"logTest"); + AsLoggerFile_0.maxFiles = 10; + AsLoggerFile_0.maxFileSize = 100000; + AsLoggerFile_0.level = LOG_LEVEL_DEBUG; + + AsLoggerLogBook_0.level = LOG_LEVEL_DEBUG; + +} diff --git a/mappFramework/Logical/Infrastructure/Package.pkg b/mappFramework/Logical/Infrastructure/Package.pkg index 085bac23..062875d8 100644 --- a/mappFramework/Logical/Infrastructure/Package.pkg +++ b/mappFramework/Logical/Infrastructure/Package.pkg @@ -13,5 +13,6 @@ UserX Audit Report + LoggerDemo \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.fun b/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.fun new file mode 100644 index 00000000..2fbcbf81 --- /dev/null +++ b/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.fun @@ -0,0 +1,307 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogCreate (*creates an event log module; asynchronous execution *) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Name : STRING[256]; (*name of the event log module*) + Size : UDINT; (*size of the event log module*) + Persistence : USINT; (*persistence type of the log module*) + Info : UDINT; (*format of the additional data*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Busy : BOOL; (*execution running*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + Ident : ArEventLogIdentType; (*ident for the event log module*) + END_VAR + + VAR + Internal : ArEventLogAsyncInternalType;(*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogDelete (*deletes an event log module; asynchronous execution *) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Busy : BOOL; (*execution running*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + END_VAR + + VAR + Internal : ArEventLogAsyncInternalType;(*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetIdent (*gets identifier of an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Name : STRING[256]; (*name of the event log module*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + Ident : ArEventLogIdentType; (*identifier of the event log module*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogWrite (*writes a log entry to an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + EventID : DINT; (*event id of the log entry*) + OriginRecordID : ArEventLogRecordIDType; (*record id of basic cause of error/warning, or 0*) + ObjectID : STRING[36]; (*object id - string of maximum 35 characters, string length of 0 object id is generated internally*) + AddDataSize : UDINT; (*size of the additional data, or 0 (no additional data)*) + AddDataFormat : USINT; (*format of the additional data*) + AddData : UDINT; (*additional data of the entry given as pointer, or 0 (no additional data)*) + TimeStamp : UDINT; (*external timestamp given as pointer to ArEventLogTimeStampType, or 0 (timestamp is taken internally)*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + RecordID : ArEventLogRecordIDType; (*id of current record*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetLatestRecordID (*gets latest record id*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + RecordID : ArEventLogRecordIDType; (*latest record id to read*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetPreviousRecordID (*gets previous record id*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*current record id*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + PrevRecordID : ArEventLogRecordIDType; (*previous record id to read*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogRead (*reads a log entry from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + EventID : DINT; (*event id of the log entry*) + OriginRecordID : ArEventLogRecordIDType; (*record id of basic cause of error/warning, or 0*) + AddDataFormat : USINT; (*format of the additional data*) + AddDataSize : UDINT; (*size of the additional data*) + TimeStamp : ArEventLogTimeStampType; (*timestamp*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadDescription (*reads a description of an event id*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + LanguageCode : ArEventLogLanguageCodeType;(*language id of description*) + Qualifier : STRING[250]; (*additional qualifier - reserved for future use*) + TextBuffer : UDINT; (*buffer for description*) + TextBufferSize : UDINT; (*maximum description size*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Busy : BOOL; (*execution running*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + TextSize : UDINT; (*size of description (including 0-termination)*) + END_VAR + + VAR + Internal : ArEventLogAsyncInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadErrorNumber (*reads an error number log entry from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + ErrorNumber : UDINT; (*error number of the log entry*) + Severity : USINT; (*severity of the log entry*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadAddData (*reads the additional data from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + AddData : UDINT; (*buffer for additional data given as pointer*) + BytesToRead : UDINT; (*buffer size for additional data*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution status: see help*) + AddDataSize : UDINT; (*size of the additional data*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadObjectID (*reads the object id from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + ObjectID : STRING[36]; (*object id - string of maximum 35 characters*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION ArEventLogMakeEventID : DINT (*makes an event id*) + VAR_INPUT + Severity : USINT; (*severity code of event id*) + Facility : UINT; (*facility of event id*) + ErrorCode : UINT; (*error code of event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsError : BOOL (*returns true if event id is an error entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsWarning : BOOL (*returns true if event id is a warning entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsInformation : BOOL (*returns true if event id is a information entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsSuccess : BOOL (*returns true if event id is a success entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsCustomerArea : BOOL (*returns true if the customer flag of the event id is set*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataInit : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event log data*) + BufferSize : UDINT; (*buffer size*) + Format : USINT; (*format of the additional data*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataUdint : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event data*) + BufferSize : UDINT; (*buffer size*) + Value : UDINT; (*UDINT value*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataDint : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event data*) + BufferSize : UDINT; (*buffer size*) + Value : DINT; (*DINT value*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataString : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event log data*) + BufferSize : UDINT; (*buffer size*) + Value : UDINT; (*STRING value, given as pointer to null terminated string*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataQuantity : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event log data*) + BufferSize : UDINT; (*buffer size*) + Value : LREAL; (*LREAL value*) + UnitID : DINT; (*unit ID, -1 no unit*) + NamespaceURI : UDINT; (*namespace URI given as pointer to null terminated string, null is default namespace (CEFACT)*) + END_VAR +END_FUNCTION diff --git a/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.typ b/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.typ new file mode 100644 index 00000000..1285bbe9 --- /dev/null +++ b/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.typ @@ -0,0 +1,20 @@ + + TYPE + ArEventLogIdentType : UDINT; + ArEventLogRecordIDType : UDINT; + ArEventLogLanguageCodeType : STRING[18]; (*String-type for language ID*) + + ArEventLogTimeStampType : STRUCT + sec : UDINT; (*seconds*) + nsec : UDINT; (*nano seconds*) + END_STRUCT; + + ArEventLogAsyncInternalType : STRUCT + FBStateCtx : ArFBStateInternalType; + AsyFuMaCtx : ArFBAsyFuMaInternalType; + END_STRUCT; + + ArEventLogInternalType : STRUCT + FBStateCtx : ArFBStateInternalType; + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.var b/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.var new file mode 100644 index 00000000..ccbfb3d4 --- /dev/null +++ b/mappFramework/Logical/Libraries/ArEventLog/ArEventLog.var @@ -0,0 +1,42 @@ + + VAR CONSTANT + arEVENTLOG_ERR_PARAMETER : DINT := -1070586096; (*obsolete - invalid parameters specified*) + arEVENTLOG_ERR_RECORDID_INVALID : DINT := -1070586096; (*no record with the given id exists in the logbook*) + arEVENTLOG_ERR_EXISTING : DINT := -1070586095; (*obsolete- log module already exists*) + arEVENTLOG_ERR_LOGBOOK_EXISTS : DINT := -1070586095; (*a logbook with the given name already exists*) + arEVENTLOG_ERR_INTERNAL : DINT := -1070586094; (*unexpected internal error*) + arEVENTLOG_ERR_NAME_INVALID : DINT := -1070586093; (*the given name is invalid (empty)*) + arEVENTLOG_ERR_SIZE_INVALID : DINT := -1070586092; (*the given size is smaller than the minimum size of a logbook*) + arEVENTLOG_ERR_PERSISTENCE_INVAL : DINT := -1070586091; (*the given persistence level is unknown*) + arEVENTLOG_ERR_IDENT_INVALID : DINT := -1070586090; (*the given ident is invalid (NULL)*) + arEVENTLOG_ERR_IDENT_SYSTEM : DINT := -1070586089; (*access denied, the given ident belongs to a system logbook*) + arEVENTLOG_ERR_EVENTID_INVALID : DINT := -1070586088; (*the given event id is no customer event id*) + arEVENTLOG_ERR_LOGBOOK_NOT_FOUND : DINT := -1070586087; (*a logbook with the given name does not exist*) + arEVENTLOG_ERR_ADDDATA_NULL : DINT := -1070586086; (*the given pointer to the additional data buffer is NULL*) + arEVENTLOG_ERR_NO_ERRORNUMBER : DINT := -1070586085; (*the given record is no error number record*) + arEVENTLOG_ERR_MODULE_EXISTS : DINT := -1070586084; (*another module with the given name already exists*) + arEVENTLOG_ERR_NO_DESCRIPTION : DINT := -1070586083; (*no description was found for the given record id*) + arEVENTLOG_ERR_DESCRIPTION_NULL : DINT := -1070586082; (*the given pointer to the description buffer is NULL*) + arEVENTLOG_ERR_FORMAT_INVALID : DINT := -1070586081; (*the given format for the additional data is unknown*) + + arEVENTLOG_WRN_NO_EVENTID : DINT := -2144327920; (*the given record is no event id record*) + arEVENTLOG_WRN_FORMAT_INVALID : DINT := -2144327919; (*the given format for the additional data is unknown*) + arEVENTLOG_WRN_ADDDATA_NULL : DINT := -2144327918; (*the given pointer to the additional data is NULL*) + + arEVENTLOG_INF_SIZE : DINT := 1076897555; (*specified data size too small*) + + arEVENTLOG_SEVERITY_SUCCESS : USINT := 0; (*severity code success*) + arEVENTLOG_SEVERITY_INFO : USINT := 1; (*severity code informational*) + arEVENTLOG_SEVERITY_WARNING : USINT := 2; (*severity code warning*) + arEVENTLOG_SEVERITY_ERROR : USINT := 3; (*severity code error*) + + arEVENTLOG_PERSISTENCE_VOLATILE : USINT := 0; (*persistence volatile*) + arEVENTLOG_PERSISTENCE_REMANENT : USINT := 1; (*persistence remanent*) + arEVENTLOG_PERSISTENCE_PERSIST : USINT := 2; (*persistence persistent*) + + arEVENTLOG_ADDFORMAT_BINARY : USINT := 0; (*additional data format binary*) + arEVENTLOG_ADDFORMAT_TEXT : USINT := 1; (*additional data format series of null terminated strings*) + arEVENTLOG_ADDFORMAT_CODED : USINT := 2; (*additional data format binary coded data*) + arEVENTLOG_ADDFORMAT_CUST_BASE : USINT := 100; (*additional data format begin of customer area*) + arEVENTLOG_ADDFORMAT_CUST_MAX : USINT := 150; (*additional data format end of customer area*) +END_VAR diff --git a/mappFramework/Logical/Libraries/ArEventLog/SG4/ArEventLog.h b/mappFramework/Logical/Libraries/ArEventLog/SG4/ArEventLog.h new file mode 100644 index 00000000..a73cbd2b --- /dev/null +++ b/mappFramework/Logical/Libraries/ArEventLog/SG4/ArEventLog.h @@ -0,0 +1,354 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _AREVENTLOG_ +#define _AREVENTLOG_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Constants */ +#ifdef _REPLACE_CONST + #define arEVENTLOG_ADDFORMAT_CUST_MAX 150U + #define arEVENTLOG_ADDFORMAT_CUST_BASE 100U + #define arEVENTLOG_ADDFORMAT_CODED 2U + #define arEVENTLOG_ADDFORMAT_TEXT 1U + #define arEVENTLOG_ADDFORMAT_BINARY 0U + #define arEVENTLOG_PERSISTENCE_PERSIST 2U + #define arEVENTLOG_PERSISTENCE_REMANENT 1U + #define arEVENTLOG_PERSISTENCE_VOLATILE 0U + #define arEVENTLOG_SEVERITY_ERROR 3U + #define arEVENTLOG_SEVERITY_WARNING 2U + #define arEVENTLOG_SEVERITY_INFO 1U + #define arEVENTLOG_SEVERITY_SUCCESS 0U + #define arEVENTLOG_INF_SIZE 1076897555 + #define arEVENTLOG_WRN_ADDDATA_NULL (-2144327918) + #define arEVENTLOG_WRN_FORMAT_INVALID (-2144327919) + #define arEVENTLOG_WRN_NO_EVENTID (-2144327920) + #define arEVENTLOG_ERR_FORMAT_INVALID (-1070586081) + #define arEVENTLOG_ERR_DESCRIPTION_NULL (-1070586082) + #define arEVENTLOG_ERR_NO_DESCRIPTION (-1070586083) + #define arEVENTLOG_ERR_MODULE_EXISTS (-1070586084) + #define arEVENTLOG_ERR_NO_ERRORNUMBER (-1070586085) + #define arEVENTLOG_ERR_ADDDATA_NULL (-1070586086) + #define arEVENTLOG_ERR_LOGBOOK_NOT_FOUND (-1070586087) + #define arEVENTLOG_ERR_EVENTID_INVALID (-1070586088) + #define arEVENTLOG_ERR_IDENT_SYSTEM (-1070586089) + #define arEVENTLOG_ERR_IDENT_INVALID (-1070586090) + #define arEVENTLOG_ERR_PERSISTENCE_INVAL (-1070586091) + #define arEVENTLOG_ERR_SIZE_INVALID (-1070586092) + #define arEVENTLOG_ERR_NAME_INVALID (-1070586093) + #define arEVENTLOG_ERR_INTERNAL (-1070586094) + #define arEVENTLOG_ERR_LOGBOOK_EXISTS (-1070586095) + #define arEVENTLOG_ERR_EXISTING (-1070586095) + #define arEVENTLOG_ERR_RECORDID_INVALID (-1070586096) + #define arEVENTLOG_ERR_PARAMETER (-1070586096) +#else + #ifndef _GLOBAL_CONST + #define _GLOBAL_CONST _WEAK const + #endif + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CUST_MAX; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CUST_BASE; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CODED; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_TEXT; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_BINARY; + _GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_PERSIST; + _GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_REMANENT; + _GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_VOLATILE; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_ERROR; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_WARNING; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_INFO; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_SUCCESS; + _GLOBAL_CONST signed long arEVENTLOG_INF_SIZE; + _GLOBAL_CONST signed long arEVENTLOG_WRN_ADDDATA_NULL; + _GLOBAL_CONST signed long arEVENTLOG_WRN_FORMAT_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_WRN_NO_EVENTID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_FORMAT_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_DESCRIPTION_NULL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_NO_DESCRIPTION; + _GLOBAL_CONST signed long arEVENTLOG_ERR_MODULE_EXISTS; + _GLOBAL_CONST signed long arEVENTLOG_ERR_NO_ERRORNUMBER; + _GLOBAL_CONST signed long arEVENTLOG_ERR_ADDDATA_NULL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_LOGBOOK_NOT_FOUND; + _GLOBAL_CONST signed long arEVENTLOG_ERR_EVENTID_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_IDENT_SYSTEM; + _GLOBAL_CONST signed long arEVENTLOG_ERR_IDENT_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_PERSISTENCE_INVAL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_SIZE_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_NAME_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_INTERNAL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_LOGBOOK_EXISTS; + _GLOBAL_CONST signed long arEVENTLOG_ERR_EXISTING; + _GLOBAL_CONST signed long arEVENTLOG_ERR_RECORDID_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_PARAMETER; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct ArEventLogTimeStampType +{ unsigned long sec; + unsigned long nsec; +} ArEventLogTimeStampType; + +typedef struct ArEventLogAsyncInternalType +{ struct ArFBStateInternalType FBStateCtx; + struct ArFBAsyFuMaInternalType AsyFuMaCtx; +} ArEventLogAsyncInternalType; + +typedef struct ArEventLogInternalType +{ struct ArFBStateInternalType FBStateCtx; +} ArEventLogInternalType; + +typedef unsigned long ArEventLogIdentType; + +typedef struct ArEventLogCreate +{ + /* VAR_INPUT (analog) */ + plcstring Name[257]; + unsigned long Size; + unsigned char Persistence; + unsigned long Info; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogIdentType Ident; + /* VAR (analog) */ + struct ArEventLogAsyncInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Busy; + plcbit Error; +} ArEventLogCreate_typ; + +typedef struct ArEventLogDelete +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + /* VAR (analog) */ + struct ArEventLogAsyncInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Busy; + plcbit Error; +} ArEventLogDelete_typ; + +typedef struct ArEventLogGetIdent +{ + /* VAR_INPUT (analog) */ + plcstring Name[257]; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogIdentType Ident; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogGetIdent_typ; + +typedef unsigned long ArEventLogRecordIDType; + +typedef struct ArEventLogWrite +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + signed long EventID; + ArEventLogRecordIDType OriginRecordID; + plcstring ObjectID[37]; + unsigned long AddDataSize; + unsigned char AddDataFormat; + unsigned long AddData; + unsigned long TimeStamp; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogRecordIDType RecordID; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogWrite_typ; + +typedef struct ArEventLogGetLatestRecordID +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogRecordIDType RecordID; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogGetLatestRecordID_typ; + +typedef struct ArEventLogGetPreviousRecordID +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogRecordIDType PrevRecordID; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogGetPreviousRecordID_typ; + +typedef struct ArEventLogRead +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + signed long EventID; + ArEventLogRecordIDType OriginRecordID; + unsigned char AddDataFormat; + unsigned long AddDataSize; + struct ArEventLogTimeStampType TimeStamp; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogRead_typ; + +typedef plcstring ArEventLogLanguageCodeType[19]; + +typedef struct ArEventLogReadDescription +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + ArEventLogLanguageCodeType LanguageCode; + plcstring Qualifier[251]; + unsigned long TextBuffer; + unsigned long TextBufferSize; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long TextSize; + /* VAR (analog) */ + struct ArEventLogAsyncInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Busy; + plcbit Error; +} ArEventLogReadDescription_typ; + +typedef struct ArEventLogReadErrorNumber +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long ErrorNumber; + unsigned char Severity; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogReadErrorNumber_typ; + +typedef struct ArEventLogReadAddData +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + unsigned long AddData; + unsigned long BytesToRead; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long AddDataSize; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogReadAddData_typ; + +typedef struct ArEventLogReadObjectID +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + plcstring ObjectID[37]; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogReadObjectID_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void ArEventLogCreate(struct ArEventLogCreate* inst); +_BUR_PUBLIC void ArEventLogDelete(struct ArEventLogDelete* inst); +_BUR_PUBLIC void ArEventLogGetIdent(struct ArEventLogGetIdent* inst); +_BUR_PUBLIC void ArEventLogWrite(struct ArEventLogWrite* inst); +_BUR_PUBLIC void ArEventLogGetLatestRecordID(struct ArEventLogGetLatestRecordID* inst); +_BUR_PUBLIC void ArEventLogGetPreviousRecordID(struct ArEventLogGetPreviousRecordID* inst); +_BUR_PUBLIC void ArEventLogRead(struct ArEventLogRead* inst); +_BUR_PUBLIC void ArEventLogReadDescription(struct ArEventLogReadDescription* inst); +_BUR_PUBLIC void ArEventLogReadErrorNumber(struct ArEventLogReadErrorNumber* inst); +_BUR_PUBLIC void ArEventLogReadAddData(struct ArEventLogReadAddData* inst); +_BUR_PUBLIC void ArEventLogReadObjectID(struct ArEventLogReadObjectID* inst); +_BUR_PUBLIC signed long ArEventLogMakeEventID(unsigned char Severity, unsigned short Facility, unsigned short ErrorCode); +_BUR_PUBLIC plcbit ArEventLogIsError(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsWarning(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsInformation(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsSuccess(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsCustomerArea(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogAddDataInit(unsigned long Buffer, unsigned long BufferSize, unsigned char Format); +_BUR_PUBLIC plcbit ArEventLogAddDataUdint(unsigned long Buffer, unsigned long BufferSize, unsigned long Value); +_BUR_PUBLIC plcbit ArEventLogAddDataDint(unsigned long Buffer, unsigned long BufferSize, signed long Value); +_BUR_PUBLIC plcbit ArEventLogAddDataString(unsigned long Buffer, unsigned long BufferSize, unsigned long Value); +_BUR_PUBLIC plcbit ArEventLogAddDataQuantity(unsigned long Buffer, unsigned long BufferSize, double Value, signed long UnitID, unsigned long NamespaceURI); + + +#ifdef __cplusplus +}; +#endif +#endif /* _AREVENTLOG_ */ + diff --git a/mappFramework/Logical/Libraries/ArEventLog/binary.lby b/mappFramework/Logical/Libraries/ArEventLog/binary.lby new file mode 100644 index 00000000..9e41e7bd --- /dev/null +++ b/mappFramework/Logical/Libraries/ArEventLog/binary.lby @@ -0,0 +1,12 @@ + + + + + ArEventLog.fun + ArEventLog.typ + ArEventLog.var + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/AsTCP/AsTCP.fun b/mappFramework/Logical/Libraries/AsTCP/AsTCP.fun new file mode 100644 index 00000000..d6f32d30 --- /dev/null +++ b/mappFramework/Logical/Libraries/AsTCP/AsTCP.fun @@ -0,0 +1,162 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpOpen (*opens a TCP socket; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIfAddr : UDINT; (*pointer to the interface address*) + port : UINT; (*port number of the socket*) + options : UDINT; (*options that can be set during opening*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier for use with TcpServer, TcpClient, TcpSend, TcpRecv, TcpClose and TcpIoctl*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpOpenSsl (*opens a TCP socket using SSL; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIfAddr : UDINT; (*pointer to the interface address*) + port : UINT; (*port number of the socket*) + sslCfgIdent : UDINT; (*identifier of the SSL configuration*) + options : UDINT; (*options that can be set during opening*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier for use with TcpServer, TcpClient, TcpSend, TcpRecv, TcpClose and TcpIoctl*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpServer (*starts a TCP server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + backlog : UDINT; (*number of connections to queue*) + pIpAddr : UDINT; (*pointer where to store the ip address of the connected client*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + identclnt : UDINT; (*identifier for use with fub TcpClose, TcpSend, and TcpRecv*) + portclnt : UINT; (*port number of connected client*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpClient (*establishs a connection to a TCP server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + pServer : UDINT; (*pointer to the ip address of server to connect to*) + portserv : UINT; (*port number of server to connect to*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpClose (*closes a TCP socket and frees up all required resources; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + how : UDINT; (*shutdown behavior*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpSend (*sends data (byte stream); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + pData : UDINT; (*pointer to the data to be sent*) + datalen : UDINT; (*length of byte stream*) + flags : UDINT; (*send flags (e.g. "out of band" data)*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + sentlen : UDINT; (*number of actually sent bytes*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpRecv (*receives TCP byte stream; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + pData : UDINT; (*pointer to the buffer where to store byte stream data*) + datamax : UDINT; (*max. length of data in bytes*) + flags : UDINT; (*receive flags*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + recvlen : UDINT; (*length of the bytes received*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpIoctl (*changes or retrieves settings; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + ioctl : UDINT; (*I/O control code*) + pData : UDINT; (*pointer to the I/O control data buffer*) + datalen : UDINT; (*lentgh of I/O control input data*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + outlen : UDINT; (*output data length*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/mappFramework/Logical/Libraries/AsTCP/AsTCP.typ b/mappFramework/Logical/Libraries/AsTCP/AsTCP.typ new file mode 100644 index 00000000..327fd88f --- /dev/null +++ b/mappFramework/Logical/Libraries/AsTCP/AsTCP.typ @@ -0,0 +1,12 @@ + +TYPE + tcpLINGER_typ : STRUCT (*linger*) + lOnOff : UDINT; (*linger on/off*) + lLinger : UDINT; (*linger time (seconds)*) + END_STRUCT; + + tcpSO_ADDRESS_typ : STRUCT (*socket address*) + pPort : UDINT; (*pointer where to store the portnumber*) + pIpAddr : UDINT; (*pointer where to store the socket ip address*) + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Libraries/AsTCP/AsTCP.var b/mappFramework/Logical/Libraries/AsTCP/AsTCP.var new file mode 100644 index 00000000..862da23b --- /dev/null +++ b/mappFramework/Logical/Libraries/AsTCP/AsTCP.var @@ -0,0 +1,62 @@ + +VAR CONSTANT + tcpERR_INVALID_IDENT : UINT := 32600; (*invalid ident*) + tcpERR_NOMORE_IDENTS : UINT := 32601; (*no more idents*) + tcpERR_ALREADY_EXIST : UINT := 32602; (*socket already exists*) + tcpERR_PARAMETER : UINT := 32603; (*invalid parameter, check parameter*) + tcpERR_INVALID_IOCTL : UINT := 32604; (*io control not supported*) + tcpERR_NO_DATA : UINT := 32605; (*no data to receive*) + tcpERR_SENTLEN : UINT := 32606; (*length sent error, call again*) + tcpERR_WOULDBLOCK : UINT := 32607; (*would block, call again*) + tcpERR_INVALID : UINT := 32608; (*invalid argument*) + tcpERR_NOT_CONNECTED : UINT := 32609; (*socket is not connected*) + tcpERR_ALREADY_CONNECTED : UINT := 32610; (*connected has been already established*) + tcpERR_NO_OOBDATA : UINT := 32611; (*no out of band data*) + tcpERR_INTERFACE : UINT := 32612; (*illegal interface*) + tcpERR_NOCLIENT : UINT := 32613; (*client not yet connected*) + + tcpERR_SOCKET_CREATE : UINT := 32650; (*create socket failed*) + tcpERR_SOCKET_BIND : UINT := 32651; (*bind socket failed*) + tcpERR_SOCKET_LISTEN : UINT := 32652; (*listen socket failed*) + tcpERR_SOCKET_ACCEPT : UINT := 32653; (*accept socket failed*) + + tcpERR_INVALID_SSL_CONFIG : UINT := 32697; (*invalid SSL configuration given*) + tcpERR_SSL_HANDSHAKE_FAILED : UINT := 32698; (*SSL handshake failed*) + + tcpERR_SYSTEM : UINT := 32699; (*system error*) + + tcpSO_LINGER_SET : UDINT := 1001; (*set option linger*) + tcpSO_LINGER_GET : UDINT := 1002; (*get option linger*) + tcpSO_KEEPALIVE_SET : UDINT := 1003; (*set option keep alive*) + tcpSO_KEEPALIVE_GET : UDINT := 1004; (*get option keep alive*) + tcpSO_SNDBUF_SET : UDINT := 1005; (*set option send buffer*) + tcpSO_SNDBUF_GET : UDINT := 1006; (*get option send buffer*) + tcpSO_RCVBUF_SET : UDINT := 1007; (*set option receive buffer*) + tcpSO_RCVBUF_GET : UDINT := 1008; (*get option receive buffer*) + tcpSO_OOBINLINE_SET : UDINT := 1009; (*set option out of band data inline*) + tcpSO_OOBINLINE_GET : UDINT := 1010; (*get option out of band data inline*) + tcpSO_ADDRESS_GET : UDINT := 1011; (*get socket address*) + tcpSO_NOWAITING_SET : UDINT := 1012; (*set option no waiting until client connects*) + tcpSO_NOWAITING_GET : UDINT := 1013; (*get option no waiting until client connects*) + tcpTCP_NODELAY_SET : UDINT := 2001; (*set option tcp no delay*) + tcpTCP_NODELAY_GET : UDINT := 2002; (*get option tcp no delay*) + tcpTCP_KEEPCNT_SET : UDINT := 2003; (*set option tcp keep count*) + tcpTCP_KEEPCNT_GET : UDINT := 2004; (*get option tcp keep count*) + tcpTCP_KEEPIDLE_SET : UDINT := 2005; (*set option tcp keep idle*) + tcpTCP_KEEPIDLE_GET : UDINT := 2006; (*get option tcp keep idle*) + tcpTCP_KEEPINTVL_SET : UDINT := 2007; (*set option tcp keep intervall*) + tcpTCP_KEEPINTVL_GET : UDINT := 2008; (*get option tcp keep intervall*) + tcpID_LIST_GET : UDINT := 3001; (*get ident list*) + tcpID_MAX_GET : UDINT := 3002; (*get max ident count*) + + tcpMSG_OOB : UDINT := 1; (*out of band message*) + tcpMSG_PEEK : UDINT := 2; (*don't remove data from socket (receive)*) + tcpMSG_DONTROUTE : UDINT := 4; (*message don't route (send)*) + + tcpOPT_REUSEADDR : UDINT := 1; (*option reuse address*) + + tcpSHUT_RD : UDINT := 1; (*shutdown read channel*) + tcpSHUT_WR : UDINT := 2; (*shutdown write channel*) + + tcpINVALID_IDENT : UDINT := 0; (*invalid ident*) +END_VAR diff --git a/mappFramework/Logical/Libraries/AsTCP/SG3/AsTCP.h b/mappFramework/Logical/Libraries/AsTCP/SG3/AsTCP.h new file mode 100644 index 00000000..66b346ae --- /dev/null +++ b/mappFramework/Logical/Libraries/AsTCP/SG3/AsTCP.h @@ -0,0 +1,261 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTCP_ +#define _ASTCP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define tcpINVALID_IDENT 0U + #define tcpSHUT_WR 2U + #define tcpSHUT_RD 1U + #define tcpOPT_REUSEADDR 1U + #define tcpMSG_DONTROUTE 4U + #define tcpMSG_PEEK 2U + #define tcpMSG_OOB 1U + #define tcpID_MAX_GET 3002U + #define tcpID_LIST_GET 3001U + #define tcpTCP_NODELAY_GET 2002U + #define tcpTCP_NODELAY_SET 2001U + #define tcpSO_NOWAITING_GET 1013U + #define tcpSO_NOWAITING_SET 1012U + #define tcpSO_ADDRESS_GET 1011U + #define tcpSO_OOBINLINE_GET 1010U + #define tcpSO_OOBINLINE_SET 1009U + #define tcpSO_RCVBUF_GET 1008U + #define tcpSO_RCVBUF_SET 1007U + #define tcpSO_SNDBUF_GET 1006U + #define tcpSO_SNDBUF_SET 1005U + #define tcpSO_KEEPALIVE_GET 1004U + #define tcpSO_KEEPALIVE_SET 1003U + #define tcpSO_LINGER_GET 1002U + #define tcpSO_LINGER_SET 1001U + #define tcpERR_SYSTEM 32699U + #define tcpERR_SOCKET_ACCEPT 32653U + #define tcpERR_SOCKET_LISTEN 32652U + #define tcpERR_SOCKET_BIND 32651U + #define tcpERR_SOCKET_CREATE 32650U + #define tcpERR_NOCLIENT 32613U + #define tcpERR_INTERFACE 32612U + #define tcpERR_NO_OOBDATA 32611U + #define tcpERR_ALREADY_CONNECTED 32610U + #define tcpERR_NOT_CONNECTED 32609U + #define tcpERR_INVALID 32608U + #define tcpERR_WOULDBLOCK 32607U + #define tcpERR_SENTLEN 32606U + #define tcpERR_NO_DATA 32605U + #define tcpERR_INVALID_IOCTL 32604U + #define tcpERR_PARAMETER 32603U + #define tcpERR_ALREADY_EXIST 32602U + #define tcpERR_NOMORE_IDENTS 32601U + #define tcpERR_INVALID_IDENT 32600U +#else + _IEC_CONST unsigned long tcpINVALID_IDENT = 0U; + _IEC_CONST unsigned long tcpSHUT_WR = 2U; + _IEC_CONST unsigned long tcpSHUT_RD = 1U; + _IEC_CONST unsigned long tcpOPT_REUSEADDR = 1U; + _IEC_CONST unsigned long tcpMSG_DONTROUTE = 4U; + _IEC_CONST unsigned long tcpMSG_PEEK = 2U; + _IEC_CONST unsigned long tcpMSG_OOB = 1U; + _IEC_CONST unsigned long tcpID_MAX_GET = 3002U; + _IEC_CONST unsigned long tcpID_LIST_GET = 3001U; + _IEC_CONST unsigned long tcpTCP_NODELAY_GET = 2002U; + _IEC_CONST unsigned long tcpTCP_NODELAY_SET = 2001U; + _IEC_CONST unsigned long tcpSO_NOWAITING_GET = 1013U; + _IEC_CONST unsigned long tcpSO_NOWAITING_SET = 1012U; + _IEC_CONST unsigned long tcpSO_ADDRESS_GET = 1011U; + _IEC_CONST unsigned long tcpSO_OOBINLINE_GET = 1010U; + _IEC_CONST unsigned long tcpSO_OOBINLINE_SET = 1009U; + _IEC_CONST unsigned long tcpSO_RCVBUF_GET = 1008U; + _IEC_CONST unsigned long tcpSO_RCVBUF_SET = 1007U; + _IEC_CONST unsigned long tcpSO_SNDBUF_GET = 1006U; + _IEC_CONST unsigned long tcpSO_SNDBUF_SET = 1005U; + _IEC_CONST unsigned long tcpSO_KEEPALIVE_GET = 1004U; + _IEC_CONST unsigned long tcpSO_KEEPALIVE_SET = 1003U; + _IEC_CONST unsigned long tcpSO_LINGER_GET = 1002U; + _IEC_CONST unsigned long tcpSO_LINGER_SET = 1001U; + _IEC_CONST unsigned short tcpERR_SYSTEM = 32699U; + _IEC_CONST unsigned short tcpERR_SOCKET_ACCEPT = 32653U; + _IEC_CONST unsigned short tcpERR_SOCKET_LISTEN = 32652U; + _IEC_CONST unsigned short tcpERR_SOCKET_BIND = 32651U; + _IEC_CONST unsigned short tcpERR_SOCKET_CREATE = 32650U; + _IEC_CONST unsigned short tcpERR_NOCLIENT = 32613U; + _IEC_CONST unsigned short tcpERR_INTERFACE = 32612U; + _IEC_CONST unsigned short tcpERR_NO_OOBDATA = 32611U; + _IEC_CONST unsigned short tcpERR_ALREADY_CONNECTED = 32610U; + _IEC_CONST unsigned short tcpERR_NOT_CONNECTED = 32609U; + _IEC_CONST unsigned short tcpERR_INVALID = 32608U; + _IEC_CONST unsigned short tcpERR_WOULDBLOCK = 32607U; + _IEC_CONST unsigned short tcpERR_SENTLEN = 32606U; + _IEC_CONST unsigned short tcpERR_NO_DATA = 32605U; + _IEC_CONST unsigned short tcpERR_INVALID_IOCTL = 32604U; + _IEC_CONST unsigned short tcpERR_PARAMETER = 32603U; + _IEC_CONST unsigned short tcpERR_ALREADY_EXIST = 32602U; + _IEC_CONST unsigned short tcpERR_NOMORE_IDENTS = 32601U; + _IEC_CONST unsigned short tcpERR_INVALID_IDENT = 32600U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct tcpLINGER_typ +{ unsigned long lOnOff; + unsigned long lLinger; +} tcpLINGER_typ; + +typedef struct tcpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} tcpSO_ADDRESS_typ; + +typedef struct TcpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpOpen_typ; + +typedef struct TcpServer +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long backlog; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long identclnt; + unsigned short portclnt; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpServer_typ; + +typedef struct TcpClient +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pServer; + unsigned short portserv; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpClient_typ; + +typedef struct TcpClose +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long how; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpClose_typ; + +typedef struct TcpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpSend_typ; + +typedef struct TcpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpRecv_typ; + +typedef struct TcpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +void TcpOpen(struct TcpOpen* inst); +void TcpServer(struct TcpServer* inst); +void TcpClient(struct TcpClient* inst); +void TcpClose(struct TcpClose* inst); +void TcpSend(struct TcpSend* inst); +void TcpRecv(struct TcpRecv* inst); +void TcpIoctl(struct TcpIoctl* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASTCP_ */ + + diff --git a/mappFramework/Logical/Libraries/AsTCP/SG4/AsTCP.h b/mappFramework/Logical/Libraries/AsTCP/SG4/AsTCP.h new file mode 100644 index 00000000..a6e66eaf --- /dev/null +++ b/mappFramework/Logical/Libraries/AsTCP/SG4/AsTCP.h @@ -0,0 +1,297 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTCP_ +#define _ASTCP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Constants */ +#ifdef _REPLACE_CONST + #define tcpINVALID_IDENT 0U + #define tcpSHUT_WR 2U + #define tcpSHUT_RD 1U + #define tcpOPT_REUSEADDR 1U + #define tcpMSG_DONTROUTE 4U + #define tcpMSG_PEEK 2U + #define tcpMSG_OOB 1U + #define tcpID_MAX_GET 3002U + #define tcpID_LIST_GET 3001U + #define tcpTCP_KEEPINTVL_GET 2008U + #define tcpTCP_KEEPINTVL_SET 2007U + #define tcpTCP_KEEPIDLE_GET 2006U + #define tcpTCP_KEEPIDLE_SET 2005U + #define tcpTCP_KEEPCNT_GET 2004U + #define tcpTCP_KEEPCNT_SET 2003U + #define tcpTCP_NODELAY_GET 2002U + #define tcpTCP_NODELAY_SET 2001U + #define tcpSO_NOWAITING_GET 1013U + #define tcpSO_NOWAITING_SET 1012U + #define tcpSO_ADDRESS_GET 1011U + #define tcpSO_OOBINLINE_GET 1010U + #define tcpSO_OOBINLINE_SET 1009U + #define tcpSO_RCVBUF_GET 1008U + #define tcpSO_RCVBUF_SET 1007U + #define tcpSO_SNDBUF_GET 1006U + #define tcpSO_SNDBUF_SET 1005U + #define tcpSO_KEEPALIVE_GET 1004U + #define tcpSO_KEEPALIVE_SET 1003U + #define tcpSO_LINGER_GET 1002U + #define tcpSO_LINGER_SET 1001U + #define tcpERR_SYSTEM 32699U + #define tcpERR_SSL_HANDSHAKE_FAILED 32698U + #define tcpERR_INVALID_SSL_CONFIG 32697U + #define tcpERR_SOCKET_ACCEPT 32653U + #define tcpERR_SOCKET_LISTEN 32652U + #define tcpERR_SOCKET_BIND 32651U + #define tcpERR_SOCKET_CREATE 32650U + #define tcpERR_NOCLIENT 32613U + #define tcpERR_INTERFACE 32612U + #define tcpERR_NO_OOBDATA 32611U + #define tcpERR_ALREADY_CONNECTED 32610U + #define tcpERR_NOT_CONNECTED 32609U + #define tcpERR_INVALID 32608U + #define tcpERR_WOULDBLOCK 32607U + #define tcpERR_SENTLEN 32606U + #define tcpERR_NO_DATA 32605U + #define tcpERR_INVALID_IOCTL 32604U + #define tcpERR_PARAMETER 32603U + #define tcpERR_ALREADY_EXIST 32602U + #define tcpERR_NOMORE_IDENTS 32601U + #define tcpERR_INVALID_IDENT 32600U +#else + #ifndef _GLOBAL_CONST + #define _GLOBAL_CONST _WEAK const + #endif + _GLOBAL_CONST unsigned long tcpINVALID_IDENT; + _GLOBAL_CONST unsigned long tcpSHUT_WR; + _GLOBAL_CONST unsigned long tcpSHUT_RD; + _GLOBAL_CONST unsigned long tcpOPT_REUSEADDR; + _GLOBAL_CONST unsigned long tcpMSG_DONTROUTE; + _GLOBAL_CONST unsigned long tcpMSG_PEEK; + _GLOBAL_CONST unsigned long tcpMSG_OOB; + _GLOBAL_CONST unsigned long tcpID_MAX_GET; + _GLOBAL_CONST unsigned long tcpID_LIST_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPINTVL_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPINTVL_SET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPIDLE_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPIDLE_SET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPCNT_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPCNT_SET; + _GLOBAL_CONST unsigned long tcpTCP_NODELAY_GET; + _GLOBAL_CONST unsigned long tcpTCP_NODELAY_SET; + _GLOBAL_CONST unsigned long tcpSO_NOWAITING_GET; + _GLOBAL_CONST unsigned long tcpSO_NOWAITING_SET; + _GLOBAL_CONST unsigned long tcpSO_ADDRESS_GET; + _GLOBAL_CONST unsigned long tcpSO_OOBINLINE_GET; + _GLOBAL_CONST unsigned long tcpSO_OOBINLINE_SET; + _GLOBAL_CONST unsigned long tcpSO_RCVBUF_GET; + _GLOBAL_CONST unsigned long tcpSO_RCVBUF_SET; + _GLOBAL_CONST unsigned long tcpSO_SNDBUF_GET; + _GLOBAL_CONST unsigned long tcpSO_SNDBUF_SET; + _GLOBAL_CONST unsigned long tcpSO_KEEPALIVE_GET; + _GLOBAL_CONST unsigned long tcpSO_KEEPALIVE_SET; + _GLOBAL_CONST unsigned long tcpSO_LINGER_GET; + _GLOBAL_CONST unsigned long tcpSO_LINGER_SET; + _GLOBAL_CONST unsigned short tcpERR_SYSTEM; + _GLOBAL_CONST unsigned short tcpERR_SSL_HANDSHAKE_FAILED; + _GLOBAL_CONST unsigned short tcpERR_INVALID_SSL_CONFIG; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_ACCEPT; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_LISTEN; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_BIND; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_CREATE; + _GLOBAL_CONST unsigned short tcpERR_NOCLIENT; + _GLOBAL_CONST unsigned short tcpERR_INTERFACE; + _GLOBAL_CONST unsigned short tcpERR_NO_OOBDATA; + _GLOBAL_CONST unsigned short tcpERR_ALREADY_CONNECTED; + _GLOBAL_CONST unsigned short tcpERR_NOT_CONNECTED; + _GLOBAL_CONST unsigned short tcpERR_INVALID; + _GLOBAL_CONST unsigned short tcpERR_WOULDBLOCK; + _GLOBAL_CONST unsigned short tcpERR_SENTLEN; + _GLOBAL_CONST unsigned short tcpERR_NO_DATA; + _GLOBAL_CONST unsigned short tcpERR_INVALID_IOCTL; + _GLOBAL_CONST unsigned short tcpERR_PARAMETER; + _GLOBAL_CONST unsigned short tcpERR_ALREADY_EXIST; + _GLOBAL_CONST unsigned short tcpERR_NOMORE_IDENTS; + _GLOBAL_CONST unsigned short tcpERR_INVALID_IDENT; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct tcpLINGER_typ +{ unsigned long lOnOff; + unsigned long lLinger; +} tcpLINGER_typ; + +typedef struct tcpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} tcpSO_ADDRESS_typ; + +typedef struct TcpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpOpen_typ; + +typedef struct TcpOpenSsl +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long sslCfgIdent; + unsigned long options; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpOpenSsl_typ; + +typedef struct TcpServer +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long backlog; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long identclnt; + unsigned short portclnt; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpServer_typ; + +typedef struct TcpClient +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pServer; + unsigned short portserv; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpClient_typ; + +typedef struct TcpClose +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long how; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpClose_typ; + +typedef struct TcpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpSend_typ; + +typedef struct TcpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpRecv_typ; + +typedef struct TcpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void TcpOpen(struct TcpOpen* inst); +_BUR_PUBLIC void TcpOpenSsl(struct TcpOpenSsl* inst); +_BUR_PUBLIC void TcpServer(struct TcpServer* inst); +_BUR_PUBLIC void TcpClient(struct TcpClient* inst); +_BUR_PUBLIC void TcpClose(struct TcpClose* inst); +_BUR_PUBLIC void TcpSend(struct TcpSend* inst); +_BUR_PUBLIC void TcpRecv(struct TcpRecv* inst); +_BUR_PUBLIC void TcpIoctl(struct TcpIoctl* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASTCP_ */ + diff --git a/mappFramework/Logical/Libraries/AsTCP/binary.lby b/mappFramework/Logical/Libraries/AsTCP/binary.lby new file mode 100644 index 00000000..727e3ea1 --- /dev/null +++ b/mappFramework/Logical/Libraries/AsTCP/binary.lby @@ -0,0 +1,12 @@ + + + + + AsTCP.fun + AsTCP.typ + AsTCP.var + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/LoggingLib/ANSIC.lby b/mappFramework/Logical/Libraries/LoggingLib/ANSIC.lby new file mode 100644 index 00000000..785dd5e3 --- /dev/null +++ b/mappFramework/Logical/Libraries/LoggingLib/ANSIC.lby @@ -0,0 +1,23 @@ + + + + + LoggingLib.typ + LoggingLib.var + LoggingLib.fun + LoggingLib.c + AsLoggerInternal.h + AsLoggerServer.c + AsLoggerFile.c + AsLoggerLogBook.c + LoggingLibText.tmx + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/LoggingLib/AsLoggerFile.c b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerFile.c new file mode 100644 index 00000000..cb73e103 --- /dev/null +++ b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerFile.c @@ -0,0 +1,463 @@ +/******************************************************************** + * COPYRIGHT -- Bernecker + Rainer + ******************************************************************** + * Library: AsLogger + * File: AsLoggerFile.c + * Author: buchananw + * Created: August 21, 2009 + *******************************************************************/ + +#include +#include +#include +#include +#include "AsLoggerInternal.h" + +#ifdef __DEBUG_LOGGING_LIBRARY__ +#define transit(x, _state) \ +{ \ + x = _state; \ + logDebug("AsLoggerFile", "changing to state " #_state, NULL); \ +} +#else + +#define transit(x, _state) \ +{ \ + x = _state; \ +} + +#endif + + +#define disableAllFunctionBlocks \ +inst->internal.FileOpen_0.enable = false; \ +inst->internal.FileCreate_0.enable = false; \ +inst->internal.FileWrite_0.enable = false; \ +inst->internal.FileCopy_0.enable = false; \ +inst->internal.FileClose_0.enable = false; \ +inst->internal.FileDelete_0.enable = false; + +#define incrementFileNumber(x) x = (x+1) % inst->maxFiles +#define decrementFileNumber(x) x = (x > 0) ? x - 1 : inst->maxFiles - 1 + +void AsLoggerFile(struct AsLoggerFile* inst) +{ + LogStore_typ* logStore; + UDINT arguments[LOGGING_MAX_ARGUMENTS]; + USINT i, numberOfLinesWritten; + + if (inst == NULL) + { + logError("AsLoggerFile", "AsLoggerFile called with NULL instance", NULL); + return; + } + logStore = getLogStore(); + + if (logStore == NULL) + { + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); +#ifdef __DEBUG_LOGGING_LIBRARY__ + logDebug("AsLoggerFile", "logStore is NULL", NULL); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); +#endif + inst->status = ASLOGGER_INTERNAL_ERROR; + return; + } + + switch(inst->internal.state) + { + case AS_FILE_LOGGER_STATE_W_ENABLE: + if (inst->enable != true) + { + inst->status = ERR_FUB_ENABLE_FALSE; + return; + } + + if (strcmp(inst->device, "") == true) + { + logError("AsLoggerFile", "device name empty", NULL); + inst->status = ASLOGGER_ILLEGAL_DEVICENAME; + return; + } + if (strcmp(inst->fileName, "") == true) + { + logError("AsLoggerFile", "file name empty", NULL); + inst->status = ASLOGGER_ILLEGAL_FILENAME; + return; + } + + inst->internal.fileNumber = (inst->maxFiles > 1) ? inst->maxFiles - 1 : 0; + if (inst->internal.fileNumber <= 1) + { + snprintf2(inst->internal.tempFileName, (sizeof(inst->internal.tempFileName) / sizeof(inst->internal.tempFileName[0])) - 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.FileDelete_0.pDevice = (UDINT)&inst->device; + inst->internal.FileDelete_0.pName = (UDINT)&inst->internal.tempFileName; + inst->internal.FileDelete_0.enable = true; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_DELETE_OLD); + } + else + { + snprintf2(inst->internal.newFileName, (sizeof(inst->internal.newFileName) / sizeof(inst->internal.newFileName[0])) - 1, "%s%d.%s", inst->fileName, inst->internal.fileNumber, inst->fileExtension); + snprintf2(inst->internal.oldFileName, (sizeof(inst->internal.oldFileName) / sizeof(inst->internal.oldFileName[0])) - 1, "%s%d.%s", inst->fileName, --inst->internal.fileNumber, inst->fileExtension); + + inst->internal.FileCopy_0.enable = true; + inst->internal.FileCopy_0.option = fiOVERWRITE; + inst->internal.FileCopy_0.pSrc = (UDINT)&inst->internal.oldFileName; + inst->internal.FileCopy_0.pSrcDev = (UDINT)&inst->device; + inst->internal.FileCopy_0.pDest = (UDINT)&inst->internal.newFileName; + inst->internal.FileCopy_0.pDestDev = (UDINT)&inst->device; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_MOVE_FILES); + } + break; + + case AS_FILE_LOGGER_STATE_MOVE_FILES: + switch (inst->internal.FileCopy_0.status) + { + case 0: + case fiERR_FILE_NOT_FOUND: + inst->internal.FileCopy_0.enable = false; + if (inst->internal.fileNumber == 0) + { + snprintf2(inst->internal.tempFileName, (sizeof(inst->internal.tempFileName) / sizeof(inst->internal.tempFileName[0])) - 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.FileDelete_0.pDevice = (UDINT)&inst->device; + inst->internal.FileDelete_0.pName = (UDINT)&inst->internal.tempFileName; + inst->internal.FileDelete_0.enable = true; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_DELETE_OLD); + } + else + { + strcpy((char*)&inst->internal.newFileName, (char*)&inst->internal.oldFileName); + + if (inst->internal.fileNumber <= 1) + { + snprintf2(inst->internal.oldFileName, (sizeof(inst->internal.oldFileName) / sizeof(inst->internal.oldFileName[0])) - 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.fileNumber--; + } + else + { + snprintf2(inst->internal.oldFileName, (sizeof(inst->internal.oldFileName) / sizeof(inst->internal.oldFileName[0])) - 1, "%s%d.%s", inst->fileName, --inst->internal.fileNumber, inst->fileExtension); + } + inst->internal.FileCopy_0.option = fiOVERWRITE; + inst->internal.FileCopy_0.pSrc = (UDINT)&inst->internal.oldFileName; + inst->internal.FileCopy_0.pSrcDev = (UDINT)&inst->device; + inst->internal.FileCopy_0.pDest = (UDINT)&inst->internal.newFileName; + inst->internal.FileCopy_0.pDestDev = (UDINT)&inst->device; + /* no state transition here. */ + } + break; + + case ERR_FUB_ENABLE_FALSE: + inst->internal.FileCopy_0.enable = true; + break; + + case ERR_FUB_BUSY: + break; + + default: + disableAllFunctionBlocks; +#ifdef __DEBUG_LOGGING_LIBRARY__ + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "old file name %s", inst->internal.oldFileName); + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "new file name %s", inst->internal.newFileName); + //logDebug("AsLoggerFile", logString); + arguments[0] = (UDINT)inst->internal.oldFileName; + arguments[1] = (UDINT)inst->internal.newFileName; + logDebug("AsLoggerFile", "old file name is %s, new file name is %s", (UDINT)&arguments); + +#endif + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "file copy error %d", inst->internal.FileCopy_0.status); + arguments[0] = (UDINT)&inst->internal.FileCopy_0.status; + logDebug("AsLoggerFile", "file copy error %d", (UDINT)&arguments); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); + + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); + break; + } + break; + + case AS_FILE_LOGGER_STATE_DELETE_OLD: + + switch (inst->internal.FileDelete_0.status) + { + case 0: + case fiERR_FILE_NOT_FOUND: + inst->internal.FileDelete_0.enable = false; + inst->internal.FileCreate_0.pDevice = (UDINT)&inst->device; + snprintf2(inst->internal.tempFileName, (sizeof(inst->internal.tempFileName) / sizeof(inst->internal.tempFileName[0]))- 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.FileCreate_0.pFile = (UDINT)&inst->internal.tempFileName; + inst->internal.FileCreate_0.enable = true; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_CREATE_FILE); + break; + + case ERR_FUB_ENABLE_FALSE: + inst->internal.FileDelete_0.enable = true; + break; + + case ERR_FUB_BUSY: + break; + + default: + disableAllFunctionBlocks; + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "file delete error %d", inst->internal.FileDelete_0.status); + arguments[0] = (UDINT)&inst->internal.FileDelete_0.status; + logDebug("AsLoggerFile", "file delete error %d", (UDINT)&arguments); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); + break; + } + break; + + case AS_FILE_LOGGER_STATE_CREATE_FILE: + switch (inst->internal.FileCreate_0.status) + { + case 0: + inst->internal.FileCreate_0.enable = false; + inst->internal.FileClose_0.ident = inst->internal.FileCreate_0.ident; + inst->internal.FileClose_0.enable = true; + inst->internal.fileOffset = 0; + inst->internal.writeBufferUsed = 0; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_CLOSE); + break; + + case ERR_FUB_ENABLE_FALSE: + inst->internal.FileCreate_0.enable = true; + break; + + case ERR_FUB_BUSY: + break; + + default: + disableAllFunctionBlocks; + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "file create error %d", inst->internal.FileCreate_0.status); + arguments[0] = (UDINT)&inst->internal.FileCreate_0.status; + logDebug("AsLoggerFile", "file create error %d", (UDINT)&arguments); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); + logDebug("AsLoggerFile", inst->internal.tempFileName, NULL); + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); + inst->status = inst->internal.FileCreate_0.status; + } + break; + + case AS_FILE_LOGGER_STATE_MARSHALL: + memset(&inst->internal.writeBuffer, 0, sizeof(inst->internal.writeBuffer)); + inst->internal.writeBufferUsed = 0; + + numberOfLinesWritten = 0; + for (i=inst->internal.outputIndex; i != logStore->inputIndex; incrementIndex(i)) + { + if (logStore->messages[i].level >= inst->level) + { + memset(inst->internal.tempString, 0, sizeof(inst->internal.tempString)); + marchallLogMessageForFile(&logStore->messages[i], inst->delimiter, inst->internal.tempString, sizeof(inst->internal.tempString) / sizeof(inst->internal.tempString[0])); + if ((strlen(inst->internal.tempString) + inst->internal.writeBufferUsed) >= sizeof(inst->internal.writeBuffer)) + { + snprintf2(inst->internal.tempFileName, (sizeof(inst->internal.tempFileName) / sizeof(inst->internal.tempFileName[0])) - 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.FileOpen_0.enable = true; + inst->internal.FileOpen_0.mode = fiREAD_WRITE; + inst->internal.FileOpen_0.pDevice = (UDINT)&inst->device; + inst->internal.FileOpen_0.pFile = (UDINT)&inst->internal.tempFileName; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_OPEN); + return; + } + addStringToBuffer((char*)&inst->internal.writeBuffer, &inst->internal.writeBufferUsed, inst->internal.tempString); + } + incrementIndex(inst->internal.outputIndex); + } + if (inst->internal.writeBufferUsed > 0) + { + snprintf2(inst->internal.tempFileName, (sizeof(inst->internal.tempFileName) / sizeof(inst->internal.tempFileName[0]))- 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.FileOpen_0.enable = true; + inst->internal.FileOpen_0.mode = fiREAD_WRITE; + inst->internal.FileOpen_0.pDevice = (UDINT)&inst->device; + inst->internal.FileOpen_0.pFile = (UDINT)&inst->internal.tempFileName; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_OPEN); + } + break; + + case AS_FILE_LOGGER_STATE_OPEN: + switch (inst->internal.FileOpen_0.status) + { + case 0: + inst->internal.FileOpen_0.enable = false; + + inst->internal.FileWrite_0.enable = true; + inst->internal.FileWrite_0.ident = inst->internal.FileOpen_0.ident; + inst->internal.FileWrite_0.len = inst->internal.writeBufferUsed; + inst->internal.FileWrite_0.offset = inst->internal.fileOffset; + inst->internal.FileWrite_0.pSrc = (UDINT)inst->internal.writeBuffer; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_WRITE); + break; + + case ERR_FUB_ENABLE_FALSE: + inst->internal.FileOpen_0.enable = true; + break; + + case ERR_FUB_BUSY: + break; + + default: + disableAllFunctionBlocks; + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "file open error %d", inst->internal.FileOpen_0.status); + arguments[0] = (UDINT)&inst->internal.FileOpen_0.status; + logDebug("AsLoggerFile", "file open error %d", (UDINT)&arguments); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); + logDebug("AsLoggerFile", inst->internal.tempFileName, NULL); + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); + inst->status = inst->internal.FileOpen_0.status; + } + break; + + case AS_FILE_LOGGER_STATE_WRITE: + switch (inst->internal.FileWrite_0.status) + { + case 0: + inst->internal.FileWrite_0.enable = false; + inst->internal.fileOffset += inst->internal.writeBufferUsed; + inst->internal.FileClose_0.enable = true; + inst->internal.FileClose_0.ident = inst->internal.FileWrite_0.ident; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_CLOSE); + break; + + case ERR_FUB_ENABLE_FALSE: + inst->internal.FileWrite_0.enable = true; + break; + + case ERR_FUB_BUSY: + break; + + default: + disableAllFunctionBlocks; + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "file write error %d", inst->internal.FileWrite_0.status); + arguments[0] = (UDINT)&inst->internal.FileWrite_0.status; + logDebug("AsLoggerFile", "file write error %d", (UDINT)&arguments); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); + logDebug("AsLoggerFile", inst->internal.tempFileName, NULL); + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); + inst->status = inst->internal.FileWrite_0.status; + } + break; + + case AS_FILE_LOGGER_STATE_CLOSE: + switch (inst->internal.FileClose_0.status) + { + case 0: + inst->internal.FileClose_0.enable = false; + if (inst->internal.fileOffset >= inst->maxFileSize) + { + inst->internal.fileNumber = (inst->maxFiles > 1) ? inst->maxFiles - 1 : 0; + if (inst->internal.fileNumber <= 1) + { + snprintf2(inst->internal.tempFileName, (sizeof(inst->internal.tempFileName) / sizeof(inst->internal.tempFileName[0])) - 1, "%s.%s", inst->fileName, inst->fileExtension); + inst->internal.FileDelete_0.pDevice = (UDINT)&inst->device; + inst->internal.FileDelete_0.pName = (UDINT)&inst->internal.tempFileName; + inst->internal.FileDelete_0.enable = true; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_DELETE_OLD); + } + else + { + snprintf2(inst->internal.newFileName, (sizeof(inst->internal.newFileName) / sizeof(inst->internal.newFileName[0])) - 1, "%s%d.%s", inst->fileName, inst->internal.fileNumber, inst->fileExtension); + snprintf2(inst->internal.oldFileName, (sizeof(inst->internal.oldFileName) / sizeof(inst->internal.oldFileName[0])) - 1, "%s%d.%s", inst->fileName, --inst->internal.fileNumber, inst->fileExtension); + + inst->internal.FileCopy_0.enable = true; + inst->internal.FileCopy_0.option = fiOVERWRITE; + inst->internal.FileCopy_0.pSrc = (UDINT)&inst->internal.oldFileName; + inst->internal.FileCopy_0.pSrcDev = (UDINT)&inst->device; + inst->internal.FileCopy_0.pDest = (UDINT)&inst->internal.newFileName; + inst->internal.FileCopy_0.pDestDev = (UDINT)&inst->device; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_MOVE_FILES); + } + } + else + { + inst->internal.writeBufferUsed = 0; + transit(inst->internal.state, AS_FILE_LOGGER_STATE_MARSHALL); + } + break; + + case ERR_FUB_ENABLE_FALSE: + inst->internal.FileClose_0.enable = true; + break; + + case ERR_FUB_BUSY: + break; + + default: + disableAllFunctionBlocks; + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "file close error %d", inst->internal.FileClose_0.status); + arguments[0] = (UDINT)&inst->internal.FileClose_0.status; + logDebug("AsLoggerFile", "file close error %d", (UDINT)&arguments); + logDebug("AsLoggerFile", "changing to ERROR state", NULL); + logDebug("AsLoggerFile", inst->internal.tempFileName, NULL); + transit(inst->internal.state, AS_FILE_LOGGER_STATE_ERROR); + inst->status = inst->internal.FileClose_0.status; + } + break; + + case AS_FILE_LOGGER_STATE_ERROR: + if (inst->enable != true) + { + transit(inst->internal.state, 0); + } + break; + + default: + break; + } + + if (inst->internal.state != AS_FILE_LOGGER_STATE_ERROR) + inst->status = ERR_FUB_BUSY; + + FileOpen(&inst->internal.FileOpen_0); + FileWrite(&inst->internal.FileWrite_0); + FileClose(&inst->internal.FileClose_0); + FileCreate(&inst->internal.FileCreate_0); + FileCopy(&inst->internal.FileCopy_0); + FileDelete(&inst->internal.FileDelete_0); +} + +void marchallLogMessageForFile(LogMessage_typ* message, char* delimiter, char* tempString, UDINT sizeOfTempString) +{ + DTStructure timeStamp; + char level[6]; + + if ((message == NULL) || (delimiter == NULL) || (tempString == NULL)) + return; + + DT_TO_DTStructure(message->timeStamp, (UDINT)&timeStamp); + timeStamp.millisec = message->timeStampMilliseconds; + + memset(&level, 0, sizeof(level)); + switch(message->level) + { + case LOG_LEVEL_DEBUG: + strcpy(level, "DEBUG"); + break; + case LOG_LEVEL_INFO: + strcpy(level, "INFO"); + break; + case LOG_LEVEL_WARN: + strcpy(level, "WARN"); + break; + case LOG_LEVEL_ERROR: + strcpy(level, "ERROR"); + break; + case LOG_LEVEL_FATAL: + strcpy(level, "FATAL"); + break; + } + + snprintf2(tempString, sizeOfTempString - 1, "%04d/%02d/%02d %02d:%02d:%02d.%03d%s %s%s %s%s %s\r\n", timeStamp.year, timeStamp.month, timeStamp.day, \ + timeStamp.hour, timeStamp.minute, timeStamp.second, timeStamp.millisec, delimiter, \ + level, delimiter, \ + message->name, delimiter, \ + message->message); +} + +void addStringToBuffer(char* buffer, UINT* bufferPos, char* newMessage) +{ + if ((buffer == NULL) || (bufferPos == NULL) || (newMessage == NULL)) + return; + + memcpy(buffer + *bufferPos, newMessage, strlen(newMessage)); + *bufferPos = *bufferPos + strlen(newMessage); +} + diff --git a/mappFramework/Logical/Libraries/LoggingLib/AsLoggerInternal.h b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerInternal.h new file mode 100644 index 00000000..b71c90fb --- /dev/null +++ b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerInternal.h @@ -0,0 +1,73 @@ +/******************************************************************** + * COPYRIGHT -- Bernecker + Rainer + ******************************************************************** + * Library: AsLogger + * File: AsLoggerStructures.h + * Author: buchananw + * Created: August 19, 2009 + *******************************************************************/ +#ifndef __AS_LOGGER_INTERNALS_H__ +#define __AS_LOGGER_INTERNALS_H__ + +#include +#include + +//#define __DEBUG_LOGGING_LIBRARY__ + +#define MAX_LOG_ITEMS 255 +#define MAX_MESSAGE_LENGTH 512 +#define MAX_NAME_LENGTH 80 +#define MAX_INDEXES 8 + +#define LOG_SEND_BUF_SIZE (sizeof(sendBuffer)/sizeof(sendBuffer[0])) +#define MAX_WOULD_BLOCK 25 + +#define incrementIndex(x) x = (x+1)%MAX_LOG_ITEMS +#define decrementIndex(x) x = (x > 0) ? x - 1 : MAX_LOG_ITEMS - 1 + +typedef struct LogMessage_typ +{ + BOOL used; + STRING name[MAX_NAME_LENGTH]; + LogLevel level; + DATE_AND_TIME timeStamp; + USINT timeStampMilliseconds; + STRING message[MAX_MESSAGE_LENGTH]; +}LogMessage_typ; + +typedef struct LastMessage_typ +{ + STRING name[MAX_NAME_LENGTH]; + STRING message[MAX_MESSAGE_LENGTH]; +}LastMessage_typ; + +typedef struct LogStore_typ +{ + UINT inputIndex; + UINT* outputIndexes[MAX_INDEXES]; + LogLevel level; + LogMessage_typ messages[MAX_LOG_ITEMS]; + LastMessage_typ lastMessages[30]; +}LogStore_typ; + +BOOL addNewOutputIndex(UINT* newOutputIndex); +void updateOutputIndexes(UINT** outputIndexes, UINT inputIndex); +LogStatus logMessage(char* name, LogLevel level, const char* message, UDINT pMsgData); +LoggerClient_typ* getNextFreeClient(struct AsLoggerServer* inst); +BOOL acceptClient(LoggerClient_typ* newClient, UDINT clientIdent, UINT clientPort); +BOOL freeClient(LoggerClient_typ* client); +BOOL dropClient(LoggerClient_typ* client); +void handleAllActiveClients(LoggerClient_typ* clients, USINT numberOfClients, USINT* activeClients, char* sendBuffer, UINT* sendBufferUsed, LogMessage_typ* messages, LogLevel level, UINT* outputIndex); +BOOL handleClient(LoggerClient_typ* client, char* sendBuffer, UINT sendBufferUsed); +void sendToClient(LoggerClient_typ* client, char* buffer, UINT bufferLength); +BOOL writeHeader(char* buffer, UINT* bufferPos); +BOOL writeFooter(char* buffer, UINT* bufferPos); +BOOL marchallLogMessageAsXML(char* buffer, UINT* bufferPos, LogMessage_typ* message); +void marshallBuffer(char* buffer, UINT* bufferPos, LogMessage_typ* messages, LogLevel level, UINT* outputIndex); +void marchallLogMessageForFile(LogMessage_typ* message, char* delimiter, char* tempString, UDINT sizeOfTempString); +void addStringToBuffer(char* buffer, UINT* bufferPos, char* newMessage); +USINT convertToArLogLevel(LogMessage_typ* message); + +LogStore_typ* getLogStore(void); + +#endif diff --git a/mappFramework/Logical/Libraries/LoggingLib/AsLoggerLogBook.c b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerLogBook.c new file mode 100644 index 00000000..7b2df74f --- /dev/null +++ b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerLogBook.c @@ -0,0 +1,138 @@ +/******************************************************************** + * COPYRIGHT -- Bernecker + Rainer + ******************************************************************** + * Library: LoggingLib + * File: AsLoggerLogBook.c + * Author: buchananw + * Created: April 19, 2010 + *******************************************************************/ + +#include +#include +#include +#include +#include "AsLoggerInternal.h" + +#define LOGBOOK_ERROR_STATE 255 + +#ifdef __DEBUG_LOGGING_LIBRARY__ +#define transit(x, y) \ +{ \ + x->internal.state = y; \ + logDebug("AsLoggerFile", "changing to state " #y, NULL); \ +} +#else +#define transit(x, y) \ +{ \ + x->internal.state = y; \ +} +#endif + +#define incrementFileNumber(x) x = (x+1) % inst->internal.maxFiles +#define decrementFileNumber(x) x = (x > 0) ? x - 1 : inst->internal.maxFiles - 1 + +void AsLoggerLogBook(struct AsLoggerLogBook* inst) +{ + LogStore_typ* logStore; +#ifdef __DEBUG_LOGGING_LIBRARY__ + UDINT arguments[LOGGING_MAX_ARGUMENTS]; +#endif + + if (inst == NULL) + { + logError("AsLoggerLogBook", "AsLoggerLogBook called with NULL instance", NULL); + return; + } + logStore = getLogStore(); + + if (logStore == NULL) + { +#ifdef __DEBUG_LOGGING_LIBRARY__ + logDebug("AsLoggerLogBook", "logStore is NULL", NULL); +#endif + inst->status = ASLOGGER_INTERNAL_ERROR; + return; + } + + if (inst->internal.outputIndexRegistered != true) + { + addNewOutputIndex(&inst->internal.outputIndex); + inst->internal.outputIndexRegistered = true; + } + + while ((inst->internal.outputIndex != logStore->inputIndex) && (logStore->messages[inst->internal.outputIndex].level < inst->level)) + { + incrementIndex(inst->internal.outputIndex); + } + + if (inst->internal.outputIndex != logStore->inputIndex) + { + if (inst->internal.ArEventLogWrite_0.Ident == 0) + { + inst->internal.ArEventLogGetIdent_0.Execute = true; + strcpy(inst->internal.ArEventLogGetIdent_0.Name, "$arlogusr"); + ArEventLogGetIdent(&inst->internal.ArEventLogGetIdent_0); + if (inst->internal.ArEventLogGetIdent_0.StatusID == 0) + inst->internal.ArEventLogWrite_0.Ident = inst->internal.ArEventLogGetIdent_0.Ident; + } + else + { + USINT _logBuffer[MAX_MESSAGE_LENGTH + MAX_NAME_LENGTH + 10]; + char _tempString[MAX_MESSAGE_LENGTH + MAX_NAME_LENGTH + 2]; + + memset(&_logBuffer, 0, sizeof(_logBuffer)); + inst->internal.ArEventLogWrite_0.Execute = true; + inst->internal.ArEventLogWrite_0.EventID = ArEventLogMakeEventID(convertToArLogLevel(&(logStore->messages[inst->internal.outputIndex])), 0, 0); + inst->internal.ArEventLogWrite_0.OriginRecordID = 0; + snprintf2(_tempString, (sizeof(_tempString) / sizeof(_tempString)) - 1, "%s: %s", logStore->messages[inst->internal.outputIndex].name, logStore->messages[inst->internal.outputIndex].message); + ArEventLogAddDataInit((UDINT)&_logBuffer, sizeof(_logBuffer), arEVENTLOG_ADDFORMAT_CODED); + ArEventLogAddDataString((UDINT)&_logBuffer, sizeof(_logBuffer), (UDINT)&_tempString); + inst->internal.ArEventLogWrite_0.AddData = (UDINT)&_logBuffer; + inst->internal.ArEventLogWrite_0.AddDataFormat = arEVENTLOG_ADDFORMAT_CODED; + inst->internal.ArEventLogWrite_0.AddDataSize = sizeof(_logBuffer); + + ArEventLogWrite(&inst->internal.ArEventLogWrite_0); + if (inst->internal.ArEventLogWrite_0.StatusID == 0) + { + incrementIndex(inst->internal.outputIndex); + + } +#ifdef __DEBUG_LOGGING_LIBRARY__ + else + { + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "AR log write error %d", inst->internal.AsArLogWrite_0.status); + arguments[0] = (UDINT)&inst->internal.ArEventLogWrite_0.StatusID; + logDebug("AsLoggerLogBook", "AR log write error %d", (UDINT)&arguments); + inst->status = inst->internal.ArEventLogWrite_0.StatusID; + } +#endif + inst->internal.ArEventLogWrite_0.Execute = false; + ArEventLogWrite(&inst->internal.ArEventLogWrite_0); + + } + + } +} + +USINT convertToArLogLevel(LogMessage_typ* message) +{ + if (message == NULL) + return arEVENTLOG_SEVERITY_INFO; + + switch(message->level) + { + case LOG_LEVEL_DEBUG: + case LOG_LEVEL_INFO: + return arEVENTLOG_SEVERITY_INFO; + break; + case LOG_LEVEL_WARN: + return arEVENTLOG_SEVERITY_WARNING; + break; + case LOG_LEVEL_ERROR: + case LOG_LEVEL_FATAL: + return arEVENTLOG_SEVERITY_ERROR; + return arEVENTLOG_SEVERITY_ERROR; + break; + } + return arEVENTLOG_SEVERITY_ERROR; +} diff --git a/mappFramework/Logical/Libraries/LoggingLib/AsLoggerServer.c b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerServer.c new file mode 100644 index 00000000..d0600e98 --- /dev/null +++ b/mappFramework/Logical/Libraries/LoggingLib/AsLoggerServer.c @@ -0,0 +1,373 @@ +/******************************************************************** + * COPYRIGHT -- Bernecker + Rainer + ******************************************************************** + * Library: AsLogger + * File: AsLoggerServer.c + * Author: buchananw + * Created: August 20, 2009 + *******************************************************************/ + +#include +#include +#include +#include +#include "AsLoggerInternal.h" + +#define XMLHEADER " " +#define XMLFOOTER "\r\n" +#define MAX_LOGS_AT_ONCE 5 + +void AsLoggerServer(struct AsLoggerServer* inst) +{ + LoggerClient_typ* newClient; + LogStore_typ* logStore; + BOOL clientStillActive = false; + USINT i; + UDINT arguments[LOGGING_MAX_ARGUMENTS]; + + inst->status = LOG_BUSY; + + if (inst == NULL) + { + logError("AsLoggerServer", "AsLoggerServer called with NULL instance", NULL); + return; + } + switch (inst->internal.state) + { + case 0 : + inst->internal.open.enable = true; + inst->internal.open.pIfAddr = NULL; + inst->internal.open.port = inst->port; + TcpOpen(&inst->internal.open); + inst->status = inst->internal.open.status; + if (inst->internal.open.status == 0) + { + addNewOutputIndex(&inst->internal.outputIndex); + inst->internal.ident = inst->internal.open.ident; + inst->internal.open.enable = false; + inst->internal.state = 10; + } + break; + + case 10: /* accept clients in this state */ + if (inst->disconnect == true) + { + inst->internal.state = 20; + return; + } + + if (inst->internal.clientsActive > 0) + { + logStore = getLogStore(); + if (logStore == NULL) + { + inst->status = 1; + return; + } + handleAllActiveClients(&inst->internal.clients[0], sizeof(inst->internal.clients)/sizeof(inst->internal.clients[0]), &inst->internal.clientsActive, (char*)&inst->internal.sendBuffer, &inst->internal.sendBufferUsed, &logStore->messages[0], inst->level, &inst->internal.outputIndex); + } + + newClient = getNextFreeClient(inst); + + if (newClient == NULL) + { + return; + } + + inst->internal.server.enable = true; + inst->internal.server.ident = inst->internal.ident; + inst->internal.server.pIpAddr = (UDINT)newClient->ipAddress; + + TcpServer(&inst->internal.server); + inst->status = inst->internal.server.status; + if (inst->internal.server.status == 0) + { + for (i=0;i<(sizeof(inst->internal.clients)/sizeof(inst->internal.clients[0]));i++) + { + if ((&inst->internal.clients[i] != newClient) && (strcmp(inst->internal.clients[i].ipAddress, newClient->ipAddress) == 0) && (inst->internal.clients[i].status != CLIENT_NOT_USED)) + { + freeClient(newClient); + return; + } + } + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "accepting new client %s", newClient->ipAddress); + arguments[0] = (UDINT)newClient->ipAddress; + logDebug("AsLoggerServer", "accepting new client %s", (UDINT)&arguments); + /* accept client */ + if (acceptClient(newClient, inst->internal.server.identclnt, inst->internal.server.portclnt) == true) + inst->internal.clientsActive++; + } + break; + + case 20: /* disconnect all clients */ + inst->status = LOG_BUSY; + clientStillActive = false; + for (i=0;i<(sizeof(inst->internal.clients)/sizeof(inst->internal.clients[0]));i++) + { + if (inst->internal.clients[i].status != CLIENT_NOT_USED) + { + clientStillActive |= dropClient(&inst->internal.clients[i]); + } + } + if (clientStillActive == false) + { + inst->internal.state = 22; + } + break; + + case 22: + inst->internal.close.enable = true; + inst->internal.close.how = 0; + inst->internal.close.ident = inst->internal.ident; + TcpClose(&inst->internal.close); + inst->status = inst->internal.close.status; + if (inst->internal.close.status != 65535) + { + inst->status = 0; + inst->internal.state = 0; + } + break; + + default : + /* do nothing */ + break; + } +} + +LoggerClient_typ* getNextFreeClient(struct AsLoggerServer* inst) +{ + USINT i; + for (i = 0; i < (sizeof(inst->internal.clients)/sizeof(inst->internal.clients[0])); i++) { + if (inst->internal.clients[i].status == CLIENT_NOT_USED) + { + return &inst->internal.clients[i]; + } + } + return NULL; +} + +BOOL acceptClient(LoggerClient_typ* newClient, UDINT clientIdent, UINT clientPort) +{ + if (newClient == NULL) + return false; + + newClient->status = CLIENT_PENDING; + newClient->ident = clientIdent; + newClient->port = clientPort; + memset(&newClient->send, 0, sizeof(newClient->send)); + memset(&newClient->close, 0, sizeof(newClient->close)); + return true; +} + +void sendToClient(LoggerClient_typ* client, char* buffer, UINT bufferLength) +{ + UDINT arguments[LOGGING_MAX_ARGUMENTS]; + + if ((client == NULL) || (client->status == CLIENT_NOT_USED)) + return; + + client->send.enable = true; + client->send.ident = client->ident; + client->send.datalen = bufferLength; + client->send.pData = (UDINT)buffer; + client->send.flags = 0; + + client->status = CLIENT_SENDING; + + TcpSend(&client->send); + + if (client->send.status == 0) + { + client->wouldBlockCount = 0; + client->status = CLIENT_DONE; + } + else if ((client->send.status == tcpERR_WOULDBLOCK) && (client->wouldBlockCount < MAX_WOULD_BLOCK)) + { + client->wouldBlockCount++; + } + else if (client->send.status == tcpERR_SENTLEN) + { + /* try to send data again */ + } + else if (client->send.status != 65535) + { + client->wouldBlockCount = 0; + /* an error occured so drop the client */ + //snprintf2(errorString, (sizeof(errorString) / sizeof(errorString[0])) - 1, "error received while sending %d", client->send.status); + arguments[0] = (UDINT)&client->send.status; + logDebug("AsLoggerServer", "error received while sending %d", (UDINT)&arguments); + client->status = CLIENT_DROPPING; + } +} + +BOOL dropClient(LoggerClient_typ* client) +{ + UDINT arguments[LOGGING_MAX_ARGUMENTS]; + if (client == NULL) + return false; + + client->close.enable = true; + client->close.ident = client->ident; + client->close.how = 0; + client->status = CLIENT_DROPPING; + + TcpClose(&client->close); + if (client->close.status == 0) + { + //snprintf2(logString, (sizeof(logString) / sizeof(logString[0])) - 1, "dropped client %s", client->ipAddress); + arguments[0] = (UDINT)&client->ipAddress; + logDebug("AsLoggerServer", "dropped client %s", (UDINT)&arguments); + return freeClient(client); + } + return false; +} + +BOOL freeClient(LoggerClient_typ* client) +{ + if (client == NULL) + return false; + + memset(client, 0, sizeof(*client)); + client->status = CLIENT_NOT_USED; + return true; +} + +BOOL handleClient(LoggerClient_typ* client, char* sendBuffer, UINT sendBufferUsed) +{ + if (client == NULL) + return false; + + switch (client->status) + { + case CLIENT_NOT_USED: + break; + + case CLIENT_PENDING: + case CLIENT_SENDING: + sendToClient(client, sendBuffer, sendBufferUsed); + break; + + case CLIENT_DROPPING: + return dropClient(client); + break; + + case CLIENT_DONE: + /* wait until all clients are finished sending before transitting out of the done state */ + /* handled by handleAllActiveClients */ + break; + } + return false; +} + +void handleAllActiveClients(LoggerClient_typ* clients, USINT numberOfClients, USINT* activeClients, char* sendBuffer, UINT* sendBufferUsed, LogMessage_typ* messages, LogLevel level, UINT* outputIndex) +{ + USINT i; + BOOL allClientsFinishedSending = true; + + for (i=0;iinputIndex) && (numberOfLogs < MAX_LOGS_AT_ONCE); incrementIndex(i)) + { + if (messages[i].level >= level) + { + marchallLogMessageAsXML(buffer, bufferPos, &messages[i]); + } + incrementIndex(*outputIndex); + numberOfLogs++; + } + writeFooter(buffer, bufferPos); + +} + +BOOL writeHeader(char* buffer, UINT* bufferPos) +{ + if ((buffer == NULL) || (bufferPos == NULL)) + return 0; + + strcpy((char*)buffer, XMLHEADER); + *bufferPos = *bufferPos + strlen(XMLHEADER); + return true; +} + +BOOL writeFooter(char* buffer, UINT* bufferPos) +{ + strcpy((char*)(buffer + *bufferPos), XMLFOOTER); + *bufferPos = *bufferPos + strlen(XMLFOOTER); + return true; +} + +BOOL marchallLogMessageAsXML(char* buffer, UINT* bufferPos, LogMessage_typ* message) +{ + STRING level[6]; + STRING tempString[900]; + + if ((buffer == NULL) || (bufferPos == NULL) || (message == NULL)) + return false; + + switch(message->level) + { + case LOG_LEVEL_DEBUG: + strcpy(level, "DEBUG"); + break; + case LOG_LEVEL_INFO: + strcpy(level, "INFO"); + break; + case LOG_LEVEL_WARN: + strcpy(level, "WARN"); + break; + case LOG_LEVEL_ERROR: + strcpy(level, "ERROR"); + break; + case LOG_LEVEL_FATAL: + strcpy(level, "FATAL"); + break; + } + + snprintf2(tempString, (sizeof(tempString) / sizeof(tempString[0])) - 1, \ + "%s%u%u%s", \ + level, message->timeStamp, message->timeStampMilliseconds, message->name, message->message); + memcpy(buffer + *bufferPos, tempString, strlen(tempString)); + *bufferPos = *bufferPos + strlen(tempString); + return true; +} + diff --git a/mappFramework/Logical/Libraries/LoggingLib/LoggingLib.c b/mappFramework/Logical/Libraries/LoggingLib/LoggingLib.c new file mode 100644 index 00000000..d6a1c73e --- /dev/null +++ b/mappFramework/Logical/Libraries/LoggingLib/LoggingLib.c @@ -0,0 +1,290 @@ +/******************************************************************** + * COPYRIGHT -- Bernecker + Rainer + ******************************************************************** + * Library: AsLogger + * File: AsLogger.c + * Author: buchananw + * Created: August 19, 2009 + *******************************************************************/ + +#include +#include +#include "AsLoggerInternal.h" +#include +#include + +static LogStore_typ LogStore; + +LogStatus logDebug(char* name, char* message, UDINT pMsgData) +{ + return logMessage(name, LOG_LEVEL_DEBUG, message, pMsgData); +} + +LogStatus logInfo(char* name, char* message, UDINT pMsgData) +{ + return logMessage(name, LOG_LEVEL_INFO, message, pMsgData); +} + +LogStatus logWarn(char* name, char* message, UDINT pMsgData) +{ + return logMessage(name, LOG_LEVEL_WARN, message, pMsgData); +} + +LogStatus logError(char* name, char* message, UDINT pMsgData) +{ + return logMessage(name, LOG_LEVEL_ERROR, message, pMsgData); +} + +LogStatus logFatal(char* name, char* message, UDINT pMsgData) +{ + return logMessage(name, LOG_LEVEL_FATAL, message, pMsgData); +} + +UDINT AsLoggerGetLastMessage(void) +{ + UINT lastMessage = LogStore.inputIndex; + + return (UDINT)&LogStore.messages[decrementIndex(lastMessage)].message; +} + +BOOL logLevelIsValid(LogLevel level) +{ + return ((level >= LOG_LEVEL_DEBUG) && (level <= LOG_LEVEL_FATAL)); +} + +BOOL isSameAsLastMessage(char* name, const char* message) +{ + unsigned int i = 0; + for (i=0; i + +

+ Change the namespace to define where this text module should be located within the logical structure of your texts + User/EventLog +
+ + + + {1} + + + + + {1} + + + + + {1} + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/Package.pkg b/mappFramework/Logical/Libraries/Package.pkg index fe232689..2513a7b8 100644 --- a/mappFramework/Logical/Libraries/Package.pkg +++ b/mappFramework/Logical/Libraries/Package.pkg @@ -34,5 +34,8 @@ McPureVAx ArTextSys AsBrWStr + AsTCP + LoggingLib + ArEventLog \ No newline at end of file diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index 2368ad09..363f9a2b 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -44,24 +44,31 @@ _SETUP_TEST(void) ActSubState = 0; AssertSubState = 0; SampleTemperature = 1; - TestNumber = 0; + TestComparisonNumber = 0; UnitTestState = TEST_ARRANGE; TEST_DONE; } _TEARDOWN_TEST(void) { + TestDone = 0; + TestFailed = 0; + WriteNumFiles = 0; + Delay = 0; + SampleTemperature = 1; +// TestComparisonNumber = 0; TEST_DONE; } _CYCLIC_SET(void) { cycleCount++; + LogArray[0] = &TestComparisonNumber; } _TEST ExportArchive(void) { - TEST_DONE; +// TEST_DONE; TIMEOUT_TEST_CASE; DirInfo_0.enable = 1; @@ -76,7 +83,7 @@ _TEST ExportArchive(void) SampleTemperature++; TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); WriteNumFiles = 1; - TestNumber = DirInfo_0.filenum; + TestComparisonNumber = DirInfo_0.filenum; UnitTestState = TEST_ACT; break; @@ -87,15 +94,15 @@ _TEST ExportArchive(void) TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); - Delay += 1; + Delay += 1; // This delay is compensating for the function block refreshing after finishing a command TEST_BUSY_CONDITION(Delay != 2); UnitTestState = TEST_ASSERT; break; case TEST_ASSERT: // Check save location for archive - TEST_ASSERT(TestNumber + 1 == DirInfo_0.filenum); - TestFailed = !(TestNumber + 1 == DirInfo_0.filenum); + TEST_ASSERT(TestComparisonNumber + 1 == DirInfo_0.filenum); + TestFailed = !(TestComparisonNumber + 1 == DirInfo_0.filenum); TestDone = 1; TEST_DONE; break; @@ -106,6 +113,7 @@ _TEST ExportArchive(void) _TEST AutomaticArchive(void) { + TEST_DONE; TIMEOUT_TEST_CASE; switch (UnitTestState) @@ -113,32 +121,37 @@ _TEST AutomaticArchive(void) case TEST_ARRANGE: // Set automatic archive parameters prepare audit for generation SampleTemperature = SAMPLE_TEMP_VALUE; - HmiAudit.Parameters.ArchiveSettings.Enable = 1; - HmiAudit.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; - HmiAudit.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; - HmiAudit.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; - HmiAudit.Parameters.ArchiveSettings.Hour = HOUR; - HmiAudit.Parameters.ArchiveSettings.Minute = MINUTE; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Enable = 1; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Hour = HOUR; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Minute = MINUTE; WriteNumFiles = 1; - TestNumber = HmiAudit.Status.NumberOfArchives; + TestComparisonNumber = HMIAuditInterfaceCtrl.Status.NumberOfArchives; + logDebug("AuditTest","CompNum = %si",LogArray); UnitTestState = TEST_ACT; break; case TEST_ACT: // Archive audit DTSetTime_0.DT1 = SET_TIME; + DTSetTime_0.enable = 1; + DTSetTime(&DTSetTime_0); WriteNumFiles = 0; TON_0.PT = TIMER_LENGTH; TON_0.IN = 1; TON(&TON_0); TEST_BUSY_CONDITION(!TON_0.Q); UnitTestState = TEST_ASSERT; + TON_0.IN = 0; + TON(&TON_0); break; case TEST_ASSERT: // Check save location for archive - TEST_ASSERT(TestNumber + 1 == HmiAudit.Status.NumberOfArchives); - TestFailed = !(TestNumber + 1 == HmiAudit.Status.NumberOfArchives); + TEST_ASSERT(TestComparisonNumber + 1 == HMIAuditInterfaceCtrl.Status.NumberOfArchives); + TestFailed = !(TestComparisonNumber + 1 == HMIAuditInterfaceCtrl.Status.NumberOfArchives); TestDone = 1; TEST_DONE; break; diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index ac34d162..cba981ce 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -19,7 +19,7 @@ VAR UnitTestState : TestStateEnum; SampleTemperature : REAL; DirInfo_0 : DirInfo; - TestNumber : USINT; + TestComparisonNumber : USINT; TestDone : BOOL; WriteNumFiles : BOOL; TestFailed : BOOL; @@ -32,4 +32,5 @@ VAR SAMPLE_TEMP_VALUE : REAL := 5; TON_0 : TON; TIMER_LENGTH : TIME := T#7s; + LogArray : ARRAY[0..7] OF UDINT; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index 77c0bd46..e71e8746 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -27,6 +27,7 @@ + @@ -42,6 +43,9 @@ + + + @@ -64,6 +68,13 @@ + + + + + + +
@@ -91,6 +102,10 @@ + + + + @@ -109,6 +124,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm index ff8bdeb0..9965367c 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -2,11 +2,16 @@ VAR_CONFIG ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone; (*Insert your comment here...*) ::AuditMgr:MpAuditTrail_0.ArchiveAvailable AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable; (*Insert your comment here...*) - ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HmiAudit.Status.NumberOfArchives; (*Insert your comment here...*) + ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.NumberOfArchives; (*Insert your comment here...*) END_VAR (*Outputs from the unit test*) VAR_CONFIG ::AuditTest:HMIAuditInterfaceCtrl.Commands.ExportArchives AT %Q.::AuditMgr:HmiAudit.Commands.ExportArchives; (*Insert your comment here...*) ::AuditTest:SampleTemperature AT %Q.::AuditMgr:VariableMonitorExample; (*Insert your comment here...*) - ::AuditTest:HmiAudit.Parameters.ArchiveSettings AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Enable AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Enable; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.MaxSize AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.MaxSize; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Mode AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Mode; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Hour AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Hour; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Minute AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Minute; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.FileType AT %Q.::AuditTest:HmiAudit.Parameters.ArchiveSettings.FileType; (*Insert your comment here...*) END_VAR From 583741c12c59ddb3555d2d5a489f8bb4ce7a1005 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Fri, 3 Mar 2023 10:59:26 -0500 Subject: [PATCH 019/159] Export archive test works again, removed the tracing variables from that test --- .../Diagnosis/UnitTest/PC_any/AuditMgr.PVM | 150 ++++++++++++++++++ .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 396 -> 400 bytes .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 6 +- 3 files changed, 151 insertions(+), 5 deletions(-) create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM new file mode 100644 index 00000000..f5725b23 --- /dev/null +++ b/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM @@ -0,0 +1,150 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=27 ASCIIString=0 + name type force value level type len format place expand specs + MpAuditTrail_0 MpAuditTrail 0 " *" 0 24 1 0 1 1 + MpLink UDINT 0 " 112699352" 1 7 1 10 0 0 + Enable BOOL 0 " TRUE" 1 1 1 2 0 0 + ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + Language UDINT 0 " 75573695" 1 7 1 10 0 0 + DeviceName UDINT 0 " 75573713" 1 7 1 10 0 0 + Export BOOL 0 " TRUE" 1 1 1 2 0 0 + ExportArchive BOOL 0 " FALSE" 1 1 1 2 0 0 + Active BOOL 0 " TRUE" 1 1 1 2 0 0 + Error BOOL 0 " FALSE" 1 1 1 2 0 0 + StatusID DINT 0 " 0" 1 4 1 10 0 0 + CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 + CommandDone BOOL 0 " TRUE" 1 1 1 2 0 0 + CurrentRecord UDINT 0 " 6186" 1 7 1 10 0 0 + ArchiveAvailable BOOL 0 " TRUE" 1 1 1 2 0 0 + Info MpAuditTrailInfoType 0 " *" 1 24 1 0 0 1 + NumberArchives UINT 0 " 21" 2 6 1 10 0 0 + Diag MpAuditDiagType 0 " *" 2 24 1 0 0 1 + StatusID MpAuditStatusIDType 0 " *" 3 24 1 0 0 1 + ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpAU + + Severity DINT 0 " 0" 4 4 1 10 0 0 e,0,mpCO + + Code UINT 0 " 0" 4 6 1 10 0 0 + Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 + pObject UDINT 0 " 166476704" 2 7 1 10 0 0 + State UDINT 0 " 3" 2 7 1 10 0 0 + HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands AuditCommandsType 0 " *" 1 24 1 0 0 1 + ExportArchives BOOL 0 " FALSE" 2 1 1 2 0 0 + RunQuery BOOL 0 " FALSE" 2 1 1 2 0 0 + SaveConfig BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters AuditParametersType 0 " *" 1 24 1 0 0 1 + ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 1 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + MaxSize UDINT 0 " 0" 3 7 1 10 0 0 + Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + + Hour USINT 0 " 0" 3 5 1 10 0 0 + Minute USINT 0 " 0" 3 5 1 10 0 0 + FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU + + QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 1 + QuerySelection[0] STRING[10] 0 " 'UserXMgr'" 3 9 11 1 0 0 + QuerySelection[1] STRING[10] 0 " 'RecipeMgr'" 3 9 11 1 0 0 + QuerySelection[2] STRING[10] 0 " ''" 3 9 11 1 0 0 + Status AuditStatusType 0 " *" 1 24 1 0 0 1 + AuditSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + AuditFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 1 + TableConfig[0] STRING[255] 0 " *" 3 9 256 1 0 0 + TableConfig[1] STRING[255] 0 " *" 3 9 256 1 0 0 + Query AuditQueryHMIType 0 " *" 2 24 1 0 0 1 + EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 1 + EvTime[0] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[1] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[2] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[3] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[4] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[5] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[6] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[7] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[8] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[9] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[10] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[11] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[12] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[13] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[14] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[15] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[16] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[17] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[18] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 1 + Text[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 1 + DText[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 1 + Op[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 + QueryCount USINT 0 " *" 3 5 1 10 0 0 + Name STRING[80] 0 " *" 3 9 81 1 0 0 + Option USINT 0 " *" 3 5 1 10 0 0 + CustomEventSortCfg STRING[1000] 0 " *" 2 9 1001 1 0 0 + CustomEventsFilterCfg STRING[1000] 0 " *" 2 9 1001 1 0 0 + ArchiveAvailable BOOL 0 " *" 2 1 1 2 0 0 + NumberOfArchives UINT 0 " *" 2 6 1 10 0 0 + DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 1 + DeviceDataProvider[0] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[1] STRING[100] 0 " *" 3 9 101 1 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc index 828a3b498bebc130e8a232be0208d513437d3508..25198600b0e576aedcbe187733b5061ad23229b0 100644 GIT binary patch delta 137 zcmeBSp1^FbJ>8dK(YCS#1_t?O3``6Rj1w53zyV0}+y)XlK8dK(YCS#1_t?O3``6Rj6Doc-~gm~?gI%OAoc*tbO?M)YPV`&0Fe{T z Date: Mon, 6 Mar 2023 10:49:35 -0500 Subject: [PATCH 020/159] Added a delay into the assert stage of the archive export unit test and redid the variable mapping for the automatic archive settings --- .../Diagnosis/UnitTest/PC_any/AuditMgr.PVM | 158 ++++++++++++---- .../Diagnosis/UnitTest/PC_any/AuditTest.PVM | 175 +++++++++--------- .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 400 -> 364 bytes .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 39 +++- .../UnitTest/Audit/AuditTest/variables.var | 10 +- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 12 +- 6 files changed, 256 insertions(+), 138 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM index f5725b23..2b38a350 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM @@ -1,23 +1,23 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=27 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=172 ASCIIString=0 name type force value level type len format place expand specs MpAuditTrail_0 MpAuditTrail 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 112699352" 1 7 1 10 0 0 + MpLink UDINT 0 " *" 1 7 1 10 0 0 Enable BOOL 0 " TRUE" 1 1 1 2 0 0 ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - Language UDINT 0 " 75573695" 1 7 1 10 0 0 - DeviceName UDINT 0 " 75573713" 1 7 1 10 0 0 - Export BOOL 0 " TRUE" 1 1 1 2 0 0 + Language UDINT 0 " 153893887" 1 7 1 10 0 0 + DeviceName UDINT 0 " 153893905" 1 7 1 10 0 0 + Export BOOL 0 " FALSE" 1 1 1 2 0 0 ExportArchive BOOL 0 " FALSE" 1 1 1 2 0 0 Active BOOL 0 " TRUE" 1 1 1 2 0 0 Error BOOL 0 " FALSE" 1 1 1 2 0 0 StatusID DINT 0 " 0" 1 4 1 10 0 0 CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 - CommandDone BOOL 0 " TRUE" 1 1 1 2 0 0 - CurrentRecord UDINT 0 " 6186" 1 7 1 10 0 0 + CommandDone BOOL 0 " FALSE" 1 1 1 2 0 0 + CurrentRecord UDINT 0 " 1281" 1 7 1 10 0 0 ArchiveAvailable BOOL 0 " TRUE" 1 1 1 2 0 0 Info MpAuditTrailInfoType 0 " *" 1 24 1 0 0 1 - NumberArchives UINT 0 " 21" 2 6 1 10 0 0 + NumberArchives UINT 0 " 32" 2 6 1 10 0 0 Diag MpAuditDiagType 0 " *" 2 24 1 0 0 1 StatusID MpAuditStatusIDType 0 " *" 3 24 1 0 0 1 ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpAU @@ -26,7 +26,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Code UINT 0 " 0" 4 6 1 10 0 0 Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " 166476704" 2 7 1 10 0 0 + pObject UDINT 0 " 166936960" 2 7 1 10 0 0 State UDINT 0 " 3" 2 7 1 10 0 0 HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands AuditCommandsType 0 " *" 1 24 1 0 0 1 @@ -50,32 +50,32 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Status AuditStatusType 0 " *" 1 24 1 0 0 1 AuditSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 AuditFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 1 - TableConfig[0] STRING[255] 0 " *" 3 9 256 1 0 0 - TableConfig[1] STRING[255] 0 " *" 3 9 256 1 0 0 - Query AuditQueryHMIType 0 " *" 2 24 1 0 0 1 - EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 1 - EvTime[0] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[1] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[2] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[3] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[4] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[5] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[6] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[7] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[8] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[9] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[10] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[11] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[12] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[13] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 0 + TableConfig[0] STRING[255] 0 "'{ "specRows": [{"from":0,"to":19, "visible":false}], "specColumns": [ {"from":1, "to" 3 9 256 1 0 0 + TableConfig[1] STRING[255] 0 " ''" 3 9 256 1 0 0 + Query AuditQueryHMIType 0 " *" 2 24 1 0 0 0 + EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 0 + EvTime[0] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[1] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[2] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[3] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[4] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[5] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[6] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 EvTime[14] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 EvTime[15] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 EvTime[16] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 EvTime[17] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 EvTime[18] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 EvTime[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 1 + Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 Text[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 Text[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 Text[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 @@ -96,7 +96,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Text[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 Text[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 Text[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 1 + DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 DText[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 @@ -117,7 +117,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I DText[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 1 + Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 Op[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 @@ -141,10 +141,92 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I QueryCount USINT 0 " *" 3 5 1 10 0 0 Name STRING[80] 0 " *" 3 9 81 1 0 0 Option USINT 0 " *" 3 5 1 10 0 0 - CustomEventSortCfg STRING[1000] 0 " *" 2 9 1001 1 0 0 - CustomEventsFilterCfg STRING[1000] 0 " *" 2 9 1001 1 0 0 - ArchiveAvailable BOOL 0 " *" 2 1 1 2 0 0 - NumberOfArchives UINT 0 " *" 2 6 1 10 0 0 - DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 1 - DeviceDataProvider[0] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " *" 3 9 101 1 0 0 + CustomEventSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + CustomEventsFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 + ArchiveAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 + NumberOfArchives UINT 0 " 33" 2 6 1 10 0 0 + DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 0 + DeviceDataProvider[0] STRING[100] 0 " '{"value":"UserEvents","text":"User Events Query"}'" 3 9 101 1 0 0 + DeviceDataProvider[1] STRING[100] 0 " '{"value":"RecipeEvents","text":"Recipe Events Query"}'" 3 9 101 1 0 0 + AuditTrailConfig MpAuditTrailConfigType 0 " *" 0 24 1 0 1 1 + Events UINT[0..9] 0 " *" 1 6 10 0 0 1 + Events[0] UINT 0 " 33" 2 6 1 10 0 0 + Events[1] UINT 0 " 2" 2 6 1 10 0 0 + Events[2] UINT 0 " 16" 2 6 1 10 0 0 + Events[3] UINT 0 " 113" 2 6 1 10 0 0 + Events[4] UINT 0 " 48" 2 6 1 10 0 0 + Events[5] UINT 0 " 149" 2 6 1 10 0 0 + Events[6] UINT 0 " 0" 2 6 1 10 0 0 + Events[7] UINT 0 " 0" 2 6 1 10 0 0 + Events[8] UINT 0 " 0" 2 6 1 10 0 0 + Events[9] UINT 0 " 0" 2 6 1 10 0 0 + RecordingSize UDINT 0 " 200" 1 7 1 10 0 0 + SramBufferSize UDINT 0 " 4" 1 7 1 10 0 0 + RecordMemory DINT 0 " 1" 1 4 1 10 0 0 e,0,mpAU + + TextSource MpAuditTextSourceType 0 " *" 1 24 1 0 0 1 + Type DINT 0 " 2" 2 4 1 10 0 0 e,0,mpAU + + Name STRING[50] 0 " ''" 2 9 51 1 0 0 + OutputFormat STRING[255] 0 " 'MpAudit/SysF/Event/Root'" 2 9 256 1 0 0 + OutputFormatSource STRING[100] 0 " ''" 2 9 101 1 0 0 + Display MpAuditDisplayTextSourceType 0 " *" 2 24 1 0 0 1 + FormatSource STRING[100] 0 " ''" 3 9 101 1 0 0 + Format STRING[255] 0 " 'MpAudit/Display/SysF/Event/Root'" 3 9 256 1 0 0 + ErrorMessage MpAuditErrorMessageType 0 " *" 2 24 1 0 0 1 + TextNotFound STRING[20] 0 " '{Err:Text}'" 3 9 21 1 0 0 + SpecifierInvalid STRING[20] 0 " '{Err:Specifier}'" 3 9 21 1 0 0 + Archive MpAuditArchiveType 0 " *" 1 24 1 0 0 1 + Enable BOOL 0 " TRUE" 2 1 1 2 0 0 + Mode DINT 0 " 0" 2 4 1 10 0 0 e,0,mpAU + + Time TIME_OF_DAY 0 " TOD#16:00:00" 2 16 1 1 0 0 + MaxSize UDINT 0 " 1" 2 7 1 10 0 0 + Export MpAuditExportType 0 " *" 1 24 1 0 0 1 + FileNamePattern STRING[50] 0 " 'Audit_%Y_%m_%d_%H_%M_%S'" 2 9 51 1 0 0 + ArchiveNamePattern STRING[50] 0 " 'Archive_%Y_%m_%d_%H_%M_%S'" 2 9 51 1 0 0 + PassPhrase STRING[100] 0 " '123ABc'" 2 9 101 1 0 0 + Encrypt BOOL 0 " TRUE" 2 1 1 2 0 0 + RawData BOOL 0 " FALSE" 2 1 1 2 0 0 + FileType DINT 0 " 1" 2 4 1 10 0 0 e,0,mpAU + + PDF MpAuditExportPdfType 0 " *" 2 24 1 0 0 1 + DefaultFont DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + + Format DINT 0 " 4" 3 4 1 10 0 0 e,0,mpAU + + Direction DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU + + Margins DINT 0 " *" 3 4 1 10 0 0 e,0,mpAU + + OwnerPassword STRING[50] 0 " *" 3 9 51 1 0 0 + UserPassword STRING[50] 0 " *" 3 9 51 1 0 0 + AllowPrint BOOL 0 " *" 3 1 1 2 0 0 + AllowCopy BOOL 0 " *" 3 1 1 2 0 0 + AllowEdit BOOL 0 " *" 3 1 1 2 0 0 + Icon STRING[100] 0 " *" 3 9 101 1 0 0 + Header STRING[100] 0 " *" 3 9 101 1 0 0 + Title MpAuditPdfTitleType 0 " *" 3 24 1 0 0 1 + Enable BOOL 0 " *" 4 1 1 2 0 0 + Text STRING[100] 0 " *" 4 9 101 1 0 0 + Fonts MpAuditLanguageFontType[0..4] 0 " *" 3 24 5 0 0 1 + Fonts[0] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 + Language STRING[20] 0 " *" 5 9 21 1 0 0 + Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU + + Fonts[1] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 + Language STRING[20] 0 " *" 5 9 21 1 0 0 + Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU + + Fonts[2] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 + Language STRING[20] 0 " *" 5 9 21 1 0 0 + Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU + + Fonts[3] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 + Language STRING[20] 0 " *" 5 9 21 1 0 0 + Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU + + Fonts[4] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 + Language STRING[20] 0 " *" 5 9 21 1 0 0 + Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU + diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM index 17799678..c9398848 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM @@ -1,31 +1,31 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 Index=14 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 Index=6 ASCIIString=0 name type force value level type len format place expand specs HMIAuditInterfaceCtrl HMIAuditInterface_type 0 " *" 0 24 1 0 1 1 Status HMIAuditInterfaceStatus_type 0 " *" 1 24 1 0 0 1 AuditTrailCmdDone BOOL 0 " FALSE" 2 1 1 2 0 0 AuditTrailArchiveAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 - NumberOfArchives UINT 0 " 18" 2 6 1 10 0 0 + NumberOfArchives UINT 0 " 31" 2 6 1 10 0 0 Parameters HMIAuditInterfaceParameters_type 0 " *" 1 24 1 0 0 1 ArchiveSettings HMIAuditArchiveParType 0 " *" 2 24 1 0 0 1 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - MaxSize UDINT 0 " 0" 3 7 1 10 0 0 + Enable BOOL 0 " TRUE" 3 1 1 2 0 0 + MaxSize UDINT 0 " 100" 3 7 1 10 0 0 Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - Hour USINT 0 " 0" 3 5 1 10 0 0 + Hour USINT 0 " 8" 3 5 1 10 0 0 Minute USINT 0 " 0" 3 5 1 10 0 0 - FileType DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU - TestComparisonNumber USINT 0 " 0" 0 5 1 10 1 0 + TestComparisonNumber USINT 0 " 31" 0 5 1 10 1 0 VariableMonitorExample REAL 0 " 0.0" 0 8 1 10 1 0 - SampleTemperature REAL 0 " 0.0" 0 8 1 10 1 0 + SampleTemperature REAL 0 " 1.0" 0 8 1 10 1 0 HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands AuditCommandsType 0 " *" 1 24 1 0 0 0 - ExportArchives BOOL 0 " FALSE" 2 1 1 2 0 0 - RunQuery BOOL 0 " FALSE" 2 1 1 2 0 0 - SaveConfig BOOL 0 " FALSE" 2 1 1 2 0 0 - Parameters AuditParametersType 0 " *" 1 24 1 0 0 1 - ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 1 + ExportArchives BOOL 0 " *" 2 1 1 2 0 0 + RunQuery BOOL 0 " *" 2 1 1 2 0 0 + SaveConfig BOOL 0 " *" 2 1 1 2 0 0 + Parameters AuditParametersType 0 " *" 1 24 1 0 0 0 + ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 0 Enable BOOL 0 " FALSE" 3 1 1 2 0 0 MaxSize UDINT 0 " 0" 3 7 1 10 0 0 Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU @@ -34,7 +34,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 I Minute USINT 0 " 0" 3 5 1 10 0 0 FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU - QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 1 + QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 0 QuerySelection[0] STRING[10] 0 " ''" 3 9 11 1 0 0 QuerySelection[1] STRING[10] 0 " ''" 3 9 11 1 0 0 QuerySelection[2] STRING[10] 0 " ''" 3 9 11 1 0 0 @@ -46,92 +46,92 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 I TableConfig[1] STRING[255] 0 " ''" 3 9 256 1 0 0 Query AuditQueryHMIType 0 " *" 2 24 1 0 0 0 EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 0 - EvTime[0] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[1] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[2] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[3] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[4] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[5] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[6] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[14] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[15] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[16] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[17] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[18] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 + EvTime[0] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[1] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[2] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[3] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[4] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[5] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[6] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[7] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[8] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[9] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[10] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[11] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[12] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[13] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[14] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[15] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[16] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[17] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 + EvTime[18] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 EvTime[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - Text[0] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[1] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[2] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[3] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[4] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[5] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[6] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[7] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[8] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[9] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[10] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[11] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[12] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[13] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[14] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[15] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[16] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Text[17] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Text[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Text[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 Text[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 Text[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - DText[0] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[1] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[2] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[3] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[4] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[5] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[6] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[7] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[8] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[9] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[10] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[11] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[12] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[13] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[14] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[15] WSTRING[100] 0 " """ 4 21 202 1 0 0 - DText[16] WSTRING[100] 0 " """ 4 21 202 1 0 0 + DText[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 + DText[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 DText[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - Op[0] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[1] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[2] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[3] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[4] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[5] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[6] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[7] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[8] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[9] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[10] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[11] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[12] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[13] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[14] WSTRING[100] 0 " """ 4 21 202 1 0 0 - Op[15] WSTRING[100] 0 " """ 4 21 202 1 0 0 + Op[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 + Op[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 Op[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - QueryCount USINT 0 " 0" 3 5 1 10 0 0 - Name STRING[80] 0 " ''" 3 9 81 1 0 0 - Option USINT 0 " 0" 3 5 1 10 0 0 + QueryCount USINT 0 " *" 3 5 1 10 0 0 + Name STRING[80] 0 " *" 3 9 81 1 0 0 + Option USINT 0 " *" 3 5 1 10 0 0 CustomEventSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 CustomEventsFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 ArchiveAvailable BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -139,3 +139,4 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 I DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 0 DeviceDataProvider[0] STRING[100] 0 " ''" 3 9 101 1 0 0 DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 + TestFailed BOOL 0 " FALSE" 0 1 1 2 1 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc index 25198600b0e576aedcbe187733b5061ad23229b0..a833dfbdf5f9494d199ce6f63854756bb65e24ae 100644 GIT binary patch delta 130 zcmbQh{D#R~d%7>fqHSdf3=Hzm7?>Cs7;_k)zyV0}{09;`KjEfqHSdf3=Hzm7?>Cs7$-15fdi1{xeX+AfY<{l( Date: Tue, 7 Mar 2023 09:58:38 -0500 Subject: [PATCH 021/159] Starting the switch to substates instead of delay counters --- .../Diagnosis/UnitTest/PC_any/AuditTest.PVM | 49 ++++++++------ .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 364 -> 364 bytes .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 60 +++++++++++------- .../UnitTest/Audit/AuditTest/Types.typ | 3 +- .../UnitTest/Audit/AuditTest/variables.var | 4 +- .../Physical/UnitTest/PC_any/Cpu.pkg | 2 +- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 2 +- 7 files changed, 71 insertions(+), 49 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM index c9398848..c8b907e2 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM @@ -1,44 +1,47 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 Index=6 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 Index=5 ASCIIString=0 name type force value level type len format place expand specs + cycleCount UINT 0 " 0" 0 6 1 10 1 0 HMIAuditInterfaceCtrl HMIAuditInterface_type 0 " *" 0 24 1 0 1 1 + Commands HMIAuditInterfaceCommands_type 0 " *" 1 24 1 0 0 1 + ExportArchives BOOL 0 " FALSE" 2 1 1 2 0 0 Status HMIAuditInterfaceStatus_type 0 " *" 1 24 1 0 0 1 AuditTrailCmdDone BOOL 0 " FALSE" 2 1 1 2 0 0 AuditTrailArchiveAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 - NumberOfArchives UINT 0 " 31" 2 6 1 10 0 0 + NumberOfArchives UINT 0 " 5" 2 6 1 10 0 0 Parameters HMIAuditInterfaceParameters_type 0 " *" 1 24 1 0 0 1 - ArchiveSettings HMIAuditArchiveParType 0 " *" 2 24 1 0 0 1 - Enable BOOL 0 " TRUE" 3 1 1 2 0 0 - MaxSize UDINT 0 " 100" 3 7 1 10 0 0 + ArchiveSettings HMIAuditArchiveParType 0 " *" 2 24 1 0 0 0 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + MaxSize UDINT 0 " 0" 3 7 1 10 0 0 Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - Hour USINT 0 " 8" 3 5 1 10 0 0 + Hour USINT 0 " 0" 3 5 1 10 0 0 Minute USINT 0 " 0" 3 5 1 10 0 0 - FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU + FileType DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - TestComparisonNumber USINT 0 " 31" 0 5 1 10 1 0 + TestComparisonNumber USINT 0 " 0" 0 5 1 10 1 0 VariableMonitorExample REAL 0 " 0.0" 0 8 1 10 1 0 - SampleTemperature REAL 0 " 1.0" 0 8 1 10 1 0 - HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 1 + SampleTemperature REAL 0 " 0.0" 0 8 1 10 1 0 + HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 0 Commands AuditCommandsType 0 " *" 1 24 1 0 0 0 ExportArchives BOOL 0 " *" 2 1 1 2 0 0 RunQuery BOOL 0 " *" 2 1 1 2 0 0 SaveConfig BOOL 0 " *" 2 1 1 2 0 0 Parameters AuditParametersType 0 " *" 1 24 1 0 0 0 ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - MaxSize UDINT 0 " 0" 3 7 1 10 0 0 - Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU + Enable BOOL 0 " *" 3 1 1 2 0 0 + MaxSize UDINT 0 " *" 3 7 1 10 0 0 + Mode DINT 0 " *" 3 4 1 10 0 0 e,0,mpAU - Hour USINT 0 " 0" 3 5 1 10 0 0 - Minute USINT 0 " 0" 3 5 1 10 0 0 - FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU + Hour USINT 0 " *" 3 5 1 10 0 0 + Minute USINT 0 " *" 3 5 1 10 0 0 + FileType DINT 0 " *" 3 4 1 10 0 0 e,0,mpAU QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 0 - QuerySelection[0] STRING[10] 0 " ''" 3 9 11 1 0 0 - QuerySelection[1] STRING[10] 0 " ''" 3 9 11 1 0 0 - QuerySelection[2] STRING[10] 0 " ''" 3 9 11 1 0 0 - Status AuditStatusType 0 " *" 1 24 1 0 0 1 + QuerySelection[0] STRING[10] 0 " *" 3 9 11 1 0 0 + QuerySelection[1] STRING[10] 0 " *" 3 9 11 1 0 0 + QuerySelection[2] STRING[10] 0 " *" 3 9 11 1 0 0 + Status AuditStatusType 0 " *" 1 24 1 0 0 0 AuditSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 AuditFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 0 @@ -140,3 +143,9 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 I DeviceDataProvider[0] STRING[100] 0 " ''" 3 9 101 1 0 0 DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 TestFailed BOOL 0 " FALSE" 0 1 1 2 1 0 + DTGetTime_0 DTGetTime 0 " *" 0 24 1 0 1 0 + enable BOOL 0 " FALSE" 1 1 1 2 0 0 + status UINT 0 " 0" 1 6 1 10 0 0 + DT1 DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 1 11 1 1 0 0 + UnitTestState DINT 0 " 10" 0 4 1 10 1 0 e,10,TES + diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc index a833dfbdf5f9494d199ce6f63854756bb65e24ae..e1e0dd9b42e23604e4f2375996c41058704325ad 100644 GIT binary patch delta 184 zcmaFE^oD7IetqKv28M5GAQBxgF)%`f%ow~G{1}3m82$PmUbfng)V zX@-{!zd-8P7#Rf_Wf>VAOH(pSLQ;!MtU!cIeqJgA3nL>V6C(o{vmxX?d_5f}Zb+M~ g&8Vlvh$Nm|nVggAoL`z(!ob7;R}QjcrtH530CHn31poj5 delta 181 zcmaFE^oD7Ietl?l1H-p85Qz?$-~wh0z6=2jAxsSa|Nrq~U|@a$lwo9uV3@?Pnc*zM zBSx@7Mn*;Wlx1RM0An_U3J>3jYchn #define TIMEOUT_TEST_CASE \ - if (cycleCount >= 500) \ + if (cycleCount >= 1000) \ { \ char abortMessage[80]; \ char substate[10]; \ memset(abortMessage, 0, sizeof(abortMessage)); \ memset(substate, 0, sizeof(substate)); \ - itoa(UnitTestState, substate, 10); \ + itoa(TestState, substate, 10); \ strcpy(abortMessage, "Timeout in State = "); \ strcat(abortMessage, substate); \ TEST_FAIL(abortMessage); \ @@ -25,6 +25,8 @@ _SETUP_SET(void) { + cycleCount = 0; + TEST_DONE; } @@ -50,7 +52,9 @@ _SETUP_TEST(void) AssertSubState = 0; SampleTemperature = 1; TestComparisonNumber = 0; - UnitTestState = TEST_ARRANGE; + TestState = TEST_ARRANGE; + cycleCount = 0; + TEST_DONE; } @@ -87,36 +91,44 @@ _TEST ExportArchive(void) DirInfo_0.pPath = 0; DirInfo(&DirInfo_0); - switch (UnitTestState) + switch (TestState) { case TEST_ARRANGE: // Force an audit to be generated SampleTemperature++; TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); ArrangeDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ArrangeDelay != 2); -// WriteNumFiles = 1; + TEST_BUSY_CONDITION(ArrangeDelay != 10); + // WriteNumFiles = 1; TestComparisonNumber = DirInfo_0.filenum; - UnitTestState = TEST_ACT; + TestState = TEST_ACT; break; case TEST_ACT: // Archive audit -// WriteNumFiles = 0; - HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); - HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); - ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ActDelay != 2); - UnitTestState = TEST_ASSERT; + // WriteNumFiles = 0; + switch (ActSubState) + { + case 0: + HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); + HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; + ActSubState = 1; + break; + + case 1: + ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command + TEST_BUSY_CONDITION(ActDelay != 10); + TestState = TEST_ASSERT; + break; + } break; case TEST_ASSERT: // Check save location for archive - AssertDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(AssertDelay != 2); - TEST_ASSERT(TestComparisonNumber + 1 == DirInfo_0.filenum); +// AssertDelay += 1; // This delay is compensating for the function block refreshing after finishing a command +// TEST_BUSY_CONDITION(AssertDelay != 10); + TEST_ASSERT(TestComparisonNumber < DirInfo_0.filenum); // TestFailed = (TestComparisonNumber + 1 != DirInfo_0.filenum); TEST_DONE; break; @@ -128,10 +140,10 @@ _TEST ExportArchive(void) _TEST AutomaticArchive(void) { Auto=1; -// TEST_DONE; + TEST_DONE; TIMEOUT_TEST_CASE; - switch (UnitTestState) + switch (TestState) { case TEST_ARRANGE: // Set automatic archive parameters prepare audit for generation @@ -147,13 +159,13 @@ _TEST AutomaticArchive(void) WriteNumFiles = 1; TestComparisonNumber = HMIAuditInterfaceCtrl.Status.NumberOfArchives; logDebug("AuditTest","CompNum = %si",LogArray); - UnitTestState = TEST_ACT; + TestState = TEST_ACT; break; case TEST_ACT: // Archive audit -// ActDelay += 1; -// TEST_BUSY_CONDITION(ActDelay == 2); + ActDelay += 1; + TEST_BUSY_CONDITION(ActDelay != 10); // if(SampleTemperature == SAMPLE_TEMP_VALUE) // SampleTemperature = DEFAULT_TEMP_VALUE; // else @@ -168,7 +180,7 @@ _TEST AutomaticArchive(void) TON_0.IN = 1; TON(&TON_0); TEST_BUSY_CONDITION(!TON_0.Q); - UnitTestState = TEST_ASSERT; + TestState = TEST_ASSERT; TON_0.IN = 0; TON(&TON_0); break; diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ index 333a1267..1643e1b1 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ @@ -4,7 +4,8 @@ TYPE ( TEST_ARRANGE := 10, TEST_ACT := 20, - TEST_ASSERT := 30 + TEST_ASSERT := 30, + temp := 40 ); END_TYPE diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index 32ce6400..e624994e 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -14,7 +14,7 @@ VAR END_VAR (*Variables used in the tests*) VAR - cycleCount : {REDUND_UNREPLICABLE} USINT; + cycleCount : {REDUND_UNREPLICABLE} UINT; HMIAuditInterfaceCtrl : HMIAuditInterface_type := (Commands:=(ExportArchives:=FALSE)); UnitTestState : TestStateEnum; SampleTemperature : REAL; @@ -28,7 +28,7 @@ VAR AssertDelay : USINT; DTSetTime_0 : DTSetTime; DTGetTime_0 : DTGetTime; - HOUR : USINT := 8; + HOUR : USINT := 16; MINUTE : USINT := 0; SET_TIME : DATE_AND_TIME := DT#2023-01-01-15:59:55; MAX_FILE_SIZE : UDINT := 100; (*Maximum file size for automatic archiving (Kb)*) diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg index ca230015..1ba90ab9 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg @@ -17,7 +17,7 @@ - + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm index 392be3aa..51248938 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -1,7 +1,7 @@ (*Inputs to the unit test*) VAR_CONFIG ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone; (*Insert your comment here...*) - ::AuditMgr:MpAuditTrail_0.ArchiveAvailable AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable; (*Insert your comment here...*) + ::AuditMgr:HmiAudit.Status.ArchiveAvailable AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable; (*Insert your comment here...*) ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.NumberOfArchives; (*Insert your comment here...*) END_VAR (*Outputs from the unit test*) From f6d91f15442cb949602299d3b13ada0b279edad3 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 7 Mar 2023 11:11:49 -0500 Subject: [PATCH 022/159] Both audit unit tests use substates for delays and to clean up the code --- .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 119 +++++++++++------- 1 file changed, 76 insertions(+), 43 deletions(-) diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index 4f8ec242..44e93e51 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -95,13 +95,22 @@ _TEST ExportArchive(void) { case TEST_ARRANGE: // Force an audit to be generated - SampleTemperature++; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); - ArrangeDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ArrangeDelay != 10); - // WriteNumFiles = 1; - TestComparisonNumber = DirInfo_0.filenum; - TestState = TEST_ACT; + switch (ArrangeSubState) + { + case 0: + SampleTemperature++; + TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); + ArrangeSubState = 1; + break; + + case 1: + ArrangeDelay += 1; // This delay is compensating for the function block refreshing after finishing a command + TEST_BUSY_CONDITION(ArrangeDelay != 10); + // WriteNumFiles = 1; + TestComparisonNumber = DirInfo_0.filenum; + TestState = TEST_ACT; + break; + } break; case TEST_ACT: @@ -117,7 +126,7 @@ _TEST ExportArchive(void) break; case 1: - ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command + ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command TEST_BUSY_CONDITION(ActDelay != 10); TestState = TEST_ASSERT; break; @@ -126,8 +135,6 @@ _TEST ExportArchive(void) case TEST_ASSERT: // Check save location for archive -// AssertDelay += 1; // This delay is compensating for the function block refreshing after finishing a command -// TEST_BUSY_CONDITION(AssertDelay != 10); TEST_ASSERT(TestComparisonNumber < DirInfo_0.filenum); // TestFailed = (TestComparisonNumber + 1 != DirInfo_0.filenum); TEST_DONE; @@ -140,49 +147,75 @@ _TEST ExportArchive(void) _TEST AutomaticArchive(void) { Auto=1; - TEST_DONE; +// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) { case TEST_ARRANGE: // Set automatic archive parameters prepare audit for generation - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Enable = 1; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Hour = HOUR; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Minute = MINUTE; -// TEST_BUSY_CONDITION(HMIAuditInterfaceCtrl.Status.NumberOfArchives == 0); -// ArrangeDelay += 1; -// TEST_BUSY_CONDITION(ArrangeDelay == 2); - WriteNumFiles = 1; - TestComparisonNumber = HMIAuditInterfaceCtrl.Status.NumberOfArchives; - logDebug("AuditTest","CompNum = %si",LogArray); - TestState = TEST_ACT; + switch (ArrangeSubState) + { + case 0: + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Enable = 1; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Hour = HOUR; + HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Minute = MINUTE; + ArrangeSubState = 1; + break; + + case 1: + //TEST_BUSY_CONDITION(HMIAuditInterfaceCtrl.Status.NumberOfArchives == 0); + //ArrangeDelay += 1; + //TEST_BUSY_CONDITION(ArrangeDelay == 2); + WriteNumFiles = 1; + TestComparisonNumber = HMIAuditInterfaceCtrl.Status.NumberOfArchives; + //logDebug("AuditTest","CompNum = %si",LogArray); + ArrangeSubState = 2; + break; + + case 2: + WriteNumFiles = 0; + ArrangeDelay += 1; + TEST_BUSY_CONDITION(ArrangeDelay == 2); + TestState = TEST_ACT; + break; + } break; case TEST_ACT: // Archive audit - ActDelay += 1; - TEST_BUSY_CONDITION(ActDelay != 10); -// if(SampleTemperature == SAMPLE_TEMP_VALUE) -// SampleTemperature = DEFAULT_TEMP_VALUE; -// else - SampleTemperature = SAMPLE_TEMP_VALUE; - DTSetTime_0.DT1 = SET_TIME; - DTSetTime_0.enable = 1; - DTSetTime(&DTSetTime_0); -// DTGetTime_0.enable = 1; -// DTGetTime(&DTGetTime_0); - WriteNumFiles = 0; - TON_0.PT = TIMER_LENGTH; - TON_0.IN = 1; - TON(&TON_0); - TEST_BUSY_CONDITION(!TON_0.Q); - TestState = TEST_ASSERT; - TON_0.IN = 0; - TON(&TON_0); + switch (ActSubState) + { + case 0: +// if(SampleTemperature == SAMPLE_TEMP_VALUE) +// SampleTemperature = DEFAULT_TEMP_VALUE; +// else + SampleTemperature = SAMPLE_TEMP_VALUE; + DTSetTime_0.DT1 = SET_TIME; + DTSetTime_0.enable = 1; + DTSetTime(&DTSetTime_0); + ActSubState = 1; + break; + + case 1: +// DTGetTime_0.enable = 1; +// DTGetTime(&DTGetTime_0); + TON_0.PT = TIMER_LENGTH; + TON_0.IN = 1; + TON(&TON_0); + TEST_BUSY_CONDITION(!TON_0.Q); + ActSubState = 2; + break; + + case 2: + TestState = TEST_ASSERT; + TON_0.IN = 0; + TON(&TON_0); + break; + } break; case TEST_ASSERT: From c0e9205e690dcce750dde7d273cfaf27525ab7b5 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 7 Mar 2023 14:12:29 -0500 Subject: [PATCH 023/159] Made some refactoring changes to cut out unneccesary middleman structures that I had made and instead use structures already in the referenced manager task variable/type files --- .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 364 -> 364 bytes .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 28 +++++++++--------- .../UnitTest/Audit/AuditTest/variables.var | 3 +- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 20 ++++++------- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc index e1e0dd9b42e23604e4f2375996c41058704325ad..c6713953a476a56d1eab34ff399f0df3f6ff2267 100644 GIT binary patch delta 30 jcmaFE^oD7I9#?uyR0G2|5INDpfstim<$IR%hmBnUw`dFM delta 30 kcmaFE^oD7I9#>l91O|q0AabIG10&nS%J(cYW&bSz0J4t@>Hq)$ diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index 44e93e51..993be074 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -99,7 +99,7 @@ _TEST ExportArchive(void) { case 0: SampleTemperature++; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable); + TEST_BUSY_CONDITION(!HmiAudit.Status.ArchiveAvailable); ArrangeSubState = 1; break; @@ -119,9 +119,9 @@ _TEST ExportArchive(void) switch (ActSubState) { case 0: - HMIAuditInterfaceCtrl.Commands.ExportArchives = 1; - TEST_BUSY_CONDITION(!HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone); - HMIAuditInterfaceCtrl.Commands.ExportArchives = 0; + HmiAudit.Commands.ExportArchives = 1; + TEST_BUSY_CONDITION(!MpAuditTrailCmdDone); + HmiAudit.Commands.ExportArchives = 0; ActSubState = 1; break; @@ -157,21 +157,21 @@ _TEST AutomaticArchive(void) switch (ArrangeSubState) { case 0: - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Enable = 1; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Hour = HOUR; - HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Minute = MINUTE; + HmiAudit.Parameters.ArchiveSettings.Enable = 1; + HmiAudit.Parameters.ArchiveSettings.FileType = mpAUDIT_FILE_TYPE_XML; + HmiAudit.Parameters.ArchiveSettings.MaxSize = MAX_FILE_SIZE; + HmiAudit.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_DAILY; + HmiAudit.Parameters.ArchiveSettings.Hour = HOUR; + HmiAudit.Parameters.ArchiveSettings.Minute = MINUTE; ArrangeSubState = 1; break; case 1: - //TEST_BUSY_CONDITION(HMIAuditInterfaceCtrl.Status.NumberOfArchives == 0); + //TEST_BUSY_CONDITION(HmiAudit.Status.NumberOfArchives == 0); //ArrangeDelay += 1; //TEST_BUSY_CONDITION(ArrangeDelay == 2); WriteNumFiles = 1; - TestComparisonNumber = HMIAuditInterfaceCtrl.Status.NumberOfArchives; + TestComparisonNumber = HmiAudit.Status.NumberOfArchives; //logDebug("AuditTest","CompNum = %si",LogArray); ArrangeSubState = 2; break; @@ -220,8 +220,8 @@ _TEST AutomaticArchive(void) case TEST_ASSERT: // Check save location for archive - TEST_ASSERT(TestComparisonNumber + 1 == HMIAuditInterfaceCtrl.Status.NumberOfArchives); - TestFailed = !(TestComparisonNumber + 1 == HMIAuditInterfaceCtrl.Status.NumberOfArchives); + TEST_ASSERT(TestComparisonNumber + 1 == HmiAudit.Status.NumberOfArchives); + TestFailed = !(TestComparisonNumber + 1 == HmiAudit.Status.NumberOfArchives); TestDone = 1; TEST_DONE; break; diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index e624994e..074f621b 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -15,8 +15,6 @@ END_VAR (*Variables used in the tests*) VAR cycleCount : {REDUND_UNREPLICABLE} UINT; - HMIAuditInterfaceCtrl : HMIAuditInterface_type := (Commands:=(ExportArchives:=FALSE)); - UnitTestState : TestStateEnum; SampleTemperature : REAL; DirInfo_0 : DirInfo; TestComparisonNumber : USINT; @@ -39,4 +37,5 @@ VAR LogArray : ARRAY[0..7] OF UDINT; Auto : BOOL; Export : BOOL; + MpAuditTrailCmdDone : BOOL; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm index 51248938..fb32ee7b 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -1,17 +1,17 @@ (*Inputs to the unit test*) VAR_CONFIG - ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailCmdDone; (*Insert your comment here...*) - ::AuditMgr:HmiAudit.Status.ArchiveAvailable AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.AuditTrailArchiveAvailable; (*Insert your comment here...*) - ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HMIAuditInterfaceCtrl.Status.NumberOfArchives; (*Insert your comment here...*) + ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:MpAuditTrailCmdDone; (*Insert your comment here...*) + ::AuditMgr:HmiAudit.Status.ArchiveAvailable AT %Q.::AuditTest:HmiAudit.Status.ArchiveAvailable; (*Insert your comment here...*) + ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HmiAudit.Status.NumberOfArchives; (*Insert your comment here...*) END_VAR (*Outputs from the unit test*) VAR_CONFIG - ::AuditTest:HMIAuditInterfaceCtrl.Commands.ExportArchives AT %Q.::AuditMgr:HmiAudit.Commands.ExportArchives; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Commands.ExportArchives AT %Q.::AuditMgr:HmiAudit.Commands.ExportArchives; (*Insert your comment here...*) ::AuditTest:SampleTemperature AT %Q.::AuditMgr:VariableMonitorExample; (*Insert your comment here...*) - ::AuditTest:HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Enable AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Enable; (*Insert your comment here...*) - ::AuditTest:HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.MaxSize AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.MaxSize; (*Insert your comment here...*) - ::AuditTest:HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Mode AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Mode; (*Insert your comment here...*) - ::AuditTest:HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Hour AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Hour; (*Insert your comment here...*) - ::AuditTest:HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.Minute AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Minute; (*Insert your comment here...*) - ::AuditTest:HMIAuditInterfaceCtrl.Parameters.ArchiveSettings.FileType AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.FileType; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Enable AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Enable; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.MaxSize AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.MaxSize; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Mode AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Mode; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Hour AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Hour; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.Minute AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.Minute; (*Insert your comment here...*) + ::AuditTest:HmiAudit.Parameters.ArchiveSettings.FileType AT %Q.::AuditMgr:HmiAudit.Parameters.ArchiveSettings.FileType; (*Insert your comment here...*) END_VAR From 9f105add74a84a81d9e7082ecb01910b94e1cef8 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 20 Mar 2023 11:32:52 -0400 Subject: [PATCH 024/159] AAZM572 - Fixed bug in export popup --- .../AlarmX/AlarmMgr/AlarmMgr.st | 1 + .../AlarmX/AlarmMgr/AlarmMgr.typ | 3 ++- .../AlarmX/AlarmXHistory_content.eventbinding | 27 +++++++++++++------ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index 8dca954f..225aa346 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -76,6 +76,7 @@ PROGRAM _CYCLIC IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN HmiAlarmX.Commands.ExportAlarms := FALSE; MpAlarmXHistory_0.Export := FALSE; + HmiAlarmX.Status.AlarmExportDone := TRUE; END_IF // Error reset diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ index b41db339..74db3d0d 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ @@ -7,7 +7,7 @@ TYPE Parameters : AlarmParametersType; (*HMI parameters*) END_STRUCT; AlarmCommandsType : STRUCT (*Structure to hold the commands from the HMI*) - ExportAlarms : BOOL; (*Triggers an alarm export of the alarm history. Connected to a button on the HMI. *) + ExportAlarms : BOOL; (*Triggers an alarm export of the alarm history.*) RunQuery : BOOL; (*Triggers the query to run. Connected to a button on the HMI. *) END_STRUCT; AlarmParametersType : STRUCT (*Structure to hold the parameters from the HMI*) @@ -19,6 +19,7 @@ TYPE AlarmSortCfg : STRING[1000]; (*Sort configuration for the AlarmList widget*) AlarmFilterCfg : STRING[1000]; (*Filter configuration for the AlarmList widget*) TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the alarm query Table*) + AlarmExportDone : BOOL; (*Alarm export of alarm history is completed. Connected to a button on the HMI. *) Query : AlarmQueryHMIType; (*Structure which rearranges the query data from AlarmQuery into a structure of arrays for easy connection to the Table widget*) END_STRUCT; AlarmQueryType : STRUCT (*Structure for query results and status*) diff --git a/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding index cc521f61..1b3a0129 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding @@ -32,14 +32,25 @@ - - - - - - - + + + + + + + + + + + + + + + + + + - + \ No newline at end of file From a3f7c0e58bcc1cdf814c6b275f038d230026d935 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 20 Mar 2023 15:17:27 -0400 Subject: [PATCH 025/159] Removed debugging variables Changed asserts and busy conditions to be relative value instead of absolute values checks Shortened wait time for automatic archive creation Added test fail condition if fub goes into error --- .../Diagnosis/Simulation/PC/AuditMgr.PVM | 31 --- .../Diagnosis/Simulation/PC/RecipeMgr.PVM | 192 --------------- .../Diagnosis/UnitTest/PC_any/AuditMgr.PVM | 232 ------------------ .../Diagnosis/UnitTest/PC_any/AuditTest.PVM | 151 ------------ .../Diagnosis/UnitTest/PC_any/AuditTest.tc | Bin 364 -> 0 bytes .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 60 +---- .../UnitTest/Audit/AuditTest/variables.var | 12 +- .../UnitTest/PC_any/UnitTest/AuditMgr.vvm | 1 + 8 files changed, 17 insertions(+), 662 deletions(-) delete mode 100644 mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM delete mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM delete mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM delete mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc diff --git a/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM deleted file mode 100644 index 92d7f237..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM +++ /dev/null @@ -1,31 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=7 ASCIIString=0 - name type force value level type len format place expand specs - VariableMonitorExample REAL 0 " 10.5" 0 8 1 10 1 0 - MpAuditTrail_0 MpAuditTrail 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 136557956" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - Language UDINT 0 " 142823439" 1 7 1 10 0 0 - DeviceName UDINT 0 " 142823457" 1 7 1 10 0 0 - Export BOOL 0 " FALSE" 1 1 1 2 0 0 - ExportArchive BOOL 0 " FALSE" 1 1 1 2 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 - CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 - CommandDone BOOL 0 " FALSE" 1 1 1 2 0 0 - CurrentRecord UDINT 0 " 15" 1 7 1 10 0 0 - ArchiveAvailable BOOL 0 " FALSE" 1 1 1 2 0 0 - Info MpAuditTrailInfoType 0 " *" 1 24 1 0 0 1 - NumberArchives UINT 0 " 0" 2 6 1 10 0 0 - Diag MpAuditDiagType 0 " *" 2 24 1 0 0 1 - StatusID MpAuditStatusIDType 0 " *" 3 24 1 0 0 1 - ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpAU - - Severity DINT 0 " 0" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " 0" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " 166099080" 2 7 1 10 0 0 - State UDINT 0 " 3" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM deleted file mode 100644 index 745ae6f4..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM +++ /dev/null @@ -1,192 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=RecipeMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=113 Type=65 Scope=22 Force=14 Index=160 ASCIIString=0 - name type force value level type len format place expand specs - HmiRecipe RecipeHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands RecipeCommandsType 0 " *" 1 24 1 0 0 0 - LoadRecipe BOOL 0 " *" 2 1 1 2 0 0 - SaveSelectedRecipe BOOL 0 " *" 2 1 1 2 0 0 - CreateRecipe BOOL 0 " *" 2 1 1 2 0 0 - ResetPreview BOOL 0 " *" 2 1 1 2 0 0 - Parameters RecipeParametersType 0 " *" 1 24 1 0 0 0 - Category STRING[30] 0 " ''" 2 9 31 1 0 0 - DeviceName STRING[50] 0 " ''" 2 9 51 1 0 0 - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - Status RecipeStatusType 0 " *" 1 24 1 0 0 1 - PreviewCase DINT 0 " *" 2 4 1 10 0 0 e,0,PREV - - HMIcommand DINT 0 " 0" 2 4 1 10 0 0 e,0,REC_ - - LastLoadedConfigRecipe STRING[255] 0 " 'Machine.mcfg'" 2 9 256 1 0 0 - LastLoadedProductRecipe STRING[255] 0 " 'Default.par'" 2 9 256 1 0 0 - ProductRecipeLoaded BOOL 0 " TRUE" 2 1 1 2 0 0 - ConfigRecipeLoaded BOOL 0 " TRUE" 2 1 1 2 0 0 - PreviousRangeStart REAL 0 " 54.5454559" 2 8 1 10 0 0 - PreviousRangeEnd REAL 0 " 100.0" 2 8 1 10 0 0 - LastMaxSelection UINT 0 " 9" 2 6 1 10 0 0 - LastSelectedIndex UINT 0 " 0" 2 6 1 10 0 0 - LastStatus DINT 0 " 0" 2 4 1 10 0 0 e,0,mpRE - - EditDialogOpened BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateDialogOpened BOOL 0 " FALSE" 2 1 1 2 0 0 - PreviousRecipe STRING[80] 0 " 'Default'" 2 9 81 1 0 0 - FileDuplicate BOOL 0 " FALSE" 2 1 1 2 0 0 - FilesAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 - InvalidRecipe BOOL 0 " FALSE" 2 1 1 2 0 0 - LoadingRecipeList BOOL 0 " FALSE" 2 1 1 2 0 0 - MachineSettingsRecipeMissing BOOL 0 " FALSE" 2 1 1 2 0 0 - ParameterRecipeMissing BOOL 0 " FALSE" 2 1 1 2 0 0 - DeviceValid BOOL 0 " TRUE" 2 1 1 2 0 0 - LoadAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 - DeviceDataProvider STRING[100][0..3] 0 " *" 2 9 101 0 0 1 - DeviceDataProvider[0] STRING[100] 0 " '{"value":"mappRecipeFiles","text":"CF/PLC"}'" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[2] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[3] STRING[100] 0 " ''" 3 9 101 1 0 0 - TableConfig STRING[120] 0 " '{ "specRows": [{"from":10,"to":19, "visible":false}]}'" 2 9 121 1 0 0 - SelectedRecipe STRING[255] 0 " 'Default - Copy (10).par'" 2 9 256 1 0 0 - DefaultRecipeSelected BOOL 0 " FALSE" 2 1 1 2 0 0 - MpRecipeUIConnect MpRecipeUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpRE - - Recipe MpRecipeUIRecipeType 0 " *" 1 24 1 0 0 1 - List MpRecipeUIRecipeListType 0 " *" 2 24 1 0 0 1 - Names STRING[255][0..19] 0 " *" 3 9 256 0 0 1 - Names[0] STRING[255] 0 " 'Default - Copy (10).par'" 4 9 256 1 0 0 - Names[1] STRING[255] 0 " 'Default - Copy (11).par'" 4 9 256 1 0 0 - Names[2] STRING[255] 0 " 'Default - Copy (12).par'" 4 9 256 1 0 0 - Names[3] STRING[255] 0 " 'Default - Copy (13).par'" 4 9 256 1 0 0 - Names[4] STRING[255] 0 " 'Default - Copy (14).par'" 4 9 256 1 0 0 - Names[5] STRING[255] 0 " 'Default - Copy (15).par'" 4 9 256 1 0 0 - Names[6] STRING[255] 0 " 'Default - Copy (16).par'" 4 9 256 1 0 0 - Names[7] STRING[255] 0 " 'Default - Copy (17).par'" 4 9 256 1 0 0 - Names[8] STRING[255] 0 " 'Default - Copy (18).par'" 4 9 256 1 0 0 - Names[9] STRING[255] 0 " 'Default - Copy (19).par'" 4 9 256 1 0 0 - Names[10] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[11] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[12] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[13] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[14] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[15] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[16] STRING[255] 0 " ''" 4 9 256 1 0 0 - Names[17] STRING[255] 0 " *" 4 9 256 1 0 0 - Names[18] STRING[255] 0 " *" 4 9 256 1 0 0 - Names[19] STRING[255] 0 " *" 4 9 256 1 0 0 - SelectedIndex UINT 0 " *" 3 6 1 10 0 0 - MaxSelection UINT 0 " *" 3 6 1 10 0 0 - PageUp BOOL 0 " *" 3 1 1 2 0 0 - PageDown BOOL 0 " *" 3 1 1 2 0 0 - StepUp BOOL 0 " *" 3 1 1 2 0 0 - StepDown BOOL 0 " *" 3 1 1 2 0 0 - RangeStart REAL 0 " *" 3 8 1 10 0 0 - RangeEnd REAL 0 " *" 3 8 1 10 0 0 - Sizes UDINT[0..19] 0 " *" 3 7 20 0 0 0 - Sizes[0] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[1] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[2] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[3] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[4] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[5] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[6] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[7] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[8] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[9] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[10] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[11] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[12] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[13] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[14] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[15] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[16] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[17] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[18] UDINT 0 " *" 4 7 1 10 0 0 - Sizes[19] UDINT 0 " *" 4 7 1 10 0 0 - LastModified STRING[50][0..19] 0 " *" 3 9 51 0 0 1 - LastModified[0] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[1] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[2] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[3] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[4] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[5] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[6] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[7] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[8] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[9] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[10] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[11] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[12] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[13] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[14] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[15] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[16] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[17] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[18] STRING[50] 0 " *" 4 9 51 1 0 0 - LastModified[19] STRING[50] 0 " *" 4 9 51 1 0 0 - Load BOOL 0 " *" 2 1 1 2 0 0 - Save BOOL 0 " *" 2 1 1 2 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 - SortOrder DINT 0 " *" 2 4 1 10 0 0 e,0,mpRE - - Refresh BOOL 0 " *" 2 1 1 2 0 0 - UpdateNotification BOOL 0 " *" 2 1 1 2 0 0 - Delete BOOL 0 " *" 2 1 1 2 0 0 - Rename BOOL 0 " *" 2 1 1 2 0 0 - NewFileName STRING[255] 0 " ''" 2 9 256 1 0 0 - Header MpRecipeUIHeaderType 0 " *" 2 24 1 0 0 0 - Name STRING[100] 0 " ''" 3 9 101 1 0 0 - Description STRING[255] 0 " ''" 3 9 256 1 0 0 - Version STRING[20] 0 " ''" 3 9 21 1 0 0 - DateTime DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - New MpRecipeUINewType 0 " *" 1 24 1 0 0 0 - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - Create BOOL 0 " *" 2 1 1 2 0 0 - MessageBox MpRecipeUIMessageBoxType 0 " *" 1 24 1 0 0 0 - LayerStatus UINT 0 " *" 2 6 1 10 0 0 - Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpRE - - Confirm BOOL 0 " *" 2 1 1 2 0 0 - Cancel BOOL 0 " *" 2 1 1 2 0 0 - DefaultLayerStatus UINT 0 " *" 1 6 1 10 0 0 - Parameters ParametersType 0 " *" 0 24 1 0 1 0 - AddParametersHere1 BOOL 0 " *" 1 1 1 2 0 0 - AddParametersHere2 STRING[80] 0 " ''" 1 9 81 1 0 0 - AddParametersHere3 REAL 0 " *" 1 8 1 10 0 0 - AddParametersHere4 REAL 0 " *" 1 8 1 10 0 0 - AddParametersHere5 REAL 0 " *" 1 8 1 10 0 0 - ParametersPreview ParametersType 0 " *" 0 24 1 0 1 1 - AddParametersHere1 BOOL 0 " *" 1 1 1 2 0 0 - AddParametersHere2 STRING[80] 0 " ''" 1 9 81 1 0 0 - AddParametersHere3 REAL 0 " *" 1 8 1 10 0 0 - AddParametersHere4 REAL 0 " *" 1 8 1 10 0 0 - AddParametersHere5 REAL 0 " *" 1 8 1 10 0 0 - MpRecipe_0 MpRecipeXml 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " *" 1 7 1 10 0 0 - Enable BOOL 0 " *" 1 1 1 2 0 0 - ErrorReset BOOL 0 " *" 1 1 1 2 0 0 - DeviceName UDINT 0 " *" 1 7 1 10 0 0 - FileName UDINT 0 " *" 1 7 1 10 0 0 - Header UDINT 0 " *" 1 7 1 10 0 0 - Category UDINT 0 " *" 1 7 1 10 0 0 - LoadType DINT 0 " *" 1 4 1 10 0 0 e,0,mpRE - - Load BOOL 0 " *" 1 1 1 2 0 0 - Save BOOL 0 " *" 1 1 1 2 0 0 - UpdateNotification BOOL 0 " *" 1 1 1 2 0 0 - Active BOOL 0 " *" 1 1 1 2 0 0 - Error BOOL 0 " *" 1 1 1 2 0 0 - StatusID DINT 0 " *" 1 4 1 10 0 0 - CommandBusy BOOL 0 " *" 1 1 1 2 0 0 - CommandDone BOOL 0 " *" 1 1 1 2 0 0 - Info MpRecipeXmlInfoType 0 " *" 1 24 1 0 0 0 - FileSize UDINT 0 " *" 2 7 1 10 0 0 - PendingSync UDINT 0 " *" 2 7 1 10 0 0 - Diag MpRecipeDiagType 0 " *" 2 24 1 0 0 0 - StatusID MpRecipeStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpRE - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - LastLoadedRecipe STRING[255] 0 " ''" 2 9 256 1 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM deleted file mode 100644 index 2b38a350..00000000 --- a/mappFramework/Diagnosis/UnitTest/PC_any/AuditMgr.PVM +++ /dev/null @@ -1,232 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=172 ASCIIString=0 - name type force value level type len format place expand specs - MpAuditTrail_0 MpAuditTrail 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " *" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 - Language UDINT 0 " 153893887" 1 7 1 10 0 0 - DeviceName UDINT 0 " 153893905" 1 7 1 10 0 0 - Export BOOL 0 " FALSE" 1 1 1 2 0 0 - ExportArchive BOOL 0 " FALSE" 1 1 1 2 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 - CommandBusy BOOL 0 " FALSE" 1 1 1 2 0 0 - CommandDone BOOL 0 " FALSE" 1 1 1 2 0 0 - CurrentRecord UDINT 0 " 1281" 1 7 1 10 0 0 - ArchiveAvailable BOOL 0 " TRUE" 1 1 1 2 0 0 - Info MpAuditTrailInfoType 0 " *" 1 24 1 0 0 1 - NumberArchives UINT 0 " 32" 2 6 1 10 0 0 - Diag MpAuditDiagType 0 " *" 2 24 1 0 0 1 - StatusID MpAuditStatusIDType 0 " *" 3 24 1 0 0 1 - ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpAU - - Severity DINT 0 " 0" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " 0" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " 166936960" 2 7 1 10 0 0 - State UDINT 0 " 3" 2 7 1 10 0 0 - HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands AuditCommandsType 0 " *" 1 24 1 0 0 1 - ExportArchives BOOL 0 " FALSE" 2 1 1 2 0 0 - RunQuery BOOL 0 " FALSE" 2 1 1 2 0 0 - SaveConfig BOOL 0 " FALSE" 2 1 1 2 0 0 - Parameters AuditParametersType 0 " *" 1 24 1 0 0 1 - ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 1 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - MaxSize UDINT 0 " 0" 3 7 1 10 0 0 - Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - - Hour USINT 0 " 0" 3 5 1 10 0 0 - Minute USINT 0 " 0" 3 5 1 10 0 0 - FileType DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU - - QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 1 - QuerySelection[0] STRING[10] 0 " 'UserXMgr'" 3 9 11 1 0 0 - QuerySelection[1] STRING[10] 0 " 'RecipeMgr'" 3 9 11 1 0 0 - QuerySelection[2] STRING[10] 0 " ''" 3 9 11 1 0 0 - Status AuditStatusType 0 " *" 1 24 1 0 0 1 - AuditSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - AuditFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 0 - TableConfig[0] STRING[255] 0 "'{ "specRows": [{"from":0,"to":19, "visible":false}], "specColumns": [ {"from":1, "to" 3 9 256 1 0 0 - TableConfig[1] STRING[255] 0 " ''" 3 9 256 1 0 0 - Query AuditQueryHMIType 0 " *" 2 24 1 0 0 0 - EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 0 - EvTime[0] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[1] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[2] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[3] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[4] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[5] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[6] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 4 11 1 1 0 0 - EvTime[14] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[15] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[16] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[17] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[18] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - Text[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - DText[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - Op[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - QueryCount USINT 0 " *" 3 5 1 10 0 0 - Name STRING[80] 0 " *" 3 9 81 1 0 0 - Option USINT 0 " *" 3 5 1 10 0 0 - CustomEventSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - CustomEventsFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - ArchiveAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 - NumberOfArchives UINT 0 " 33" 2 6 1 10 0 0 - DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 0 - DeviceDataProvider[0] STRING[100] 0 " '{"value":"UserEvents","text":"User Events Query"}'" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " '{"value":"RecipeEvents","text":"Recipe Events Query"}'" 3 9 101 1 0 0 - AuditTrailConfig MpAuditTrailConfigType 0 " *" 0 24 1 0 1 1 - Events UINT[0..9] 0 " *" 1 6 10 0 0 1 - Events[0] UINT 0 " 33" 2 6 1 10 0 0 - Events[1] UINT 0 " 2" 2 6 1 10 0 0 - Events[2] UINT 0 " 16" 2 6 1 10 0 0 - Events[3] UINT 0 " 113" 2 6 1 10 0 0 - Events[4] UINT 0 " 48" 2 6 1 10 0 0 - Events[5] UINT 0 " 149" 2 6 1 10 0 0 - Events[6] UINT 0 " 0" 2 6 1 10 0 0 - Events[7] UINT 0 " 0" 2 6 1 10 0 0 - Events[8] UINT 0 " 0" 2 6 1 10 0 0 - Events[9] UINT 0 " 0" 2 6 1 10 0 0 - RecordingSize UDINT 0 " 200" 1 7 1 10 0 0 - SramBufferSize UDINT 0 " 4" 1 7 1 10 0 0 - RecordMemory DINT 0 " 1" 1 4 1 10 0 0 e,0,mpAU - - TextSource MpAuditTextSourceType 0 " *" 1 24 1 0 0 1 - Type DINT 0 " 2" 2 4 1 10 0 0 e,0,mpAU - - Name STRING[50] 0 " ''" 2 9 51 1 0 0 - OutputFormat STRING[255] 0 " 'MpAudit/SysF/Event/Root'" 2 9 256 1 0 0 - OutputFormatSource STRING[100] 0 " ''" 2 9 101 1 0 0 - Display MpAuditDisplayTextSourceType 0 " *" 2 24 1 0 0 1 - FormatSource STRING[100] 0 " ''" 3 9 101 1 0 0 - Format STRING[255] 0 " 'MpAudit/Display/SysF/Event/Root'" 3 9 256 1 0 0 - ErrorMessage MpAuditErrorMessageType 0 " *" 2 24 1 0 0 1 - TextNotFound STRING[20] 0 " '{Err:Text}'" 3 9 21 1 0 0 - SpecifierInvalid STRING[20] 0 " '{Err:Specifier}'" 3 9 21 1 0 0 - Archive MpAuditArchiveType 0 " *" 1 24 1 0 0 1 - Enable BOOL 0 " TRUE" 2 1 1 2 0 0 - Mode DINT 0 " 0" 2 4 1 10 0 0 e,0,mpAU - - Time TIME_OF_DAY 0 " TOD#16:00:00" 2 16 1 1 0 0 - MaxSize UDINT 0 " 1" 2 7 1 10 0 0 - Export MpAuditExportType 0 " *" 1 24 1 0 0 1 - FileNamePattern STRING[50] 0 " 'Audit_%Y_%m_%d_%H_%M_%S'" 2 9 51 1 0 0 - ArchiveNamePattern STRING[50] 0 " 'Archive_%Y_%m_%d_%H_%M_%S'" 2 9 51 1 0 0 - PassPhrase STRING[100] 0 " '123ABc'" 2 9 101 1 0 0 - Encrypt BOOL 0 " TRUE" 2 1 1 2 0 0 - RawData BOOL 0 " FALSE" 2 1 1 2 0 0 - FileType DINT 0 " 1" 2 4 1 10 0 0 e,0,mpAU - - PDF MpAuditExportPdfType 0 " *" 2 24 1 0 0 1 - DefaultFont DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - - Format DINT 0 " 4" 3 4 1 10 0 0 e,0,mpAU - - Direction DINT 0 " 1" 3 4 1 10 0 0 e,0,mpAU - - Margins DINT 0 " *" 3 4 1 10 0 0 e,0,mpAU - - OwnerPassword STRING[50] 0 " *" 3 9 51 1 0 0 - UserPassword STRING[50] 0 " *" 3 9 51 1 0 0 - AllowPrint BOOL 0 " *" 3 1 1 2 0 0 - AllowCopy BOOL 0 " *" 3 1 1 2 0 0 - AllowEdit BOOL 0 " *" 3 1 1 2 0 0 - Icon STRING[100] 0 " *" 3 9 101 1 0 0 - Header STRING[100] 0 " *" 3 9 101 1 0 0 - Title MpAuditPdfTitleType 0 " *" 3 24 1 0 0 1 - Enable BOOL 0 " *" 4 1 1 2 0 0 - Text STRING[100] 0 " *" 4 9 101 1 0 0 - Fonts MpAuditLanguageFontType[0..4] 0 " *" 3 24 5 0 0 1 - Fonts[0] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 - Language STRING[20] 0 " *" 5 9 21 1 0 0 - Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU - - Fonts[1] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 - Language STRING[20] 0 " *" 5 9 21 1 0 0 - Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU - - Fonts[2] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 - Language STRING[20] 0 " *" 5 9 21 1 0 0 - Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU - - Fonts[3] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 - Language STRING[20] 0 " *" 5 9 21 1 0 0 - Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU - - Fonts[4] MpAuditLanguageFontType 0 " *" 4 24 1 0 0 1 - Language STRING[20] 0 " *" 5 9 21 1 0 0 - Font DINT 0 " *" 5 4 1 10 0 0 e,0,mpAU - diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM deleted file mode 100644 index c8b907e2..00000000 --- a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.PVM +++ /dev/null @@ -1,151 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=191 Scope=60 Force=60 Index=5 ASCIIString=0 - name type force value level type len format place expand specs - cycleCount UINT 0 " 0" 0 6 1 10 1 0 - HMIAuditInterfaceCtrl HMIAuditInterface_type 0 " *" 0 24 1 0 1 1 - Commands HMIAuditInterfaceCommands_type 0 " *" 1 24 1 0 0 1 - ExportArchives BOOL 0 " FALSE" 2 1 1 2 0 0 - Status HMIAuditInterfaceStatus_type 0 " *" 1 24 1 0 0 1 - AuditTrailCmdDone BOOL 0 " FALSE" 2 1 1 2 0 0 - AuditTrailArchiveAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 - NumberOfArchives UINT 0 " 5" 2 6 1 10 0 0 - Parameters HMIAuditInterfaceParameters_type 0 " *" 1 24 1 0 0 1 - ArchiveSettings HMIAuditArchiveParType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - MaxSize UDINT 0 " 0" 3 7 1 10 0 0 - Mode DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - - Hour USINT 0 " 0" 3 5 1 10 0 0 - Minute USINT 0 " 0" 3 5 1 10 0 0 - FileType DINT 0 " 0" 3 4 1 10 0 0 e,0,mpAU - - TestComparisonNumber USINT 0 " 0" 0 5 1 10 1 0 - VariableMonitorExample REAL 0 " 0.0" 0 8 1 10 1 0 - SampleTemperature REAL 0 " 0.0" 0 8 1 10 1 0 - HmiAudit AuditHmiInterfaceType 0 " *" 0 24 1 0 1 0 - Commands AuditCommandsType 0 " *" 1 24 1 0 0 0 - ExportArchives BOOL 0 " *" 2 1 1 2 0 0 - RunQuery BOOL 0 " *" 2 1 1 2 0 0 - SaveConfig BOOL 0 " *" 2 1 1 2 0 0 - Parameters AuditParametersType 0 " *" 1 24 1 0 0 0 - ArchiveSettings AuditArchiveParType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " *" 3 1 1 2 0 0 - MaxSize UDINT 0 " *" 3 7 1 10 0 0 - Mode DINT 0 " *" 3 4 1 10 0 0 e,0,mpAU - - Hour USINT 0 " *" 3 5 1 10 0 0 - Minute USINT 0 " *" 3 5 1 10 0 0 - FileType DINT 0 " *" 3 4 1 10 0 0 e,0,mpAU - - QuerySelection STRING[10][0..2] 0 " *" 2 9 11 0 0 0 - QuerySelection[0] STRING[10] 0 " *" 3 9 11 1 0 0 - QuerySelection[1] STRING[10] 0 " *" 3 9 11 1 0 0 - QuerySelection[2] STRING[10] 0 " *" 3 9 11 1 0 0 - Status AuditStatusType 0 " *" 1 24 1 0 0 0 - AuditSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - AuditFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - TableConfig STRING[255][0..1] 0 " *" 2 9 256 0 0 0 - TableConfig[0] STRING[255] 0 " ''" 3 9 256 1 0 0 - TableConfig[1] STRING[255] 0 " ''" 3 9 256 1 0 0 - Query AuditQueryHMIType 0 " *" 2 24 1 0 0 0 - EvTime DATE_AND_TIME[0..19] 0 " *" 3 11 20 0 0 0 - EvTime[0] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[1] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[2] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[3] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[4] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[5] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[6] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[7] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[8] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[9] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[10] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[11] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[12] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[13] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[14] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[15] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[16] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[17] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[18] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - EvTime[19] DATE_AND_TIME 0 " *" 4 11 1 1 0 0 - Text WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - Text[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Text[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - DText[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 - DText[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op WSTRING[100][0..19] 0 " *" 3 21 202 0 0 0 - Op[0] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[1] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[2] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[3] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[4] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[5] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[6] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[7] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[8] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[9] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[10] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[11] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[12] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[13] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[14] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[15] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[16] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[17] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[18] WSTRING[100] 0 " *" 4 21 202 1 0 0 - Op[19] WSTRING[100] 0 " *" 4 21 202 1 0 0 - QueryCount USINT 0 " *" 3 5 1 10 0 0 - Name STRING[80] 0 " *" 3 9 81 1 0 0 - Option USINT 0 " *" 3 5 1 10 0 0 - CustomEventSortCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - CustomEventsFilterCfg STRING[1000] 0 " ''" 2 9 1001 1 0 0 - ArchiveAvailable BOOL 0 " FALSE" 2 1 1 2 0 0 - NumberOfArchives UINT 0 " 0" 2 6 1 10 0 0 - DeviceDataProvider STRING[100][0..1] 0 " *" 2 9 101 0 0 0 - DeviceDataProvider[0] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 - TestFailed BOOL 0 " FALSE" 0 1 1 2 1 0 - DTGetTime_0 DTGetTime 0 " *" 0 24 1 0 1 0 - enable BOOL 0 " FALSE" 1 1 1 2 0 0 - status UINT 0 " 0" 1 6 1 10 0 0 - DT1 DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 1 11 1 1 0 0 - UnitTestState DINT 0 " 10" 0 4 1 10 1 0 e,10,TES - diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/AuditTest.tc deleted file mode 100644 index c6713953a476a56d1eab34ff399f0df3f6ff2267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmdO%?#r-fTUi1FgZwiFCI$w^90n+G0Mb1FfrJhadjMrJ1iq!mL^Uu#NT47JU}9i| z^352$8T=T6m>B;5|Kr8L!2ALz&d3nPFo9ts!)b<>48K6?SQr@v8D$w69ZOR(OF~kM zORPYIOMYG|NQ#k(kpYa^5b_?ro?wn=UP)?ET4Hjlb4gK-UT{fbNold3UukYqYLS1M zV^MNOW?5=610yR!C&*;y{M>@XqRis_Jcv>TWUIrAGD}i{;%=EaAgvq-t-*=81v#l9 tsksHIML>&+Qc?6dmX_o*Fe14zxiUE?)j7X3uLKyDa8p43J%8BP6#$#RWU~MO diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index 993be074..3906b02f 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -16,7 +16,7 @@ char substate[10]; \ memset(abortMessage, 0, sizeof(abortMessage)); \ memset(substate, 0, sizeof(substate)); \ - itoa(TestState, substate, 10); \ + itoa(TestState, substate, 10); \ strcpy(abortMessage, "Timeout in State = "); \ strcat(abortMessage, substate); \ TEST_FAIL(abortMessage); \ @@ -38,12 +38,6 @@ _TEARDOWN_SET(void) _SETUP_TEST(void) { - Export = 0; - Auto = 0; - - TestDone = 0; - TestFailed = 0; - WriteNumFiles = 0; ArrangeDelay = 0; ActDelay = 0; AssertDelay = 0; @@ -60,30 +54,20 @@ _SETUP_TEST(void) _TEARDOWN_TEST(void) { - Export = 0; - Auto=0; - - TestDone = 0; - TestFailed = 0; - WriteNumFiles = 0; ArrangeDelay = 0; ActDelay = 0; AssertDelay = 0; SampleTemperature = 1; -// TestComparisonNumber = 0; TEST_DONE; } _CYCLIC_SET(void) { cycleCount++; - LogArray[0] = &TestComparisonNumber; } _TEST ExportArchive(void) { - Export=1; -// TEST_DONE; TIMEOUT_TEST_CASE; DirInfo_0.enable = 1; @@ -104,9 +88,8 @@ _TEST ExportArchive(void) break; case 1: - ArrangeDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ArrangeDelay != 10); - // WriteNumFiles = 1; + ArrangeDelay += 1; // This delay is compensating for the function block refreshing after finishing a command + TEST_BUSY_CONDITION(ArrangeDelay <= 10); TestComparisonNumber = DirInfo_0.filenum; TestState = TEST_ACT; break; @@ -115,39 +98,33 @@ _TEST ExportArchive(void) case TEST_ACT: // Archive audit - // WriteNumFiles = 0; switch (ActSubState) { case 0: HmiAudit.Commands.ExportArchives = 1; + TEST_ABORT_CONDITION(MpAuditTrailError); TEST_BUSY_CONDITION(!MpAuditTrailCmdDone); HmiAudit.Commands.ExportArchives = 0; ActSubState = 1; break; case 1: - ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ActDelay != 10); + ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command + TEST_BUSY_CONDITION(ActDelay <= 10); TestState = TEST_ASSERT; break; } break; case TEST_ASSERT: - // Check save location for archive TEST_ASSERT(TestComparisonNumber < DirInfo_0.filenum); -// TestFailed = (TestComparisonNumber + 1 != DirInfo_0.filenum); TEST_DONE; break; } - - DirInfo(&DirInfo_0); } _TEST AutomaticArchive(void) { - Auto=1; -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -167,19 +144,13 @@ _TEST AutomaticArchive(void) break; case 1: - //TEST_BUSY_CONDITION(HmiAudit.Status.NumberOfArchives == 0); - //ArrangeDelay += 1; - //TEST_BUSY_CONDITION(ArrangeDelay == 2); - WriteNumFiles = 1; TestComparisonNumber = HmiAudit.Status.NumberOfArchives; - //logDebug("AuditTest","CompNum = %si",LogArray); ArrangeSubState = 2; break; case 2: - WriteNumFiles = 0; ArrangeDelay += 1; - TEST_BUSY_CONDITION(ArrangeDelay == 2); + TEST_BUSY_CONDITION(ArrangeDelay <= 2); TestState = TEST_ACT; break; } @@ -190,10 +161,7 @@ _TEST AutomaticArchive(void) switch (ActSubState) { case 0: -// if(SampleTemperature == SAMPLE_TEMP_VALUE) -// SampleTemperature = DEFAULT_TEMP_VALUE; -// else - SampleTemperature = SAMPLE_TEMP_VALUE; + SampleTemperature = SAMPLE_TEMP_VALUE; DTSetTime_0.DT1 = SET_TIME; DTSetTime_0.enable = 1; DTSetTime(&DTSetTime_0); @@ -201,13 +169,13 @@ _TEST AutomaticArchive(void) break; case 1: -// DTGetTime_0.enable = 1; -// DTGetTime(&DTGetTime_0); TON_0.PT = TIMER_LENGTH; TON_0.IN = 1; TON(&TON_0); - TEST_BUSY_CONDITION(!TON_0.Q); - ActSubState = 2; + if(TON_0.Q) + { + ActSubState = 2; + } break; case 2: @@ -220,9 +188,7 @@ _TEST AutomaticArchive(void) case TEST_ASSERT: // Check save location for archive - TEST_ASSERT(TestComparisonNumber + 1 == HmiAudit.Status.NumberOfArchives); - TestFailed = !(TestComparisonNumber + 1 == HmiAudit.Status.NumberOfArchives); - TestDone = 1; + TEST_ASSERT(TestComparisonNumber + 1 <= HmiAudit.Status.NumberOfArchives); TEST_DONE; break; } diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index 074f621b..2f89a417 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -18,24 +18,18 @@ VAR SampleTemperature : REAL; DirInfo_0 : DirInfo; TestComparisonNumber : USINT; - TestDone : BOOL; - WriteNumFiles : BOOL; - TestFailed : BOOL; ActDelay : USINT; ArrangeDelay : USINT; AssertDelay : USINT; DTSetTime_0 : DTSetTime; - DTGetTime_0 : DTGetTime; HOUR : USINT := 16; MINUTE : USINT := 0; - SET_TIME : DATE_AND_TIME := DT#2023-01-01-15:59:55; + SET_TIME : DATE_AND_TIME := DT#2023-01-01-15:59:59; MAX_FILE_SIZE : UDINT := 100; (*Maximum file size for automatic archiving (Kb)*) SAMPLE_TEMP_VALUE : REAL := 5; DEFAULT_TEMP_VALUE : REAL := 6; TON_0 : TON; - TIMER_LENGTH : TIME := T#7s; - LogArray : ARRAY[0..7] OF UDINT; - Auto : BOOL; - Export : BOOL; + TIMER_LENGTH : TIME := T#2s; MpAuditTrailCmdDone : BOOL; + MpAuditTrailError : BOOL; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm index fb32ee7b..fadaf13f 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/AuditMgr.vvm @@ -3,6 +3,7 @@ VAR_CONFIG ::AuditMgr:MpAuditTrail_0.CommandDone AT %Q.::AuditTest:MpAuditTrailCmdDone; (*Insert your comment here...*) ::AuditMgr:HmiAudit.Status.ArchiveAvailable AT %Q.::AuditTest:HmiAudit.Status.ArchiveAvailable; (*Insert your comment here...*) ::AuditMgr:HmiAudit.Status.NumberOfArchives AT %Q.::AuditTest:HmiAudit.Status.NumberOfArchives; (*Insert your comment here...*) + ::AuditMgr:MpAuditTrail_0.Error AT %Q.::AuditTest:MpAuditTrailError; (*Insert your comment here...*) END_VAR (*Outputs from the unit test*) VAR_CONFIG From f4509a350867c4980ac1d7a657e4fdf598f5eb79 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 20 Mar 2023 15:59:25 -0400 Subject: [PATCH 026/159] Initial commit - setup Logical and Configuration --- .../Infrastructure/PackML/PackMLAlarms.tmx | 42 ++ .../PackML/PackMLMgr/HMIActions.st | 4 + .../Infrastructure/PackML/PackMLMgr/IEC.prg | 10 + .../PackML/PackMLMgr/PackMLMgr.st | 37 ++ .../PackML/PackMLMgr/PackMLMgr.typ | 17 + .../PackML/PackMLMgr/PackMLMgr.var | 10 + .../Logical/Infrastructure/PackML/Package.pkg | 8 + .../Logical/Infrastructure/Package.pkg | 1 + .../Logical/Libraries/MpPackML/Binary.lby | 14 + .../Logical/Libraries/MpPackML/MpPackML.fun | 170 +++++++ .../Logical/Libraries/MpPackML/MpPackML.typ | 191 ++++++++ .../Libraries/MpPackML/MpPackMLAlarm.typ | 9 + .../Libraries/MpPackML/MpPackMLError.typ | 37 ++ .../Libraries/MpPackML/SG4/ARM/MpPackML.br | Bin 0 -> 224160 bytes .../Libraries/MpPackML/SG4/ARM/libMpPackML.a | Bin 0 -> 3132 bytes .../Libraries/MpPackML/SG4/IA32/MpPackML.br | Bin 0 -> 227096 bytes .../Libraries/MpPackML/SG4/IA32/libMpPackML.a | Bin 0 -> 5624 bytes .../Logical/Libraries/MpPackML/SG4/MpPackML.h | 423 ++++++++++++++++++ mappFramework/Logical/Libraries/Package.pkg | 1 + mappFramework/Physical/Simulation/Hardware.hw | 3 + .../PC/Connectivity/OpcUA/PackMLMgr.uad | 3 + .../PC/Connectivity/OpcUA/Package.pkg | 3 +- mappFramework/Physical/Simulation/PC/Cpu.sw | 7 + .../Simulation/PC/TextSystem/TC.textconfig | 1 + .../PackML/PackMLCfg.mppackmlcore | 12 + .../PC/mappServices/PackML/Package.pkg | 7 + .../Simulation/PC/mappServices/Package.pkg | 1 + 27 files changed, 1010 insertions(+), 1 deletion(-) create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var create mode 100644 mappFramework/Logical/Infrastructure/PackML/Package.pkg create mode 100644 mappFramework/Logical/Libraries/MpPackML/Binary.lby create mode 100644 mappFramework/Logical/Libraries/MpPackML/MpPackML.fun create mode 100644 mappFramework/Logical/Libraries/MpPackML/MpPackML.typ create mode 100644 mappFramework/Logical/Libraries/MpPackML/MpPackMLAlarm.typ create mode 100644 mappFramework/Logical/Libraries/MpPackML/MpPackMLError.typ create mode 100644 mappFramework/Logical/Libraries/MpPackML/SG4/ARM/MpPackML.br create mode 100644 mappFramework/Logical/Libraries/MpPackML/SG4/ARM/libMpPackML.a create mode 100644 mappFramework/Logical/Libraries/MpPackML/SG4/IA32/MpPackML.br create mode 100644 mappFramework/Logical/Libraries/MpPackML/SG4/IA32/libMpPackML.a create mode 100644 mappFramework/Logical/Libraries/MpPackML/SG4/MpPackML.h create mode 100644 mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad create mode 100644 mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore create mode 100644 mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx b/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx new file mode 100644 index 00000000..6cecaf4d --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx @@ -0,0 +1,42 @@ + + +
+ Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/PackML/Alarms +
+ + + + Meine Einheit + + + My unit + + + Mon unité + + + + + Einheit + + + Unit + + + Unité + + + + + Meine Beschreibung + + + My description + + + Ma description + + + +
\ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st new file mode 100644 index 00000000..a4c8a1bb --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -0,0 +1,4 @@ + +ACTION Action: + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg new file mode 100644 index 00000000..cb1debe6 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg @@ -0,0 +1,10 @@ + + + + + PackMLMgr.st + PackMLMgr.typ + PackMLMgr.var + HMIActions.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st new file mode 100644 index 00000000..bbb0bb75 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -0,0 +1,37 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: June 1, 2023 +// Description: Task for handling PackML control. +//*********************************************************************** + +PROGRAM _INIT + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappComponentFiles'), pName := ADR('/')); + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + DirCreate_0(enable := FALSE); + END_IF + + // Initialize mapp function blocks + + +END_PROGRAM + +PROGRAM _CYCLIC + // Call all cyclic actions + + // Assign MpLinks & UIConnects + + // Call function blocks + +END_PROGRAM + +PROGRAM _EXIT + // Disable the function blocks to unlink the MpLinks + + // Call function blocks + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ new file mode 100644 index 00000000..ae9a53fe --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ @@ -0,0 +1,17 @@ +(*Structure types*) + +TYPE + PackMLHmiInterfaceType : STRUCT + Commands : PackMLCommandsType; + Parameters : PackMLParametersType; + Status : PackMLStatusType; + END_STRUCT; + PackMLCommandsType : STRUCT + END_STRUCT; + PackMLParametersType : STRUCT + END_STRUCT; + PackMLStatusType : STRUCT + END_STRUCT; +END_TYPE + +(*Enumerations*) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var new file mode 100644 index 00000000..c2723ec8 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -0,0 +1,10 @@ +(*Function Blocks*) +VAR + DirCreate_0 : DirCreate; (*DirCreate instance*) +END_VAR +(*Constants*) +(*Structure Types*) +VAR + HmiReport : PackMLHmiInterfaceType; (*HMI interface structure*) +END_VAR +(*Variables*) diff --git a/mappFramework/Logical/Infrastructure/PackML/Package.pkg b/mappFramework/Logical/Infrastructure/PackML/Package.pkg new file mode 100644 index 00000000..b1a2e387 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/Package.pkg @@ -0,0 +1,8 @@ + + + + + PackMLMgr + PackMLAlarms.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/Package.pkg b/mappFramework/Logical/Infrastructure/Package.pkg index 085bac23..0aee3487 100644 --- a/mappFramework/Logical/Infrastructure/Package.pkg +++ b/mappFramework/Logical/Infrastructure/Package.pkg @@ -13,5 +13,6 @@ UserX Audit Report + PackML \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/MpPackML/Binary.lby b/mappFramework/Logical/Libraries/MpPackML/Binary.lby new file mode 100644 index 00000000..9aba9a83 --- /dev/null +++ b/mappFramework/Logical/Libraries/MpPackML/Binary.lby @@ -0,0 +1,14 @@ + + + + + MpPackML.typ + MpPackMLError.typ + MpPackMLAlarm.typ + MpPackML.fun + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Libraries/MpPackML/MpPackML.fun b/mappFramework/Logical/Libraries/MpPackML/MpPackML.fun new file mode 100644 index 00000000..f933f264 --- /dev/null +++ b/mappFramework/Logical/Libraries/MpPackML/MpPackML.fun @@ -0,0 +1,170 @@ + +FUNCTION_BLOCK MpPackMLCore (*Centralized PackML state machine handling*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : REFERENCE TO MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + Enable : BOOL; (*Enables/Disables the function block*) (* *) (*#PAR#;*) + ErrorReset : BOOL; (*Resets function block errors*) (* *) (*#PAR#;*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Indicates whether the function block is active*) (* *) (*#PAR#;*) + Error : BOOL; (*Indicates that the function block is in an error state or a command was not executed correctly*) (* *) (*#PAR#;*) + StatusID : DINT; (*Status information about the function block*) (* *) (*#PAR#; *) + ModeCurrent : DINT; (*Current mode*) (* *) (*#CMD#;*) + StateCurrent : MpPackMLStateEnum; (*Current state, depends on the active mode*) (* *) (*#CMD#;*) + Info : MpPackMLCoreInfoType; (*Additional information about the component*) (* *) (*#CMD#; *) + END_VAR + VAR + Internal : {REDUND_UNREPLICABLE} MpComInternalDataType; (*Internal data*) (* *) (*#OMIT#;*) + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK MpPackMLMode (*Controls state transitions*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : REFERENCE TO MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + Enable : BOOL; (*Enables/Disables the function block*) (* *) (*#PAR#;*) + ErrorReset : BOOL; (*Resets function block errors*) (* *) (*#PAR#;*) + ModeID : DINT; (*Unique identification number for each mode*) (* *) (*#PAR#;*) + Activate : BOOL; (*Enables this mode, if allowed*) (* *) (*#CMD#;*) + Start : BOOL; (*PackML START command*) (* *) (*#CMD#;*) + Stop : BOOL; (*PackML STOP command*) (* *) (*#CMD#;*) + Reset : BOOL; (*PackML RESET command*) (* *) (*#CMD#;*) + Hold : BOOL; (*PackML HOLD command*) (* *) (*#CMD#;*) + Unhold : BOOL; (*PackML UNHOLD command*) (* *) (*#CMD#;*) + Suspend : BOOL; (*PackML SUSPEND command*) (* *) (*#CMD#;*) + Unsuspend : BOOL; (*PackML UNSUSPEND command*) (* *) (*#CMD#;*) + Abort : BOOL; (*PackML ABORT command*) (* *) (*#CMD#;*) + Clear : BOOL; (*PackML CLEAR command*) (* *) (*#CMD#;*) + StateComplete : BOOL; (*PackML STATE COMPLETE command*) (* *) (*#CMD#;*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Indicates whether the function block is active*) (* *) (*#PAR#;*) + Error : BOOL; (*Indicates that the function block is in an error state or a command was not executed correctly*) (* *) (*#PAR#;*) + StatusID : DINT; (*Status information about the function block*) (* *) (*#PAR#; *) + ChangeModeAllowed : BOOL; (*Indicates whether changing the mode is allowed*) (* *) (*#CMD#;*) + ModeActive : BOOL; (*Indicates whether this mode is active*) (* *) (*#CMD#;*) + StateCurrent : MpPackMLStateEnum; (*Current state*) (* *) (*#CMD#;*) + Info : MpPackMLModeInfoType; (*Additional information about the component*) (* *) (*#CMD#; *) + END_VAR + VAR + Internal : {REDUND_UNREPLICABLE} MpComInternalDataType; (*Internal data*) (* *) (*#OMIT#;*) + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK MpPackMLBasicUI (*mapp component for connecting a VC4 visualization to the MpPackML and display a debug page with PackML states machine in a graphical view*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : REFERENCE TO MpComIdentType; (*Incoming communication handle (mapp standard interface)*) (* *) (*#PAR#;*) + Enable : BOOL; (*Enables/Disables the function block (mapp standard interface)*) (* *) (*#PAR#;*) + ErrorReset : BOOL; (*Resets all function block errors (mapp standard interface)*) (* *) (*#PAR#;*) + UIConnect : REFERENCE TO MpPackMLBasicUIConnectType; (*UI connection data points*) (* *) (*#CMD#;*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active (mapp standard interface)*) (* *) (*#PAR#;*) + Error : BOOL; (*Indicates an error (mapp standard interface)*) (* *) (*#PAR#;*) + StatusID : DINT; (*Error/Status information (mapp standard interface)*) (* *) (*#PAR#;*) + Info : MpPackMLUIInfoType; (*Structure with information*) (* *) (*#CMD#;*) + END_VAR + VAR + Internal : {REDUND_UNREPLICABLE} MpComInternalDataType; (*Internal data*) (* *) (*#OMIT#;*) + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK MpPackMLStatisticsUI (*mapp component for connecting a VC4 visualization to the MpPackML and display a debug page with PackML states machine in a graphical view*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : REFERENCE TO MpComIdentType; (*Incoming communication handle (mapp standard interface)*) (* *) (*#PAR#;*) + Enable : BOOL; (*Enables/Disables the function block (mapp standard interface)*) (* *) (*#PAR#;*) + ErrorReset : BOOL; (*Resets all function block errors (mapp standard interface)*) (* *) (*#PAR#;*) + UIConnect : REFERENCE TO MpPackMLStatisticsUIConnectType; (*UI connection data points*) (* *) (*#CMD#;*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active (mapp standard interface)*) (* *) (*#PAR#;*) + Error : BOOL; (*Indicates an error (mapp standard interface)*) (* *) (*#PAR#;*) + StatusID : DINT; (*Error/Status information (mapp standard interface)*) (* *) (*#PAR#;*) + Info : MpPackMLUIInfoType; (*Structure with information*) (* *) (*#CMD#;*) + END_VAR + VAR + Internal : {REDUND_UNREPLICABLE} MpComInternalDataType; (*Internal data*) (* *) (*#OMIT#;*) + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK MpPackMLModule (*Synchronized PackML state machine handling*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : REFERENCE TO MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + Enable : BOOL; (*Enables/Disables the function block*) (* *) (*#PAR#;*) + ErrorReset : BOOL; (*Resets function block errors*) (* *) (*#PAR#;*) + Parameters : REFERENCE TO MpPackMLModuleParType; (*Parameters*) (* *) (*#PAR#;*) + Update : BOOL; (*Updates the parameters*) (* *) (*#PAR#;*) + Blocked : BOOL; (*Indicates that the machine is blocked and signals the top module to send out a Suspend command. When the signal is set to false the top module will send out a Unsuspend command.*) (* *) (*#CYC#OPT#;*) + Starved : BOOL; (*Indicates that the machine is starved and signals the top module to send out a Suspend command. When the signal is set to false the top module will send out a Unsuspend command.*) (* *) (*#CYC#OPT#;*) + Command : MpPackMLModuleCommandType; (*Control commands from ISA-TR88.00.02 commands.*) (* *) (*#CMD#;*) + SubState : DINT; (*The sub state of the module. Can be used for programming the sequence inside a PackML state. Will automatically be reset to 0 by a PackML state change.*) (* *) (*#CYC#;*) + StateInfo : STRING[255]; (*Status of what the substate is doing or waiting for. Will also be used for logging.*) (* *) (*#CYC#;*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Indicates whether the function block is active*) (* *) (*#PAR#;*) + Error : BOOL; (*Indicates that the function block is in an error state or a command was not executed correctly*) (* *) (*#PAR#;*) + StatusID : DINT; (*Status information about the function block*) (* *) (*#PAR#; *) + UpdateDone : BOOL; (*Update of parameters done*) (* *) (*#PAR#; *) + StateCurrent : MpPackMLStateEnum; (*Current state*) (* *) (*#CMD#;*) + SubStateCurrent : DINT; (*Current sub state*) (* *) (*#CMD#;*) + ModeID : DINT; (*Unique identification number for each mode*) (* *) (*#CMD#;*) + Info : MpPackMLModuleInfoType; (*Additional information about the component*) (* *) (*#CMD#; *) + END_VAR + VAR + Internal : {REDUND_UNREPLICABLE} MpComInternalDataType; (*Internal data*) (* *) (*#OMIT#;*) + END_VAR +END_FUNCTION_BLOCK + +FUNCTION MpPackMLModeChangeIsAllowed : DINT (*Indicates whether it is possible to go to the desired Mode from the current State and Mode *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp. Must be of type mppackmlcore configuration*) (* *) (*#PAR#;*) + ModeID : DINT; (*Desired mode to change to. The mode must be defined in the mppackmlcore configuration*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLChangeMode : DINT (*Function changing the mode of a MpPackMLModule*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp. Must be of type mppackmlcore configuration*) (* *) (*#PAR#;*) + ModeID : DINT; (*Desired mode to change to. The mode must be defined in the mppackmlcore configuration*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLModeCurrent : DINT (*Returns the current mode as an ID*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLStateCurrent : MpPackMLStateEnum (*Returns the current state*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLStateIsActive : BOOL (*Indicates whether the state being checked is active*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + State : MpPackMLStateEnum; (*State to be checked*) (* *) (*#PAR#;*) + Mode : DINT; (*Mode in which the command should be executed (0 = the command can be executed in all modes)*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLModeIsActive : BOOL (*Indicates whether the mode being checked is active*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + Mode : DINT; (*Mode being checked*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLStateComplete : BOOL (*Function executing STATE COMPLETE command. The return value is TRUE if the command was accepted*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + Mode : DINT; (*Mode in which the command should be executed (0 = the command can be executed in all modes)*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION + +FUNCTION MpPackMLAbort : BOOL (*Function executing ABORT command. The return value is TRUE if the command was accepted*) (* $GROUP=mapp Services,$CAT=OMAC PackML,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpPackML.png *) + VAR_INPUT + MpLink : MpComIdentType; (*Connection to mapp*) (* *) (*#PAR#;*) + Mode : DINT; (*Mode in which the command should be executed (0 = the command can be executed in all modes)*) (* *) (*#PAR#;*) + END_VAR +END_FUNCTION diff --git a/mappFramework/Logical/Libraries/MpPackML/MpPackML.typ b/mappFramework/Logical/Libraries/MpPackML/MpPackML.typ new file mode 100644 index 00000000..84889c6f --- /dev/null +++ b/mappFramework/Logical/Libraries/MpPackML/MpPackML.typ @@ -0,0 +1,191 @@ + +TYPE + MpPackMLStatusIDType : STRUCT + ID : MpPackMLErrorEnum; (*Error code for mapp component*) + Severity : MpComSeveritiesEnum; (*Describes the type of information supplied by the status ID (success, information, warning, error)*) + Code : UINT; (*Code for the status ID. This error number can be used to search for additional information in the help system*) + END_STRUCT; + MpPackMLDiagType : STRUCT + StatusID : MpPackMLStatusIDType; (*StatusID diagnostic structure*) + END_STRUCT; + MpPackMLCoreInfoType : STRUCT + ModeCurrent : STRING[50]; (*Current mode*) + StateCurrent : STRING[20]; (*Current state*) + Diag : MpPackMLDiagType; (*Diagnostic structure for the status ID*) + PackTagsStatus : MpPackMLPackTagsStatusEnum; (*PackTags initialization status*) + END_STRUCT; + MpPackMLModeInfoType : STRUCT + ModeCurrent : STRING[50]; (*Current mode*) + StateCurrent : STRING[20]; (*Current state*) + ActivationAborted : BOOL; (*Displayed if this mode could not be enabled after an "Activate" command*) + Diag : MpPackMLDiagType; (*Diagnostic structure for the status ID*) + END_STRUCT; + MpPackMLUIInfoType : STRUCT + ModeCurrent : STRING[50]; (*Current mode*) + StateCurrent : STRING[20]; (*Current state*) + Diag : MpPackMLDiagType; (*Diagnostic structure for the status ID*) + END_STRUCT; + MpPackMLBasicUIConnectType : STRUCT + StateControl : MpPackMLBasicUIStateControlType; (*States control*) + ModeControl : MpPackMLBasicUIModeControlType; (*Mode switch control*) + ModeCurrent : DINT; (*Current mode*) + StateCurrent : MpPackMLStateEnum; (*Current state. This output reports the state indipendently of the mode*) + END_STRUCT; + MpPackMLBasicUIStateControlType : STRUCT (*Commands available from hmi*) + Start : BOOL; (*PackML command START*) + Stop : BOOL; (*PackML command STOP*) + Reset : BOOL; (*PackML command RESET*) + Hold : BOOL; (*PackML command HOLD*) + Unhold : BOOL; (*PackML command UNHOLD*) + Suspend : BOOL; (*PackML command SUSPEND*) + Unsuspend : BOOL; (*PackML command UNSUSPEND*) + Abort : BOOL; (*PackML command ABORT*) + Clear : BOOL; (*PackML command CLEAR*) + StateComplete : BOOL; (*PackML command STATE COMPLETE*) + ColorIndex : MpPackMLColorIndexStatesType; (*Color index for HMI visualization of state (ready to use as color map or bitmap group). The blinking of active state is automatically handled*) + END_STRUCT; + MpPackMLBasicUIModeControlType : STRUCT + SelectedIndex : UINT; (*Mode selected: the command Change will call an activation command fir this mode*) + MaxSelection : UDINT; (*Number of available modes in the system*) + LockActivation : BOOL; (*The selected mode (ModeSelected) is not activable*) + Activate : BOOL; (*Command to activate the selected mode (SelectedIndex)*) + END_STRUCT; + MpPackMLColorIndexStatesType : STRUCT + Clearing : USINT; (*Color Index for Clearing state*) + Stopped : USINT; (*Color Index for Stopped state*) + Starting : USINT; (*Color Index for Starting state*) + Idle : USINT; (*Color Index for Idle state*) + Suspended : USINT; (*Color Index for Suspended state*) + Execute : USINT; (*Color Index for Execute state*) + Stopping : USINT; (*Color Index for Stopping state*) + Aborting : USINT; (*Color Index for Aborting state*) + Aborted : USINT; (*Color Index for Aborted state*) + Holding : USINT; (*Color Index for Holding state*) + Held : USINT; (*Color Index for Held state*) + Unholding : USINT; (*Color Index for Unholding state*) + Suspending : USINT; (*Color Index for Suspending state*) + Unsuspending : USINT; (*Color Index for Unsuspending state*) + Resetting : USINT; (*Color Index for Resetting state*) + Completing : USINT; (*Color Index for Completing state*) + Complete : USINT; (*Color Index for Complete state*) + END_STRUCT; + MpPackMLStatisticsUIConnectType : STRUCT + States : MpPackMLStatisticsUIStatesType; (*States statistics*) + Mode : MpPackMLStatisticsUIModeType; (*Mode statistics*) + ModeCurrent : DINT; (*Current mode*) + StateCurrent : MpPackMLStateEnum; (*Current state. This output reports the state indipendently of the mode*) + END_STRUCT; + MpPackMLStatisticsUIModeType : STRUCT + ModeID : DINT; (*Mode reference for statistics information [0: mode current]*) + CumulativeTime : MpPackMLStatisticsUITimeType; (*Cumulative timer relative to the ModeID selected [sec]*) + CumulativePercent : REAL; (*Cumulative timer relative to the ModeID selected [%]*) + END_STRUCT; + MpPackMLStatisticsUIStatesType : STRUCT + Clearing : MpPackMLStatisticsUIStateType; (*Statistic information for Clearing state*) + Stopped : MpPackMLStatisticsUIStateType; (*Statistic information for Stopped state*) + Starting : MpPackMLStatisticsUIStateType; (*Statistic information for Starting state*) + Idle : MpPackMLStatisticsUIStateType; (*Statistic information for Idle state*) + Suspended : MpPackMLStatisticsUIStateType; (*Statistic information for Suspended state*) + Execute : MpPackMLStatisticsUIStateType; (*Statistic information for Execute state*) + Stopping : MpPackMLStatisticsUIStateType; (*Statistic information for Stopping state*) + Aborting : MpPackMLStatisticsUIStateType; (*Statistic information for Aborting state*) + Aborted : MpPackMLStatisticsUIStateType; (*Statistic information for Aborted state*) + Holding : MpPackMLStatisticsUIStateType; (*Statistic information for Holding state*) + Held : MpPackMLStatisticsUIStateType; (*Statistic information for Held state*) + Unholding : MpPackMLStatisticsUIStateType; (*Statistic information for Unholding state*) + Suspending : MpPackMLStatisticsUIStateType; (*Statistic information for Suspending state*) + Unsuspending : MpPackMLStatisticsUIStateType; (*Statistic information for Unsuspending state*) + Resetting : MpPackMLStatisticsUIStateType; (*Statistic information for Resetting state*) + Completing : MpPackMLStatisticsUIStateType; (*Statistic information for Completing state*) + Complete : MpPackMLStatisticsUIStateType; (*Statistic information for Complete state*) + ResetTimers : BOOL; (*Command to reset all timers (current and cumulative) about modes and states*) + END_STRUCT; + MpPackMLStatisticsUIStateType : STRUCT + CumulativeTime : MpPackMLStatisticsUITimeType; (*Cumulative timers relative to the state that belong to the ModeID selected [sec]*) + CumulativePercent : REAL; (*Cumulative timers relative to the state that belong to the ModeID selected [%]*) + CurrentTime : MpPackMLStatisticsUITimeType; (*Current timers relative to the state that belong to the ModeID selected [sec]*) + END_STRUCT; + MpPackMLStatisticsUITimeType : STRUCT + Hours : UDINT; (*Number of hours*) + Minutes : USINT; (*Number of minutes within an hour*) + Seconds : USINT; (*Numer of seconds within a minute*) + END_STRUCT; + MpPackMLStateEnum : + ( + mpPACKML_STATE_UNDEFINED := 0, (*The system is inactive, no state active*) + mpPACKML_STATE_CLEARING := 1, (*PackML CLEARING state*) + mpPACKML_STATE_STOPPED := 2, (*PackML STOPPED state*) + mpPACKML_STATE_STARTING := 3, (*PackML STARTING state*) + mpPACKML_STATE_IDLE := 4, (*PackML IDLE state*) + mpPACKML_STATE_SUSPENDED := 5, (*PackML SUSPENDED state*) + mpPACKML_STATE_EXECUTE := 6, (*PackML EXECUTE state*) + mpPACKML_STATE_STOPPING := 7, (*PackML STOPPING state*) + mpPACKML_STATE_ABORTING := 8, (*PackML ABORTING state*) + mpPACKML_STATE_ABORTED := 9, (*PackML ABORTED state*) + mpPACKML_STATE_HOLDING := 10, (*PackML HOLDING state*) + mpPACKML_STATE_HELD := 11, (*PackML HELD state*) + mpPACKML_STATE_UNHOLDING := 12, (*PackML UNHOLDING state*) + mpPACKML_STATE_SUSPENDING := 13, (*PackML SUSPENDING state*) + mpPACKML_STATE_UNSUSPENDING := 14, (*PackML UNSUSPENDING state*) + mpPACKML_STATE_RESETTING := 15, (*PackML RESETTING state*) + mpPACKML_STATE_COMPLETING := 16, (*PackML COMPLETING state*) + mpPACKML_STATE_COMPLETE := 17, (*PackML COMPLETE state*) + mpPACKML_STATE_DEACTIVATING := 30, (*Deactivating state. Not a standard PackML state*) + mpPACKML_STATE_DEACTIVATED := 31, (*Deactivated state. Not a standard PackML state*) + mpPACKML_STATE_ACTIVATING := 32 (*Activating state. Not a standard PackML state*) + ); + MpPackMLPackTagsStatusEnum : + ( + mpPACKML_PACKTAGS_DISABLED := 0, (*PackTags handling disabled*) + mpPACKML_PACKTAGS_INIT := 1, (*PackTags initialization in progress*) + mpPACKML_PACKTAGS_OK := 2, (*PackTags handling ok*) + mpPACKML_PACKTAGS_ERROR_TAG := 6, (*PackTags initialization finshed with error: mandatory tag not found*) + mpPACKML_PACKTAGS_ERROR_TYPE := 10, (*PackTags initialization finshed with error: tag has wrong datatype*) + mpPACKML_PACKTAGS_ERROR_STRUCT := 14 (*PackTags initialization finshed with error: structure configured not found*) + ); + MpPackMLModuleCommandType : STRUCT + Abort : BOOL; (*Go to state Aborting - Can be set in all states except Aborting and Aborted.*) + Clear : BOOL; (*Go to state Clearing - Can only be set in state Aborted.*) + Stop : BOOL; (*Go to state Stopping - Can be set in all states except Aborting, Aborted, Clearing, Stopping and Stopped.*) + Reset : BOOL; (*Go to state Resetting - Can only be set in state Stopped.*) + Start : BOOL; (*Go to state Starting - Can only be set in state Idle.*) + Hold : BOOL; (*Go to state Holding. Can only be set in state Execute.*) + Unhold : BOOL; (*Go to state Unholding. Can only be set in state Held.*) + Suspend : BOOL; (*Go to state Suspending. Can only be set in state Execute.*) + Unsuspend : BOOL; (*Go to state Unsuspending. Can only be set in state Suspended.*) + StateComplete : BOOL; (*Go to next waiting state. Can be set in all acting states and state Execute.*) + END_STRUCT; + MpPackMLModuleParType : STRUCT (*Parameter structure*) + Overwrite : MpPackMLModuleOverwriteType; (*Inputs that are overwritten by parent module.*) + Escalate : MpPackMLModuleEscalateType; (*Escalate command to parent module.*) + END_STRUCT; + MpPackMLModuleInfoType : STRUCT + ModeCurrent : STRING[50]; (*Current mode*) + StateCurrent : STRING[20]; (*Current state*) + ChildCount : UDINT; (*How many children are registered to this module. Even when desynchronised the child count will still be valid.*) + Parent : MpPackMLParentType; (*Information about the parent module.*) + Level : UDINT; (*Level in the hierarchy. Parent is level 0.*) + ReadyForCommand : BOOL; (*Indicates that command state complete has been set to true and that the module is ready to receive a command. +*) + Diag : MpPackMLDiagType; (*Diagnostic structure for the status ID*) + END_STRUCT; + MpPackMLParentType : STRUCT (*Information about the parent module.*) + Name : STRING[255] := ''; (*Name of the module from the module configuration.*) + StateCurrent : MpPackMLStateEnum := mpPACKML_STATE_UNDEFINED; (*Current parent state.*) + SubStateCurrent : DINT := 0; (*Current parent sub state.*) + END_STRUCT; + MpPackMLModuleOverwriteType : STRUCT (*Inputs that are overwritten by parent module.*) + Abort : BOOL := TRUE; (*Overwite Abort command from parent module.*) + Stop : BOOL := TRUE; (*Overwite Stop command from parent module.*) + AllOtherCommands : BOOL := TRUE; (*Overwite all other commands from parent module.*) + END_STRUCT; + MpPackMLModuleEscalateType : STRUCT (*Escalate command to parent module.*) + Abort : BOOL := TRUE; (*Escalate an Abort command to parent module.*) + END_STRUCT; + MpPackMLModulePVType : STRUCT (*This structure provides information about a certain module.*) + Name : STRING[255] := ''; (*Name of the module from the module configuration.*) + StateCurrent : MpPackMLStateEnum := mpPACKML_STATE_UNDEFINED; (*Module state.*) + SubStateCurrent : DINT := 0; (*Module sub state*) + StateInfo : STRING[255] := ''; (*Module state information*) + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Libraries/MpPackML/MpPackMLAlarm.typ b/mappFramework/Logical/Libraries/MpPackML/MpPackMLAlarm.typ new file mode 100644 index 00000000..4ae8061d --- /dev/null +++ b/mappFramework/Logical/Libraries/MpPackML/MpPackMLAlarm.typ @@ -0,0 +1,9 @@ + +TYPE + MpPackMLAlarmEnum : + ( (* Alarms of MpPackML Library *) + mpPACKML_ALM_STATE_TRANSITION := 0, (* State transition not allowed *) + mpPACKML_ALM_MODE_TRANSITION := 1, (* Mode Transition not allowed *) + mpPACKML_ALM_WRONG_CONFIG := 2 (* Invalid Configuration *) + ); +END_TYPE diff --git a/mappFramework/Logical/Libraries/MpPackML/MpPackMLError.typ b/mappFramework/Logical/Libraries/MpPackML/MpPackMLError.typ new file mode 100644 index 00000000..ec5ef7b8 --- /dev/null +++ b/mappFramework/Logical/Libraries/MpPackML/MpPackMLError.typ @@ -0,0 +1,37 @@ + +TYPE + MpPackMLErrorEnum : + ( (* Error numbers of library MpPackML *) + mpPACKML_NO_ERROR := 0, (* No error *) + mpPACKML_ERR_ACTIVATION := -1064239103, (* Could not create component [Error: 1, 0xc0910001] *) + mpPACKML_ERR_MPLINK_NULL := -1064239102, (* MpLink is NULL pointer [Error: 2, 0xc0910002] *) + mpPACKML_ERR_MPLINK_INVALID := -1064239101, (* MpLink connection not allowed [Error: 3, 0xc0910003] *) + mpPACKML_ERR_MPLINK_CHANGED := -1064239100, (* MpLink modified [Error: 4, 0xc0910004] *) + mpPACKML_ERR_MPLINK_CORRUPT := -1064239099, (* Invalid MpLink contents [Error: 5, 0xc0910005] *) + mpPACKML_ERR_MPLINK_IN_USE := -1064239098, (* MpLink already in use [Error: 6, 0xc0910006] *) + mpPACKML_ERR_CONFIG_LOAD := -1064239094, (* Error loading configuration {2:ConfigName} (ErrorCause: {1:ErrorNumber}) [Error: 10, 0xc091000a] *) + mpPACKML_ERR_CONFIG_SAVE := -1064239092, (* Error saving configuration {2:ConfigName} (ErrorCause: {1:ErrorNumber}) [Error: 12, 0xc091000c] *) + mpPACKML_ERR_CONFIG_INVALID := -1064239091, (* Invalid Configuration [Error: 13, 0xc091000d] *) + mpPACKML_INF_CORE_NOT_READY := 1083474944, (* MpPackMLCore not ready [Informational: 33792, 0x40948400] *) + mpPACKML_ERR_DEACTIVATION_FAIL := -1064008703, (* Cannot disable mode {2:Mode} [Error: 33793, 0xc0948401] *) + mpPACKML_ERR_MODE_ID_INVALID := -1064008702, (* Invalid mode ID {2:ModeID} [Error: 33794, 0xc0948402] *) + mpPACKML_ERR_PV_ADR_NULL := -1064008701, (* The specified address is NULL [Error: 33795, 0xc0948403] *) + mpPACKML_ERR_INVALID_PV_ADR := -1064008700, (* The specified address is not a valid address to a known PV [Error: 33796, 0xc0948404] *) + mpPACKML_WRN_CMD_NOT_ALLOWED := -2137750523, (* Command {2:Command} not allowed [Warning: 33797, 0x80948405] *) + mpPACKML_WRN_ACTIV_NOT_ALLOWED := -2137750522, (* Enabling mode {3:Mode} currently not possible requested by {2.RequestCaller} [Warning: 33798, 0x80948406] *) + mpPACKML_ERR_MODE_ID_USED := -1064008697, (* Mode ID already in use {2.ModeId} [Error: 33799, 0xc0948407] *) + mpPACKML_ERR_MISSING_UI_CONNECT := -1064008696, (* UIConnect is NULL [Error: 33800, 0xc0948408] *) + mpPACKML_WRN_TAGS_STR_NOT_FOUND := -2137750519, (* PackTags structure {2.PackTagsStruct} configured not found [Warning: 33801, 0x80948409] *) + mpPACKML_WRN_TAGS_NOT_FOUND := -2137750518, (* PackTags PV {2.PackTagsPV} required into the minimal set was not found [Warning: 33802, 0x8094840a] *) + mpPACKML_WRN_WRONG_TAGS_TYPE := -2137750517, (* Wrong PackTags data type for Tag {2.TagName}: expected {3.ExpectedSize} bytes, was {4.FoundSize} bytes [Warning: 33803, 0x8094840b] *) + mpPACKML_ERR_READ_MPPACKML_CFG := -1064008692, (* Read {2.ConfigSection} configuration failed: {1.ErrorCode} [Error: 33804, 0xc094840c] *) + mpPACKML_ERR_WRITE_MPPACKML_CFG := -1064008691, (* Write {2.ConfigSection} configuration failed: {1.ErrorCode} [Error: 33805, 0xc094840d] *) + mpPACKML_ERR_INVALID_MODULE := -1064008690, (* The mode change only allowed by the unit module {1.ErrorCode} [Error: 33806, 0xc094840e] *) + mpPACKML_ERR_INVALID_STATE := -1064008689, (* The current state does not allow mode change {1.ErrorCode} [Error: 33807, 0xc094840f] *) + mpPACKML_INF_PARENT_NOT_ACTIVE := 1083474960, (* Parent not active {1.ErrorCode} [Informational: 33808, 0x40948410] *) + mpPACKML_WRN_AMBIQUOUS_MODE_INF := -2137750511, (* Wrong mode information added in the configuration: {2.TypeInfo} {1.ErrorCode} [Warning: 33809, 0x80948411] *) + mpPACKML_ERR_INVALID_STATE_MODE := -1064008686, (* The current state is not enabled in target mode {1.ErrorCode} [Error: 33810, 0xc0948412] *) + mpPACKML_ERR_INVALID_STATE_CHLD := -1064008685, (* The hierarchy is not synchronized. Mode change not allowed {1.ErrorCode} [Error: 33811, 0xc0948413] *) + mpPACKML_INF_MODE_CHG_FORBIDDEN := 1083474964 (* Mode change is forbidden: either the related config parameter are set to FALSE or destination State is disabled. [Informational: 33812, 0x40948414] *) + ); +END_TYPE diff --git a/mappFramework/Logical/Libraries/MpPackML/SG4/ARM/MpPackML.br b/mappFramework/Logical/Libraries/MpPackML/SG4/ARM/MpPackML.br new file mode 100644 index 0000000000000000000000000000000000000000..142b22dd1c901be7a4835842df426ebfc6dae7a3 GIT binary patch literal 224160 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
u{c<`3fBwke~_O z8shT+)gjF41arZ2bcwMQ&PFsQ9~Z%^R48w^uhP2#daXMq7(==-tuyJ$?Di7^oh>x0 zKi$gK5p2+giXB3mzGHGNPE&;K_$B@tCp+GZeuhw*>hlbS$7Q9oF%3*F>J5Oi8iWI-Uat$+RUG1;Gv@=XW8!*u!b`GcaHD?`l z=`Nb2t{lj38^io%66UOJ$##cv=>!jH$J~o6ZMucp)QPhx_(J#c%{eRB-cxOo#_62 zqdUN%-2~@S)|x9r%}1!|_{JVG9L@G4LLB{$EJnmro7^1AG`$R+_f4vL;pawoS=G1v zqYUHzFw*^%r4u8^ZaD9WMl|wBdm*RB)so3wl|=nJ*s+EGdns7-(M znEdz&d1}|Hzb)_H)@7^86p~_FcQyTelLh#^Wz=%@$aM6?Q>-TzrPOT#O`k3Orr;n> z>Nztc-2B%jWn(yo@a%KJPTYgD|0YY&51PzYHg?7ztM@$l^YAa#k@R@(o5|8SNjXkH z{j;UiU1wtsf+_vo21)vGUgde}9MSON$J6%~$v#K8=_`OAxgj1&JZj`5lehpj?klw1 zSX=`?R?1GybALDk&@a`SSsKaNAA>f5KFH@!z((o(flF#O62Ar-g(8-g*qwbn<91?} z82WjBpj`z_2n=9aJ9)yr}gWge;8$xIfT!Ap zz!>_8gpR#&gO_cExANDSe<-ZS6TCl_i@OCeNvk3b^$$mVlh>QQ0gBYT}U4B@B z1#~nDN$^Wj`N7EvAafA$I8ATg>=0>~;XdNk4ealHr=eXps_<0ciS2UnI(i-7e7Qoc z#N_kNQthKBxpZ`c7hv(jlQs0SH{pSI*H;QRX0mi+m#L*}C_BtU@spqZhz_D2<7KQ% zy{vmwrypv#7QQ{4{gg?136av)I~CnAG~a5>dSbid=Uoyt`>`s;27%fc{e$;N2W-B- zoz0aIj~c6F8R1g#{o~pm@H9Yq6+?!lS#NyO*}vu~5J0qsd4MH{R#A4=O^i{mddK^X z^`O13{8+(SNwA({Kd>KPw`-u^SU+0zbRiJsx`96N;=5}(k=B%j{6sy)dV9D%0`I7E znkTlZH+3`lcTrd3&3dWd{KzOVF-aoSPZQur-jtQBxQDiOSBA7^e4ttMlV1@JGF#7n zo_{JUzfPiK(s52bd+@GR&4%^+p4AFlZN)&6W5|^JWulOD$3v#vf`;C2FwRO?fTHs` zl%GNQ(weI}cut&*XKl~~o5ccelz7{tFZsES*hyA)>+5};OTh@PHbQ?rhCe12Bym^2 z-22i0b-YUw%Oh&P6|X#|KbvtRsT2rdxD63c(sDFSBEm8Q8<8@-{5PsYv@c@IRBqubk(-0$EXq2mx;hl6KMA2=94m?EU3&Mtm=ifbO~k00tF^w(KO=7Kxv8}GT?oXM$VpZO z$K_kNxMs2I6H&MdyS+KBQngrSe%G2k-w27HIxcY>p?hu4;5HfaW0o{0^B}1|=wbAM z^UoJZFzdL=_+ZXN&a)@inKCxN#*6ly1IHd_Q(SZZx$j22E%apQ99%d8^H(~3y^ZaE zG==vr!V{(6!o+Z(tR4KnB79idt!LUTzW@$6eTEm9!iU_6GH-$KGdyt-K1v-A;lvl$ z&aOY&m5uUfA8D2=4hS4$;9q;*GI%TQ6`C~qPb_PU{6Ufz{krs7d&sc~e0zsnFd(ky z&_Nn4!bp1AYz}8;^$VXv^0ql_c4Jtu$y#sD+<*eT3QZ`aXsS5>+ci60tGB*&%0&3$ zXmsNr>=f??sdtEUGR4anVWmHo0T#xlEmL5{hVDjqsf|QKx6M+iJ-oul z!>ug9zd)h$p2&X)Co85F+GK)`BMHefyAOPqPA(qXVnKwg%a}E^76IE4me>&y~7ZHqqe==L6v{(A=&aj$h>UICtvo9lABYcguFhNbh6^YJq#m8vXbCSc8 zP|%s%QKA>%H8mFLGk}#R!6G#!VRoy4*W#Dc7YP9c!(?-iX0x{~39=M&5OS?>%Pg(N zF7Y|PD7WIUu@g`jasqmzeYK*B$;}9-H^Cwiu(2ZT;WZ3x>9CHO;0$_6`xv%Ld(nj(`=KDOepLo!ZX7U^RoMC{88;@ ztI@V}qMw*tM{5kEhw{i}LkiGe@bt)Kv$b_6y3PskT;%-y3V623 zO`Y;)D4MCGPk>uEILM*5naH2GPoc?G*qV;vmypu@8;{hk&;rlj_?!#t1kDStXXYtu ztr}ORES*V?pO10Gk!n|_e4R%LZD z@DEv;pjxf?b7!Bxheaf7!iLi}C($Q_49RYX6Z@2<$WrzBjovz=f9!EZUF=#BTn?vw zx(+TGp7yGN8q6Q62NANp>+>73n~XbOui#zm{2?HjZNT9C#@Y8i`9KX#p_Jk-_C`Tk zsc`4~R#VF)=BFF*f*L=pU0it0Mn+hlbaZ53nJOcDcUOJHm1s9HQoQLEYEa4mlW10V zNc=RAwhKcqu?>In7m}b%>>4(Qew(@z%iQZeNy`(9e)`qb!l}K##TszR0s(#+yLUtL z%JK=b8ulMQL(q?X7kjd9;S?jwC*YIT4)Z6bXZCl3hE7{L!AHY9-I20%$Rq?YS@(5k z#HpM+>n@dezz~zo`bfH~NBPjilVR(}HJ`0JMCVwxUeaOPW5%dkkaPE^Vym&!BAF%? zC*Jkp_93#XbL};_M-&KYnqF}qBJ*4C*#GK|TRf8l@s)jew>Q4rXYRka@ufA_6e0nH zSTQdxo5rOWU;TLaZT?79<6;HcqJ)cowh_b6-{#*797(tgGy2BZCMdxlI@Bg`3y8+! zBk&w7S|svFPrDIJhd8Vw#WKFh(h;xd&`Y$`Y3$HD1mJ)v0=VF7H;}qlZ9R%o9nx(* z2+&yU^P_4e^P3>gro|D^1FtY7d965nO}n>vok?>sA=*=XBl^rM?Dgz9REp6#-nv)H zxQ&nQ=y*4XhZnx~axd|Oyedb8=a}54LM_I#2`d}pSV`#>hJzwR1P-abuq1LZHUG+|yis*Oo67TxeBP_V}nSn!arqUWS zN4ZbL<0Hi;(bP!vhs+#>XPQh^sdFAFYQ`m`sy38_41Jyy>%!IR94xW~K?lEK&kp8Z z^6SzaP&*28@;mVr`nTC9vS{Nh(?o(fbbDw45qX={+T*t`e5im#7B>~>A~EBb|P%>M-Sd3eaJM$(5>?l z{{y9kCbJ^w)MEFu=hnKZ8oEjBGUtKiIcuCmdIs_e$FkIVn}t7&ZX|@gjo7Mwdw%5Ie&C?`gpQp@&)6AqnL^ojPt{wK91vNX+lC$^MK0-9T8HG3DtH0l$QVz(~Ty8 z>{D65ZFC?`-it>SrL%2p_v6F*NJXFyYtJN|Pmo!k#g130?oqq}kF(!1v-=q9nFV4) zE}j)di+x*iocy#*;#9@5(QopkzTfwg3h&?EPn9YCQmeAS<*0SZH3rIk2>Qq#5HYx3 z)LNOxYO*feJzoe=@RkZh)<|1N^mo@7{EGNdD$~tXZIA)jj_G@AEjra~qHmDpp6B;> zkpc)F%0qXC^}j{^dW>Z)tLtrtJ?Ee7!Sz~|R5;Dpv$2!*(`yS-KPgId^Eijb|1thu zoe(+r_EKUUt1rZ-_EE9S^b@4ZTCi9V8{D3VR9~&#*ZpBA?cZgcEBvkfSU)XMpWT>7 zi`_Wo%iDm`VTrLHpN(n6Hry%sqOwrC)PS?_e%t8AfJrf9npCs-&oWN&m5fiAqnyD@ z-zO_lWi(Kd8F#$V>jy+fmjTC;*Z*2u0rQ**0mltzL348yaAMr5`$Z7u3t@CpLESEH z)ntLf6a@4tz6hF|p}?jXlVWLhTc>>*Z*2S>K!p_3#TT?LO);{GyAwM*&R%w!w6`A_ z!<22yA|RIHxlW&!(jrMepGQtnI+E3M1>1c6ZoeD}>%xUJr=MqAMLd2w*_h4#W5wsd zkev+h5Mrf4=$A+nB9<1|sJB)z*tPf3i^FP_SI0|D=y;2}jfdcf@1d)e4dF;ac=u9D zpl3-p!%&w|@$t3Lu^v}jlF)Gr6?~Gc?TV!8uCeh~`!ilu*i!CsgU#yWyR$Z(*B&)| zk*rOJ+Ej}W?h?|-Lr|r#HagnXiZOmjyOTWPCF=jLB=SbX|4fkMjG!v?f=cIl^Vn=M zJL&~uXp_>G4%z0-H8^8st ze$hnM^mP?@cK7-B&CQNcaUJH$hCKfx>A`u)(~D7qUL>y+)+`#*FWpo_$yXxG#x*}M z{MizXsrXj~p!#nnuoRS6BZSp^0#oq%K0O}*f$9Zbj7_HzbyCV9338-F^ukd%jI9F~ zICX4h-sOYvxAV6#2LXDPN#B*TayT!ug!VOicd~=B?mH4qw2i#_@Z|5)zInV+sX#9h7i2@R-4!R&U@z&#R*~@6SX)I~E>UYzL{&GD zo9(w6cfu#m2-Uo^a1XUbF59RAa#j0R70FchL*#D&;|BgRRvol0zes%?FyFPyo6n()CONBIe3NtKbMUQ$BGO4RTbIxo?O_OE~hvnnOsdqZ7Ps%sTPU3)rSdqT&dRPaJN zuO%wD3L!k3(%U>V;`a8SE zNrd2tB}9MtXY=|efsgO0vB{rgPlCDfg&IPp$x{qh^FBz4k1sILhRg!U@OBa#&V$|` zUOOa*vmQaoy!czG;O%r?uG9`x{S#mEA0*X$JRGE+=lrW=W!Zl6!edZ0_m459&=&D0 zU_icYMSpZm?Ji>tY+~2gZ9BH(OMY7>Ap_faV}75Kgqw$5vy*DlVTEnSrevxg*F2}* z=5n_7ZM)k;&hO=moC{jq%aM?9*w4T`P(p`{fz&$V!KLEl{J*(<0hY4{*{cfKXgXC(xIyDM#rwf zT-4OHA;0!1|Fn#)Tj~4!se1qEoy+_ZTHB3E&6ka0G0S31dp^!~z&*wHw;|VmMI<$} z@~5I@cSTO`uBU3(?0=`I@e(7`-(s3I3G+!v1m&8hDivRgNXm>WXJ;wv@J|jfsl4>m zp>GCA&YoMS|NnaOai!1xW$TtPr<|=Rli?#MS-;F{yJ4E4bZC9ollYAxKhI^Ag@e}Z zrx)&6LE>_z<0(c@IsV-LdrA}Y`xlA4M)+%hn_Ok*e&Qbc_s?Qixlp~J ztej2YxPdU|DXw=>Wq4GDqE}8-%+{fb_B4n+ut5&)5l{Mei!hjoI879{F#zaHjfgu-H0tnXnh&8 z%n)0{TdKJO;l*-Y(cZDJZ~v8u(R4chSbTc7PHZKc@D!!P1KW)N%-w1x3l;sLEiSst zB&W~Lvvu3u&(}1&o8JVb!xh^Nc&5@}T&#P$cm?FnI`D7(LG;<=1rs}FcWb_W*H>|I z%FPG*=7sHPmnH20scxSHZ79`wo=Cms;`X%UX3>Q07l3;U_Wulx$##QJ{Uzqu(jlr; z`2TN0QIp%BvXqLGuK(N-ikjhKU+}+SP_iWl#20K4^7EhE2#b}xx8;n9;XkN=P6a1aRNxZljc6p2z>dGUwl8bj|W= zd_Jtai_u+cy#I;hv>A3?jYj@R?Vl?3U9Pz9t{I)stqPMun^i?@Rkey_9JPsLFhy+V zW-{c#z_f>cL*L^TO;QzU!N2hR6V0gb?*I($Py2suv1<9bHFbGf6k+P*orh?=4@N;l zLxaK8=PUDpZwc%21tw9zO$gcGd*5gFe&EvB_FV9iDLvI?9ifLW@ult22d=d$R&2GH zA%@SXtYettP&DTh+?<_-se3M+@OI}6&M#nA_GIppR+woFf*yNaz;lE6vNH7qp{*FuJwV1XTBu_5 zrNMI>Er*sTl{0TMBLB>LVx`a0{??|cjM#SeEwmN*W#z`q;KH1?7>R3_eOI4izo51#4`-t{{KY;l?(Pw)$uJrroM@C<&!g#Ca z0A9BPccpq@d&lDMF4Im$iz-;c{GPt5-`P6V{2ue2Bbyj<6aTBd5Cbz<9YnKv6J_m_rbEW6X3O9A6$b{TdjdXkIsfgwO}OU%q-PV#L^ybv{q|${6BvQoOqwML#VXpXYzWa~3 zuF12af8W@oN1xenF6}M6F?Jn;Rc2s)8dfM9yiJ%El#CIJb5l4B)n&P01gz!7!>`!; z%I_fjg2>kw#3Np>8BvsSFXhHv<0#!ownfJ2+}H`-$iFdeOOJbvE9OMWr@m)IeWr|c zzHlDI7x$?1iQ>%6uMw8lpo|^7jHmvsk)9Ig?n#~CB7)|o}z}yBh5nD`7@mjgjocosC zY1g3g<)5sw*TrRQE#euqy>672ZLHm4Jlxy2>Gj%6W9CttRAr~nbGg7x2$TQT^bb^C zc{!)~8P8ZZ-f~qx=5V|Yy3A-zcF<*T+{zc1sC71d9r|rt!i=Lc&&S~>gd+Vb5)<}g zKgU?v0`N6yQt4Bj#I@NYN*cdXkaMal;>ORZLfJw*iT_?ZaZgP5@0^ujh-m!oEL919 z=&Is+sP*%C69}b**kbBM|95UPFFhB!W(}3Kocq<(X~1@Mlkgm|N#t0}1Na1#nN&Man8D(5q<%c8XHjlDBi&y>61Wb2Vk=m1{R< zw2w_RYqTTqYry(lI;Se8w(;$+y^yw^4{|WiZ_;||jOsys);f?nzxp1CP^_icaEuX0 zK;6-7`xdMBlcbv+DsPDwHfe`t3)-@a=A*A0y-#HyKxwQSU6xyWpDS&Oo|@pmT{u#6 z<9E+D!DF8BGzWdGBCsdLA++4YD&_xe!nOR!d>=!uJXEQpjC zQ!PL>UZCR2Oa5#kPTnR~Vf$H{ z_1PiIhHr$^tA0Kp^NAN54Muck$a4HuQVeG^f* zxZp@wX-BfZvx!fNmhtb;!~-wfx}AVN`#Y|PMkrWz4+o#0aymGOk@24a-h|4S0QD@H z@)~E782?A~;;bj`v!xagJKTHoXvp$ipX7y#`s?mHMg;*|FqCD> zR!>6z_(J?_3O?VbVOt$lb`xRJMks{19JbnDubfM&iNfEubn(eP88=W1g5HlKF7FVt z&Qw54l*N7M+zr?j+j;b(6m;TK8^EuEBgxfTa){vtecDF*=0BEsKeDcWZZ)z_$7II* z^+e}7!IB18iJ_=#`giA_OzT^ydGPgw$w%nx$)DIet@-h@v_5zKGbqpPA7SCIC%pWx zENLM0YH@~sJ*0zaeH_qo!KgA*l^DY|L`e;6aTm`WlUzoX`v(bhWWegNkR7ntZ4$@a zmy<-yPwDJmqrO_42e0IH56~(WN*Jw#J`arH3Y2cGEyWHm2MT=$#6!D8vlsl@ zKF{;qOj~>gv z|6uB!o$62MIxq9(4a?o1Uc~JgJ%fTuslw62gE62ZO+t8JL1g<@6uZzA!u+9x_y1 z)6$sWr;^dX<=!9vd#UW{fnk2^1^1DERI^y(-ilk=ex)48U<R zH$POoET!U+;cfs=-y-h(6n!xlahqvXi1m4jh%~4D4C1UE*lVeYxZ%nAmKnyAiYsa% zXYENY!DnL69qO~i`mPr0+L5moRG#*LJ_q|IK-Vy~dpcJo4psm|ZwOtTo4R}#{!JW-mWdL7 ze6<`#d1}o~Ni_!*IsH8>WXnfM^}Rw-yv0}2jpF*t_z=LpoMhv{K?ldxcZPg*t6cT* z`ENh9`LZ}^t!s_P7l*Gd^|kx!qUwM z?IS`IKA()vBe%xi%E6@t*q|~u{!dvlhoXU~aXgJel4pXb=vzN$<&n|Oe^)U-2qy41 zF&IwaP-Cd4LRe$d!TQ<`y!aPr!Y5?oMrEfT=?-&lsX&@n8aIs$S%{VI% zb->J4T96vmr>#rAECjPM#{3(izEUvu&{_F-2Aa+**OpY^nM@~uU$=@D1=`t*HZXM# z%Ts%D+{8lL1kPz^!mK3DL(E!!LVv$EoAFZ_q0o_#nR|=*T9`H2atki5aK{&s+3yRM z31d06;t^sQ2c%0Rzr8IoYf*U)j8~4N4{yagbT3hR$+H^Iky9=2nOFEu$L@ite6q@eb%)VL@4Y?xH={jn9lkc9 zRTaa0ro>v%b&*5O{2#}-aQ3{DpidFS#)G6SHrAOGn>gdZ1ywId^9vvSO*IoDFjm@~ z=@N&+l@ZurY4_yBxp(Cb1IwNXh>|*8Mhr2$;3@Uln3?0GF19 zSV-DGvAeKKgU#RChr=^Mwt`;;hc>yB9#__c&u!-~QPGj|SY>^U9L|a9yT#)d#d2;(o0dR#^ zN%jGR;KI${)j?t8khnA46ZZKkB9uul^Yk!jcG@E?@gMn=hBI!Il}|U|)ZUg4d|{cI zxqqx2Rc%GYaVq=zNo0A8qNRIIq){-h&$_xpTQyF{l9#=G!!@<;$dV+v#UY!L=VH zo`y7Y^g9ctFF_ndW4BP=+8d;nF$)WR6?L9Q@{(tfq%9L^wTTk}56n4`%o3yRav1L* z$<#1MB)W-U6`vJ)={V--L+l%LG&On>>bUKyWYyfTQ!I(tu>VIOZO*VT5c{LJ8NO;> zN8M>_XT0@g1lrxBX~W>gev~S_75bPNVv|dr3H@f4Rh`@9DtNo1hMv7VB%`=_jsH$^ z)Z>{xMl;nS2+35w@^zJ1^nq}Aw8U)2*s%EPo0rL2hXa*t9&^SWi~w5KoyuG9U)k&{ zhF86OS*1zGc(~ZCodR@fnsOEPdKw2~SZ$eNrne+t9=OrgvLKJVaEZ=@w)8Dpl=>a>;rsASRs8$9GE}Y9h zAH0wzJliGdMeoL(-+h-EyukFUYEoqmn0O@B8g~JY&k9Ggl3tN~q{)bfz+H{pkE-86 z-d^=$PIBVLLNr|JwhqBA;g5GepD&hnjA(c{zC8ed#JA&+o&m-BgSW2qF`D*Tf{ zZi-C%JeX0G{f?e>^7U%1;NM1*azrEl6JJm%ZSD6uEY#$8eK=}WgV@-(_#@;)B`pZz zUbfjq2SZqy9BHv=HRXtQaGbYay-leqN(h;3Gb@r9ear4d-`*dmxsA)2zS$tNUE!RP z+&IXdotrACpGa5PyAk5`ZTVZiD|ES?rCOnQ+c5lBZH3Zu>uiTy8~J@s0^Mg)(E7Gy ziZAfHf-P(|{dth({=~<;nghh#yh}9DBRj7qNNiZt;CG8@MngG&WqzsFH z+6aG#nZ}Uy2<7*%ielr*=lL!g2evg8PklstZ)=j=X`eMPoGwW;e8iuS&6;G+4B#Q6 z3Q*KL24q&%oV6$vlQS70VQ0VFPYnOh%Xd50Yy*F;KyNAK$!$GVBUh!wh%`aFA-0ur z8#RKBe*QpOH94^^1D;f-z~)S+6!-o}LvRB&3!xvIV;e31_9vPwol`Fq&s_IPJ1LHT z1HJ=LI|2RH{b=}6G9?%>?Q3%OvC@F$-en1j^>7R`r%>+VDT z<3wMMK5rl91U&MwTh@OBMSkp&kPcwhOERyRTnV`xV*gg2)@%t(@h@vht#Nc&AJgyV z=P(NyQfW|F$Q(c~Pl=|W6i>bNgZK}TU!;plZ2F`J13sR9{yRXa-&V;xX~Idt-_CL2 zUFvI^bm2*POR$>?YYoRRU|Wk{fq@&HdqArbnRUPk?h7$PK)Bzw${K{_Hc%GE>VIQ^ z#F|hSO2m(?(8)Tv(nC_ig3MZ&&O@x)J-PNeY(AZO3$L?4QoXK`XnN-)SSwEZDd-Ti zUw(`5*dk1D92RIecNEJucNgg`&3-IcJO?NfJpk~yT%TJ+`-@ZoaK9m#l4dZu41#i; zRGyMxTK1s@qU-2Qbav$Lx?DcV%v~y!Y*aR-rJGXyTQFODM~r*bJEPV~wu_rnfw2Wa z68)V=z1&YLN!E%b?_WO%PJiH1_tP}y?=O~8RK>N(F^(*3z$J*<3zr0d@_E#KF2XUCK)l8+|I~Jz~ zr?1lG9WxSvo83%R)=q-@bC1agVL_`Au^PwH|ACQIVCmy!0&sXY`h^$aYw4@il3eVX zG%JwQFGi4FYvg{_Kjk&1J65wc_q}I#yI47L$svgL>J7ED7P)^ICeG3+|Kt($-LZM< zkZ0XC)8ZEfIGz2xos?s;47cl@+f%4GR;*GvUHAfMS37d>Zb{iXc2U-n99wudV$FqF z`c2K>=5he*=Q#r(%vlubL&(t7bf&_C$FDPj7)xq)kRn^KiTTnx(Udqd!bMRz%h&Rw zIVqGP4QKBzb^GYcxKbSdTNhjmJYlW@H498Wf9>)H8VX*1UKSy;EqiuTKSl`dx2~pG zSWEFu#5wiMaTmSG^8SA)y6$MWz9*jY4G{^^dk>;V?*!2zEYYJy3!+7DyDK7s=$$Al z2ob&aUD12*ZNutq*~MDR?$7U!d(ON!bLZUi&Ux?MJM)>($idWc+P@&;dz$6h*CPB} z5mRsuf-9bE&T4bDGw4xAoO4xUJ_uSo9RdD!UGr1<^`$-UdduIoxP+tuI@~t}v^^{F zTYPK^{I$os%qe0uh1~ErUi7XHzJ*?-v2o*^l)ttsIceF59kVF@qjr+Nv6njW@_U&_ z!@oVwGIM-9re;>_C+r$KdP#avi7pT#UM0UG`OSKEXIEw7O(L5FsRWb5<*!Z8lqz%A zw;%YA#pcfE9Z;p+OW}DF&B}9ahjkJ=nnQ z>k@`RU)rG|G|HuBU}Tzb-(*t2)?#2*<#?(`NiEstN&UVrYy184dRim%pEbGaw|H;4 zFfq@f8r~r2>G?gm6yEXj>2@+M_+&@sxXJ`;Ur)Pgt%%7!YZ2u7m7TTiXVI#EdWu!~ z3`(t#i-_?QA3Ecq1uoeqayoteo5zMhOsLt%r-qiHyL&<4jJ+JjJ#C!1i^AJCN~CVL zOexk>M%+*?YE*Nud~WJ`~u8}r-KH_)!B;Ly#otCa+Rn2=fT zHo$&3VOSaJ2&@N~ z5%AXfLm_O@X`jlaqRGv-%-V$AP3KyA@DnU;U5iIfgyokw{Q#338cmwY;S)SR@JWP! z9qj%(;eu4OU-fwTL`qal#3TDrmNd68Mf$~7YNwP?u~#+)1~`rD7u=8<(u^3f;qu6c z#jR0$!CitwnJOZ3U!nztxAz?tVEcBsxsORNQr$O3G@Dgyg+J@mOZ zmcgw9Hp$^V4 z9)3@Olo@RlUGB2GSb@#q~Vw|(FSzdjt)nXS|jwX>QUH z5?J{l#_AM`IDOY&=M%)4=L;;|V0aE|5>%E#8L@B$G52fbjgGTs2mZ)YlnORx09C~$vNctjpCc%-KAt>gDmkt}htdVRD? zJS0O17mNy$wRtv)p*OozVD$zXqZA*(j%+IegNCi;%dQ8;igT-KI$y*Y|7#(G>E=I& z`dyR4Pur%ypz zoD(5u5qz?ssL0!#t|qM`S5v>-@PH7jE`a_x(8#{Lb(Q1f$z$cP$gsoitp%e|SH$(> zQQ~O@UL=|w_qJ#9H0p$^^+7mVY7a@J|daErQsNkB?OiZQ(qw5J&6vh7v;OB|x zo@Gku>P&qxB^8)U+ulnFE6~_5r53oPk-Qbn{#I3YRln#udrAf|bWCTVW z*YK=MKXd&*jF1>ubb4th*fGPFk}~Pu)_|XkF#J%<-K04P(O;VelNl`$9)z>n30m2h31z^w%2euTZ1yti+q0ciTpb`pB=Iqga;oY(J_~xKy%QrvTjXoOAvrN2*Kn+DfTS zV!Jc*%v8i1tKlaFSX%NwT2-VxuI-sN(vjgs0{Y2Xw9HcZL1bptFE1&9K6OLTv_=^XFvE__V_Lku^oDOlFJ%B7^1A#Y(%+fQ*1QM>~?l6{l}_Y`l*a0S{x>%D?zo)z7nM zSg{VLA)gCY6rwxEtpOtgRh->;LBm* z{kI>6)XsQaOV^HH-+5&psuMQII_f`5bR5Qvqt}W9OSYW5pg)H>! z>BiiA>gdkh8p8PctzpLGZy zy34k0*t%tSpkUq4)$i-^OEsLF|)ys7!>P5 zW(}vdoDWF~`3&&oC+j_D-`Brj9-`bf5B6=S~_$cea0m z#y(o={ctL1uKanbU)5Y2+iZ!J1#pDmSh$4ckj3ib8-7I!`w34pfZ<%vvbE+}Re+Tb zM0Q$f%h_4Ki$GQibz-8n#L65s* z!#>fv?#(zeazLriBEN^!Txymhk5N+}qSxpp`Kr!x{uN1v7!Lo7?MeFJvYE8V0^E0b-r5JU$P)!|#>_Dmx7ms~B(9`y##GM3ro6NWxfyUQ-d zUOeuUGB+65&LMbL`rse^h+$up81SbZ+y;IhR$idMQ}sn3e4I_9{2`pJu{r#=U z)nW|@BX;DZwDyeo+O%}SI_|$@p^H1_Osp7?1+bB|)G3+@}8x7(y3a|2;|Q0cXnlgb;4-ti;*YnUzt zp^Wyl%3z}e^UYJVBf0B8yE4|FisE4l=u1CD#+)B>vQ2JC;YDjBdl53k@^G+7L0D%b z!yGjq2Gdy&;JcQz?*&TEYGW(?_IkBsLE7k0BMlPInChbktgt&?wIXhxRi3XHMR@P~V+`Kn&5?}v3-Fy!4uiuLbpju6l2sxZ0|A6+K_kDYH%}Soy z;HO97skC&gvO*v^l|Of80l%1P)P%7%sKaQ6{l=qjl7RB_zkHpv1f@~*5P@-1-|~g@ z(R4Y9IjL9ncP*Ye{ulxWcGUE(r}+88G;b@+#+xJj*v>o&fX=60$OcGp6c_XWhl5$V@Z4;)7j*}ESZaGH!i^1(cT%^0!N|86Kl`dL^L`S-FH(?9cj$vjk z=$~e+XwB%zjl<_z!{~xvA1jaBW%Dy)Nha3*vDBNGi3xXNYUlaP>fXuxUhbCPymzLH4Spm~8uWVI<5i0;Z+|J@rt>82f$xQE!amt`IgtC22C>3D zTXT>K)W?15&STjv{GGG?bIi@_Kf7LzxsIghi|Dl*$CS%Zj@!evj?Z?tKF^`=1=tU3 z=fTCF(zojBj6C{L$C15JRC{R})W?w*IVAfn1@}}_`0Q6;rKSRB72Sz~u#W<@0B_D? zo{Pou?I7jkNaVye>gMo=y%O8-->O>I_{Bvd4`o09UFsbjYPgw!2L~dGc0dI=>IBx> z{y6}z3WEeXE7+g>#y#4tEU|=|%+^I-Tr*|TQ^O|NGVHHaFw>hM)NISs%XFg}@;T!- z3lTX^>`QHr-jyKSj~d#a{07k;k*xAX5R`YIRhE&TG}~gGjteb!6BrJrrt2T9gpSye zDUpAldaoTMBu*_Vxjh!J;MLnp<_ z$^K@wiR4w`NUtZ&8(p1Oyw>@g`^j?^ZOE;yDQDf#%AW>1m`}k3Ey~G8 zY+o$eE<5b?q80gufx2PNbtd}qTQoa*ZgBV5(JV>cs~ut{`yZYj<%4Xr0m%`fc#S|* z1z$XWp>^Rk1?zHh%GxA})3+g#)p0E!CLyPe?qQ0>e9(wZBEWEf$VsZB;c2^sb>*?3 zMSl&6Je@9o3@4k2W$=osB78dmdMa;A*P6jMgj^Im5mL`Bl7}`!zSUObMVEk z{z{deYipm(`g3r(pcxxklHZO^()c+&jYpMyTD6`pBOg!5 zz=`;sz5hGgOM2NTN;JZ_{OPtGdsX(;dU0EgmNg{$pE&eXOp=IYVC=s37U3phC zYV2OW)&*ujx|eXbXzy2DZPaqiMb>8FnUv^-Zt!h)g9)W~fHPkWpzkpq;u${x+G21O z`oPw8W4T1DF8o^1p;)J-ch*fF+YnK?3=S@i2F{G5U(%g{< z-g8h}`*7Nx8|jab3kI**(&2mKL~4%%##hJ`w@*uqG(kCJO*0q=9J zO3OXlXL0!D^mFJZpV|ik0d%z#+a# zvC>GE;Lg9h#m&l!L2U|}l39={`k`gfB%)a~1Spi4s=?~nPwDdb#Zt}R)V@7~jAYYn z>122sknG$38J9GX9aW#-?)?PP9=&&;gB31VtP@CZzrEjR*+}p|E&EI^?qV6W99In- zu2a1#`gsrO#J^_xA)aSc%Mu($bd-zj!~Smw-JwK5T!J2$qMbAR7l zDX-KcNVbu%wdoWLmP6zWAzm5y&9{@yXEUQztLbeu-QK@rNSDEFhbi=_j5xpS*5b;UUNq zE%kv;m@-5PBcOC~_lJCvyWrx-e+6G*E8pZGby2vXwm4k9rQK1vz#%PeQKG4tH)a#7 zlGue39|_W6vjE_xH#5H@Hndp(pr|Qr68g;t?5!e zQj_Q6zi<47IiGT3ZS`Vp;oPIfG+_<_R&DMam~Mdq4oO;Uwb=dt-qrw=$29Fh2k(NV z$nNrbbc{L*Auu|Q8;t65 zY?UKZ$Cy2vJGXOPdGUtMfJrkip5}Wfx*O|yl}!xbvyC__ir!4x_uEt$lF1-cdfIGI z;Bd1G=b4|2khvg((vFNjZDJpn-wd+P8a*j>Jk{1`)TRTJ&D9nu zKJ@*KWaG@Yp~b^n;~+_x))$XipY(CsIDEX!rcx-X0 zy`&d&A(zCn$O%{ck)g&md(K`mnX9q;XGnc_A!Ok`sgh zwp$GQ*=*9}U62TLHAs(LYJcNpc?)|!v5I>joNOt=vrT0tK(>l(mplKhKEuERe&RS{ z)0tH^wPprOJS$Ct?bJ{YEn>6!@%%!=_)=Tm_kI28VkLY)G3kmDvM7hNV z&s`X1G}|}zOA5{%qnxI5^Hb+GJc;e_YIZEXxGmK+Hj@H)68gn6i$VR^(l<(&#dM_r zt$-gp3GM$dcyl`wkqxv9KbdW0qnU_iTS@f!bfvak2kd}Eqq)=+?YlGykm)yI`{c(v ziY!ushq%upFY${Ggr@NAw@Jdk)b{)aTOdZY-_pP$U}>T*RLjfDaS3UovCAJqkZCN} zRFN!a+y$%rKb&m$#ocn-f5^?1HE!z3p1y86(T(L1(c^zrT?B6>stwTH(dkL(NY&5KfCs#N zL_@77XGHbAo82jdD4E+#w|&y5`Ii})2n0y|KM>#5Lwl>gnLEg^aj5wQdJ_2)xf(i-9!{6Ddi&wlD#Sq8T5b^d&cUxfIhNHUsJHp?p zR}p_5d2=1B(W_gWXB+8BG>uEHzh`9L`PWsqA1&m2SR^J5Zs`a+s#eK2O}=_fY8U!7{) zp+iUXrJ;leU0TKBPgu{?1wB!);MP@I`e(AS?qVk@;Km%k!vBt3)Rc_hx4%3EfK_^2 zMz8^L#C^q$-Jo1B7Z`5bmjR_d^xGyUi8d9 z-bIv)ji^5Q#_?K-?)qE6g89kk+?G?OV7l@Az5E}cOXe2Yii5=K2;gQ21!=$}ROyFw zX^u!=^t(^O7z7Ey=}ucba@yze=9VTTfhL&qss)(mouudVR=*K4ju9k+H{^ab9`dTm zsPTv=>=k+S8?}miYbufMqgVx*mJna==6zD3#c5n0vY$svZL{%s$!W@5n)j6Y5~0kQ zNMWx)PZyp0#JYT~1pCxaI7qF0{JN#T2+A|-C2#GIC9L016x{kI$jULyo;=TeEz|Y3 zpd-q6EPZ1n{h*jSG92QbvlM+*7k#CKqO)?dJJjVxAcW}F>*T7UJGkeKP~3gh9Hi^_ zSvH-#yRGW|-+(5Nn=+7X29{!MI%hxok3xD1IF2Z*M8M})l)$*!4#QwV#G!8nn;%zN!Q{Lc7x$~&oDxxxq6_C&`E^6}iO7^acbEW8&6}<(kzC&Mg zNTvb!`xZ-Ny@n;(B4&cQmK^#Wa$Sw|O(VXk31%8*(sCrmYNKDs9-lx^pcv`RD_WSE zf}O~mU#^bZGdAqAl)dAOotPviz_|VD*6(h=9p37)7~u2p6JqAC5lqFhe~`XYtzq3; z2{hdoH1zjPMsvo`iF5G| z-^!i`hR1gK=diAj9#(2kvq z^(>IJ%D|(QLnIDiP-(x}M3V&DP4JCwqbx@G+^L__+UfZw<|TdaNdCr`Y@Y$hB{|BO z(cIP$HRo?BbhXxHvg&+b%)AKWR5+!a6FBt{1S}+;MUU>~ihOu1M85P>yF4l5oKK=} z*WMgblzQ$tQ0syFz-7}`jIs`e=7^xaxz{UCZsF?m9BU}W41)^g+Be?=Fs82m(Q?e@ zo}y&4tKuYvT3pFTTjDBzKg{j-c=su6xk)8mEMPB~+u^l;b zJaHR1nRv9pl||e|WGn0wQv>iOP9u!5Bk&zHp5rQ8E2~|@ibq@Oius_-?3L%p0Z4;U zWh=$D;f_3z*>Kl=15w9GcT-DoUP!l3&DKHHTt$y#w13U$lfP!jCUG}NPpXv(u{vAp zdD_y`ahK^Nlw?*^iC3;6Wy(6d`S;^?%(H#^jS}$uZ~IhD0rP_Rt+y=b?1P0F;WjqE z5rCf?f0g}?A&bw?_?Ddm;h7r7W!2SPUVM)z1uaT0Ph=;ybgT+A)fx}i1SRyWjCmKr ze@aCz`P55(gsZyNd-|}@?gx2HHW{@to~ss_em~QK14{+=2u6=UuFn-UV-}c>$?3{V zKstK1;zdm~dlk}CAzRw}I*EBUMW)}*SPhRe^iNY05P?I3em%eEV@LOjT64R*9|3`q zhgz&s4AQWuguCW~8Q4?iiAc0~=X&LEn)fZrXULl2ti)RrT{$y1g*P3dS|h8)DnKT` zDUdHyN(m)6x#|BC@_AGCDbqfZ2Fp6fG8TFM`m5v^5nb!a*!ic}xy6-Y8T50#fM(ah z^*lxYMPk!@a{pLLrMD3_XMgEM;+vZ_Pc~oYW$2|Vc>JCAZFcJE>Q-%RXJ4&LN{s9C z_nq4V)j%h(cPFZ z^q1hwCALkUYb)6bbMk{fGmQ?*nc^`+Z9|^+@xqAJVM>86&s&PLP0u|U)USu3wzO$2 zzyA_o5m^1puesQ~O9Jb5_zque+)J{FpN{^Gu2~Z`Fd0sQ^!h7ift7D>0&GF_)lky1 z97m|8tLFFWNmhAs9iNmL0)v-6d}x_Ul66-PZMLjL;lrI0{Pn1>Y=MY!x^w;UC(8hS zB&R|}Oqy#ZEK*HD$YrBNv#;)^dcu`- z)xhcBc1X`6|95e3YlLw8YB(6QFF4mBD_=wx#MrxdXLsQ-OI0&RCoJToLqiA8+KEvn zBk6&Ld15aT@qOH3nO5MCJMiP)rr{I!G@&ARB@ibHowaB7qJZjdEHFfS1^`tt!jz33 zS^-)L;Gqz&D!tFQ`GhZ#LuJHQk{}M>v)G2YNsxhRzd`C+z5`38iX}js1<;ASw#Uz19{>u*a_j0fB6&OPQ>G@TTV=M+-T-I%}i=WzaRzU^1k<+X)xaI-VSK!W8Ps zbZsBnMO1YeviyD=|Mdy@80j9q@PA?dR$#$VNd*pd5qTm33-6O6o=6?hNd>NS5glMi znIy~?@0oqNOS)yLhUObrv@7l4iFzi`b@w2)dzGpkH-8>Z%8) zaglQv>lHg{K0-NHk1H%s-*<;q0^Mo7w`q*fU% zYW2?I#|}GB$_n?#-`rBznFfs`oB6C6UFUmFOQFl=soY~1IkC-XYTzG6qQzVmg|(~q z>_n#6H(YDsun()y6D_db)`y-pZ@1_1T)I9$3EHAt*vEiO-p!zYqyMiJDuOA~Svt-t zV8P6q3KjUUqO{ia+YJN3=|Q)ZQVV$zbC5*XxOPm3qxoU0a4Vbd7l9Y;64~2fsw*1b zMjW`*^lHc1*h^^1ykz@z+UTV?aG%=#>(0%trSxZrlfbZQX0A*L|5dqSF!5KBd3+Vv z?6F(Vc<%Samw7jbrNWDhGC)C%YzP+mJP5<=@JO~=ff_GP>QIAxaG+f{}D2%=~7t@g+Y+i4$nzPgI>p$4j)NkjvulzaE^zVpCT~aqJVpvV0_n zEI;pxcied-zdsf4*%1TnUR#bwf*joY!@jd%>Uj^%()!{d3zYut5B+n}Gu--blWGWZ z$7aUOCh{PCi(6w;1)3-WC_z#nX@@1T>_bc9fm?Sv#ccX)uJlQBSzBUX6fi|7Tj#5g zKo@!M9N#IP`SgmJ3%jDaBys9hj_VG6pUBs3@+&elE zJtj|4ge^Ogl7 zD6WaN@l~_9L$gmJ+#;XQxXz(yx`);alz1wB)e+1+&Z|~AN*ZBVbu-s$9iM)V@{I{@ z!5Fy=zc(z`i^ddOyy~!2xw3w5B|&%ZzNjhOt*nnAuJQfTkbD` zsc@F2?)c>v7SL`=mZd-&l>%GEQ~#9^*2U8{D`9iq08gh?YQXZBIBoxH%v#UWt-p^X!zl~$2dUQ@p8cS3+exgHD?ziCKIGuqLNxtsv#Gme7 zn!LS^1D~$f^V$R0)z)t}5K0d`#mN1V$HEfX0$sTdMNYX~;t2Krw&KA}h?tr6O6drJ zw_S0+&NkP?w%Y|?yWffUSq=A~-m2KWG=cWV15K7h>hO}MN^olb&y;gQ-5Qa+T~m2q zB*hNx23*e~oK!KZ_EgYOmrI*-cejhLo<5==Ltr*3`81FqX+`xVY@M!X@|W3=p`?O& zMt-W3-4CGhSZXMfjm{=q@}bk&gQk~_BvXLT!rfr!DMUs2S61>LXU#T~h&74eLz0I< z;SqzuE9~ciJw=+(0!@%ZqMpy}vjEV47e3$p6oX+eC!?VcC=w=xE5DWt3{wRQN$;H( z70kQxbbx>DHuM#lRu;@NmYU+KzgpK98}pwpW%elv+#9?&<-aAhU61v*m3A0bRQ}m7 zoIIO7f#8`^JCsaQI-`a*N`^i7)@?HsQ>84w1$~|cE=*P$Jmkqr!rMnu(N_~8Z;~@m zxrhFFn?kq(X(S8JnmD&-qk8-FoA$zIo+;|>^L(hcxq_+f0=Geh7Trdh++wb1ib-K*$Czmes6_IVp%z)wn*fC#6iLsmG?^Ab$%Oom_~L? zo1>rCoJ4m2ioM@+dN2$n`@ma)|6l{2#OB+N&N#iJK1P;6pjds*G`2qWApZx?>|u; z11JN)p;bWT*`Cl6VCY}EuZt-C@`2N*aB^RPwUjEQsnla~hgRIv@hgsdn2k7tu!Xol zfPMY1$me-HJ<~lft4Pcy?_Bmqi$d@gbl4V-61^8t;FKlsFSaVvsaOE)4#;QCuTX~jeqf#~pNH=uWt(rkjMq=fA&FFV& zudoA2p5P8xcz*MZy7iU0Y6jbxA)Qd1@ZT;6tGu_qgQ9zOB{zbJJ5y>iO(Ak3f2$^y z0G((l^$hokEdf4XY*xW=v;FTFSF>8-CjM51bM;zb0FcAi{HkT*fur!avwdDKdMf#= z@OqcQ)nEAvzpTRDscHYip@sA>4pw~vt-#r$;h?t}dM+6-#QZKS01>oQN@Df#Tf&rd z(Zm+NddBF@40o>8!)eu7Zi~sS1PJ#53ODYItT~}-+6cl&Dy{-lVeDY(4MP7(2pQh9 z54q#4%-V<4y@XsWv~z|+QeaG5NLN(T7U}opY01A#^klM+CZNw6?7N*}fY{AXC>#gs zW;1USbAJoRIUUjlBz)Psp{wh`wf!b22-&8r_9sl;oOB$BO2PhCKLJ`QUwhW>C{o1E z+m_kB4v{+25p*3s)>|d_P-(lNTdA8_dUg?68PYu7JX{==D~y{AmJkbg(Kg@X<(IXpvW`c zCW}5CW)qiGj6n`yu56r5}@293tgUB>#gwFrtvV#)h7+-8#J zkMgWtJ3Inn9`C5p%aek%T>WP>Cz*>y1GGVvtskTr9mBC|K*$M~>(;fSelDy%ek@e+ z4LTs@De~p?^)JK9#g^-^g~#ccFy^m;pub5#>oe9K3td;^Vyw<<^k_)$^;Sb{MMb)+ zf4GYc^f26Iv`N*xu28XTA9&w}K**1TCpe7=8I3;LW36xS1OEufS&9JepyRm(^F!!E zIOn(bu4(P*8snDdTKr=(1KL%!Q%>+2#7%pRpPGjmii7$OTHiUd$yAiMZ{arDmYf27 z-vWK(wQ>y^evgy}I%Ex`p-EDC`*Mc<!Sh) z0(MFpWGC_I!7U^y_iG7VGfjCs-Acm9p`REmy`jvFFOggi&axIGpxCAPF5HG|Ofk?u zPJ6}6>`~SMQcJY|XTA25D&{t+(w-Tf26$E!&SU!Kdn%i*y~R0?Bbi}|7Ytyu>CmYjk4j~C_lYnrB|4;+mR)L{fY z)I3s6VdW_8kI`T{pxnxXD)Pf7t@IJd8gb03zX`A{v*~w>?ue^fDFvG5W|hl}_9#jJ zh3f@0r(JVn$<**L=_EqFpD*N@^9`Xh(Zni8P2J*vsmSK^kGe(7C)1$@cv-31tj?zg>t4_}x`U{u&dBtvQ{o!U zs|KM$^QVnY3tV1l$pLE_RJUFl%$GNJyq|c+)qc}-dOi~Jtg@kwH#QJfy5OK|v9CyZ zzepFKp0>bsnoS+@?9e-*$5gTg>>t+48cpb4#dT^L+uwBWjZhc=>ZJZ|^jz#cjYABX zevNYyMVU#d+{>gt4>X0Aj1&Jf7v#%F@KOIK^g_MU&WWahztY%X(h(x`mO2geO6dFd zgEKPoGIiPjb9JG!o4jXDm@$Y6kQIZ$uLUSU&@DbGDVv+mWMv0s2NkC`xx7r6*`m3I zzFn;1PC?JyLK8d_R>Q7xZ9fhx{f0EdC_$k(QEXfkso>da%R>E5_SE7V(7#6EtIx|b z#Fa%#Pq%Emtaw44Rac!Ts_NlTw^~txdyH+yIGhnK4AWoSy5VVSUn3v!$LKS2hCLviB^TZ%)%q3Wqtc)JuUe6ox`wm;PhyoNhHLd7&sl3#hI zVp=H(Z~vsb%oM{j4`<2UMX$QBe?;1Uyg!SOXN}V(K>2Qvx_jeBdu6(Nk$rpwK=GN6 z?jFEk4+)5Z)7gmsY6Hhi(!oIuXlP)|p6; z12j7CEQ70 zcYJI80X%_%3j#&l-qPaFH0RPyXd)+%<*bhY`J(Da!@UEvFy=` z549<}xj513dxyxD0Y3?DwKdq2Fl=qtbKBiua>SHMzD~929?EdI{P(+lRo5lOc!|;Q zom?ak_8J#ESY->m)iytG!RiM=lv{U-x%R264%{?7By{F3m#an*hr(^ged>HhiN_>91U zc1LCWpLx0gO}1rt_}uyqSrx6z7Xe_V66(F!|FK=bz0^;nlGc(!ZlP0P2usK_gq5RyalJgRy8k|s`~5I({Ulj9@a*eiu~87zrB%0 zTX=d$0Hm-B9#gRM;cJRD?SJ^=7L#;Pc3R5^i^XF2JM&RplkEqGS&ojHI_2fg#Y-ib zwvO1(-|Pf*+K32MjkOW#CML>O$4*6-j*by#4~ZUCl)L;{nSL?tomH@P{(K2-blIk? z{tZ&qh0&Ph(~L++c*IuG6{#NKRC+>UuwGJj!rIRnbZDfI7jpu4J*r?z=)I!dwa);O zPJMg4y*j&=#^v_{hDpB!oqu*A{JD;>@gxk1b}qm;<*Xs@n~GdRtf37kp+I#kt(z#8 z_L_l!$=l&-ELW0&6UkB)&+8#Qan#U&u2f&9`U`#O}FV1w1hYs!<+mvzB9 z38b^3vFN*bQr+pHL?^D<%NFQFxQ4;mQY}xY30e z`MJ0!GR%&3*v;NcsqFBN%2)`kBa>E~XWgJqZ2cm&qUQqfTA(Nt^pC-@t~9~EPIQ^L zkDD>XiwYurct6|ba7F18uyQ3*e)_`#u}2+!$aRz5sLL8x%Oa&qT`6*|W%Pq#)2-*E z;zsSzwFNG#GrOITBAYBXmxTP0jpx~;xu;7H_Kr=Cydl31(22xuL`eL(CPHB|R&UAS z&&QN9M13??VY8$ds7xrFC1~$ zke-ww53;s93>x5V9lZJLi0o4)$DYvjS>N<}T`UDG#a^tOY1&r-_c7kF>F;hUuRW_m z3;95usd&{iaIGYs-sZ#Wrp*KmWw~qBotxjCGYRFpntKNRkZrmROrh^=!me9OS;%K6 z2-R}Jv3|&rkFNXi11ocYcI#RY2j04^n-jBSpfO?{^7n;(6)2q#K8&Ytna5M2Do3JW z^Lf9orWH*tqG)(zo_&SD{xd7}+>#hI9hCbi6{IM8=KC25_}-8;vwU++l3kyr;1T22uQ@^cM7Ea2)lCrF zVpYo`y))qNTk3yS$a4Fal?N{m2Cle%?C;MLUlRQli)s>`{2Y6iOY2fk^r zUnN<93QH^^=#-ompm=LG7>o38f8e2$n+??)>>BlKJaRU`1IJjfbjllJiwoYpRlI3H zoIaO73^3`wIPZ|0yYRDIw8gbkx#HeUXv@FTJ=zT(lVR%k2}RdU00MOgRW(-dF_ymx$^6yrH z-bG9M@49AEso|551V0Z=h2V@HZS9zPt}zoAssx6e@AE7vJKz0SWIqW`t@Y{d6iTzj z)Hltth#$HGd<`;q)Dx;a9js6^iV)_5rM0<0Q((w4D4XlZJycEU>Kf1DETq_9-E<@V z$9e|C3}L!xJT_>2RW_JD&|1yyVdPhKKxN)!WZbkXj+ykcSkzt>j{mbfIG_nZYlO{N z$!e@>uqIS2^Wx%Kbz}c5V~bmJ=has|-uf-4Fq$_3AZhES_&2MS`$Zldh5IJXwJBrq zwJGU+rOWokt*dm#O(Adma8|rdUA@?M#!ZFs1LErmWvxQUu9D6m)6Go$p?RT_YocC8 zj9+GyU^D*VDtbD}O*-_T8 zynMvo@qYlWKvBPSS6EpHi-*F?tSlW+d8w6c&bP8Xmsr`6i><5$%77QJ?|e`J*frkD z+~cK9XWhA0wtE~X17zn|S?M`eRx?)GbM|LjSq7kZ48lfR+5S<|rV~wT)4WK#>_g9X zZo_>$3fHf2pE_pPjh~Tc(!yJnP5H?-BW{g~`=g3`s4cdP`lvE)Rb@OA2lt66T(83I z83%WRsZB`UPE)uwKN<8blKc1J#frZBe=_W=*BmFi=3wp{GPuL8`CLi-ef)o!&ZB?# z%+K33$KTYoUGp{2@tl$`V}zY|Ft-mi=y;$LI^H$W(R2cI4Ez~7{)+y4xsu_vZDjWz z%&Sav{I(N1Hk#;o@dW7jVOH04%sXz}6Yw?K%sFN-Pe0Y5ICTc_-E+I z03CDAGwv(c1UiByI!^0^j;SU(ZaV=wUhawx$Sk_+LbquS0v*G%2lL^X1|8N;=ooLJ zqu>PSSo1UdSa>|rPW|UQrJefaC_DJ8>iqsWQ8wKd?vys&e@EdztMFfoI?w(D!b!L9 z9hFb5%BMZ*9Qyh@rQLtakCEr)*W4-3%cn){hp$xS{^iHW@TDsJlqj2bxhi*VRQLiF ze(g_@{J9I^wCA%d3V*J`e>bY!->P!gMB(44@W(`j&rso0evAyCuENJhg-=%Dr$+IA zk}CJhDEco#IPGQ!@0Gp!jUT0rx8XP&U{wk@(Q->7!!rrO2UX81&4?o2KkZq%hPeK0?} zle&CsvSa1`!n*ttJK|lYy4(=eE;E&X$MrwSx?G2+K3A5~+;E0b7w5@?xuui3JZY*+ z(yv&T`t-=UOf=QyXjHo#X_I|yj5^mps?G2tI2Zq0Om#Vky1aLN{JK<_&;Qo_XU>fi z9lcF;dFY48x;*fMY?oy}%63_br>;9x;eY)Iqb^$q4CXbR)TO{wm&bp_x_J6W)@A>V zM&8#(waawn*KiNk)IS`R|F6LRFMg2!^YH)R4~Flz(%#x1>1N_t@PqVYxK#Nw z%uvrE>Uo8F4p+~^ZISmD9Eg&~U#c_rQ=H?VzlfY*9HA_AHW&tPazZiArt-YbV0vaUhjG8KPMNGx}cx@Calm8YR)w1 z51wMszo85I|74;+_$$&MEek%mp>z5@(ASE=|Dv-@{eQ4Q|1Dk6Z*2pu;p3yiZ!9z9b;c;;JaU=%e$Zr1+)wWf(zl}QDReJ7(tg+8-fH*A zyW+dk`91eE?fdrj0cGl&PKQ4+rS;+c>5cZhGV)n@C}b~Ns@XhrPrkf^;h&V37wf08 zCwTQO#@+SiZvh>mb6M`Iw8JO^d9^gHRo`(rK^p%yFAj~SwDg^7N`JU+W0JFMl1AUg zrF45#I{HSj;2HA%2l7qBI!ELk^^M(c+uPrv@9T=Y(U-{YssBagafoPF-^b1#Tg$Ug zujRxi@qGq2#?mc5P2B6{T%qUqm3?v1zwb13Z+?L)*j_NwL%Q+#*C-!+HIU!uK> z_>!L05$W4MYH#g+t4zNG@wSx6^xq@?7M1=_h~JbPnf@P$pQXxw3GsPJk?Frg{B{Eeruf$o-)FX8@f%hA4`tHfCz#pi-YjPIicXx}7zY+0QsqdN$L;UQh@19(X_=Ia^ z{9weVM1A*UD&k-5?bp%~x7iZle>8pDqyTX(qiT7HMSj0z*qO%nONd_a{V(7gfPOXj zd?VfY2-}LV+f8|mL)Z$0-DC>OM%es>Sb2CMW1r586Mg~0>6<{sq|cdTPn-Id${lyI z*0eb3&Oy2(%&#@w!CDXF`2n7dki~mU-)cz(Et}{pEaLsg+gp#)cUwHh_vZqxC-_gL zvGa@vY3Q5KrAU*5|1SKWg#YPyI`Ka4xb!#MEWXX>=#Z^sD^GAv6yLhCIT`OGzLO}w zZ;!bu$t?fy{uRv+nb3tUu3)Wn|B3!S5$~^=-p|MT4%7R&cyA$J^FLVG?rJN`e8$SQ zuC}t81je=otZeuiE6V~jt+KKP00ZnsTu~KpHdvVh`CJDbA`Qdq!N<{|h0avrKH zHRhqCaps|xsClTSGcEJH!F4?nzPrK zhepkcorh-aHRho+X2s4!Gxi$u(2!ZN^U$=t#yoWLtk`+z^1a49lsYSR9=d3+F%Kop zik*kX?=|M3gjuok(AkK0oWMNv8{i%6WFBfQiJgZA?=|M3a7pYu)PJur57FLh^gPsi zuQ3mOSQ0xAb>C~uL+_Tv&O_}@#yqs6Bz7M9zR8$}{!|h>5B;Obn1@~}iJgbOY%=Dd zXG>z|p)U~Ma02ttUf|VqG7nXk#Lh!+HyQKL%97Z5XnT_}4^@=J&O@&?8S~J6C9(6+ z3r%t!`dvxvJoF6Wj{M9#^oOR{d8no-b{=}TDRv%O-4uTwy10{hC=cPKUCcv!ZjV0? zovY@d(YMQa$aQ<{JT$k-n1{4B=xU>4=b@`_?tC74v(1=?o^CVdp@-Y#Jhb&^=AnM3 zc_>=`(Yj=zqm~aM8=GlP`om(@y2Ui-Y{dI3ruX%DZ!o=A3*lcr`Tl!I5Jga$vTll?&!RxQ-ESRGK^$TH*#-=q}Lcu@ST~#lqxT>BIK0{c0 zF*Y+y^IIa_2}f&jR@|JYZNH<$UzE4Hr(au`) zd^feFm+19rD@uso#a#H!gI4-R`Dc$YabM-jo<_bMxasP<^n3B&zXUQOiLv%}=1%bk z8V(MzvXWcn{*LGmpUD0|y61{ay+2F|pGW-x?|H5&(GL>PcIkb5JY%$vi~ivf-+T{a z{*g>Mf8&?;e4;TpZGfMCkw&*LtV7bJjDMU z@x=dmek=10WgUBK9eZQod4iX|XC=?RU>%nHGHVijWD9G=)E`V3Lw$u^Mg92GE$S?` zOZ1U=K2A#uW zav!r1eZ1&e)|wI3$Lpi|xZq{6ffwD!iO$hfPY=m7v8VWzxehsc`5q7XF<7^_8WVT6 zw+s1}iF942LA!6E`;R;_JRSHX`y6UKyrbHI#(`%tBxk7{2QJkX4zvY*&t07PiRK5& zDgzHP)wm~}@o*8wvYYBz81Bi~>*=n6+yj1Cm7FA==zHk2*G~CmsrM|AN_U* z`r?NU3*^)2oxC3)x;!yXo|paDa!Z9~N8WTlu+ERXO>cJ8@o;J_fB5$m8ii9?9sRuu zV`&rC5JRhlY%ReWjr?^jtf;vZWlt3MEEkEpi0#Z5qA)6NQ)+BI0;#gUMdv>N`L7!% z^RL3%mWgv5Ma_Yv3fgB9`Cp{+r!dODAWr_dl>hShbx1%Nd1Kd!vmCkI)~PbCX?Az3 zxM3yFYj*w7xgeyQJUmuv03uw%@YWQt(Xo1%5Rs-|6mxlTs?Qe1}i?QsqL9i#yPO?*@Ik z|MIgz`M!_x?p2|sD16F`12>RlXChy@_B;t#yFaQ z^634q?etD`OZ}=a4&C&PD;IsISkYY#nrQx;gFLdlME_OcTkt;q04W_3t;^ zN7r)w9`gxe?(~FbQu*qR+Fbg!vnszN&fJ&no}}#>Qrj`dtiM|FWE|$e>`wK!YQ7Hr zoOqaGvYp-!+MT3}KE1I;FEb}jnJ$z`WfZA$7pgKdP^PPkG6~mQre0Q>8q?1z{e;f; zmyR-Y2c4E-@#^oJq}i2zy9a&f>Z^@<>o#J0YQW$(*&44gaJE8sdL8AhQ*-ZI;x2Gm zUawC0t@FANj4!X$i(RfBV&63D z{5^t?SD+vD9PtsKJ!-Acle1NP%DEqjc*w{BneMebqihNKav|wo$q5^lXwRI#OtX=$ z3z^^jfhAfl(q*|OY00F!_$sv=yxXx>B>gkZ=@;^J^?cTv;Hl7T!R5%yBfdEg`I!94 zfKPb3lXyEhoaOAn>5lt-BR&!IAdlo+jFD|aKWxVOht`TC_9w6BSl5L~mgZpWXV)wxRn(y8Z3#BXYCW^JM4hFFyrOEhCm_SGzvwST7c-|HZD={V)#u z6^&jZ?8Ki#2h-1DP?_0|Ntz>hE$@#qw^I8d%tby&y{dR0gi&9mJ&PJVAxqWw&9Q!f z%xi;urFNmQp6-%s2)j#-a|Rt3vWnWd+)*A%pm{=`-Ge-C;7P6qo(!OGrkmsKuK01J zOD1%YwzGJ%T%_+alt70j9U&imiSE(Yb+nJ}hfIKcJCZ8bH8f6(Fb3RgnDG5L?4z|4 z*2HQ|j0H|H`h>TZf7>@tL@H`#hC7(s1qg9A=y3_`DgZDPHlRZ?S6=N>6VXa8} z7roiG7Mr_2_m=hGz1bgIXpW??1b3cB@ARLZkQk8T4<4v@{CBg>-JQn!rzCrHxtqc+ z5wh%w`{mswMz~umMPIK)co6-2%M2xNJ{$QJmG83Eiv6S0AqVI?A4QnA=`1a^JL&f& z9<)E;v32plTQWx~k>PU6qt*nrcm3miM>=;ORl6S6zu zj=q%UJk*cycbm>4M$m`)Z0QrZuG95>N?(JxlrG9lQS0@~z+cKs&qtrDD6F`P{PPeO zh~l4>WT}b1=sc-SQm4sr-*Nu$zuQ|gsV_dev4!%Yb%l-2=^1%8>vg7mq!Oobj?Zp7 z$9Lw)$o4v)}RQ%T36zUQu% ze!S4d{BC~;ay7KrwK!yTRfL?Zkvm-Gt(_-_Edz1FiA^ke|ffZ z+xf;mk=UDb)zexhY;%yGUtb}!GcbpcEzx}+<`z2Z$|^LPv*)1?xJ*8AgiGtOOvuv| zT_;fMu3d{+>u|Mxu&H^O>Q{U(>R0B`Mw4EdO7hK!BiurYSNj^n%SiSv0T12;J^clb zF+aUdcz1v{il_gSeg@{n`;oSrV=3rxi@mi?Um2k)z9t^IpkaPX}K#|~8`_dmou7ln#Eem*>ozR{EP4W!lg<*A+O z$d3?hmP2g`eVE3Lqs-6kE~SG)mtr2zKwZVzW{gd0@1r$zUq&r2_WChb`*{hV6foP<$ctQ3kG~alrajEI zIT(wDl6G_d(D#ICT~F(1vF-!iR_F*ZYc;j@8&)g(0C;k8L#q7d579bAg=3vCpu5r~ z5B*5{uO8yx)B2k1>UcH|=%e$o7EM&?_Dz%P(fQL28^#q;>rwK-%vbA9TC2HDv>bm_ z($YulzdbDUTw1&9YshGt;;oU1CY_!ZtP?*$83!Cj8Jx~=_BYV%%{ZWGq` zViP3alJs&1by6;s=|h<$o2sY9+Iwb4?S&KmNE5HNC?C~)wSIk)zCDTeT+f?37{AH8|mDo!AWBNDDBWqr$JBc!3T-^S*C@DB%lwB zB3a}UGMVCl-xuM+7r5a32a0Y=(DOh*owN^ zQMUz;u-4MkNPm=TCh@IF=&QjgtaXov+Gkq$&ybV5NZ;y5d(GfaC;IB}#9ChGmAd%{ zpfgBxqONtOx^4nJJyczLgVsckFO;nG3o3sT^!V#-&@-U(Q$7u*d^UB|cUp5Fl}9@A z*yWS_qP&@79oO~r;ht5z8FfE7fo*6u*F6|)9{&iP8wG8s>)GTBhWeGIVN7&UKf>{( z#p>)tzgyvCXV=o6h_KnVpf3!^d!uiXu+1I8dj{SiyF~m!yps>pVe}JvKZ^G}+S_2$ z!;?ual}X-^j3-(fu>M*A-W&uU?gd}A5nmwt8antgy?K`C2h+p1()SFjpo@Yp4T3N0 zJI<&LFOz&Jg-%AYo9-g`0rOd-Lw-l_9937ch1jF?cfxm>_)!F$q@Tgb0ZwvPIH*U0 zcS*-yrPb}%bbY-KyDHola-@aM5SZ%R*wLq^H&gvyXm8&@JfeO~cO@J~T`ntOt;8F8 zKZ5s$4e}jx>(^A~;i}m60gXKxcgw&(>i_lx^ev198n10)Jt5Z&)$g{q5)DbZ|1aLD zpW8+mI4jl8W7myDV=At0xs@VWG7Hf~Qt*k!H z$`079EdLxU%K;q7#@Ykm?}c>>aGU^F0oE;m6ojuBWo5;au$~zu_i7JcF!HM!(v85^ zfO91ecvfmIR^5`(;1jkQn=cqXx6G&A|N|Amxpk~iX?Qr>@Tg-E+u)Sb>7D5-bc%=P4 zv6P8@XxeYe!hA{NjqX0N`IdHkv(*6|@Z)==PPs+x{fYG8wxfhf%MUqv&utD`g5o}~1m^22Y?v(A7kbSAQ4S+tk7=~W`Z&U0qPdaQ zIQ_|w9OcSyd@k0~TuVFdBO8J898RKXO7kJCwTLF|4$wq?AS4@*UkcIfl>6qxK{xF` z(B3lTnTWcOUPXD(THfJUjk->z{qEPv_D1t)Hk+hXSh2pMJ#29{d9sG}^8i{$lkcAH zvq%1VcHyr_z5+e?i#M~@9JObn)7y>Y4$4ka>kPts`5uW!;Ut&Do#rT;>>67xjkJN~ z3me#KPW^z|nrvV+2YAaSX%>%e*Ip}h(Yv636D_wiwM!o(pY)@?B#v%R^SBM|Y-iF3 zie%?f`W~52>cG94+QoiwibyMMAhuN6k5X&oIO{O1BR|#mBsYP#!3MwB4;v-yWNUc} z%5_NpuV&~He?VR@qdvkn?Wp*kPH{8YI2>g2LpxYAMyH4lDRRO*R_3a)CHfIC_qQ2gS zNm@y;M@0SfXE!lEWnJeZAF3<$!5=JgE}mC)ZA|->fZue-AK6`K?M!j+qg|R%-(tGk zvC6O6Aph*bcWY|+x3q825a7L3yQXy7t}~mjQ|$`L+gyyXmJp;i+`!Wv$hX0Pew8ZX zFxQU4cpXAx47yyh595XID4Vs8wbI>WK9^kcj7J>NWTppnq=KG)mx}RCZ+dC{+yXjg*Iz1geiPfN6nP=Ke0mY^KHAHCYbypMMLmwoDC z!RKD8PtA8xUk^yXBySbBdOr$3BfjsuR;(vk$NFzA*KI9%rZ6#gs`nbz56jRGpPJ8F z*NSf(7dQU}^%$%4{tUKU8?;WYfnP&-x^n~15cgY6X?_{+4Ybtso{YXk0<%sCa8DX zZ_R*y)(i6KTp`zHVy*OGKU?TQtt8|}oS*DLVcLh$_XYMT+0wK@wo$6cPvS6Fji>{C zFWlC!Let-^QSTu^8;$9i&7V_W>PTPB$tOIKNq;qck6^)j!WXXD{fP2acara;Upst{ z+~=aSX{h(t!mo3YMrV{V@Fbr?3)=p_=!x=ZzaRzSA+nnzeFpmB2*{8Wj6FK%w99T~ zZQom1;{}m>z4DB&yqjO_^{W0-s(7(#1I_W$7tzlAiQ*nllHVoNaVVbfuK!VfXPv_4ond9!!souKV-HW*uW1iY-;Z|rIIG)e zr@m(~jXkpamR|F}OHbcj61HYq7wi5t$SZ;M38PQ;OKDis?+sS&c*D7>znxVj;yv*V z=3^-htNW*+pQb~O<%;oxxkK&u{!jCY&WHAg9C|xJhcnJ3c;w!uEA}jx@ZW(R+IACk zF65JQwXEO&G_MTg^_9wtsl2@Ayp;U$M&-%WS&wP6SZg|qJ?mjrdRZCre_!S=&P$}B z|4zG`wSG_gU`4V#&o3x%Tqorr|F`x0$KS2WD>C#0{mgnM$bN)AEzSZgSN@IzY*@S5oXa}&?Ih** zoYJuB0PSt0I46b(=Rz;m8qW1%4_EYg$d_YlWmt3`WlXMj2mMNAXR5L@91(Wa=5?z4 zzmh&@wKB&M3)}K9%m1nk26WK|4|mcAm;Fo|e764A;e&QvY#Y@4OdD+bmCD|6UHmpU z$J7RO30Q0Y)52W;lx;wBu5OFa*E1<%UAd}dIIC(&D4Q6vdM*NwrZ?NwKAcs|!E#S( z7V_@y@`Y^5-a&R6djrO4LqRA7X?m+Y6Prpy`wc~FrJb)ETZ=iQ9C@avy-!sutJc5OY^> z+6%BbcSfw8lGs(vdr2qqZBTm`MRXth_qVq% zr+h0W2UGEXfYl@Ib$>&A71_s}4V|8?3NW8`iaNiLul&feF|W~+`ggX&$8!KKvyYh? zpFZ%(^1#S%tnMapzJvPAP<1ZEd|r#*-HvJzR@vd(UM2cd5_r*ndF?mR=VBbm>4!40 zcC|dP?VxUNB|WygvN;wiyrf&c_@?TX?uTx^_vj&ZZ`C)K+`IMA>GuvhG;I0OL*%!> zkT=7jV}KDE5^P{$riS3CmE zM@{v;l%2g7(D@w26Ra_or$bI;KxZU5{>BiRHzw0s zV?=qviV*3A4)hr&bZI$Xv@K+`zqt=x4jukv@yEPcn@Sx5CM62=L)3Cx|xE`Mt(s36XEl zVDQ|R;1&0u`@s9@-C3(ndp6dP?}1m64p~mVsv}4EP9f(dJqtVhq&+leiaHDbQRGW! z{lp!F&PIVl`O%p_dhVh;gk4Ow^CIy6)j6NNQv9RhKk;5)-(c*3-sDW$qk{aXbds** z4kZAuA%V_B1jDPDCDaRT-=E~2cRx?^?B~hu{X7Bd;y#$yY~CHve|GS0?j4w~S7y^&yD#LbDHGaQXY6%`nk}0HIFUT@_r}RtMa_1ngdOJrclwn=?6(SeTUc;rOQ{w z(dEz6ea%h#6T{JeilWYYFLXV@Kc60Z-a9YO8UXU~(@bUSr?tYFH^{Yu{yqZlZ7%ZL zl4lZWFFD>B@D$S-a93UAT_kw_s#5IjNExi}>F!bcMCn+644Nm;4(jhGk(DA@2`)n+rO@t{waFh-ZGW{!=0@4A5?w;sLr>tw&_;Zc!`xcr_1$`dF{2b zUG8CTf_`!1jdERRmg{zXFUn&&6XKP73$C)goODKNN1wZz`@I#M=C6Tq=dEgSHk8H( z`D^5RS95<^HFtZY&sHYu!M`Pa(;@Z9Oso-{2opZjYR;fG(a$IAX9JA+Ozz{k9LAnG zeZM;%j`?gsN1Q+4Cb=fZ;?%I&caHqgXnv-;xx~Ih?3^sd6XxZDs4!DMYDss=xj^h| zKt6TsXEaFvaFSPY&uNO>pMtKd%XHSTBBaao6e>GPmfyAj>x}O#F=q;WRr0*9wd#{F zbT{6ig%Yq$vn@o7*!Kj=!*!AU zex0y)te`pGxteETjW?R+V+ZvCaR;sV9*;azz5L5`m(0s*$_tb1hD0aU5YW{UU2DGV zL+70^m)pt~al5BN!#Eq@a_-}$NL%c!zT03DL(&gH0%zebq63o?S&uDMmGPX(dky2M6(d+Uj<|@D7UKj^1{Y)?V z3AO(Qj4zu1a-B`$T*r8fYaJ&~=>1a!F4iDl6CUA=HQ|trFrD^5>0GtqO9J?Ub@YaE zF&C@}m4*C?)E4B=>ct#rVKbX)zn*;k3LE^wCx$uKd|B!VBmx&}gmuP6=6tESkuii!T98FCT?9nsbdd1o_MZT~sFY^kgr|AP0SSk@l7$KOKuX-NiwB z%n2$F=)xBPrcwPbK>Z7VNBv)~tBFVHG~bs&4$lMRV&2#B$ZkOYbJTqK%Dt?W%A_zV zi^`;RrPRL{bCmlco-b2;VJN`oJLR04^)Cw}oq^hv^ah7M=HyyZQCU#?slcZkXD8}_&sF&D7Lz)i#!zJ~P0G%CHZM9129|M*C;Y%RC?tw0} z2Xjgvp}SS7Z+KbQ)MgiShXZs@+Ck+{4kw^|D*KCe`i6$&8`dHNs+7IxGs0E0LWWpR z86xrbDt#kG@$V+^FTo#Zpt<|tw~_iK@q_eKYFE;m=)8`uTXrMeGNGnJw`5q;OB++H z47wa;RI0pPrgaVJkR&_%#hVw-S#TJZrd*bQ{mku+`mw zelkt0b1Xi&M|_4D&(p-ctQO{=dI|k7zmK#R2%l3EO(ZXTw0?G3HJ@tdro_qpfb6mgx55{}TLf3{%}TVIzxd z58bbg^a9FnjA}D|?Nw^>@jTPSQ}g^mw%4M`wLD&%>1U<&{IX4UII_txRlc6rK}93& zS5O)nYx?}}s`^O!wy~?jWM9h!t=ViX&vC95`CFWxPzmWPPV#|}X~>q`;Hl*w3;s!c zAj>mJ(|t(m9Kx4F(CWF2wPr<~m85*rP4#)Iz`%(<(^-si{;bY6W_9pqy4d@m{R+D$ zh+(v=Uy>)7`jVh0Al4Et=bPMRswd)`v)K}!19+Ow34Cf1_kfTuO?N=_cw=h3{hY3n z=jvQn5o-^Vu0r}C$%KMQ@@!K8a*br~Sr*b$riABPFy~|JBw%e4axSL(s_6bL?f|3# z(g7I&Cm<6r9FPTY0hnho^kl48LRhZ=vLVki9Vj0%DWRbtw0k?&87V0t+Mnxdp}of9 z@VO|jJDzpUa%~p=+wuQ~_sX?yh(Ch$ugweH@2}#+2Eayk@ zYy+@V-~v(r4nW$Favt(x{k*+AE)CsK&Pl55erJ|zM-phiNtXR3{%=M(Rx10Oa_u?K zcK$~|J<8pJvbF-Yfwl%b8v(ljy8%sreV}PSpblm438}Kl)&$;9IUQw#-?X=II?C=f z67_`6=mV{Oz^RAIH4o_Rj&M59aKqek?G?~NvaGbZoEMEM=f$X-7cd(z53mqWIC(pt zcENUj6`%BOaJ6y>MVe2DT7omH;YpNcvGsNPhr19kRK-Oej6 z+|HK(D#w)b6@ANj6<{5p1`q^n0&E8OZY<}49jNcAv3!0Md?p+9I`EVDJW6lh-Kt(D!J+ zy9dTwsfM;g`SVcDe858F@58eaumVtpvI2On1NcEh4PZ8Co&&fIp!2`%%i4%GpuT=V zg6iut%e8TOUk4wu1U<4H<^g95@=R%v`|q2OXC3I-jPmLMTLIeu4S+_#F7RMCo_j!N z6Ceoso*25FKRI-J+`fQuAHGV_aWQytMS{^El0ipLMaP8*hr9~!NBN&4ufG98pyL3_ zY5^R)17jc0BY>lTHUL8(u%Z3!Q$asqUl;9igvoX}&D1VXJd%4+yIfwb*%3a9+68Tr z2s&~xmI?q)jK55bx8Z=S$>;-kW&?5n?hDW#@XQCKWBg?_Z|8#mr!*V9*ms)IE~{0$ zKuPXsmk*h0mn+M)Hw8VCAKw8d^TKl8i`oT!B`v(2r(;ZHpuSGPa6lHo1;_^EfET%V zy1|D$fCJ;9AI9=Y7sj>=(UF95&O@E=hYY}67H$O1J0VNn1nfecccV^w08M~>fc=0F z-~gZna1d}9bv^=Um>eqyR;Nh5uND3qQ^EsLRuY~$p>iz^{}WKJB=omT^#3dXLtER> zrglIIzyU}DqysVlPQY+#d$dX0_U-%_;Q03K9qnCqAX47Z{ZYh2YU?sjx%Lm@xstIt zkmI=x+oAh|SCHTNfC7LAPzWdj6az{Cr5=noz-9rA@6!`R-pVQ?LzXWDuVP0-K^DTQU1FsY#_qQ5Z2ukb`rw8 zmRj96JxpP#2=h>wdhdz%JW8kDlklDsmBxm!;Rx%c-WlFA@ZLkcxBZT_I-=5ik1(df ztSaoE2s@l0!}PqqL0BlkDE}+GHz}N+D(nEl8daE%_XWbXsIWv8_9?HTTErzD8=sd#^a_-Km%1Ky7?BYq>^TkxKw-q+)OKdY7Y zP}L6t2;0qMopij15VlQ)>AYBuu+1t=r?&!OH7t@JzTe6H^rizA)&STHSO=&C%ml$guntfOm=7okTf~Ya7cd-<4zL4`Y8KW4*az4J*b3ML zr~)hmlmZIrIV#Q>Ot(CP=}E2Sbf=uSpG}>8mFFpaEq3P9?02D^kUqs-Vb}p&6+9j9 zbiURJsKU7ZO)=T7ecC#wPpfkHv~-3zaaW|3+W_*;+o{bzVr`y*@Jyr|4#)yb=oJhP zET;3q!7!EYa_{8X2+slJ;{Sy6eOe~+%R;%s)twQobL2Vh8YjRd{o?5Sn4r;tIZWNh z9B8P}7NWcr&I+E7yensbW>u{)pTUlHmxGKBexC^9U4v;B5;ldPlc4t`h!==DY6b{z2iVBF@>w+6>Z! zomk!#Q>lC!X`OD^2Mk==-!D|S-nh5{%+>OIjBZcvxMNS)lWB}f8@nee&ZcOgck*}4 z`EQI#z|p^AJOXzA)zV>Oq57oIdR*)?N&h%~&rr8f7-7t3>~29c5O_^RDQha*rUw-qn(VG5LD$?uTl7uR+^j zY@W4P+?hnTa8z3>Yg>kRK!;GL%M z3W2BhTiq@;pYBH`-!!khH-&hfQMQJ=t1!ROS!pE`WxL8ViYbck7sZ@Q4nUqt+m@?J z-hI(MDn0dEx|3Be@AN8lpMokYqhSp<r%K5gu=(s>D>U*a zBR@boAAZR+>F-}f_8YfHdyvkYFuL0ga@(`M<197{uIG*_I-}?3)07Y6)sR7nraO}; zj_#n^h&9L=o=M_93-O)D2gpZ`?wbz?+iVWqYeRknRdnCw#E_L;jr`Yfmyf;$;pf+j z{I3qrLjFnOjQkXFXGgZmpVmHl-i^pRo9<~Z^J!SMA3O_$z z-S;$6-S?#5VNdwMhZ+AZ|@H6PLsRQ{lY z>0GxdZ=cG02A#!L=i1gHZ=aeQDQ_S0rG5S+W}IoIyK(wVlXv4JD;xh`k&fDi!fH)t zQEB{C0>2yZeTbuX@~_zre4?AeXdk~jGwvrU2L6wQs3U!IOzP&%F9V-=NMWzE8{c83 zvz)oWKU7Hf90tVMPNL~);8S~2*c#xsjgogb6pWGgsh=*+$Sjug-j$g5+#qUjzw!>GcEcRLCt@2)lRiFowq zLdhe#ThVg?#)tc%(8s;~+WsQeS};c12>bj3y1RGKeJbdN-mcD0f85)ry^TCapq#Uz zd*@z_wGxeW2c1Ed-`ybpq)g}qpIwPL)Zyc4p~ae$zK!FyewB^?Y0zEL0U4pi+>P*= z2+PKM4j>m{vk|r&Vd)K4?f_&st&lm3c?qC2MD_$LuM^+&C~W=`blcoMjWzhVsMmym z=zD9<@*DLcUmDaO_4$x+R$rL8Cx?7;-2M;LcYJmfoGNt?#uoJ}ur5x_2jJO{zTZ&y znT_RsVq+`z*;o$1eukBmd~A!5No7$o>DDNjG_>$PFOyzb{-2Xcwafo=GO2R;e@-Ud zzWl^w(l=8hWm4Vpu4Pj5)JU0Bv%G7Ww0CNxOsZPmwM=?@YNSl^FOQT-w$V~1Z65pU z%cN(f#+ON(rpA{^k4}v*lh#c&WKxlmNn?BYHIgB(OlPf|$4a@>_ZQG^kCIC^C6~tb z@`-#OL%ze6Z0c9^{}0);`E)}zZSJ->u?~P|Kf3=n4RWZi$;OU;h#n4Dk!fYSKCm%; z9ZoW;%5=_Zq4LSBbQ<3h($9&JKjF&P+goXj7n{D#Q;9H=DY>Sw#jn%;1$|T22)iF) z*COOO&l7h{X!bI4YjgOXG$7t zegTc=#i4O*92!T(p)m_#*(Msz{nb#x@=>XSyvmqDcd1Ql{(U4G| zb^3C0WSy8Z^4>(Tk3-)?Nn)**%PKVcP&!*4f{e3j^1BI(tqHDEwVouqTtWP|_91!S zTbvW~gnJ^)KH8tyL)i5^;Y9UL`-_R>W5C>+ahC~w^TZQQas~SWr{A5uDzvLm?unM! zE2_-os4{7vGtoJPbg90yV-9_yFUefJyeoTFXc?&Mxc`G?@=<%ay6-XhfcoE;&N+>4 zpJP|k+vDde{!`I$En&w-&!)phf>(Wq$@S|)QMc;w= zQ23G^J*$=@EZ?D5)}U%SL6_1d|KY(M~I1$s+ehRz9!`@K;XrK9tP`OZdO;Pi|9Z$BqP-M#AgZ!^dl=&}1{<(8$ucACedoIE+sSG+O@)PIOJ&k;x$IrJ;Z)|=Y zunll~StFnPfIMGHcf>HyNAnmo3hs4=ducT?q5I^5@eIswW-p}8^y;1l}Z@pn> z^Xq_ZfGncPC3Q{aUCBq?CTTha`qWjR$qSlN?v(Tl0q$F%XN;o9(bvz@0O?~4J{`76 zdR(Aq_=A#1f*!@Av{TVHrZ)2IseV4{PDRg@H=ADvYy;R)Mxss+cyx)Pr)N*UHX8Ko z>nZNs3(wA$G_^s0O>r#IE>$#@rTO_h!2E23rUpe*Pta7eGM1)!nSNeX*vJEge!gm6 zEKT9%ku=Rv?RFV>)Dtun^px$k`)oDb1lV`B(QZ|Wrmt;mfMcU< zx1=i7ZoXi+=`^e-W;OC7v;6$qibmmUZf>{#S}xlyNwu5JOZSyay1J!6#$Li&x8-6C zE%kTIovw496!|=lw1WouHH&MhpfC3vKhN&(=Q;fip4r$EZH5|8J3!++p8@b*S4tGW-ZSxPEa-A3%QifkD``V%t?x(i zt1Sa@gCN((8~jQ^z2;kG|2<}91NJYA9QSObpJ&WyGhv-?-ZL>y9&F_I0elat zwpBtM_;f4_6?d7a03J@4z@ z*FE=~`#P`Zcsy|AwuU6Wn1=a?|7+82AsH^icI{Ze8q$z?r_T7ZduW4UYs%7gzTh>G zP@==jIdRj$yx6H*``7FqTaRthy`U^SCXxlmQfXR5GTtiV6~6Atx-RE>YtkUB>XTbd zjSmhtAx#P+1XMv|Bb4(tH-KT@3dT>x28f zgjEk+Kjhxpr#{mVnk)MVHkHneh#o4_i#4GDf_%{hBrm`*l6PTEp|C3DX zUUCQD+8#pviQ0vuC4Y8$EF93HGjzQFrU=kH0p(SEyq!Ig=IkFjn(h6W0Ar(vN0Myq ztkEL*SfJ_W;-<8l=Bgl}Gpbi~t5)>Xa+@4{b02>HB9tA_{30y>GY|Qbb*>n$Rb^y8 zgvw}6c64|Hxvk8a+&?MZmwvN7ZphQ#^kBt_NnWTjFF&@NNk1g~f*M}FaUan?cg0n0 z>Cd2wbo$f7<$KSVdU{fb+7r@eHKj!!^g zAJ+Mcmh`#TiK%TrDkoS12Wkl{9^2j_!lo})*WAO38Z+S~DS_E~ll9(DbY-@*wSGBy ze-u_aC@3hs*+lY=a@3X$nDH{CQM&O`z9COlBsl%ic3^kc_4(@|BYG)yNtTZ?zc+*z zn|ct9C0Ld&B1G^<;nlGk>qz-QAe2N$vymbuzAq}P2dA_XW*cV zRt#H{{|!#zy=4O@b(&my{$Z&t*2*nby1+|r8ba3R+dHn(a^+u4M;8avsZ9RPpcv$@ zx=>|T1r$vB;MH?9w51q7$-0zo#9eL$b^ckc^IMuF`hOCOzxwmGw5SysL z-hMdf6K23FjW@8>Rkm8~h=^ovnpH}~Bta(ThSLOL!sD=k?%}fDCpMA%zFetE~4H+ z5Pr2aeKeXTE8*!Y1n$|U-xVPXoj{`i@q>7Vn>Si7?ne7R9<U?m7G4+>s+dl-@B=ow@;9&8A-53`w8AbgYHN5ZA2dK0x~{%`GjzqTO*%=J z;!HQ(o4jJ?|FJiU#ZSnB zil02wb&KrqK_JvB*WxGF^7XpC#y_s15uui$^vfjLp|ihT(N{Y4l^Jb>LKVW~4|J$@ z2|Zm6q0)r`Emt(~D;&$z--Fhkg^V)P$h~H5osG}@_F64bS;oVx(D7YpHK1f_&VaJ#%9h1`*wV>qI% zdnOdBB$uBFr@By9;5iI>3krI76nb+>4d z2B$9qm+=OKWJN6kiSCT%^mE8q3RvKPZlb)I?rim$tjE%}RcZYdyiMb0$V~r0&~*<+ z$h#3#f|lhEA^$6Q@8v4ZYk<(K0*~T5OGM)%ib>OJZ-L_$#;uB9m6_?sVxOA620%YG8wWs&73 z^A*at^}XC34ZnfFWx4xhz#C`h{@HreFp2t1{8hz~)~QIyHEUJumBtgP^Ql+MQnwin z;Pp}1^QeXrfnOm0bB8~j(09u~{hJ3$R}ob>3wrq(i4Hm)f-fy6+keY=A^8uEG}eDK zLen#Fat${=P*Y#vUJM#_EsO_6`EhwH3{t^HQ_xCb7|uJ(tWW1H!h&c$R8OzCKi?qo zdZ=zwg&gqZSKfLAc7F=-V?20Z1S5uFFkH*v^TCqI+shkQM0rO#E{hLjIxL{L|1Nrh zpVKtyMo~d>9O^I@9j-gf%e6X91qkb_^T38HqAxaD>6?xwu3qf&&s#1RnNiQXcY&yy zoIup_V$t6WXx1-B&eD~Xzd0{lN<|(|sL>Tj_&_u9pshc}k^bNow?5>t{JNSyW>TWn zN-?q&J-9Qgs*oVi1}<@|4GbxP;04=IQ%BcN+TJJ}O&?jF$Qvm{mN^_HifWOkbk@HAeEbXtxAo1#e|KpRLrsKx8?C1ud=G`#{*9l2e{7O%7afR44MPn*brvUO$1o=cb=Hw2MXKgCO36&yEW z&5x+yHU3S3Wrtmra$K%)eb74(O$O6|A|XS}_#gR~(Yl9VPx#-8Qw zfcJ}94SFlu#ICZVtRB`VgHbIGznHS44J(@2lJ5IXx@FeM-Oa|%UtK+nGTRu}ZnyY9 zxLDYXu2^$r!dX8~mnaJ<+l`k4Y?C_$+@C&OJap)14}4WWK6iS$p2lq~@5{cZfNL$v zS4e)j;8=6lGv4!(dgKhCi^t|!?QAcydz$vAcnEiG?{k?nd~<&S{^fGv4_)C}rSR7| zUJ=KxdCiT-n|lMNBL`$T-OSu#YE$eb3!9^x2ezcw_8^zWv8d{$1<8(@$yybf$hSj^xrA#qOS=C*0hJY zpLkjZM8EH7`4+%bq6xvXn7WXTNpb04<`8^OR=LIlrL zT85tWIKIkdbBhKfoaH*4OU-#h!p>aB)+Q8~GRgGg#^2F`ArDt$g4Fs%RWE`B$zDB; zg|GY4dB{>s;Jd5Nfv@|P!q57RF9LedPc{0M;?GhA$u2$EMvXp7+Id_wm(~fElNGG6 z>iUzpwpDv6S(%5P@?e#917!!>qR z%r$o9awci)71DNE?f(NMmmud7>_RWW7>AH{<_^7C&FCfYL$cKr3|)eU7y8qeUUE1zm+Qe%Y6M0n^s%zHEE<4@!xSUPs z4tQ$1{#o;lm&Db9A8z|+HFlQmDZKrBJ?XspJB7~(ZYmYeSPew&2bG@o4E->|6h3px zxFe)3ekVQO?&jd#yvfI~C2psP`9F9XhQWk~1JT_|W-JRzJ2d~mfBxia2tUJ@6s}op zKH;i5`*Hy)gWY>!*4TFc8Dg?yyQ+K@;|zoo`JB$1i*RZaPf@zFcCL!eh&MsM5qiI{ z%=Z|twt3*5c=q|Q+wv4m>rMPfK{V{)#|Z6IxYYYgzkk+h&Ux~SR-2aLKL30Kzds*d zjXaUa;J`-*%GYVwjd)8vy|H+1(z*2E6!}Z{3bN{N`UcrFyD69nFSB5L zB28BwJka&yf{Kf9GU2a`N~tPYBD_X3ddVAGF4}XtaJFfN5KR{)S`6nMjUyGk`>z2X zbQ(7v){l&NZ&=kCb;r^WClrcb_@=+>UsxFMAO5NE5uPMrH` z|LC6FRpzS}KN)?M)+>?Plr@Ljjx-iZ?;VLMyb8MDN+L5@>%UX9e-W8W2bW4;p{_G0 zxGDS?xc=+{+(bM-D~a}|%#K`7vkSX_;~safTAn)Fo_fA|oNw=^(x|<>l26s&q8q1H zrTAS-zqkxsA5*c?d{y?Tp|LLA9OczMHEfJhr+;H%Ui~q~-PgZ6=~Z1}_9&BjOMr)>9oajoYzjS6b0a;a4=B~{X- z0fpTP%rm6fDwR*p@*ycHlbB+>@Rm)EdgpP!MrCvt{Jf3+E*|&pPjzc%CAr1=p_W_+ z7yJo0-Op{puK-F%TH}qXsB+h_)6bT*B#c<~u`pWTC+D-M*$IbAS!ap|o@7BFNZ`)I-Mcu;Wh<+iba^P)&xgXA=xb??0lSuWx3C1f$m-XgLWy^$H z$k9-==|f1z)=y#A8NK1vfr*2^SLA0%)O&v_w8UC>THNG(to|xCPgi#b%AVYqu+@|> z_riyYOq>cKu3QG#i?vbZBQvL;@1}71x>b>evL}8D@6CL!@fZ);FwUJTR!Tlj>Q}F5 ze(WHcJMG%<*t^Rl=4#=+Fj*Rz^nxd6|BLHxoEcl1GnGYZg9WN=Z$|Gm0ikV?#LN1x zA?|X8A$vZP-|V%{H5Bc;#c%yNsT!{T@LPB2bnW9Q#&zKo*6@?mXDaDZdAUsWxmd|O zUSzylXZ;hx7lB!y=V_yNY56FJqf!Fr$84&iHAx*d zs>urX^|^>4u@|){ved+BhM4R9%))JO!sgu98v4zbD2AVJVrtiR7ymbr#azfeU_NljNsVH8NZKP!=72#w{3>2e^~)6rtB6(Sl%Aet@BJ}F4jl=-JuqIGg;bk zcPFhN>k5*c-gG15R#oy_vaLwA@p!}i(#^k?*;Y``O)AS&|MgS*t*<{9&U)R5_X-A> zr7W+*D&#@Him=++D=0m1al1>#m*Gg9f6GCA+cSs$B-zj2hrTU+NTIr3b2$&UDAT@O zTC_ik4c))XCF1RJxArBfmfzp4d8uP|%e$G=sI3kEj0Ppd4|tazQ;SUa#vXgTY1aJm z$SK?Px(lqHdfR0wYS~QM2Q@=47Ic1zregWfTBL0#?8e~cA|>L^$YhsS4KNg z4>}q?DF0ogfmmN>5p7{ z%>7VjA|p6bzw zIQ=BXTFmYI(esVu-#R~|ndwDTa~OUGhdP};bEULy9RP`L2@k#XsT=m+i{yHpo!=Tk zEd=k>qr3?zgGk|y%jD5vB%qCSKsW~jrviu!%VkjboF)X!6! zcXysBEC6x$_TzN>G*G^!G(bf3cq~Uv)1#AbC!;JIB$9tI~kO} zx#HF$JE&#~m)!b1Co^^5iS-?7MgJ9H($eR|Mke6FL{W=nFiC|!czo1NFGl-8{a@-aPshK2NyCup zDVS-OcxACse|qIZ!Pg5*ZC!!0LZ|R;rpeA{o9*jNC+$~92DMk0R?P|5V4y{zdkH~mGF68n z(C>S%y6Tyev2sfIXmv|!p09Uo3ZQsytYZnf(OQfR>5Isl*KhAiz_?hVU1?nsfW5a2OcJfszA9G0GSLuWZSV~<8hM3r;_7nYb{wlig3P#w6+9*5<<|aBHLZ~RL1iREMBR@k!#bw-#S)&V2_z!A!D6;Kn`Pa za*=u546!(UU^;v0Is^>XXxp3RK5La!ut;mS=!=cksM+}3g5kcS96@|($*a0#ClCxAtYQD$n+Zx z3EO`Va=&)73rJi;29fPECGNsQQt5vGco^;WDl}>BnfY`4(hdA*hRpNjc1;xrgyk-- z7Ow3}4T(JE)Rx`l3Q0WC@AO}!OBqEy%n>F^txoLxVcx1?Xmi&$Az3)5um7qfk3ODIaoUgwk| zI%>KHK5L&p1yrJzT&9SBgD+LZt7>wm_W;f*dl2XxIHv&`WPvI)-o}WX%bEiscQ8Z| zVhe=2`4lL21p_kDLgMOM#5$h^D-p5*GoW(ZaO-qJTz|F3C;9{Of;epOwvH zr=tH;{j6&KrA{*MQfq(vN`tBc^su=o*2(0Ayqg*efv+ zOORHF=owqzYU9y$d{)lC`Hq#(D{zQQD<$P-mGf5rrxTGeFY`T0J!yrrGfk487ahlYdvdLZY~ZmN5Kwe|+}HZ~I@rY^^4SB{!D z$IsYERrWupL|AdozcSaoiOAx=9;v_lmm$l31b?E)itrpv%}Y2PIa=i~ z6s=t`@!i+n0_(!x9RI#pY!OjoMsX-IXeZKh#@&@Kq$UFpcCn#H`Hetcmvdb;f4?Vw zDsafUZ!X|z(I4<_Zf2Eu=6*x+iRUQ!N}SY+MVi4<#c)cylK$+R@=(JGUg^&*A1lu7 z6!KO990#=_fiG27yB-E18$0MI^!4(~OzuoQ-XCp%JZ~I94e=iy%y}$1G#qX>)*|#O zngQpJyye970Yh^nX;weVO%Alq`SODyzL$rRR!5mbo7dg%5B(hzBWxw>L*TtXIj+9{ z77C^>CC}_%9l6}c&o~8~jQiPfn^?g{{DR_IJKsc_Lpvbq7~UswJ+^-qxdeWJe$@BD zaraMm2KZ$k&mqfR#P0nr5=id3p5Hqmuo64pF`Q#R8pVAOC96waci+^xEb52GrT7Nf z4Ib-n!YXt2k1H0N<;U|2Y9Q$5lg8}*42h|>l>7JI@9^zFv_d=xk@7vyNuZd|j82fL1sHD~Hzn$s# z(UQ)&eu4enUMbcPc52oathDzC3;sgMX1g=N;N$YDS7Djt+dE6lT@HD;l7V4j7ahi) zM#niPk{5(BWv4HmQ(|{7Ude(>e1e9OjDeiC?Y5%#W9LlxKf{NC(r>s7bqQ((oI7xl)iA^H^7fa@RE0(qt1 z(RXoO&%r2D+LL9sC7$h#flFl+v&Fau7AVm<@ERro_ zMlknNiY zN=-B*``rxCmks=gOIkVh4qrY#SN1q>R`!rJUXy%&Lr-+-rTy*f@Reh#5yVUVs;sBy zuwvUk$?(eFqrE3*!3tQ6P(~&N3NAPL$O@xvd#BrHG>^t%?B{&6a zvbMgT5c=Ugby3%_Ak+dmj9wnL7DG#0SMRAoe}OP{)I+f8SR=|T_0H{{f}2qg3hWi( zj{U5(mE()%O<=vOP^+?t&}W9eJsB?s0PhCX+;c!&a20pXnX;j~U&dYi8_vV#6&61! zw{UCfmfs()Co_{acXk84Z*6wSB+5kxsOv~-HWT<0wwz~xQnJu%z|ofDuifv{XI?jp za6o5@M`lm9pSLS+T-0Jdb#N%0ollv84*-tj9L!|CnBr&LdP3@&w+;FEx|}l}_=A?u z&>dvFN0P<-!zy#0B`ISq!j6>Kju+$5DTnhBXijY;E}Ov!DlCpuD?Zya~}jn?k-7dv+L-}odjkT zRP849QYH{hAKN$5q5=IOZJ1l*8k~|KD-@S&?H)Q4;2`CbvW25A%W}bNIq~k>WBm9t&=v-6 zLz=5tacr-lmyf(-&;|+oYi5G_K*=ZHp)9v3t~Ih8b>E)QzOdG!jUP=ppQt}Wx7cLm z+^C<$thqK!WlX^0DYOeOgA5`4YppjmUhO=e(Q4YNb&H+>++m=()Fl(qA>I7*79qp4 zK6YlW;9W^ZW^%~Vx-h2tdFl`pOz22w$A4YB@R6VJvEg;7i}Xq8D10d47o~{fYU9(9 zmnU%f+Tjp;2UG5u8i?VJ+FJ@&S>u5B9CS6XiDDg+2=<hON$iw5{U5 z75R?LRY2y!&qw<%>Xu@&Gc`#tCDWOoKUR1nt%-8BQ&B={3sQtQo*)l}Cy3iLsSI)6 z;VF&W7Mcs3>v^S|ywtQOfzgx=@D^PMHf@qNqn6gfNZ0A3B|VLh?Sl7TX{knSlBT+Q zLYoZ>F1B#}ODEZ2lz^IE40VC7(y?o>F6h1dp$G_p_c5sS3I2Hp#sNm((|_w9ZVo$i zWR)Ju{3r0Ca>7}upG&6S=4-0ZJ_t)E=zXR6-zAJ{TjTsEA zVBgz@_(A4|Um9BefR%z3=Rx#Cw-`p*=hny;JwJ)rc>6@{?4Y!@z(7ARJjH#-oL>mK z>t$z&%d>e+NJ~7PsaP*w=L0rq4}yQols zw4Y6U4@g{Y$@oPEQOx-X0P-6t$SEYa#^3?t0k43EDmfa0LOzg(d1o&+)D`>VEFb~* zNIjkt-+eExEfd7nbP87CLK4CA)MPsuv^Y0oYKE7vE!}~YUHw!g)4D~n+LX12=3tpP zEaGThPPmmz8}|5dM>RzCmg>rrehiH;o6&K1?Xv+;!glFoL{ssj%-xmuO<{Hanc0?; zdZikaS|qn)L{pa@e1{f3arrSLx+ic$WWkDm#i9^&A$O3}n9M1vFBZ~peDa$8y|~*u zMqAR^mqOd%H22sW4e@uqL|k=^_>5Sf{gi!8#+WsD_>Ox~slqkgBYEfGS-x#=7cHn# z%U3T$sA%REfp_gD&}|>s0;lM8wN~&N)I&^& zeW_sm`^#AqoK~0Q#I<&RuP*s;z_;pywuJT(ZJ&0|BQ)~~V9_*>?9gYL3S#EsL6(^- zuD_>eZCZct*+(-&P^(o<;TF-fxIpA$qrtZ>8n10z79hBL6CXSd^WUSX+^3;NSwy}@ zE$BbCik4&&`10SY^VoU5J3%BCXYS=uQ0JWv=Os7)A1muG7G z5**iJJQSL*FRb;2Q(fY8_*y$$T6tf~q5lRFzqoU{up?LHj?hmivX;2+6BKqT|(em>TnKZ#8em=RDJS&3m+W!#3GOqu5 zf(Ec}7>`=tb1L58G@bGKrIcU${g<@>APgyK{<-S-6?uhSlQkLEdXTXGWFU84IaW?T zGr8uHg5k0XoO~5g_urM5gR~h_Bg1qX=8t}yOMI$G!f}1-6{!9DFMKh-AEP)D9^iW0 z3#xjkF=S7S^_8_(iLHJN{pK#e;;eUkn|{*d#`BK~Y+)C#Sj@g*%(@08JQ9`l9!5)5 zv6*x=>vuKJaenUDZd1DMak?2cxw7KRkCeZ`*l!LzdUoKknr~R*oBQc=BgMHX@o>z6 zR<6z+ICQ$#TI$YYWlb>w=N^rSej8>vX(uWs7=T%h`rh|deyxzOK;=z6^kb>5k9+;Q zp>&z}$ITI`ne;^IC(}Fc_!?77d)h=z_vPfZt=h*0{nw#9Vj}9F;7qm3+T8ijGz=we z!t|zZLBZhLk3PyT4aBqk3Y4ey-P*&c6GRJ+lfGuj-WFZ|r8F!Rw~AHier`@#n(9r8 zFU;YelgYWHBZtf`c17*AD)8>Lc6W&F31-=6b>3HDc9`2my7mP>ud)n*o-N)Xxk|xZ z4VOe(`}m41yJ1?#e!ihaKw*2jwI>275C+S%MiOH`07JS!?2h0FFFF&8|wjMvEjjRrAogJKKH* zYMKUf=8uHcKdVJ^*K-Rin@88(-v0l*Fhill`d@2bQ>V)V!{0z<-(igXcLI(coR!la z388zF0wL_BXvB*7H-Q=N?Qt*ieXsc5`5ON=NKnGy-?)!h=`iTez6J4l(J8#P2RIAn zm|+3})9$+?@!Fp7S4)j6i%DQ?59u+8LO-u@Lh_n#+#)hH0bB-#H{Tb6rdp^o#J2ri ze!p~JqePJm90gE9N}HngM+(!~5@{z`#3*Zj(_+%%<4(OGpPRnBiv?-ieM|vw0$*<4 zy2`6CuXL7Qwf0h2NVG@xe8Q4blj90cjB=2`kZy*J|( zRQ(NQ5&mva;SX`NNB^bq5O|<2Guzqyarr|vU4ja-wIf2J%If_$uh~_b^uIy(f%CFw1Qwv9_=XTwQdxeC+{h*6{ zZn~%H;r?-~w?zr(E4IM%-}3rgDJ-C|tJ(EU9_=@PF_yr}0cYQp7hJGr)Bbuc-~!6r zU-IvW?H1GodVfIMIuLMpPxQ{l@uX*F1K*aI^>*Igtp)e+%E_UVHZi>f>ic*ehH-yA z%Ar+67zGvE%*&M^ad==lws7+tg8o20=I%dYG0mdzC7}7YxX-!!ypL65(McV=IEx!= z6=6rl<2Dp1ou^X4qwTucd%RvDY_U}w0ZSd=Qlal^5sz{<3!ST~sWfzuW*;tMd=w8! z^D>he67zKw{Ae5((uWN9bn{vNt~wG|WIZ-zCcf!o%~8PgTi*#j)%sy?FerZMra8qg zyALz?Fn9VPrP%o*xj5J`T?QfbRH?LIsJ|?qD044lGT~I`)zbYU-QvB06``a0#Z<3# zQ*Kpr^Qxl~-0)9I9R8gm7JK$62pkALRs67ye~7QAogzKA;_A1J+Z_2CY40Ys1Mq$n zMA2R&yO2aD4sD!go0F82;+5CTfc*nI1rogev77s4v?Km+t+blL1m=>wyw2qg%iX6@-?N3el3l0ugOp{w*@I%c#Mq5>)%M?+~_AF*?UX_@J^= zDSS}byj7eODB^k@+-_LXPCsdEVr7 zcOxdd=B`zPTDmVzbcQf4?;8-UF?`0LH+$qWtJYF+Tu8qn3$Hsb^%Uq#V=UUW>5%-_kLDV@sipcxusctoAtIQ z*}eEFivj!LJrTee=6@X!k%){3p<6?Sw|m zaqoo0J?zpL_Gn*f8JOad)#aL$QVvMNTiPyGVFl0=A?`PJp1sPETQU-N?+9I!$?-3B z$tuGN*Y$5pH@JpXi!?7JZTK!^G1y^r+S8})GtLo(v^7oa_Qz3Qf+B0JIUD~)NOvh* zeXe-0`04_L9LTae9$tE~yA#s*RRJZse~yX`0cs-A-#{%?K^au7_8od)W#MxOu|4Kk zVa9FE+=}vSg_C8O@&@ukiVX-3mIG%Qs%KsFf$8EXfkzkkkNK6oXMnq8>5((8e)f}| zTq)eGBx!aaGy1oh_b$h07x2X^KbP9dJuFA?Gt=ARY3>qzH8OoKiz~xjk^~J;dq>}k zASr}S6m>uDAy0y22uisROXOOQH{O?%qwLO5j)xS6Uh7j@xkBdEk77|*cIJuu9iGmZ zHZymw#iqEHzC9x@JIqCSmGg7Oc&USzryTZFUC>j{=Lr8&5c_^sTJ8%$GnXx4b(S`` z&Saz(n+vqdC{2{b$I5PEof^A2O0yIst)1VK6z;uS&aJ?6pu z&CaQ8x@}6CB1cN~lj%&N!0%J5e;RdM*`ibA>w6FLHT|8kFKacO1DM>Soc$SR#v-O9 zFh{(Ur^p{Wu>1Ixaa?eYytkUgL6#!#xeBw-+%6!VZ|5F)z%P<#JNM?{4aDQbQ}sNn z;V%}uplMg?(YIAIj$1(J{`sUrI}qZp*6>*lbV`mBGM_XkEy16T2f;>wNDA9}3N@i5Re8}Pw} z9+5Q|P(Z0yp*WY3P4AL@iw{NTok*d#3Q6Jgh=7nA*0- zVR!>e$DD9^OMmNCrj^?Eyaxg=B!VF0GJMGuCbFGVJ?MhbWZ6Fju!Q9hWRIW4HLy@F z+u_Ce>q531gg-CG3)cyA6~r8!eJqFl{bt~*yAfNs{y0U;;6Ln74Ujn%LTg8+<%O*( zS5iZ4JhsulObvkTVL*BJxl4G3jp5gYZ7;>C7C(_h>IrpdLz<7DZ>_Dk08c~Fa(Z#w zEvB=rMScV47LpVJT5$ftan%k3@%MfI0`op44K}^G^!TFKqiUOQUDikEp3|rLZlciMWV zAeqa8z|*Hg^78#Ed$wQI*e+g2qetx6IwxT>OBBspt{*v+Ij9K^`8m?te&T*u=oQBP zJZ!9S1MS7S-rB`)@6mzZ#)!i*uJz_eAd0|HLcgQa$yIsyZ>N)6y5&n%z?r1h=zHg| zq)Wez!Z@weKrV2z7H7$`9rmIsr7|jrcqtJ%kPMx4y{b&rsZ78m(NX-N*n&tofWzf=*2 zh&g+l&Sv3p@z=vsmv7b}Rg*U@f~p`ulioPDlRIeSO{polx+qEd70;50@$oB`d*>k_ z-Lx0{d@^;OqMyQ>HXHB9p8e~Q!ctEOQCESccVhKrmWf4FDCyh(G>_0%8eVjCkyp;- zjJnUiHQ3K?;UW#F19x&BHZqGCioG)OMW7gIz@i%!Wj56y9)eBILjd^NGwhYi*zCr- z)%smE_=TNCCTZaPM6$vv#EMGl`XF^c(E)$Q7@gv=$X4PB@|Sf;P`!bFy#b?rOLAP` zh3wN>edH0Ws@Md1lxLvdY`|!%oz8mlyg_nJg0ewZ1|hXTWUUah>I$lHfh@Ky9VL-s zMVPnxhRCC^D!vK~u%`r#cx=IFs|)9@Ie9+g!*X(=j$E_i)GjWAG)jN-dt+_PD4!s) z^U!%p>UCVXj#aFTRYD8rw67<}!D!FkY3np<@6PhaY^POMrSpV<@-;Kni-bQ%;IBE9 zHASuA{#>MEM8}%v9u!!EezljZK=a$~bF^YUi-Ja{567pEpYG2nkK1oYuEMq7%&L`u zs)bY%nIB<7T33N)rbuAa)SGf4R!%>w8iU*zovD(*IRi#`GWpJdt2^ChwK2zO-vHL= zqy#NCkO^7yXDD%G`SffxyIS71xB{cM;{l~nimtm9rslUj31K@?1LtOPVE-tE$vWnb zX7IJW{59&-0=pD8OgZs{mXC$TJ--VpGyV+!!|t1!U)3*k)Gcj=L>iYbQzvk00IIx} z-p3{TUu{?(CRkLJY2hN1;&Q21harUS9YiQIx!ekg#GcI)>!mM1@I3CxAU(*`b+cI zPjoGV;%Yc69leg##;FN-C+jWKCHFv8D?os@6}S+8^bK<&voRW)Uwo5SosrQu&U5tS z+7}e>$o1H^HW=e^W@|R_Ps_pr?+~M|#Jb#uhQtp=4vL`kF7FIR9AKAGbOT}ez#f6{ z|2MqpH&hcVteTPONZJ6B{$x{tGscis^2C4R$ai@c{IVhXO|Z`jNtF14W+g+wkCUh_ zf4Um%R`=hkX9gI~+_&hj!__ZZtj?dXZ=tpbWHR9V_&n-xW5b$vCMLDTRdH{)M(0f2 z@q)nErKCd%KcUd=6u19V7h-N0mU5Yrsq$?n{*BtPoYkbqU)8Qe>NfGjVqg6{fH?p8 zh$IRGz*Ar3>aK0HC^B5sR@4P8v)^3@R?to4zLx1L6ISRID$?nY#i-P8&PAlWiheZB zeY1cguIbAIO|Fe1j>IDRNRb}?X>`yf3xCPIA?6bONygzPQdR{%8Hja($-?2?Df_Cw zMo)ha%X?crz3!G_^exDU>6=KZ=Kv)Yl-R0|dUGyB49pC~d)2WOnI>+bIi%p_SK#L`ewBJN87k%dhRbR ze5;nUE0X2W0KKu_a?3ga-t#Y_d&}q=^fZ0hB7twavk_{$e_0zm^CWr?cksiFfaNw3vZHzu0 z1&Q`?k_snHtp)nXLiTykp~B+ZtbuRRDp_-dj~*j!zCm#Qzxaw_ZU^Il^-}1lF<`6& zQHi$;k}Ej!D&d}jNGV2TSU=2;564tXmETj$z*kr;a zY6@{QrS-_>ZT>$1XF!<0da+c`m?K2i3H!=^OR;J4PSg_dhhgXZ*Np^!IBI^ZWaZ?=5_P ziT-|u{@x$T_3tO*k@T%XJi`5pERGa@igf)ZufNSW!)qBh_8p}DFQES3Q3K(ZzDgpB zR?Plly&maj=cz&m7UplrQ-_0t?DvYsNWT$zemx@n3LGb%l6HruYI-X)=xy4u1L>_E zytL9mc+f7=(7I<*>NBF;$ z@;s*UuOjD;Kp;Dl=?>1(we z?Tag(n86SDdizWjN5}ESdV$98FfCj8Gi4*`uYhjNcbR{<@s4^I8uj`_Tl!>O?}9vI zH{bU+8s9Uf#>c{HZ4wBLmh#`Hb(=$@2H`h=_aeYsI%*(46IL#-X%_vjp;vo0i!G^Z zjrBtgUvoWk-Ql#u#8H*T(fX1>_?+=y@;1t5Ck^t?S$XO>#&Yw?wK;sQOtfYA8~F?E z)h(M#g4Ud04T)idrV{KP!x$1F`f2WR@o7CQ~I#2$EU4}R?t6e7O{(qtTxUb*`}LI6cAIuk9{I1&_c*>^Hz!|` z@v=ha$L)q|qiMoH-)kG=&!@8`hol?HUN(E6wK@zA>~d zRUqrdI?q~RZ&WrlduCsr8wac&_zpKUq$^05LFHSTIQTAOnQH#%Q*A9;!AL(v*Xp8+b z@a-KulZ&=YX>Q2G=Hu9$1swR|;D2}*n250(`j+hrf6K0m7E8afe#|K~xUY(;^)7Ye zn@?>>(T0k2KwZrcJ>QLh3|$8}Yq2iaeC+3d)0ka@XU4MUdNP3LDm+_wF2()kiQTe( z{*P-~U-%9?OnV>3WMF=r;GDs9D<6qB8 zWbCkB`M7b;%81iudE>onTRPPls>G+0)X!Y3bp>qCrNGF%DPn86xi76R_ISBgD$y zfOV&B1@8o|?}Y3&O`dfb8dZKm3*>crTIpv+QKyt2FgH!yfqq*Cymufivl+8EfU70v zqh+XzWwxeDanC+uz2%{0Y3dY2VvX&Kud!>R%aDJy^ef4Ax<}gMU9IEa++&v~?i@7! z4dG#odX}euQW2-zf0c}j!M@yoqUdA%rKo2~uRoNPJIkYqo*zlSm*`J1J@tU}vpBuS z-<Ujcz%vw`t$e2!};7$3YN;^pI;YvR`6^d4N1%0C2C@X2nQe}QQqBZ>+U2ZeVx$FGZ2vz3>UFVa! zY#e2k4}Il7%-P@I+KoPKI0u(EwcD?L9`b%r$1n_KecwCt0p)CG?kSt8VxDj=m-9I4 zWIXKOpblZgd~oWa57U75A%C*g!IT>E4F6Ah{u#dSRyI#L-xH3Fm=8B<*@kjF-){w9 zr@d9F_Px)%Cy^INo@M0y40%!Hl^c2gjXcJdYIfE6pU9`qzsxB6BhEq8-&!3uV;m5! z@~)M3*i!Kh9RAOB1^Mah$ymRfjdcr>!2N7oXCO5q)ggtjuBpd$1LUW7K7)18S=l%T z8NX?R;P@-RQLlAy9G`Fy9AA&`9~=b7j9<6bg^!!i_GK;{-+;XNE*xKvyxA_iHSrvy z3-6yZa2YmmS(^u!lzn`_(G=jvLV5=>s83&ek#-_&LwfKMuUJq!5Ql@&X~o}3r=>?o zrxWtf>Ct)Uv@{Q$jvRzehvlJD-x1Pj*LlDvaR_;S7g86}CZzR99Z1Wt_FjjpK)DF+ zgJ){_NzZ5DC)7L^=t6sjFHe)7NgZecdOyPEtK;&})egKP zJ|I1PL{##kKYA67(Z>2g(AL(mJ`o-3%i&@51`qocXl#Rvhb=lbKM!l4F*pwk zYg)T=#z0y->m0?yT4&_)u+uc1Eu4`{XD1&aon7$})7j*Yn9ff5i0N$H;nLZU8Q(?G z*|bXzpU!-F=&VfB*{?unKhZSyb4aPy+~UH)O)eaK*@c5I zY8L`u}vNM-R|hsUh(?%xw_@;QMLB;NAZ8) z;OP4xlSG%LD|yzkInhIW$k=wxF*|@HqA}Y!cRAwBY)s7{<|j+|NFxvU%F}dx$aFBMseN1jUw@%Nl zb+7*>zKw&9(Jsed7GZ(8ETh5u3BF2Z2vczZGWo)(%BgP@)6;wm!h@IN1Wr^0` zo(DP&cslKeQICIWC-+!-Xnzxc?CA$g)RA%xfAo#fw6E(sw!djf+SlBgW~?gOPfNTe zmf8U%5m_p6Li@JcHLiFcY+eey4wdib8~Fj9cZ-qd*LnXc@j4XvyHetndR38Vl{))F zwU6&(lUuhFFO-)+6HiK;#L)P{P;mU1`ZMk*WIUZPuJy;?F@|^)6>9Iv(b-NJB1F@b zhsOWDNgoaVulR`ZKVcC3m*v6#=sfrz@lVEoV$wkTiz~ADr_O6rG@66^mH1|T=V^<;zuxv?t;HC^p$y*d0N(Gw+U*XB zGwQCpPFJ|(eK39p@IFkwd&I~O=)9j8d48R@@pQF^;KMV|N6=ScjmG_<)(Cvhbpml> z;vL@?)&TG8LrW#z6S%GqE|qwn?85tc9T&^7-%W%SZ}o-mN(MtJ1_bRk-wZyNdduRO zFllG|qQ_dCo@@R5HE(cndXx2}^atmi+Pa%|z0+}jMq9tMhvymAV6sEnzLs{W{c-N6 zZ4&q<*=h$dKR(>`ByCQ)Z`QLZ)Scp-$-UHvt#0yYn|t*9hH-#|NJ`t`(xZH0wy_`K zz#oiooprgi4c`=gK1Dj17ykKcTzheE*c*zanO9J~dN=cxZO1(Nh8rist8Hgro9p6J zm-P2Bjy+-HKWAf&<+GwHMlpTog`ye1{j@o7WDaS6XT(z^Et@eFD|Af7ecz{C0Nh0G zmN3^v+wFXD%_<_rwzIEUt8JwQkAHYM*Q$@W;~e5&d)5M9(r+j56%Q&Kk)Jc>4d}C@`^Vd8;)0V@wxeY zrI%yeEYfBf#(PzBL%OOfZhJ6(8TXL*_G#UQN84OgG3K4PLY|pnoXa5wPG*A-V+`ym z1#SN2SkX6wapX0AD7#VDF69i&<5NUi?_=k1-M!YXMY%vzo09W_+?%AF*JcMoZD}jf zhW@<6u4!7O#_uPqZpzwILjx1Xlog0ME8=oLf6%C1_hQI|!$qOQ^_ z{))b4%*=3CryUBPyodU*(&Q_4Aab8=h3~WdUCYxPZ_-alFbe$QzAI{5k*Hl7j@o6( zF8gS!%N~amivF~>`LlXIhUW_myNy{Bz>6Z0G{*4Jp)%3e1w3_y)cyq9Bd|sYgO18X zLz*;GhVfYzDVAdtTDrt?UqS+Z|pIC}Us6Gw~G%#C6A7 zAyaoG%M-XJc+zF5iQc~;>P!!FK&opyR#m>*qjyWgqvWvgw6 zKRWdV&r8Vj!UAJ@k)*jblJ|9;*=dI{rXD+?)2=~3vF|uucs2oZowNrfPv$vi=bY`+ zXZEWYs!jR(qUInmWREi1li81Jj-&%RpKv)gdG-4280}3Y&(Jb{O~3XN?jb+Ui;Qp=te))|^uC})w-)Xa*;jVVs&P``1+9h7iU~eH)FWefmA$6_Kwx?{uC|kMF^G(R9ZBD^fA-vwWi} zu_|Z(((meDhu={aIa}MO2PJ-TW6qLh=1TjRr+Ym5>_7jxQO+BxY|yZA_lhgO^L^>( zd97Uu8QQPm@kJ{#dZtp~)@jfEdj4_#caJ_dLfLHAm`=N=ILp(V_|g&NR~WXdEWdKZ z;JmNmyPbBuez#cv&w=@NZ97T0*tZ$mPSDkknoddc;jUHot_sbk5=z%zr+G4Mpvad? zJ&G@Pl`4BxwjU(p}zA3JG zga5fk+shEQ<$!Z}@xb#j+?S{@c;J!FL#+RlgY?DP?@0NfNA`!=9@n!FSNDvSF;u7b zR7Hz(;vqY{cc|X?;Fx`mzP1tvo3pR(Dd1RUTzU~nJ$69Ru`f@(LfZj|Xq)}efn56h z;er0WJU@^;R@uJ)t(bO6iPWEmXWMKa$d##5_=e|>*hh*#uFRb8QE{cG_cR$}c#50{ z+9h2OuA0P3Ngq=*y{S0fi5}XN%dvZicGpLXzl$>8`F4N*1MFYIU!mdOQp|ZpwLilz zELVL&o?}@xC`}x!Jpb{)@WJVUG#~pm#wXhqRr_^9!x)>WU|c6*Jo5i8KgfTbHdlPR zGlQ$Yv7e-^VWOu<&L43*)U{I5cxKG&{%Y6f1-zmv z=@D-u?=MJ{52Z~v-u)TZ1w*wQ^Mc_+9&*g1W3aA3pH);VUdgprWwZ1zmyzwNv}{)u zROhEDD{vfFLRR2>`Pk|GeT<>4)@B3g`Cu|R&z+WO8}GtAvY=yYE##h|vYpA$1Loqt zV0>75>{sTAQ%;*&+7?XFYqqzFlnOFd^*HAmI4;J8y6vIhwJ++k5DR#Y82LvdpRpPwY=DdL8>pXWon?7& zNg03C{{B8kKL3piKa7pt-!H=MSbSxX28kcGqwK3Z1J+@e$$68pyVc%S8E9#ki#`Tl z2PoZ&N7|vv^U!;0(Z7yOS_o@K{_E%>wMYLo^tHP#r>}La%{_C*c|{?{3da)VeoOnf zaPaBa31`m0Y`Cvi>N4=XiVYhQevB91&j^w~t(36%#434)jdV^Lbn*bdJo_xPp9$q} zZKbpef0KGDCtuJv6YB`)*r`?m-q(Nc$=J}*4;<~~9RCB-rj7n0!DD6_vH{oJg?ip- zY*Ku8nRDL6TuU2eDPK*~Wt;Mr?Xb0vJDE2vlzT?02JZse?k(baXRZ`w&fQEv$o}aBR_29hjyxSH-uTjDW*#M zN9y9J`%rVoN~!l0nYJpv=L@&lvYatSLb~1=dG_`EhuGH}B5|wuz`^$4)`mnMV}!*U z)!Z`sL;P!)@vnUQ+oklEd`#~C_O1BupLq_VF?VgAIoEBB1D*?+l|ys+$H1<+op$C7 z;bDw}%_aHA0nfv695`dZJTJDqM2!QE0Y?`iajN6?PSES)*~WReSq9JJJlELNZeLQE zNB3pC|2*DT=7Epzn+w&Mm|@0TYpyxXXY)Ml%UXY9;&L1HCUK=V;aOqog=(m~#WVFH z!-70xv0Bc%pW}alN1iE>^<>t}9rC>=en+|y>)-FV+IF^4hVTEQFneCzd@teFbq*8L zQ?Kf{MP_@R0L^so^oR$MVo39lW{(BOMJh+yc9d7l0%w_>_T>21^i4(EIe*Es_RmY* zWPf-xV*(ewu5Fb3qMdPyW&EVmDwGY{+n67(8!h^_f$wk2qcbbla#eZLc)L7YEOo6z zwXT)+$3uimUxqq)4sMyDuj2gV54PH8$$wr!U#;UDKeWGh&Ck!tb@Li6!|Aic{JyEp zK9S$M^epb@UivsaP#~rtCB`WI*^FmBV*3XL!mY>WIT`AlKQ)?gUCuLZ^4!Skqx<__ zZtm2+7R26_cpieeZ7Alw0@{oT#!6FdCI0-7`8hU@*XNXu#g*}Plx`XCFm~!d^UHj4 ze@M26wEh%h8p!>DwQ7H$DgXWe{Z%Uc;6$6>4Z1gA=yx3%jr#%*;y;Y7$ruHMkMTMF zisx`cqr{2Vh)YO$h3B3BQ^xF0^fA(o}(MjAb@ZU;8rmH>l4OGLBIZ?d#dL zYyD~+-#<+BIk4HTy%E|q)k8+(d9g6AwEysH9|W9JtE^)C-2$w=$WtIQ?8f_YJ*HW9 z(;t+)?|a50-h<5lC!}7a871`p#Qn*2flB~tTn zU;jiRH8Si=hk~*6DM`r4UCSwp_e^=b!MgZ-&ggI$j_`TPbuJPKt)A|0|?q}>E)R&p>mp;?hqvNO^L`Sjg4aG*F+r*Ke({cNHi(y9Q&Bd&$&o@cAM< zb4~8oXOvjSCHR*3{|&y8KF!25S@v}q_kNANhJ8`3)&^m~$u@;N@lcN);hDIi(Tn;segvKUEb3i;fPb?t`Vn0K{J&}C+Q#^FtUcnM zeaEx1;R3~1i0dgH)qihC6o01=;@X*=_ALh-e$*lPQB`xheJa0;s=O(@kE{DCU7t_a zwF`Ca*Yw6Z=_`}?;@ruzwZskmyz#8dRj&Vpz|+cDU$e^ll=07NaL;k*oDXyOqK@70 z2-g?1n~CXvbDS&?YLAm}{YzpKZ)|JJbuF4Vk^ z|Kjuc+J_aNgTVh#Up)N!NU!KZszqu;IuCAJkn@L`8Jx?HD2n6s7tETIN>*y#7onXG{5}}%F8px z;tDBefY+Ynx9+y5BEKM{&ht|D5snwzb>OMBNHs|Gk@5qSq3r|9{2uqU`u;K8*Xesq zp?x8J{~GSY`d;`H4!2=Eyz)VATWZmkUrGLTx4q3P`XbcT8?w?hL)4gf6nrr?f1lb&#w`E z>uApxjb&v2QrruyQ>-|ySO=V5qU6xgT9@nC57fq;d0Nc_&Kyt~R{Quu`({1sp!3m{ za_n-CjAc1?NN*eiUq;)0LB1aL3g2m2otS98G_C1NuDdwz(wF&d<5Yhzj)?cH9X;Nw z>eGSdCH9zWZ%TdlQg!Cm1Go#ri4sq^tw66$WqeNRt)%Z8Jr2L^j0NOddM+rQDEj^= z^)j6{^Gi{~pR{htkv}65<>x8jl0EBm9rVG=wR51UP5NnQpQvDd3uBParNDbxcnf6A zHam#)BfMt}>|K8?5ZnH$WjFn=S%wV@{Rc3XAphz3rrwD*)N7tmg?{yiqEas6Ikt-C znDqT{i~c|3ZdZwzq!IFn?|IZYi*MpR?Ly|^-_!K}O+A{F9nl9rCB8z+=12Pe06$!X zJnCz5T&AM-ofCxw(AR({*H!fxf+JpHX~ukl?$vs$zA`%Zq}yuvoWpQq01 z?Q#1Z?LfX)^?4C>3Uwc-KDNwty)MgtEi=j!Cm~(lS+7eyj?or=cN@MjVVV1ZY)7x@ zW8r2=Tk#xSc4jK&RJ+rabkCF$Q%SEB3%7<0PsqR)cwS0#GNR4f$9|I#Bx--3*O>Z0Ty@J!!~+e6Q$ zPNL4iYVk6E=SVGkFy;;Z`_-fRGyeUb(RI(FZc^8~jW!yncT-TwKlC5?w624F$aCb^ z8+APB_lgH5ffL{w&^ke;(olRrydvVj!M8`R2^>A5sayPK=oEJh@rt!idc=p(o&8_a zL)Jg-5tT?jq>p9GE(O$ofdC#&f9{S?s_m|4=TdLc4=lg!c z2yf0j%69okBN65Ar^w;2dL9)`9rjjnMGxqpfV|fq-Y)4$!WdTaCFh&@7~etqdJ*a@ zIrk31tfil3Etkl8w=&+PqtkHhY05LQ&VCr`Ic-Sxd$)YZwUR%y#diKb-RBkWYk9=< z_5Gxl5v46LV~KDKfhQ~`zI3cP*1cHcOZxEE__8FA%ihl)?iF)}dxiTS59IlW|3m(x z6!rV_{9|RFe*`|{KQ;!uVtruXKj!E8hxH-<(TMuPdH!*&{)aErF{V_sXX2YT8)c+l zYAst_rpv26SNf&oxQp5TkczuQ9!Q@1X!h-v(qr>mZ*^w)uZg{bAHybCCMIe`ozk$ZtFR1M6qq1*n_#a*m?SC1WEp zKB1RBnUI8zTkptR-i+*}u1=k(Zw%_Qe4*A+=!>x^=P_w+sHQpZ#Kp;i;NrB`)4rRw zp{S=Fb+@uC*I&+jCF3>*jj`9&uGZ$j$&{{jT8FKDYD%6Iv(f%S#zOFkSRvk*V2sG| z*;hb+od>V8@k7+SYFckB>ksoBTO{TFj`i)O4*I7`pIp0{ za&|6m9h_!tJb;_3jGQCSLiQfcH+6%2!*b3yX8Dk-ynBtiO0UBMq3nD1UqK|hMkUW) zrps|ZfMtj2KA}AB{LgQ7Wc_4I9Xx48ow*p|Dp%(!H>Rr!Es;^9OwK?Q^>3X1(&9R302+?XcOwA>%_hu?2ieukugD-EJL2)h#O=6%c(Pj^mKp zm#U<1B#ird$2U6d!Z+Nvp)^R}tcpL}I7-ENse4b2uS#4aPl_Df(t?QNFFjX}He2(2 z#?}gHx#EfP>>h3-b)PyuraF&*X^$0_XI3B&waJ)9Rl1Jfm(#9H-QRUYUy)NQED#M-fTnu$^a;+I!Z$Dd1U54@t7cp>bp`J?A zQ|0nQC%;!~%^vE)$X}5dTej@qG|g`RSnl~X%3c>zuk!LGa!=G#p6J=zNIa~Tv^6Hw zpllrt8_Ck`4QWSr<>-@XTgbB!Ql<$jT9P`pXhOy@pdPQ1=McCj1UfyrNc2@U^Q?i| ziw%f-_i$`iH5c2zlX@jZWAuB-{3S&Pu^ZR>h`tDDHS&DVxq0?{r4RCuT3=Vi+wH16 zwr+%lun|rX)w)1S>7Ds+!h5hYDyB`GFWg}lgm?5jEB7XI=MFwQZ3#u%ZPSLaK9pVK zR$@(idLEtklu-Wp>tX!25PiUQeBX(ex6|k!_Dhq}`JYZ4YdP~+JwDam+zRR6lre|8 zhhfdA&)%JD=;!N=|L-%-_*A&y65%Cwy(`ZRyYoz)btaCG?#E!>e!M%=j}^ch_ubt6 zD9;)OmF}4Bs0cO4bL400z5d`JHmmM_WV;`iHYL;%u)ZakSV!-4dvfd_EEj%XIiPqr z_lwkAJyrT$C0rGxujUn)6C2WB29BNcji8Cb3kJcnRr1l`c`&&5ZT@{ zDIfm1*Qx8MissU8Mm93qSgCPetLbsXM5x-YiT4(-X@ewhAv zr!8r{OT`qB`wHlfxsm=M-mv0FUps|5}LtktW}d z0^gR2Z_V@PHuVo7-ih;ZdMt#Dv2cPO3l6Uh0oDzE%n2IjA@u#^LGV80BfxuTka58F zX6BPaj02~R!R8aQeN}oKWag417zf0~W0`TV)HM#4%5jkC7bD&-*TLjRr1MG(@P*Z$ z*Oi9u*}+$(J}<=h8bA6VJ3cB0nH$datGS_^J^+IBGkkhRPAqF)WjpH&XFugk*O;j~ z0v`*us8^_Duf3C7dlz`&hcEv>RGQxB+^t@7M{5d6nd=O%0P`M@$4JS_X5@l8PbbZC+G=iftq zA7gm}o{+IN=DIkeYoJdA!1dnH{A=q?BfO&S5a0IY`IhkToX6JDa!;~%{s^T*R`op5 zLmo~1aQ&N!85+*+2Xjx)D@MsUx#Xd-e7+OZe$qJZc@%^SfMdB&-23!U?T-}jG-mXZ zt8H(nwTET)8fT}4QP=DJ{V%%LkWSqN;aE!VL-)@Ajz{>qFiwKodPbdhQ|ddXa^L1s zo@4fStk%&oW_(w`>+6aZa=Zs!z7y&#&RnHWN0;B5jJ#&tENs}=IOBrJIE~kv&T9x4$EK?{hOT8uK(A@PxK=Vl2;kK4Q z=5Y8w$9QPHeN3M5B5@n=iaEvEeN9Kd*`?z;)6eCbqeLe5^S&Hj5BW&zqS*&KM|Ijc z`hU$o%d8G5$6~%1MmVjYvZJLv5Br>PDjj*oA5^hlIbO@HZfS4Bamq2v@14DOj?*c6 zO)zVeI;-g(r=KR?iC2sz?qBYcdkCxT+Cj>*ep$ZhIo=;_!tKl-4xHsp-8Ow|d`74< zrUk(#>CZv(Sg#n({iAVD&@R-9rA?lo&ZD;W_@%!1ZhK>ivhjAqa-s`%lST-SuZc8r zxBNC>t;x(c4vqN568mrT(T6rC4gtpxC2w-;cp^PNmb@u<-gICph_t2r5eKIV4)fb* zOZ9hhP3Bnf)5PZjPxDPS}-(|`G5Bz_xj9tD4?QXMeEz5IEJ9{cDqhOCneUXF}>ngUXT>2Gg zm$X1w`LBRpOA3oJ7kGM5{W~A5oIi&!o=<4CEKB$T*?FM%NMH&66JRmn@Mt+y?m1Z+ z7RUhsv1$+Hz)C$vK0GX|4;vN}CndT*!sOWR{Uh)}pKoz33z8>rPIKfEf7jx)KiDec znGN;Kl{8OV3))=J@0NvBid2SF9_q43FyrebVL+5K**Q!vlP znldNXa?&px$}ykuKxFtv+lcY3)(vaa z9w%+xaL;#AZyZ^|=u1LNIu{Enu40hkC6{lyJ8^t|RCncvFV?PhR_dnX2+sNSR%zk_Yc!}gc229**cIpg-lz$AL zHOZzwsQ(aB=HFxL2sz#=A`QwnvvW?(Qhw@0b5zoa^e-Jvq;3d8&XT<3d-D9t4#r1R zXJ@1yD|W0}BL>9MbVaz>UXB0pEbF1x$su3iK7_ zlRqf<$F7r?bsX6`Ip;hU$7nPz*Sh{lebN(8q%NGgQQBa%g=klDIpjuhPeCNfd19|m z)4Mf-zOvWg+cnZ}oIhNj6v1x+)~}`Nt0|W)9n0~@vrP1GejM$BsJs4y z=06$VDOP-sCrP@y3}cnDjFQ`g)jGx}*N0LL?R`{_uL@05&i4hPbGJT2l4EPavf-cS zo?{ZmnSGyO@4>mhmuphgC3$AEidTD4Y1ZE3tDudonD4jdu{{fF+p}O3_W{(I{Rw(4 zy-uImciW!%@~pL~%WT&3INH7I)A;`^{p`89f52IMXPxkj>r6k-1Ijf|Q=45|nzcRI zH@9EfzXyPqH-AEBeUmoN;T~ zZAsg{P&aM*a&(vcb{)Q{jVS-BN>>xl>?5#G>0_uo7{mH&HEkJFj@>`Ubw#tXLs~oB zE4FIen8Dyn0KS$%;B$Pv62AFHnUGP2K8@!N^8KIs`yWt#in}Qb?NN5K1LH;d_Qk{U z>QQHQcot8tzx1=E*I}e{)5b~2b92J*DYz=b6Q%7GJE(6M9-Q3kGXe`ld8JXhWDwe z?k=E&({wks(CPtkLKKsOnuHjP#YMqDu(&Bn7}H*o*CZy>US@`waVAA~BLus(p#c#= zDv9~VNz6zRlQ@ouUB~b6 zpF_Q%)$YGm!MAnvrKkXIp}E&2fL%W*1w0KCG6g)LjS4+@N> z6mMCPue~c%V2q9zhpArr)(fwkf^3}9d@JKot9jsK@x<{Y@LXVU;7B#`Z!u*&=J+^p z_nUp~du~KuH#Y0IP0U5W{+NrP_SQ_{Luli0HDivaxToW>)I#~B?Q5(hM!q8-F}4Av zSaAHWx$l3$d{k*(HMaosL7UFWfaU&TUs@n*n9_D%!_oiVYP}a}SHxU&Vxyjd9CKZ} z$c`gJI>JDAahmZvt;c#FNh-P9|0vEN9XDC~g~i9Vm+#oYqj8Ul-Gh6l@Kf}=W;;>S z&P!V%p4C)+AyoC4_kbx#KXZUvQH;OZfV<-J0T+M)sKAJ&Zc)}RBmx&IR z@C_XVKI-zW27E8QrFoiQO@f$UBJ&#li!wymF8UPm!_Di2ms3glC#j*5r|3F!#y~C& z?o~?lD$bzc*ss%GZO_+d+iBM-=THpiki_tCwEsWX$@XwAfp>`~J7t^)s>^2r?QEyk z@O(1uHdD4;?mq|opJUE|`p~@>`SvEj&A3kWhL2ratJeY3Ff_=oIFW5OYyQ0neB!^O z%+FD0&izr<{u@g*J&b+tohA3N)Tdea1aCAt;gMcnE;ME{|a7vFXm_-eR80 z*UB_0fS6w87>BJ&r9J-Mbe-1o>G%-sdBV^H zI{0pth9hp^cwmbDekid0D*3CDU)AqoPwwzOKb;Tca>}1V^TV<^__YY-pRa0}>zYG) zJd^u5TgbDsK6&=wd?D_C?5p~YZuY5}!mxxsFD9TJ`rTX3H0Of8_HD|KV$YT>;X|0`zXE$?3TVNU3VCci21EW*OTW6^e5~+8U_}# z-JzZ?0eboyln-n?Rz6{=hFDiR@bLglrMP3$fB)%x5Cewz$~Y#0{Udct(=JfG7hj_7 z;U-KP=DSme`4jQfeQkE$N`PKWO z{fQRu!KZssobfZI-r~Zi<-Rd3aTtd>+SZzJu-*m_evOHlM#%Tp^P4igiF5`Do>u&S;Ukr8r z6Kj9dwZ-0GPTWa49&*%~=CLmKD`m;rD%~IVRh8lA9{+^?jWNaCu{vIL#7Rm$k@Hb5 z%6jOlJtTiD{e=GQv5I=}P`x)}x=hNZpNh%(Zt8uHG{VvJEGYk?DIdg{y89D4=2o|f z4@|oD(&Lu88_xreSt|XQxm$RT`0|ra9vfe-2;s|@Q2(9^eEH5N`^T3H4Zh4C0AIca zd}%iLvi6hx`N+AmAqxXvCTTpGfM@pS4X$AQzYxNeucH0~ z7USS)T$!+Jm_HhAjORLoSC~**=Sy=JOT9}Am!M8{2v@k?#7h9v+hTBK$N+7eVcKxn z25@Bt%1;0h4pSeQl>8x4cmj zH^7~TfIClq`PjJgXJLSF8pD(`KKmD0;960pbNdGwW>5m_q{yY{r8iy|U__68FLy@C#Xwt_AraxOF zeR1e3A3vJ@*ua+^j{t}8r1<%;r8YfmmGfvO=LrstC;#20?HwiqZ)O2U<}A}WgB-1| zDa>()`5$bVo&PraIVF`TNPJeM4h{ux6!<7Pm#SXATbT><%6VqL+*LaN$KSn(vc+eG zx1zlD8s&W#bDwIH@n4PgO{hCwEUj&l`fI(myrYj{o?^~7{2;dD5F@`Pva9z|_m;r= zvCLN@j9GSv_-=6Bc&~T*$MtWOZ3K5y7yb|RJ;(Ij6v7$ypPj6Kr(eYrw^(ZHO*jW` zD(lr$O0NO?<@{4mzh1}UI}qrNc-Q)kA$ZAat(~lYr(JNzDoc%DRmK;&qa-iP`)}Y3eR5Wxa~k7iitdSiJ<%j( z>tX)6&M^PcYSnAG3wfu%0Qfr(H0o2-pIhpNf@MFl?;Xiks^ck8Hl|LE`PwXdTAuj6 zGy9tK#TSig%V$ZBjrlptyOp}WRXgoBK%?f- zrh0V5es(|q=YNzLEc@~*mR0tz{Wk~~`i(f$Bg~VWG8{vs>l@xP#o`&0nJ>v9?x#Ij z&*YQ)Z>sK_ch$0&_!0Y;`=2*@@IcmX!kp8m%fUQP#QaWh`Hb-$v=_6V6Wc<}N0c$Q zfKPQpM6VUZ7N1v$%RDizarc4o_UwFAtv;}#sPBtJhk*Vmv-3aNa-SVxT)^3R>L5NG z(K$xy(O1H@{e(MG+mIxw^BHqgOtX5)oqqK1kPjbY3^V$XBpY=;bNV9ns2;TB7aeP-drh z7&v-)?l5h-vva&2Z>M~xZ3XY_cP5YE`$GBOa_4%=>GUnpFJy9?ixPX`McSVRI;r5k zL+qtZ-!uPacE0v^+BaHsV=X$4iNv{Y$`pQseO#p8Gi&y*bG!KbXxrkEI$un-)Bn$t zRas}+4167vDST=KWXvmu`Q!08c(yA||DD<~VlyTFeD+lDC+I_EQ~3!JQ(8UfObX7} zB{{LvNB{dVzk8}eeb~24Y;ehMZr5rXW5998$+{2L`2*(Vw;|s!o(Z<`4-@>syweYi za&aqTV7s^EWA>e*qp4@^Fk>I|17q(V;94JjdrEAP3PF3MhfSulr4K6CHAx<5D*2`q_M=|c znBkplrM{a`>&*FZY3?+`OU1-~$oTi6tt&r9+P==85b#Rm^_=CzlhMzJU#;8~*FMRZ zAR+vqE?CZZv@wruV65batAew|S-p?vc*L0_XW=(!-^I32jxn@f375_4vI)a;{fp8t z?F!@8AZxg8fHk}=w1%{o4DQfWi}sVNk-3>Cw%XwRHqif^c=b+9_0}|Brlh3ww(A>b4K12F`UfWWs)LOZBJ5_u^X6IuPOM0xtle+7p zs#oH6(SFL5YvBD#ki#AQ(Wi*HyVjXL|ID)vG?D)wBJ9mK>v)?Nte1Q6?hoHwinqyq z$p3;Eu|bT-(s$$Ar=0Ev<)j;em|lHsny@xg?XCl)&kAeO;kJ34Pn-#3aRyAXXiLL; zH>}SU|EDN%;j5chcrh1G^K#7La$mJ9mpcyj-Sowxj&aUhvMBr4m;>I^v?R|GUr3(W zpfQuGnlod${td?F+p?$TtD8Fjb3ly0Xg7AS8g!F!(JXiGzNy~yypwFp6L!me%|A(9 zUbs=cx<2?_zPqok=iWag@!@qG`j+(14piy69g4ZyNIPWyrp$j~{wgm1gk5sCB4c*| zpF{ZO7nsXIa1`Tb9$UF@CC>4jX(ef5O|&cYD}-hdAw|FkQ+TI|{A<3fImILZ5|0@qw} zhAg7qK1yG+SIyW;d`z-6&)8)ra?QFn_&jIhj2V|b;=9>7fNe=Z%W&WilI{6dC7$;} zIg?}RGeY|?hZ|$=v-@4(8{x%%X#*YUj-lU|j9ni2gov}yBfY!lBdR3-K3*(-mpS1q zXGZ=vfvq0q>rm)^m-K})am?0tsA?4GQ43>FTqZg0h{q+L7N<^lEb{2Bqjdg9$@L37 z-D9uGaSYdi?{HLWeyTGK_%OfFV&AvE24hn8HlH~l*v=tyUL6aT=Npa>md_6g%e4Fz z#{mm<-o!b=G8Jc@(57a}Lg0b5e&Gz2^kh#5dfyRf^IWWtmA){4L@h2%!denH$O8+# zpO`6JY|giak8)iW7bv4HwO<`&WoM487C!s1Ki=aRKQ$k5ZuL~{G{0!u`L~E)^mXi_ z@7iaC1}J;|>0o5f*ef>i%e?X64Px%@{ZSWZ*`x(1d$B3o?(HrX&x=VOX70PpB)~mZ z`@zl60ng4;YMB?@TaPg~^9$M@+UtGVKUnE6LeWg&#>?;`JszoYspd(--HTx}lgGL&8{ zKB8@d6A$0&IbM@*7jDftUPAol$Ror+V^8Eb!3XfHin)|$ckKtgD4c3X^4}VVc^I4a z9A~6|%Gi<2IcD)3IDzZoyzVz8(NC#dd#N1x8pe)RX#Wk#+v^odF*JDgbN)f^ue0xa zA%Zdq!k|EV-L$t$b>(>8kbk0Xjc3(P=XDte-fM$)|7_Z=Jj;$XZ}a}|%v&wyZS--> z+t6dpTfbvXg~pmRW5xJKnXy)JtX^oW3S-T3tSV1?Q;t`)bQ0#zt@E2E)p?Ag zTN;b2*PeS1=j>R^nNL~&yhC(ck1O?7H9bxk$(7?W6j5|bN_!eAEU!D zCIUW0bb?-&A5+>!#>xOksOJIvN#>PT!@&PO=U*&#P}(kQvcx)AmZz?8GR`sPjF$h% z3t~=^U9$yfJMEWp9ZG4fu*aw;02J0{jZS6e=XR5nV#~*Z8`L5B&1Uv|H zq)$QHJa3r?I_BIdG~ROCwy{hP=4*=S!%8i$W540P8cbhF@ZS$t^cC<$Nuz^tTNs}Q z@N+Eampa0sit8RtjydhcYzPjFqTC7$mhu^qBnR^;^=cWF-BxNX4r7tpU`QY>^{fR8?pJYP_j zbb@*V$#JGOl+GgROQ)Zs&m!s_c(zuf&({MQLOpb|&P^kJKWXhx8_gK~Ns{@rm7HO= zz_Y@eDEaAiEQN$xbzrCSwCCE>^4Ei>brt!3}e1ajDU@jpXt8M zFJ6W^)c1*ufVSQu{~FzRV8cbrz4f0t-Lr7cs?>KRW~1aXL0_9v3V8Y%@VtvH@}Hu2 zRF~zR7doli{TSM%AMTVZw)nK$q`u&LAEgaVs&r>T`?Cn{xIi5UurJ5x&AoXjF>k6y`s(Eh1%Q{YIE6fv>7*T-cix!FGFq4 z3AK5xX>(|ErmaJG_EZ6FM883P-`0Lxtp6XTKL116x@BlT`(024JPw}J7s_@Tc1Zr^ zc}l$vCpBB_}F`lc< zczRNMa- zC-?TLnZoKRjyD|V1pZ!RfV;4#|lHt*51uk>nCJ^s{5 z)4eLY2j_OCaM3w!UT%1%FdTAlBHQM5WIMdpg^^sx!^^y`iF(|!p1_+az-O#W^cPo{ zy#Ui~xw#>sG*i)ZbA+GHKp&?k??D?QE%vIJc>Yxo@6=ww!_5GCo1% zGaB!<)SjJ|dg!hzIb3rbQAO_$#^fSxVzPB^b?hM<^3w6M} z+Y|d#(#v+ggSn}VEj#tzj(P7j_wudi?+19U20R@{ip2@|Yyn(XfBU_S{oTazjXjQb zU+S^c-ftZ}_D>(j*uh{O_t-yujImEgf7j!=3GnQBw^*Ev&t|~25D)eK^aJAfdqDHO zY-heEsp);f)v)Y!K;yHW{<|O1ek0<4iQj+Y{>o=;{`bW>MV>714C6gKdHguW#JnnvlDneQKY`<=k072A9^^jp z!3_N}fRODh3(HOI77@+>Jf_ggSa0 z^n;&LF%IF|0Q-wohVOGSb=7XBPNmu#5>9&qb7}-I@hlPlqol@P;_-7;C0+06sLoZk z@lY@Z=4v*)Y2bgv|LROzT-(OfX5XL!fUFdDlmRJ^)unwKpaJ zQ?TAaUrqLA@q_tkFpie?hBqa4*kq5E=^`E*8Lp9my{V;tc2=gkAfxeRF`$ir2 zQ0Gsi4p`@kp$*71uLk2E%KLz<_UEy@v=__X>N8)9<)rs3y90EpBd@$RKbULku?Z9X zJ;S+VBtE9wA#&P|bX4%wG5l>1kDv0y1I^lwO#E!jT*cCwH@zv97C+P0&lklHuiEg# zHyNGJVi&YdwU_o4%idqqWhpN|#T>bT?<&^qCY8)bwZ3U1b96`u|B(`=gP5#~qzVk@GM8+pBrk9FZjR zOlf}>#w#MNsw?^6Zw9`0?~+fTjsdbFWZb%d#u>jdOUEK${S^)2 zy}A>y%>_)9*LUH45#FE0`)<5X$2<33@V*DX?=kPZV|o(rXX2feD(2RUy%WF3+!%FJ zqvH~bDklDO>^sOAHHtaXfmhckRf=897~DPMcIO0d%>5?oIjSum;N4FA&ov}{+l60A3G-nmx2gxkDh-;e%)v)kud`GA{w)#%H``ECNO$jh8(3XOKR z&=SU?Aq;41F#6`D9V&Y!2Xz{Zq6L+;9A2RQSoFr}8Ovd0_$8 z3NmRv!TtBzZC!Ig*CGEOJRi?RczEv%rs?1;JTuL27veb`&&ejA*htY??*cvF1w6;+ z_72dZU4CpwM@~J_fpdX&6ib*hZ)i($c;03{Njqbu)hPuFa-Pa=YEaoWzr~Dau(sl8 zi+pKNhW{saWO8$MP>%j6&I(WP6@>Kc@nQ-vWP< z_+6#Ex`yo?wNDfO!u6?xP4?_dtNOy%ld*jLqo|)+F7+Ria=UyBFtXnm+9s`7d8X=( z%3b>-ILo{Cg~vskBl7DluF5;yXV^ovqJvf&llo47Xo@ik@agItYuxv_Z_X?8X@QR1 zHu0mcJyZ1tx!YKFZJ)B>cg#EgONagw{YFcwWb;;|GS)>bW zMlQ?MV6HfymYwzz_HxPLYl&XB$8V5!()q#a*r-$H9U0eZx%iXw{m>=gRkJF;nCBSn zP}AC0cLI36Wx|gwDg2%2N|xkkCv+0#GOld$jM13eS@k!@CwH;anV*;*Co!V+Ib)XE{Gx@j7fI{^j3cG}&QCD$0VJ+E`j`N|z5{cR zK>f*RXQHzb=h0?=d~&5fA+^$X@!fG(vMha;4>nPs2pnu|-t50gp9G`hzAvSD{2`Ew z@IAViyu~FNZ{kUte%M20o$YacB->u#IuMS8@!exw_fEjk3f$uQQf}b75?+a&Z|2xZ zZSb2>j$`J13w75K@qh00zry$op?UZMWC5-%?`duWEs6tX&IR_Q%*Q;&(4zl3=4mn7 znGCrzz(w{+7-JzAzkq&ScZ22|(BEw0Hrkp1m?qjA8r5+6MMR42h%uh&<6?;$e zb>a_*Hs{aLa<&z$N0y$CIIFU;~sgn*g)xd{h83%g$3-@hMyQX?ij0jrx-lqns9D7 zpPv!^!Mwtkip8NEUrOQ(OcmaPIZLk+n+=`+BIa-oM&=!?(OvjH6L8G+GKEDrTc%@- z7h&IA0(j?Rz13Fkp&gKmb^!Nw0B?3+U3d6Z&JMpiwZpI3xg0|^K50w7JP+PsG}knG!Brmfl=Am=GH;(PjKJqmx7}mh;~B1AW7-JCHT@hN zH)}FPY+^9?sk(eMZOAaUv&j=ME&=4yPqk~Xgf_dd`2AV<^ivyW){&2|%buNq7LqjC9&Cjj~~id$X~xB_EFfApji{uO8?xfreP=1cPwk>rFPT)362^66&>Cb(jv^;Y>6}a z6Zw4>?{Mv#yc0{2%lIISAum9I~@sWGs#*w^nd$adH{&k89C)E#%r-@rgQI=DF)tt^Z@@_YCyD z&6X87~6GeC1<{vvyZzYxy?XNEr?&t=UsM7I9Ur**uCx3Cu9 zN88QCVv*xIa+th8m*hwcY?>LLb4W;Lt1&Vg^+&Xc<#@mSX|0FYhxYD3dx8A+Mo4~p zEhN9a5|ZC~L-N~!ko@L{8G)Gct&CLLVhLGqZjWGh{IR>ypD|oy>UC zZhv~@y>FNCj_rNa?2B{F=Roa${q1u5+aI#j)_(N63ADdG)IRZXH}cf_sM= zbGHy@j>>G8-Wq2i!Dx$JA!=uMi$v>DbM7Wch(c@G{lOc8_+Q)yWL~r|Luo zNG=zhS1ioqVJsu%EYL9nG+%h9jD%Us$vhO~k-T z$joy%Uw7~stm~gbdi%Mdb;X$>_VBa|<9<2A#HA`qRg+*)Muw>Z!noMx0filkL|2 zx0v5R{}{y@0LLGTCuiiX)P;GTiPVu-k%wMy54A38{Uy~o@=0k`W!H;mtj z*C~u6jd9r7+kIO#310%dsg1kc4L5>sv)vU9H;Ih!x!gqX4mNo2M(mxFEj5()5);*C z`UDHkyQsU4w9D{6H#wWX6K$TB5g*KSrr@~DO}H7f3bG)cDUeUx=FLAI?=r{QW8B-Cm?^v0?1%*WFcK<4+o+ZyreY)-5E^~dk z@W6`--;mFRg=;wXjJKE7xH1JoN>IFR=a0r}FWxi}U0We?=Uy@4)#{TbOz-_uicijn3wVspoc| zXk*{te5=FvD$ci?Vo7eU=mcuTF2%M< z|E?>{;cw0(;IHoR$Adp(o&&~7yNNOmK9};-?mR%blX)0eFTkl;$;}ckeumJ%?cimX zftJjNY_>vV%lpuFz3_S9k-gjf+l3Flobu1;DdzW|2`$m<0XgY0&K2hv^ZoESm{+a= z*Qv@K@39>CVJEDA zNBZI1?k9PV=d>~gwBIWA7HV7)+^ZMcFXAxo7>Iwv1s64}Er5~lQSVlPb2#AKVr&jq zvA&$gbfvH0v_^8BDLRaxpVPM80GfZrpjs{CcN2Mp#$ z&95W8g17bxpE~b}BIm6EK8`HZ1Ha~B?H-VEEGp~k!*vVb;_rlw`ppm1E)(-k|8DBFxc00Ql`_%%2N;77aGl9}jFKKE z>Jn@5VH(eA;ehVI;OMANjrkPR9I?iHe&>2J-cze=bz2e^OPPeQFYu+-pG zMBP9?2JI_uaF00G!dO6t4t$km<=(ob!2FP0N9qT7rZ#cExtk<6gp=y_>CZSEG-j!* z_gDk^r>=o^0u#{pC)k$RxA!q77Wbsmcf6$kPO{q%>ed%^PA&TMe%Qc!lM3cPl{*`7 zS5pt1B0rJI^&FA=)6zKfnDjoFVsIR?<74B^JNV^itEra>;opBy_B88Qovhk53T1qA zUW_;KdJ~Kh%=T~TJH9$&e4_@ptkmAhJK_JYENVvl==?D>e>mW#RH@U51ad7gc=Z(ktx;5b_| zb@}>ct!rr73Vsit7I2Do6mdhJw4ci20>)~|y$|r7=df}%G~nz#G2*QBg7Y_qwGlf9 zw@f2Bw%?--NAxiZ=xb4DrK%!gpY5(~0Dd+!$~j3N#LRB&>1`5|!pYR}93Tu4cUxT} z?;0T&KVt6hN2u-tw1FF;zHxy2kaT^Nj7#rBo@>mTO`IAZ!e>Vj4*J}u>Np-7xOkt@ zCxIr6wzHfw+An8h-okZxCV?+1^})Rk{$R8({wjbqyD5+JrmnJ2@dcDNzj5GMxxdjd zx`WSvZ%R2^#IApii8mN^*6gRBe%#1(664ru_jPVVg|g~d@>$c!i=n@O&!R6r?PBJ} zRWI!Xp4n(_+N%! zZ205RcWXP%f5ZFvZ@2lcrl0?wH2o*Wl$Ey#@>Kv(&86 znDYjPXF@OxG-rVK;NE|?)PazE_qwUS<2dU7g0>*2e~oo?{RfVt{!dYV3F`0Yr~W+^ zb2t%gOss4p$-R``H!4xKGh*Gfn6o{9D)u)1yT(tkxd9z*f~?2aGl>Bqt2%9Yy1t@*?EjQ*L+{&bGXj-W7IkK`(^wdY(91k>pLGQ%tsgIBmRAj zEAM4KviEBIcrWwOaj(XS_c9-g@6~t^*pkO2$BB;L&2u&3bX8H85T`y$`@xQ`q8^s_ zWyS{T9r0f`c?@WS;BzX!{Y0q!c&PnE zsQrZ9Ew)Z*$71_zkN1qcZzj!pgnb%V*)Q|g#Z+s9*fBY6;28ruon=)qxgY2f_{BHg zZLLbUtqsgY9K;@u8@R*<|2W!8n6}VP720b^gxaD`k+R*PsgSSjWiKYO%WxJg^KTS+ zXF)D*x8iJWt4iRJ7_(x>H6OpXRaxXGTIe^zyixPS-c;MPtr7j)H4-CZjUV?mi9E@( z?E}IGT&`vC)LkOqF`jTj?h@zaRCBAZnr{W))SCHf2Ih06k61YU~nP!ab z#e%EShpqFLsC0+_Fv}*_$k@*|vISv}Cj&Uz8^o?Hi#g1aM+F>?frEMIWL}8(9aV9s z1MAW%xseD5b@T~uwTvz9@pp_Vy9UoP)7E_EL@;fwF>PUvZM0=~G=P^tyC{qGi|Bj6 z9Bqse_?|Fp$TjVhdjoBI)pwqC--+YsJ6K=z3q0v)h@;=Q*z-|8h5nM8N-+GGJS}i7 zZgRX~4XbJ`tfh(D4IaLh`|?};>`Q?e{Z*kn`(u18>_;n}Y?a*6+D>wb#2bpa9SyPM znud6`-RBtCKE?rQwQ7~ zeWS$NSR=pJNxbnjCHzy#Hp~V07Uqk40&vBWtK|-tx)A=BXj$vma9=rM4_g)Y$g8)? z-lhB!v?sCr0UPgOZjgLqx=;DtTZ`W>FMNbJnQ9dr7nx3I6Zij;oZOvbE~LD(Np$Md zg*We(|9?gP)&m~2+!e$k7|po|a9FkIJR7vvjX{oxwP5aARtxMma4h&Op1z%YIbdGV z5cgJ8C6e6@ahG%4CTkzGCor@S=F18jIcKI%4cqMk+Z8gFTV*WF4@7@w)r>wM+sWLb zP06*)e2C6EL;DCHX&>Nomiv0_3v#hkK>NB4?E{P{(7qICAN`3^ZGtDH=_0GS9X@ei z+m-@%F)w$B4g&ZN9Qg;~(K9)HR&|(uNK=*#OjAsmOXRLkzfYAl?ef1w8~*TmrZ_i? zMCOn?e$Z9UT@~$nu@(v7kzVI^;xusTR)bgA1D=5azw7wl*oR(wRl;j;kamFcoI~cC zj$t3@J29-WLtCCU#vvU2UD4MrLqFaAt(<$>p;M-2S*!{1TGqo`A>-6^!Qi>qE$!-k zwSe=d;lY_0H@|@%U~er0ZfHE;!tt9kIN|C2PMflbM;dXL{Qi#M=Q96?q4PQ@`(aZy z9x5A0*}Fx)ULyBvyfdV&5U%|^G|ve~&zYj{gLA8l7vlj=-6gp<^;%z^izS1# zzRORfK!ccDAPJmGwl+}5iTRfKO0?+pQQTYf)8d>1-~JtaQr{H;9{pZ$i~PVc|L@H^ z@q+X^e}s3l;^Qr`Ke=9(*1<+BGztZK)Ry>1$VftTxXMwYlPe|?U|!_|6|QfSLSHm|5$UgBx87gd$rj4C!AXUCy9_f zB5eVU4@WRw+9mFb^6sqN?=xo9UlT9am3u1Gqkqg(L-hQF|636%8{p`McwgLbEvDuV6)v}-SJ;39xD~J$m$M)-Lr{)Znk1$D;t z)7N0-N4>}LL*HZhBjW}rk2MmUW8SWSo~iEra^JhjQY*!$b|5@jjXHH=2dM%Xm2voj z_xD@Rl&^drVd*$Ol3Tmt|KOgxjAv=Dv>zN>WPXdeVa)Gg{5~{P^(JtdwPxB&~+~#q8X~D2~7BQ0KR&_XI~B&DJ#1p^*xrG`BBV`{8;EuwodqDmBnw_=#M4$j=byXubQZ>)LH52ypK4@_-G~;-Kw4LQ(jbkHfN<~NIWvi z_WQ(UGm{%)>~s_3N^!PEi%&Pstb|)D@hn@+nJ2#gNo_O!Z>Q@xrpnm*N`5em`{yQR zgz$E5y&u)_0?(725k<`^TSG?!ER zj@ut#+-D9jZn={+Yx*zLcSv2@1~lmXq!!dke2a>;v$7ob68fgdn$g}#VhE;|dl9kE z&}+qYtC8_6l2|NFW;}lsd^!GgduRN>>lVO&tI^j8{OJan+Y#J{I*!Fq+9?I|EP1m4 ztDfsOB?j`FPHC=(4mQ`U|8{7vXU8-BheG}Vy zHMBO`s3*z8uo3o_Yb^k$RYS3uFLjE+7 zvi(G|R&*1wP#ja9NB`xN<8-+4V?kfM$#6YDRq=18NVty!=pW+oOL#2=v1xG zSfFToQp~g;5ncTZuguS;y>B_?{AR)LUOjQ8L?5S#$M)c_w7DW0P#-W!+T z;(1&h^3z%vTBk#ybqd~PzqfFHPSooJTx$re6M1sM^K>S6kUXR5FIX$$X)qVT{+76K zYK8Za&|C!n4YX!kFy?C)S!&ajnvbf)okVIgedPM!&#~}E{C2P=bpxzPe{lRW;Mlj& zQuTzx*8F6DyzRBCHE$aSteFv-e#DKfGWf{dSf_28zr<3P_|i=IUB^Gm@lMCG+g?aG z+kAuTB74+w117Cw z??qB`$w#b;8GdX6^#ofx^TQlX7rrQCx=e5|kxWOl%yC&Ek!*u(eusY+_EL|tGsiVD z_jW@Q&WgOs-r?7@tn`LvT0O4$P{?F8c8ACNlBbP|>+{D!8%Fl-x9?DWlY9I@_W%Es;B71O z2m{Q^orBJc9-lrR^f<{^Nk8aMazQZGM7SThL$4DV-qrp+XO!Y^Ck>3K`_KK<4QSz? zs#WjG&spNfEUG@lZW6KBsWMhqj?Au172{xLQa_v&A+XnivhlfKU0&gN1Duf^kJ3zKGb_W z@S&;H%aWcZn}o*@{X54sC6k-}gzht9&a3|{_O;m>h_*_~h&ogYaw$%RJDWv0RrQh%L0y35IZC8~VsXMml`4Rl3^=pBhK|}?iAQ-Y;&#y_pUN)SiZ||5PJSPeIuB=Fg3^9`mQ;1Y|tXL%&W;V z7vhqf#MFiiKF;`%jiHX;(1)Ns?z0ncPE@65f|f3pxLwpAHi=!uMWQ2*gD0s5PvRI| zIb-yni}loTNiG#TW46Cv@)DT*OvDM=>YMioCu^N9?I50Xx@CMd!24gA?|jc2T%q2w zN$@4Zc*O^IfE3Ve``!}P>{@}*7??*(fuaX0XtaaD(h@L($bI{>-sjhU9} z!Kcs}?C)EJZ&?F88>#Q`xK3V1V$hNH@I0Und$`l;C73?}xW;(DY@hvzeM_jH51^lG z(0<3vvOEz{Mwi6(CoUQNMiBFjvca_h9PUW5r6}D!+0?DiV|mIx-5+_kxUmmi=DmyQ zJC43>^sDfYH>dwK`SL*43hv^xuW2iD%;jSCT7UCl&4&bXE@d6bc|rRGcR6Ft4^7zZ zl27I*O-jl#mltVF++NNcaxWz8ZKX4Hud@ed)1z|F#j>xP@x%>p!niMiA2G`$99QH5 zxqEP~bRy1`F69H^{hA5y+CF^t38abOwQI<~Hfwn$kgo!M=LPH!ey=k8?{6^10FHz+ zU3@sAS~oOS&IpV}Y@`j12SMx|JyP|)ZFHR?myjN%YW+Yalsr6!=i)s}RdXxzGg1Gu zF~~KUHT)oRm&rLVe1DsFg5mG4l=(FB7|z2)bJXW~5Z0N+gm+Cbp4DTFSJ`9l%th>N z`v%@o;N%*^ zBdTlw_d; zCHiaWPFB*IZ=HNce z!Qo3ZU9PjPE070dd;*?NnCDg8rxwnA@+NP*Q#>eRm`FUB>hVr0d{4OvZN0^|0L#JB zp0D!*dd$5lcWI(WUYMJDt>&cyTooS%vk!WX=zXAh?F{x2aE0HK;9YG#+xE9q$X@|% zlYUY`Ka2Y9Cx|!nlOtuBv)m89r*uD6ww}kJufWz!?j=x z=2I=O{{=@(j4id!f2FANY4Z2Key7+=9`pGCualZT=01oRKKvg~ zQ94djOIg2G^N!YS$=Z?Tao^Z0yv67zh`%a+D~xqw-qT0Q@>H1?XL1*ztuOcLSQyq4 zeGUe5OFGN`*zdu&gFe@X`dpU(1lqlDiS{41Y#m>|!Nkkr`<0=7TSEO#K)-X)FXum^ z??EMhZUFB>Q_l_68G||(^agP|AkQ=#c=6wsw;2m$p+57oX?@=)F^bgas*((lHP_fAZUmY=gVZv?gin^_7 z&Cf#~flP9O=I;u>>_?y4pNz6GqIz#aUyIKt{abD1-}y3kF{5MITWOQfPdh7_Yx`4x zneBvRC$^Iid1PRi#lI0SZ>rQ8_tVeU(9aX-=bkB+8f=Zf@gCRsRqNy#RjZ=S_=Ncfin&@|WBeV7R}~rq>;A}$Bi@fqA7sDBVunB8k9DSBQ4Fv$wkPZE zF>+zJ|A~fQ__oEI-I*L^KjuHEamx7lbNolx_M%O7u-H3s7UUsF!u7KP{ad%(sSC}{ zcKY9_(C_en(QkU2rCdVnqBo2Ff$|{pnZ>f1vCQ4Tm@jo5MI=sUTAXyVT*%8D%RuJ)sD61Z{$*TWm^_ZD-9*G^q}v&J!jIkndR@LSq% zn|7Jk*jo(0ahvx+^ZPKlHx`?TgLBM2nq}f@|I;WF&qv)%xq4_Y?unsxPBiUM|I=vd zzp7O4wHI1y3LXbf3!Vg?*oEbs8V|4y!ymC7;rmQm8MUSAMCu$l_gT#k3D3m%e$GSw zxDSu>A|Gw_+9tJn(X+4gqRd@0=}LTW)4$vaAF=5T2Y zwbT9{+UZ0)_o5vK^;38bt8zQnzlV1I3GG~sb{3-zumWmBU_URiPp0sBv_<+pk+I6; zPUbf6hp!iVgIqO1oH4G+HE4^USEEiho_e(FqP=~pZ=0X$r_HScw7I~vc?s(L3!ZF? zrP|Tv8x?JSq@OnL8KBKinl{fvoiE|J7H!7SW=}<%PCspC259qxrp?n)XCaT8_1^3=9$>hSKkPrckB$NQc&AtQ z@h8;zEA-KfKCVXlT@`rnd_Qfj8lcS=Oq+SssYRO!wD|zwzP6&x9sRV~IzXE{O`E?$ zox^w@_?o4jL7U?%+Wb*JZT{l`Z9Zh$d;oR!WFH`42otL7$1HQi~JeR)jjXUXlLZuJHjm^WP==;7o2(g)d0l?b@dTe=p+)vBWRyTub&h!Y?u(0mra@A7fYX z%o{3nn!l~qIn)_z)LAR@5qG!yq6>E0OJ}ytcr@fwG4|KZeIaE4S9rTM`{)BF_At~5 zxtsQ#BzIX0blf=Rw)WCKbKUDa8w(0?dmY}F`{L(~e&Tk!&cEaEbDJON-Gn!CO?@|Q z;7yCJg?EdTK@Q3~trZz0u)m7gef=|*mx1m{=FFX5!AGq2gIqzi zNG6{YW{>zGJD@Z$+%kkCeOY$G_WGUK_?Ge>U_z(Azx> zerDzQa^G;&+WO)0qMPgTz0hx>$1r!sBj{7IM8{+%?$Ab2?!=Y0G1B)D3ks6+#?f)Q z&p0u_^|g8(uqII_+xM|YnH=)a~9>n+OM$yxB9qso+-8SZs_f9&WZQJ|u`}y>!_viQ1K1jXe@%#Dt zsN?th8Q)J|gOzW5kL45ZvAi0nyz%>?Z6eFceQz4;-m+m|4dnR|P9_>_#{PD?8mf6u z9pr%oO*ujQA}%$4E|(T4SMh#bxBm-YwXD-Lta&-)tzYc#bI)r-UTYrf4=0|sXgw(P z2ll?=7{S{XP2U-plQ!6tU4GMm{m`OmI&JBM-!`)51jhANT?ZIzG@fn;4Zp}^-W;|` zJB_NAsb1V!+raUh5ZqgA&E#G=qHQ3Dw9NEWM)Eg_4J5}h*4$zJfc>h^fp5RGE*NW- zTIDt2eVDlqzNbOwl8y`QdLdUzu&m0c%F)_ z49?RBkA!UEE6zaPIsGMP;H(C72D-XWZDT@v*zSE26GePYm_K8+A4>v8XSLYM#_eSX z;@OAGHdh9>x!>6~<=RONL5@1oVZdT97Z{ZL2xYN@{hbY$7m7#uub$qI-B|d%roT+( zc};!h{}<==5pzHDim`7EpVLFIuLA$K@OuJ05##Fx{(6<)`}*=7?GHFuTjBDR@zWxK z{~!JF-E^M!+;P>_FhXUbB|eLLf_ngU;?3*!DPy~Wb({no87t?o>ikHxS|l`%w1Mr2 ze+>7KojDD%`Z*(XY{}J@yR1!o-k5^|btD%n@SS_=R6}b|lm9Zg-{&!xslNC20nORP zT;aeW-f2lbW6{;Dm0WjhV}#iIE#f&?`>VX64b5fR5VRN21J?b6(fM+J&~IpYz1DFt z=Ut#?Vmv#Q$Jj2J^cN-eV@e zTts-X^6z0D=a-UDE)kEd)q%04uyufJx1S7D#c%J14ocG|)kg-WJ^wdlh2Othrab{aO1NwKvA>k7^UU4*4=Z%`EHAd7 zT9#N%TZmu0t99SucBBng+pV&#Oy%7Me(yCp^RNvv=}FiIdCdSe$YJ|qQ>P$j1?nsx z!2UQ!d^v{g@!uV%?eQg;!-)>$%@4gd+hei+F*sUjb1ZSoj$v;AfIxr0Ja-U#<1+x$ zhEpwd_gRD68=oK8?HHIj4*|^6r)WP8!W_)WqybrgjLziV7#^|ax@*r~se0QX_5!3f7pusKe ze(6rn@bQe9%e{=fvPwDYnXk2uJOt{A4lN#PJ8I+!w#~aY!toUPh})ZA3}7Bo0rMve z%#0Dt^>~cs8KXSQJH17@r;5chs#3Rj)lQq--6o9PY+c1z9zs3ZuhLGJG-IgYS-y>P zmbvh%^j)shO+cPG(bQ+%Yf$$gV;eox-Ld~a80#o?q46!!afEpfQe|vzs{ng7U_a6D zJ>WNnUWPWl7ixq2{9edFeE*K<_3*p1WB)^9Q+p@o>GAzP553b~Icn$~VOojy@?uYW zC+L;_KcH2!-!As9JyY91#AuU1o{#alh;yLrLqqli(QIaH#BG=R#=vK7QN@1l&yHXT z`WSzPrJ9?{G*RSdLkrms{Y9q@K#PL%EXz6x)AvXFp+keUe?~?7flfHEE20ej1@iSv8ZS2v9wzrrE`k`%z`=ci(3_?#vVP0m9vDCs3TB<)-rVRkgTSqGG{m+tE zZ-HHUwdj`1H20+=ea9V!Cu}?Yhd&p49{|_AeL{c_nqDf#1C+SG-HcUO8mHXh(q9#A z>^?FuT@R1>x9DRb`e>eDaKXT>+%>unXN}CIted0nQI7}qZD{xKNjNVil<(fHWa$3A zS>JoVjPpO1U59aLpNJU7QX_d1^;l}0%vj!u2X=v*kMz9@58wS$=N|O`ZS=qL1D3k! zq>z89>0j)^(f_aOwT^*yA>vboKEr)+yvs~~EfxDI+}BF<)r7w6lZ@R`s_Q@^J5~G( zEE_c5*f1oVx#Aa(IU6fDX={G*nj;~*cDJvu_H}4G`&X8_zp>ml+Y7f(zuUpuPYu%k zXV88#+F$q=v_E-}_NUSo1ns|Z;?Z*x;4%9kE)S{bL)#>1TbENS@OhyAPDg)Tr(3H1 z#1P&!Yd?Sz?g8&EA>Wx=cOYS3Bz`>A7$a$`<<0eCkU5A8!;SAZbNLV-j=b9!_XfiK z7{`qM6Q{rbIW4?9@SMK%RxaLXb<pTd;TY~51pd3xPY3!)H|V|3II}kA zM{?YE`}NJ6<-U)!hV-r)eOJ@2h~snHyoA96%AUjl#^&e#{}=S>qEELUdb0w3a@@4f zXsj4_8viu{o&?}IRBx%nkpCF#R(wp2-wVe~nma78bxM(U*Y-|T;-8Vp(e8;j%Dga~ zcb+$&0Zg&u> ztVrrsPZ=G+aG{m+4evR>FdTAUt0t1iZinkZq+d_<@Mr{Vkx5{ygQBbJ=pd_k?&m#+dKwr>%(=YytBXT7glZWg^xJbg1{mi4~q?5VSKZuaeveWU0;(zox6tIMR#c-Ly5 zdUnn~?|CjIPNv&+dtL3Oo%P~pX&d{dPqPgEr;e5UeJstp#KjVyJeFQ9@02yd?IuTP zo>Kd607mwa-X^&gL_bA4DJNs?gdDwK`t6oud+9i8M@~4tIBFd03j>Vx+1mcc%3L?W8n&7B4q~U7wK`@T zF2X!e47FD)VyHcSLjN(;23x1^4FLP@5bSG=-*Yghwuzla*p4TD+IPxxd|dI<2ycD> zc)vaXyib|=4aZGm{5-*(zaVy6ux7`-UZ64DV-he!1!s0j2=^X!{q9t;--mhiLHIZ zzIMXk@zdOpez>kO?p3P$m@(6WyD!FATM)wcW5vJv*_*}QeM2l&f1>7t2tzn-S|qvp zfJ5FKFp%#Z6^@yfx=>=K4F_z)Q{;;WkC`U6`GnJMlh|n=G;qFI0VjE9^3Y)(xf^f} z6hEy4|4qRdu7!M*!s84H;-?wh0M7l?#<`kWKWO|krEu>gGK;axlk+B7o_p@g%WPvC!8<^AyC1XH`?SB2{c8hn!Dn%gp9EQ; zFYmpGy5v=XFAdB5^l-7aTCG38_xlfP9cM6C^@bmRUgBMA+nK88ier+`7kls5a+T05 zeaD#fnO7vMndnekBtDz=VFYY%g8yZlGum{>9ZIv7_1NdIKNF610>_%eNBcQcc5`S9vWBWI&H65rvO*u&1kDxw-vPWAH_0`zW9#D(Uv~=d1>x^;OEl4#optY zza6jt@66w*0p@S-uz}}q;YjLjbnMc23S&>D_5BRaTXIVO!Ketlm z4bil>UWe>$TdF7W{@TCy80~v#e<|eY7PKF%ZD30t_@0LEU}%S@Caj;CS{zH%IXx_4n7 z(!-f=LfhuN7yqw7@51*Pw$_Udl#@KYw>+l%&)5Dw!QEMqlRQQoeXbbFyH{>Mc8vC~ z3AMlQeC-F+U;7YzD)LIE^5nZ$Df(dT$<35p!)oZ1-xqs#;`>~a8*3Nd7vY_9_insT z$2)kY(ReNZo||q{!Hxk zdTs9}ejX9AYs=)m0GQ4p94I#zWytUD!uuk;Q%2d1_vt$R(&#6P{{qw9>zp4sf5|D5*0W2`4zb^7gCXXR}0>EmKE2b$9M6Z8!)<*yZ5l_~&^S}U_E zABAjJ5Pi*OBv&8fZlW1V4QT?Kfz)7c~I`KGMr9$C*n z$a?OPHGEapQ@_6?>$ykP@I_fq{r-Zi=N?&4jCobU_+mp|{1)i_gCcK2{!2J9$-PJY zgzd%}08;~D8J}G1-}*sSVV`v+W1k=V=ihNJo#j9NoQb(%V(fBUJ!kjGSjA=?>*0u> zN2`C+2g^3=JJ0TseM21Gb#{;J8{+8hvwLK(5J&fzcjD-iXZOfnA&x#}-hrc|Kj8Mr zzS+lp|)o1@$1qJ>cjZxIEX{_i*%m zPf%WDyakMfHhP0whA+2U!)F6NdjR-I3;EyGpuGVsGlG64KU|wX3*VUwbYkiEZhvwJ zR^kQwi}%dV+p~-fEH+QeFiYKyJ+${gL}l^Zi^sz%o>s5aM7%4^FXQEs*I8RJmXiTj zduS~GZpISFSmFbWh5Gn~CAhk!9CatbxTyb_9Qxl4^+_3wWq-?lM5dUXS7t2U{)ie6 zxHsT)DV}Ta#J1x62J8umk2p-<^#HaQ`n25LkfUe&j9Dvj$a-$c$F>?9xX_s6sP{^> z*eK-|OWwTJ(p-l7udI_hs*X2corI~Auz>^4Fn`xyPsy;^WFDQZ_E4a zWA*#2*Y-Z^{q0{c=U@B_>R$F2)SY!4b%Q++jJ1BOrcw5!zI$2peW?F&?7z1v_Bn0p z4+Ov2-M&|PZ}XoC{od1OuP*bphsr$^D#ty~|L+Z#*FJO`2}2`b2-6zw*_Hj&Um9w^ zrGide9scf475$B-J8Sl{JZV7XzQ6YzOV#fK-N3W2pr0r3JcQ=~JX`T>z>~()f`^$# z=io`=Ar0*huYO;3{OcRgj$QAg&ZF<6&I9kEP9^UB+i}zl<6aDPoP^o%5FJd z&kf$4soo=FLE~-8QaC^CR=<(|L8ho&tBI2!QDe>zsq(xhG{0WpS)Vrjl+Gf9%jB05 zLjT+H3G-h};$RLF->iT~AP=Meo1PE15uDS(d8ON$E^WOkd~V-4m^jKR!Piy7$=#@P zT0S@v8FTLmvEkP`_{uYLB=+Bdleig`Fm8Z! z)BN*@T8t-&XS^5bGp9DzZtDQBlXuz-*m=GNa~Cyp9G#rWorVW;#=&)fzoilu$pbOW zUlJPE!isT`Uzid4%~s{P5Azy9UzIqx_xISdcve1&eT(OsNBi0%x0?wbfpF3)8 z;(#p%7!Pj)t;KWi^AWk9sJ`W_mmANV{?d5Bd(yC}FTDf#Z`LjMzq0k5E&kTijGiIY zyw#}yc-j`33!afqveS>;+4*wpmd=-}zt{OP{TO1jFKy1$xi@TSpxroSQtIEw z_jKl~Z~56vfsVVCF*}o~{FNy4Ao@JGmE)IaIIUV|KU(y)0i{X?{Tx7Ud8e`~(; zeoyo+oIAD7-*NU9=29-mxGUgs9Bt#yJx4o=YfKw}ZFCZNJx=Iz+W#2#VDgq9OaD8W zW1j6dX9_Ljw)j_HuX%z9<>kiiIGJZ9$nzGCsSmhqc?Y0?%QuhQ*1??YARfoV$T1%9HI z^DrO$0bl}b=VOdD=yR+YV*m?vHI{*ezX$LzH!|majDcl?nfDXT_qF)Wb((3`3GIJ5 zYT#QKg6}clPbG|}0+!+9G6mL~h_a2CuO_U^9T?-3f7qOx6Ofv_J zy*)gVDI6C2H$5))_x}?2?(tPsXZrZs=aQU+6n1WyrqOIJDizcnK#j=A2?3$Pw1D_Gv{z9Ez^$@Qmv_ zK%4K*enOsMJN}Jjz0!tCu21b#g7HNmrgNx0IFWSs0_dG>#mAMJLs=QD2xxWTb#Z!d6^@&1UjZ|UnM;-hh;f6Aiy zC53Cx9DB-`B_)RdtNTj{+pEBPU%CA`L&X|X@u<6wHp{uCO;*oQ+8jKz3v@5LpX0^7 zYf9@;=Oh1)aXXiK#hLqLdnvqAg7!864ild3^mv^%#G%>b^#P}U!8P@8XW;pK;>6lB z2ho=|7$d#LPBZ&i&_&Z;{{Eg*0y5}J|c5~1OGN@ zy=eK!d>@6H8q<_p!>4XSvX8>!g;|m50 z*Q_7JH*b7Z*991F2aLC0g8C{K&EFZ;`DMoU=#ysz{r7)KY?yucg0B)6iN7cfz|A@B z?-EbvG~RJDPP?`=QF?h z@s>+FUYKJvocf)nTMo|o`!nuba@l3C&dELc`Ct9ubHADsoxy*;{w|UHqp`BWJ@?{g zPDE$DR`lE;@4Nb!YvxBMTc>_zLFGNOFTCmDl2un*&%AlzpHI#`=eP2CBYt0e=$V`U z@q+6wetXSJ`x>79;lTb_Pq{7t*ApL6kL{I^fnCz4nG_dC05|LI%C z$hG^{9HZcJ|Gc%ePmjkO6s|qv8Q{xKqsiGZ({&#guJhm}|Ken;cGU*C)zA9lu7B3g zeQkjkZC(J}yF8oQ*Wr(CUhhVq?ezZ(I5#_68;r$$6LVhkvDyKA?>CI;8$5MU?SRp| z-ZP$EEN!N%K%XYAtR0B0sUMuTwtleSzIB5|Yt9_Ry7v!Y?L~HX`jO{4J+Y>1U@Y@o zt~_Hfigi+rIVbLXdQI)XHB)N`<}I2vSTHq?`EPh*-lF=!OV<_*UVBmPz$I&AgYkTiD zIk>+T?Od{E=3wF4$%B`yIdAa)p{?6ccNG1Mubhl`FBt6pmx95@3=8XcZaXw>xG1j~0g264f1NMO3TEK}uZbsiC z@0IDbL9umT_LAHCPNPjN&n1^)&VDqr(<{UpgAA742s-58oA{y&1`ANneDr1S8nus< z*v`RL&pbI(R)6Uvj^%3XL)U&UGK;)@&rvxxe3Jpr%wKu_U~JJDgYz-&-GJRL z!fp}Z40z95+lOc85AFpX#4z@~c)kZX7rCf%a1ZXqKNcO_gM0C*rE=cq0T1R+jSdo? zb655aK0lRsasi%A#^2{*j({_3+Ayc*5B?Z1n1^Qz^n5ZuIrR}n!4e=Vnf^8wrXirT<1JKc!2N!pbW2Ar#BHUIHwF1PV0aD;nz z;o2#(p2a5>9gCDs`W|TJj>k{t9$7&D>AdyyHefSN)4NCUoUy*0y|n??U4eb#3b{{QF|<4STWwK`B?A3sbhKvj3bVJD*E;&?n&MzkM0Y3Z^;{D4aN6t z8{$tw8vWuNNeV%WLw-fk)<4ae_nUusXUun(Lu?RD{Cjv`5XtD1-kgFLf7W>H#Nvz9 zckghYm@{PK1AgS43E1PTm$GW#FC4p6$3>#vglntes=n;!c@K0gSFy_Iyc?{Z&2yC*^cqRoHmjB^n9e!B_i6bEg}~efh9*ioitq0Cix|K@6t@SKvH(G2Il*^c>jB6wHBG_Bncn**I zhUoP8j%7A^(@Wd3C8_yt8TvsPg7#Y?VGqi1JI4k1j=FF9JvK;-Ez69vs_D`X0$lQ=O z_H#Ut>z+#C8`8>1%5X*MuI$->;R6=+X!zURM4$Cy)?u9D_>nB;%Eeq+2eM1{v}QwJ z9J5r#d2MfKamC851KdC2phXeTwI4NdSu({T3xYb%fKmeFI0Oq$3q$w(r(gg z&QtrG7D=<2BQfObn%@%Qu{Txx(+K2|g!IkpI?C@RgJ*7-Wx4`;D9^}QM~S^Ddm7jD znx26RC69f^prGs+?h~{%o+X^~?ZyYjWA2V-$eXviB_hS#8~Z8GRRE@613h5BNE5^? z)i1(@IU*zA&4=POU>)+jR$xqk|DcRvhimGkK8E($5B7n&$@8$zAR|2@^*$=6^`VN} zdk5GKWy6mOMI*Uq@ytHI59jl|R`;U_`vv(5+N($K{ooKyO*MvmWFD=g4a;o8vu}1T zcM`uTNLZ1&s27=l^=h_e!?WE2tc6pUqY1y`-c@J8#g>u*7 zPYZ|dn;5T|XP?3|UTO1EZ3t{!f<6?|ewAx1t#UI+J__^@Lglevq%eQYDKDP7)2-Dy zpIeKRe&=I4M#z)WHiG`MPIkH0CqTA;>KU;&yR&(3wkFvg$a7!ot|L6#u&j1@-6><~ zs%xI5PT{qE*Ab)S6n`3RLflx4bj8H|yayj(v*x z)@}hDegML|6Xg~Z$WoxhLR8tkQvV*pEsSYM_%WXveU=G7l^1Im-qIc@qrNN2Y&k;s z4u5;UjJGsTe@i+4)^^6KPI? zj0AnMQeH;qB%lvQ4P&V5bMKE*AAz;`ByHej9GWH4mLqAm%iLague5IlV_7-A&A4e; z4}^nhZ4Fv41}y~6?6lcldvLXA_Y%N?HIU;+k1y=cIN|`lH_j^eHdAllYz<9vs;(%iiO&U*KE(5O##`$KD5i zHhteR3OCTV$`bS?>Rf6PPSkNom=>4&R}rS@H^;qVPZw#; zN%Iv6v(E}eH<|%QGu;y;((7Hqc`@ckIG^u5OCjDkaPdW9Rp;)hEAEc>)W>lhbtZrN|ZeW8rQvNcGMXH2)cGL~PuJzy>=;`jUY zjjQtdG%r+rP`x9LAv+XXxB@SCpJ_l+9l)H zyD|=#Pn(r`Q=e}ovB#v;Ip$c&E4BxZ{fT)>nx%h%(DX&v>ncMYCxtrqqRudW|4H+p zgbisTZJ6mZh5cH>$;}PL>whXn+q<(OUS!r>Pgq|BpY?zn83VcDBJKqp0b@bV&bKuO zoOW8TWYeO|107U&VJUkSVU2uO)-mdPp3m&G4rY(0D5I762~D%PH_BK*fNP`G?p4Tm zX6=AE_OSe%5O$X*^WR`RdpHi0u}al^HcVIJ0>56|iGAld@RIt8h>M+qo}zI)BSI07oJ@y4M;>KTTIfuX0chjex zu{;^SESCdseDdVUH2#5)^iAz&FJswd4hHN${YxWOi!jWV2xYt}goXW9U}O#+=CjGt ze{+fUq0=#o?R1uKAwMf^Io(YG{aVM;rz#WruC;jV??>5Ri!tJs%KrYf_KQcgUofiu z;rwQeZumQN&s68iqZ&#oOR0_l^H*veX?3_EpklQ}Rs&SxyOm9Y~1Sn9h0=!u0kWV^uuEZhJ7{f8KA;?Whdrz%5aGE_o&?>xBC^Wkh>R@Q`Q=9=6(~ ztk_*LEbGwLc459eX>JK-i{9WN(5vpTQFkW#_ORF#+;3a%H>b5poHDG<*l!>79GnB$Lye!Kr>5BssuZut-SeNlER zG9JZZZJ!i{ z-lgRer}TC^_pybg>Tk+e%Rax(E5JI>uea5vE%)V8_8^`v&-;EYzOQHOY;AuS&dY4v zi;H2KV7E+tL%++=Z}|z}!!O1txb3uG%of>EuSnHX9PTHatKY?j__^QY=Sap0{vLwWKWgxI23jhpeiMDVK+3!2{+V*$Z1p(?`ph%VhmwO7-$S48@VnOl zyQfqfI-mLte)D~~M(#PHe3iBY&&9>DB0DZ&zcam;e8P|n_}i#Bb}*-MDzJ^DZbQl> zdF|A5+0 z_i5aJsMruwfEev3b2+Z9*XD9vESGj7oQrTRrD^kkb<%sT;zM7Htdo8t^tp@KN$)oB z9Wm=cId7y*%HGfQssE}~ISXZc(ARdW7yvSsta1MlV?w9Q!7*Oi^SIJpKg7=x8KU1l)sFvX8OKuP z;h--R`S(yh;{8Rq_qK)y*1<;h^R?-U4#|F|WbTe)V*+Uq_PM$?cdYEw&9niCD%}n9 z);iJreu-3@#PhQE>6fAV#XfatIKDRht~mM@KP=AyT>A3#hw%(5Y?Y^Kn0_mr7Goei zRG?_ehv~j(Uy#=Cy`OIJGn5zf^ABo^a(#Wl|6Y!4_``?Gk%=#vNvX^g&KM&S_b^A4uR`5p zHR?W&zYWmJo#x&wW6~999S7%aX+#{$kF6c{sU)s-QalTqwI^!KYAa8P_Da%={1}~l z_vy$mO*b+Yc+MJs0^kwNn4q&6@Nv8RnALqaW^amd4MsE5yxdIJ@7(2NXE2trz3Fg? z#j}sLY%FWQ%)$XLaZ5+^%xGS8(_ezYVtVbV;; zc$a4q*n6y!>)cpU^@)6(T>I9GhYkDSVTI32C$NsFm@DNATgb5ww~PKpQ-&w|j{Zed zyw~Ehv4(QXcl(oKm&v}NUsCtjzNg03(Kp)b^yl`z=GRGF zIT%d5+R5U&pTF$$Ik=9jaAduwuOM%CAUi2>S$1q*{jsoq+%M4ebA6XQ-^cTc>OT8m zcH#<|H@u%VxV+}RcnaH2MZ8HRf2H5C;d*7iXFJjdC@0FK9Wh}saXI=sbC0iL*??XP zg%3F^?&U<(<9tL!YQpKu9fNc7j$HF|-SEAr37ilnXk?Se`eKk9hzr7U{pqvYN+DbN zC3`!wCC{T+jo@E*XFDgA>G7u{a*hSh1k+`?lJau-n^3>`a;rfdwC$8fl}xk6u%oR* z{Fg1`%M?41#U0A$O_VJ*9gb)2aK{2RF;T-ay&;)4=C&RFqn2w)A79KIRJIVAJ%N+~ zAhR&1VO;8LML*>XdDhBjQZ7((#5?&i2m596?61w_nDY7T@E!V=^Xw;-@2Q`cail?8 z$$L*J>kX#tR%eAJ=B6VNhx64XV-AU?P13%cx_cR;B>D2;nAHK^_oX0#`D9iUOuUGE5oJZ;= zKtsuI^+%IQS7dI1-1eAT#2B#|=VijCf;O6vU+yz4(AHNE$4vCiJQ&18sc)O}$_UG- zS?ZO@J!px41z>f7v<;jmV_^eNAEA6Jl9=11)ArcUwh~swl!^MK9DJMP{e-qd1-_L@ z8$mf2lpTBGGA2-JV~`);nl_C_YQD#D$@66EE6j5~!!&>HizMysooFPr4)Q}+{B(S8 z19s(let8~M+^k?0wi{`|97B}-choge`{%MB^wU5a2Krq6>%4YY-!bYz>{o-|fG(_1 zcJI|D>IIwvIUi`B@vPXNh`rA1&M8}tM6*-Q=f6?s;JP1O0s7$IiF@>6f9!A2tFC6u zpqv;w6Jq?e!==5!;a$VHMqMNEEk=AxD|}E>MA>P-kQJ^gY3kTar`rq|FwO>J#aEy_ z0BlQ|W^%TP}+(^Wc* zv6=gih|K*eUb&808;+Scvv*Vs@|xpn{Qp~>$j0A)xK8B2dqVP$?V%4fbyHlAsK>zk zF}{E)V|vT{KS5KS_NilxZ`@lthkjLzG0+n%+(BK$O22`6Y^R53_F0~(KBOJfZiQ=m6joxwF$w^iCIOWhG@q9MNI$CC3rl_ThK>AxPcw@II?xU>;t-jh|f z<+%N7)}$}QMSFantM0V-WtlsS=TwcP*;RC`<>EWqL&ti*p!H~Qm z`IF0i3-3;xLY;mY`G<1qsw(VFamLnGzC$g*-xm7R?61`E6Gc;pi#a~T7+;eChXQ$q zKeF#qen%bPWA{t_1NyIY9{Yx3^v$+5NgR1pzQdSXng=lN2~NdWFy9+#Co-eX1z%b2 zy&-iUfCJi$Ox+DQl=;jrx6|5({bF74w6=5mA>K=2tjrrxFmxXJm$2nt6p?lmuVy)) zcS$;ZkHiu3gyW@O|FUvCFGb%0oAvPm@C=a6OEHep1Cq~4T49_P6{ns$G=*nH(q`hI zgaz?$M2-b9oO9vRT3&C|It0oTlzoMn@`%&6)msU98DhkiO7bhDmom?;sq;%~S$m-| zEDM(WNzp{El_#Yo`>-BxgdC3VXXSm@_di11n)kk8HF%_}t;tq5HlfvRZBX$vZ!z1w zDz4{L$}7+~S|ZkY%+GkE)$R%4rp)Q|XO;VRC>Hs^@y`4o)mOfgUu15^KBd>e zoE)o9-WROc-Ya!h#m=2>O78#Mj~#y==x;1_A8>Wsksr>v-J30L4-S{z9vq#1d*IH! zJ-8bElem&x7sOB!D63JPN$!JOy)LLgsp5TYH}v|ujCTe81ohXX)&)mti`%^I2;*T` z&Fg|ldfSoL7^@|X>+WqwUcvR0ZhYT#Ul4J&9l2U`c+(tJ-!t~J*`4OIXuCt^t%>0` zfwCIKM5#cjN_I$|;YVnh3^W9ca5FsA=j5c8Y!3XWnN#`D5Xj z+5RK%s@PfV5BtbIa||3;y?y&ouE_0-SNcaG&v!@LK*^YR4b&Ms*{zt1NI)w*yvI3c4M;LtJZqvP(GuMi!u!1{*1L( zo?)*}wFm#4Q+e~x zjb;u+O_7d9GM!P)UqFWJ1nq4ds=we3RX=ltOBuSjhV5nk7yR!>-ux^4?_2-3dMp1* zy|?IkL%+s%Xg5Q-8nBrL`ZpQ8^bE#Wl`-v|>|)$Yy_Y+-)BaU94L)if{fnqCvG0?0 zf2BYafB*L00q#Lhrn@|=uPa!1U*BMY`WV!^b7F6>bGq{DC45b*Ri1MvvF9#CSwY`k zlunclDD7$R@>W-HHQKG|MoIMqFM>xDl(CWxYu!*DBjRbS zo4yT>Z-KT>#a!HAz98ke7n@$nG7ht4Un1qp=-YR8kBNx>7)lXJ0_A!`^cUbauJ1=t zA}C;H`acDlyb9$c-dTpiZh?epfY@Iq&=2OQ|92=yQI4R1eDyzr-@_=_Tlz7$ejs^21oi&kp!^rg>nN|G%tkqc z@=KIop!{4vZ$NnkB4Z(N z-yj~}EB!p0ycpggZ`p1EH)$&mdF%CY>fGVhsHmnKxR!pWz_Z&J6HMm8bFv%q{D)`m z6T(JWy-SGiXM{MM#@EjXvEi#iOhcWfsPt=qTT_I}({YkM@3?nd>fRlnx@p=AO_RB5 zd5&}o^`F@r#0$YgLdD?({zcPbpKmln4rq3wjB~d#O1sph{*NM}+Gwuyo{m6GuJdd-bOuR(uQ7UY;7WmAh%m`lI#x?GPuWc*C{Yu_% z$NibO5B{@y3jVIZ8j7T7zj~SfMME4i@%#I@I8?H!7Vma>Mcv^4n!1AJ$*zDhW*l^= z5U`|fr3f^=6L8spI;lEBYkv(rRYFHq+j|& zE_aB!G}3y~>}EY@p8!n4I+zj~IT(k`xrX@CRhQYG<`eW&i`PK}FQz=gN$ zm$IOT-ZcHq*{1V2#=KqF*L@G)Jwd!AzFtM01K{*bgm&xHFF2*RsHT1E!c0#vPB7-m zYeyzc?*j?BmUc+hY>W74rqFKlB6mej^^fh;�CCWdFDagne9SD;V?Jxw@a=)r$Mj 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

~DdFPisz|iv@Aa!#vR)49$Pa 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≷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 AbN~PV literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/Libraries/MpPackML/SG4/ARM/libMpPackML.a b/mappFramework/Logical/Libraries/MpPackML/SG4/ARM/libMpPackML.a new file mode 100644 index 0000000000000000000000000000000000000000..f7df47259a02d1501e46bd2e71e49f24c04600b0 GIT binary patch literal 3132 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%0D0Csw7U>&TaquW7(*(ui`t6S>R;h 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


o8S*y(Bk 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⋙KW<7`UfrP7hfJrqwmeicy(Y&vkD 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

x6|DmfMfTTAM0b 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

    |b7Pvdw#6yPR+;Q&G4)(rBZ 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/Libraries/MpPackML/SG4/IA32/libMpPackML.a b/mappFramework/Logical/Libraries/MpPackML/SG4/IA32/libMpPackML.a new file mode 100644 index 0000000000000000000000000000000000000000..7122e3bc352dbed68e21a872548903d0ba7b522e GIT binary patch literal 5624 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 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/Libraries/MpPackML/SG4/MpPackML.h b/mappFramework/Logical/Libraries/MpPackML/SG4/MpPackML.h new file mode 100644 index 00000000..4337502d --- /dev/null +++ b/mappFramework/Logical/Libraries/MpPackML/SG4/MpPackML.h @@ -0,0 +1,423 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ +/* MpPackML 5.18.0 */ + +#ifndef _MPPACKML_ +#define _MPPACKML_ +#ifdef __cplusplus +extern "C" +{ +#endif +#ifndef _MpPackML_VERSION +#define _MpPackML_VERSION 5.18.0 +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +#ifdef _SG3 + #include "MpBase.h" + #include "astime.h" +#endif + +#ifdef _SG4 + #include "MpBase.h" + #include "astime.h" +#endif + +#ifdef _SGC + #include "MpBase.h" + #include "astime.h" +#endif + + + +/* Datatypes and datatypes of function blocks */ +typedef enum MpPackMLStateEnum +{ mpPACKML_STATE_UNDEFINED = 0, + mpPACKML_STATE_CLEARING = 1, + mpPACKML_STATE_STOPPED = 2, + mpPACKML_STATE_STARTING = 3, + mpPACKML_STATE_IDLE = 4, + mpPACKML_STATE_SUSPENDED = 5, + mpPACKML_STATE_EXECUTE = 6, + mpPACKML_STATE_STOPPING = 7, + mpPACKML_STATE_ABORTING = 8, + mpPACKML_STATE_ABORTED = 9, + mpPACKML_STATE_HOLDING = 10, + mpPACKML_STATE_HELD = 11, + mpPACKML_STATE_UNHOLDING = 12, + mpPACKML_STATE_SUSPENDING = 13, + mpPACKML_STATE_UNSUSPENDING = 14, + mpPACKML_STATE_RESETTING = 15, + mpPACKML_STATE_COMPLETING = 16, + mpPACKML_STATE_COMPLETE = 17, + mpPACKML_STATE_DEACTIVATING = 30, + mpPACKML_STATE_DEACTIVATED = 31, + mpPACKML_STATE_ACTIVATING = 32 +} MpPackMLStateEnum; + +typedef enum MpPackMLPackTagsStatusEnum +{ mpPACKML_PACKTAGS_DISABLED = 0, + mpPACKML_PACKTAGS_INIT = 1, + mpPACKML_PACKTAGS_OK = 2, + mpPACKML_PACKTAGS_ERROR_TAG = 6, + mpPACKML_PACKTAGS_ERROR_TYPE = 10, + mpPACKML_PACKTAGS_ERROR_STRUCT = 14 +} MpPackMLPackTagsStatusEnum; + +typedef enum MpPackMLErrorEnum +{ mpPACKML_NO_ERROR = 0, + mpPACKML_ERR_ACTIVATION = -1064239103, + mpPACKML_ERR_MPLINK_NULL = -1064239102, + mpPACKML_ERR_MPLINK_INVALID = -1064239101, + mpPACKML_ERR_MPLINK_CHANGED = -1064239100, + mpPACKML_ERR_MPLINK_CORRUPT = -1064239099, + mpPACKML_ERR_MPLINK_IN_USE = -1064239098, + mpPACKML_ERR_CONFIG_LOAD = -1064239094, + mpPACKML_ERR_CONFIG_SAVE = -1064239092, + mpPACKML_ERR_CONFIG_INVALID = -1064239091, + mpPACKML_INF_CORE_NOT_READY = 1083474944, + mpPACKML_ERR_DEACTIVATION_FAIL = -1064008703, + mpPACKML_ERR_MODE_ID_INVALID = -1064008702, + mpPACKML_ERR_PV_ADR_NULL = -1064008701, + mpPACKML_ERR_INVALID_PV_ADR = -1064008700, + mpPACKML_WRN_CMD_NOT_ALLOWED = -2137750523, + mpPACKML_WRN_ACTIV_NOT_ALLOWED = -2137750522, + mpPACKML_ERR_MODE_ID_USED = -1064008697, + mpPACKML_ERR_MISSING_UI_CONNECT = -1064008696, + mpPACKML_WRN_TAGS_STR_NOT_FOUND = -2137750519, + mpPACKML_WRN_TAGS_NOT_FOUND = -2137750518, + mpPACKML_WRN_WRONG_TAGS_TYPE = -2137750517, + mpPACKML_ERR_READ_MPPACKML_CFG = -1064008692, + mpPACKML_ERR_WRITE_MPPACKML_CFG = -1064008691, + mpPACKML_ERR_INVALID_MODULE = -1064008690, + mpPACKML_ERR_INVALID_STATE = -1064008689, + mpPACKML_INF_PARENT_NOT_ACTIVE = 1083474960, + mpPACKML_WRN_AMBIQUOUS_MODE_INF = -2137750511, + mpPACKML_ERR_INVALID_STATE_MODE = -1064008686, + mpPACKML_ERR_INVALID_STATE_CHLD = -1064008685, + mpPACKML_INF_MODE_CHG_FORBIDDEN = 1083474964 +} MpPackMLErrorEnum; + +typedef enum MpPackMLAlarmEnum +{ mpPACKML_ALM_STATE_TRANSITION = 0, + mpPACKML_ALM_MODE_TRANSITION = 1, + mpPACKML_ALM_WRONG_CONFIG = 2 +} MpPackMLAlarmEnum; + +typedef struct MpPackMLStatusIDType +{ enum MpPackMLErrorEnum ID; + MpComSeveritiesEnum Severity; + unsigned short Code; +} MpPackMLStatusIDType; + +typedef struct MpPackMLDiagType +{ struct MpPackMLStatusIDType StatusID; +} MpPackMLDiagType; + +typedef struct MpPackMLCoreInfoType +{ plcstring ModeCurrent[51]; + plcstring StateCurrent[21]; + struct MpPackMLDiagType Diag; + enum MpPackMLPackTagsStatusEnum PackTagsStatus; +} MpPackMLCoreInfoType; + +typedef struct MpPackMLModeInfoType +{ plcstring ModeCurrent[51]; + plcstring StateCurrent[21]; + plcbit ActivationAborted; + struct MpPackMLDiagType Diag; +} MpPackMLModeInfoType; + +typedef struct MpPackMLUIInfoType +{ plcstring ModeCurrent[51]; + plcstring StateCurrent[21]; + struct MpPackMLDiagType Diag; +} MpPackMLUIInfoType; + +typedef struct MpPackMLColorIndexStatesType +{ unsigned char Clearing; + unsigned char Stopped; + unsigned char Starting; + unsigned char Idle; + unsigned char Suspended; + unsigned char Execute; + unsigned char Stopping; + unsigned char Aborting; + unsigned char Aborted; + unsigned char Holding; + unsigned char Held; + unsigned char Unholding; + unsigned char Suspending; + unsigned char Unsuspending; + unsigned char Resetting; + unsigned char Completing; + unsigned char Complete; +} MpPackMLColorIndexStatesType; + +typedef struct MpPackMLBasicUIStateControlType +{ plcbit Start; + plcbit Stop; + plcbit Reset; + plcbit Hold; + plcbit Unhold; + plcbit Suspend; + plcbit Unsuspend; + plcbit Abort; + plcbit Clear; + plcbit StateComplete; + struct MpPackMLColorIndexStatesType ColorIndex; +} MpPackMLBasicUIStateControlType; + +typedef struct MpPackMLBasicUIModeControlType +{ unsigned short SelectedIndex; + unsigned long MaxSelection; + plcbit LockActivation; + plcbit Activate; +} MpPackMLBasicUIModeControlType; + +typedef struct MpPackMLBasicUIConnectType +{ struct MpPackMLBasicUIStateControlType StateControl; + struct MpPackMLBasicUIModeControlType ModeControl; + signed long ModeCurrent; + enum MpPackMLStateEnum StateCurrent; +} MpPackMLBasicUIConnectType; + +typedef struct MpPackMLStatisticsUITimeType +{ unsigned long Hours; + unsigned char Minutes; + unsigned char Seconds; +} MpPackMLStatisticsUITimeType; + +typedef struct MpPackMLStatisticsUIStateType +{ struct MpPackMLStatisticsUITimeType CumulativeTime; + float CumulativePercent; + struct MpPackMLStatisticsUITimeType CurrentTime; +} MpPackMLStatisticsUIStateType; + +typedef struct MpPackMLStatisticsUIStatesType +{ struct MpPackMLStatisticsUIStateType Clearing; + struct MpPackMLStatisticsUIStateType Stopped; + struct MpPackMLStatisticsUIStateType Starting; + struct MpPackMLStatisticsUIStateType Idle; + struct MpPackMLStatisticsUIStateType Suspended; + struct MpPackMLStatisticsUIStateType Execute; + struct MpPackMLStatisticsUIStateType Stopping; + struct MpPackMLStatisticsUIStateType Aborting; + struct MpPackMLStatisticsUIStateType Aborted; + struct MpPackMLStatisticsUIStateType Holding; + struct MpPackMLStatisticsUIStateType Held; + struct MpPackMLStatisticsUIStateType Unholding; + struct MpPackMLStatisticsUIStateType Suspending; + struct MpPackMLStatisticsUIStateType Unsuspending; + struct MpPackMLStatisticsUIStateType Resetting; + struct MpPackMLStatisticsUIStateType Completing; + struct MpPackMLStatisticsUIStateType Complete; + plcbit ResetTimers; +} MpPackMLStatisticsUIStatesType; + +typedef struct MpPackMLStatisticsUIModeType +{ signed long ModeID; + struct MpPackMLStatisticsUITimeType CumulativeTime; + float CumulativePercent; +} MpPackMLStatisticsUIModeType; + +typedef struct MpPackMLStatisticsUIConnectType +{ struct MpPackMLStatisticsUIStatesType States; + struct MpPackMLStatisticsUIModeType Mode; + signed long ModeCurrent; + enum MpPackMLStateEnum StateCurrent; +} MpPackMLStatisticsUIConnectType; + +typedef struct MpPackMLModuleCommandType +{ plcbit Abort; + plcbit Clear; + plcbit Stop; + plcbit Reset; + plcbit Start; + plcbit Hold; + plcbit Unhold; + plcbit Suspend; + plcbit Unsuspend; + plcbit StateComplete; +} MpPackMLModuleCommandType; + +typedef struct MpPackMLModuleOverwriteType +{ plcbit Abort; + plcbit Stop; + plcbit AllOtherCommands; +} MpPackMLModuleOverwriteType; + +typedef struct MpPackMLModuleEscalateType +{ plcbit Abort; +} MpPackMLModuleEscalateType; + +typedef struct MpPackMLModuleParType +{ struct MpPackMLModuleOverwriteType Overwrite; + struct MpPackMLModuleEscalateType Escalate; +} MpPackMLModuleParType; + +typedef struct MpPackMLParentType +{ plcstring Name[256]; + enum MpPackMLStateEnum StateCurrent; + signed long SubStateCurrent; +} MpPackMLParentType; + +typedef struct MpPackMLModuleInfoType +{ plcstring ModeCurrent[51]; + plcstring StateCurrent[21]; + unsigned long ChildCount; + struct MpPackMLParentType Parent; + unsigned long Level; + plcbit ReadyForCommand; + struct MpPackMLDiagType Diag; +} MpPackMLModuleInfoType; + +typedef struct MpPackMLModulePVType +{ plcstring Name[256]; + enum MpPackMLStateEnum StateCurrent; + signed long SubStateCurrent; + plcstring StateInfo[256]; +} MpPackMLModulePVType; + +typedef struct MpPackMLCore +{ + /* VAR_INPUT (analog) */ + struct MpComIdentType* MpLink; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + signed long ModeCurrent; + enum MpPackMLStateEnum StateCurrent; + struct MpPackMLCoreInfoType Info; + /* VAR (analog) */ + struct MpComInternalDataType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit ErrorReset; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; +} MpPackMLCore_typ; + +typedef struct MpPackMLMode +{ + /* VAR_INPUT (analog) */ + struct MpComIdentType* MpLink; + signed long ModeID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + enum MpPackMLStateEnum StateCurrent; + struct MpPackMLModeInfoType Info; + /* VAR (analog) */ + struct MpComInternalDataType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit ErrorReset; + plcbit Activate; + plcbit Start; + plcbit Stop; + plcbit Reset; + plcbit Hold; + plcbit Unhold; + plcbit Suspend; + plcbit Unsuspend; + plcbit Abort; + plcbit Clear; + plcbit StateComplete; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit ChangeModeAllowed; + plcbit ModeActive; +} MpPackMLMode_typ; + +typedef struct MpPackMLBasicUI +{ + /* VAR_INPUT (analog) */ + struct MpComIdentType* MpLink; + struct MpPackMLBasicUIConnectType* UIConnect; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + struct MpPackMLUIInfoType Info; + /* VAR (analog) */ + struct MpComInternalDataType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit ErrorReset; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; +} MpPackMLBasicUI_typ; + +typedef struct MpPackMLStatisticsUI +{ + /* VAR_INPUT (analog) */ + struct MpComIdentType* MpLink; + struct MpPackMLStatisticsUIConnectType* UIConnect; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + struct MpPackMLUIInfoType Info; + /* VAR (analog) */ + struct MpComInternalDataType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit ErrorReset; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; +} MpPackMLStatisticsUI_typ; + +typedef struct MpPackMLModule +{ + /* VAR_INPUT (analog) */ + struct MpComIdentType* MpLink; + struct MpPackMLModuleParType* Parameters; + struct MpPackMLModuleCommandType Command; + signed long SubState; + plcstring StateInfo[256]; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + enum MpPackMLStateEnum StateCurrent; + signed long SubStateCurrent; + signed long ModeID; + struct MpPackMLModuleInfoType Info; + /* VAR (analog) */ + struct MpComInternalDataType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit ErrorReset; + plcbit Update; + plcbit Blocked; + plcbit Starved; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MpPackMLModule_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void MpPackMLCore(struct MpPackMLCore* inst); +_BUR_PUBLIC void MpPackMLMode(struct MpPackMLMode* inst); +_BUR_PUBLIC void MpPackMLBasicUI(struct MpPackMLBasicUI* inst); +_BUR_PUBLIC void MpPackMLStatisticsUI(struct MpPackMLStatisticsUI* inst); +_BUR_PUBLIC void MpPackMLModule(struct MpPackMLModule* inst); +_BUR_PUBLIC signed long MpPackMLModeChangeIsAllowed(struct MpComIdentType* MpLink, signed long ModeID); +_BUR_PUBLIC signed long MpPackMLChangeMode(struct MpComIdentType* MpLink, signed long ModeID); +_BUR_PUBLIC signed long MpPackMLModeCurrent(struct MpComIdentType* MpLink); +_BUR_PUBLIC MpPackMLStateEnum MpPackMLStateCurrent(struct MpComIdentType* MpLink); +_BUR_PUBLIC plcbit MpPackMLStateIsActive(struct MpComIdentType* MpLink, enum MpPackMLStateEnum State, signed long Mode); +_BUR_PUBLIC plcbit MpPackMLModeIsActive(struct MpComIdentType* MpLink, signed long Mode); +_BUR_PUBLIC plcbit MpPackMLStateComplete(struct MpComIdentType* MpLink, signed long Mode); +_BUR_PUBLIC plcbit MpPackMLAbort(struct MpComIdentType* MpLink, signed long Mode); + + +#ifdef __cplusplus +}; +#endif +#endif /* _MPPACKML_ */ + diff --git a/mappFramework/Logical/Libraries/Package.pkg b/mappFramework/Logical/Libraries/Package.pkg index fe232689..a36ea15a 100644 --- a/mappFramework/Logical/Libraries/Package.pkg +++ b/mappFramework/Logical/Libraries/Package.pkg @@ -34,5 +34,6 @@ McPureVAx ArTextSys AsBrWStr + MpPackML \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/Hardware.hw b/mappFramework/Physical/Simulation/Hardware.hw index da17f3a8..c0871e42 100644 --- a/mappFramework/Physical/Simulation/Hardware.hw +++ b/mappFramework/Physical/Simulation/Hardware.hw @@ -33,6 +33,9 @@ + + + diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad new file mode 100644 index 00000000..e8409d9b --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -0,0 +1,3 @@ + + + diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/Package.pkg b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/Package.pkg index 84363561..48f22089 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/Package.pkg @@ -1,5 +1,5 @@  - + AlarmMgr.uad @@ -10,5 +10,6 @@ UserXMgr.uad AuditMgr.uad ReportMgr.uad + PackMLMgr.uad \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index eb4ccbd3..2652ccde 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -20,6 +20,7 @@ + @@ -37,6 +38,8 @@ + + @@ -64,6 +67,9 @@ + + + @@ -94,6 +100,7 @@ + diff --git a/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig b/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig index 634e7b92..c1506787 100644 --- a/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig +++ b/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig @@ -44,6 +44,7 @@ + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore new file mode 100644 index 00000000..30ac5dcf --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg b/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg new file mode 100644 index 00000000..8cee59ad --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg @@ -0,0 +1,7 @@ + + + + + PackMLCfg.mppackmlcore + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappServices/Package.pkg b/mappFramework/Physical/Simulation/PC/mappServices/Package.pkg index 2101bba0..5bd7fde6 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/mappServices/Package.pkg @@ -10,5 +10,6 @@ UserX Audit Report + PackML \ No newline at end of file From 62be67a2ce32bc973ca742c99be054bb709214a0 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 10:02:30 -0400 Subject: [PATCH 027/159] Updated variables and texts --- .../Infrastructure/PackML/PackMLAlarms.tmx | 27 ++++++++++++------- .../PackML/PackMLMgr/PackMLMgr.var | 2 +- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 20 +++++++++++--- .../PackML/PackMLCfg.mppackmlcore | 13 +++++++++ 4 files changed, 49 insertions(+), 13 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx b/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx index 6cecaf4d..27649498 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLAlarms.tmx @@ -5,34 +5,43 @@ mappFramework/PackML/Alarms - + - Meine Einheit + Übergang in diesen Zustand nicht möglich + + + 无法过渡到此状态 - My unit + Transition to this state not possible Mon unité - + - Einheit + Moduswechsel nicht erlaubt + + + 无法进行模式转换 - Unit + Mode transition not possible Unité - + - Meine Beschreibung + Ungültige Konfiguration + + + 无效配置 - My description + Invalid configuration Ma description diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index c2723ec8..90b72b89 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -5,6 +5,6 @@ END_VAR (*Constants*) (*Structure Types*) VAR - HmiReport : PackMLHmiInterfaceType; (*HMI interface structure*) + HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) END_VAR (*Variables*) diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index e8409d9b..59b1b809 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -1,3 +1,17 @@ - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore index 30ac5dcf..2f587999 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore @@ -8,5 +8,18 @@ + + + + + + + + + + + + + \ No newline at end of file From db4ee6b2815ac1ff7be8428dea66ef2a1ee71bd7 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 10:07:27 -0400 Subject: [PATCH 028/159] Fixed OPCUA roles --- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 59b1b809..a903c946 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -2,12 +2,31 @@ - + + + + + + + + + + + + + + + + + + + + - + From 8f1ec66292ff22db54d0d8f5f85133fb3452c1f9 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 10:33:22 -0400 Subject: [PATCH 029/159] Visualization initial commit --- .../Texts/mappFrameworkTexts/PackMLTexts.tmx | 20 ++++++++ .../Texts/mappFrameworkTexts/Package.pkg | 1 + .../PackMLContent/PackML.content | 4 ++ .../PackMLContent/Package.pkg | 7 +++ .../Pages/mappFrameworkContents/Package.pkg | 3 +- .../Simulation/PC/TextSystem/TC.textconfig | 1 + .../Simulation/PC/mappView/PackML.vis | 46 +++++++++++++++++++ .../PackML/Navigation_content.binding | 5 ++ .../PackML/Navigation_content.eventbinding | 4 ++ .../PC/mappView/PackML/PackML_content.binding | 5 ++ .../PackML/PackML_content.eventbinding | 4 ++ .../Simulation/PC/mappView/PackML/Package.pkg | 10 ++++ .../Simulation/PC/mappView/Package.pkg | 2 + 13 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx create mode 100644 mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content create mode 100644 mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/Package.pkg create mode 100644 mappFramework/Physical/Simulation/PC/mappView/PackML.vis create mode 100644 mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding create mode 100644 mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding create mode 100644 mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding create mode 100644 mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding create mode 100644 mappFramework/Physical/Simulation/PC/mappView/PackML/Package.pkg diff --git a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx new file mode 100644 index 00000000..4940b110 --- /dev/null +++ b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx @@ -0,0 +1,20 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + IAT/mappFramework/PackML +
    + + + + Servus Welt! + + + Hello world! + + + Bonjour tout le monde! + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/Package.pkg b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/Package.pkg index a2b24a52..b0819193 100644 --- a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/Package.pkg +++ b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/Package.pkg @@ -11,5 +11,6 @@ UserXPageTexts.tmx AuditPageTexts.tmx ReportTexts.tmx + PackMLTexts.tmx \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content new file mode 100644 index 00000000..c9db9e4c --- /dev/null +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/Package.pkg b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/Package.pkg new file mode 100644 index 00000000..68a5f143 --- /dev/null +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/Package.pkg @@ -0,0 +1,7 @@ + + + + + PackML.content + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/Package.pkg b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/Package.pkg index 49994f7b..c959f4cb 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/Package.pkg +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/Package.pkg @@ -1,5 +1,5 @@  - + AlarmsContent @@ -10,5 +10,6 @@ UserXContent AuditContent ReportContent + PackMLContent \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig b/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig index c1506787..e88a568f 100644 --- a/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig +++ b/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig @@ -45,6 +45,7 @@ + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis new file mode 100644 index 00000000..9dc08513 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding new file mode 100644 index 00000000..5c1a9960 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding @@ -0,0 +1,5 @@ + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding new file mode 100644 index 00000000..e0f24176 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding new file mode 100644 index 00000000..99d0e60b --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding @@ -0,0 +1,5 @@ + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding new file mode 100644 index 00000000..47e8a685 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Package.pkg b/mappFramework/Physical/Simulation/PC/mappView/PackML/Package.pkg new file mode 100644 index 00000000..a21ab721 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Package.pkg @@ -0,0 +1,10 @@ + + + + + PackML_content.binding + PackML_content.eventbinding + Navigation_content.binding + Navigation_content.eventbinding + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/Package.pkg b/mappFramework/Physical/Simulation/PC/mappView/Package.pkg index 49f44184..2e537161 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/mappView/Package.pkg @@ -12,6 +12,7 @@ UserX.vis Audit.vis Report.vis + PackML.vis AlarmX DemoPage Axis @@ -21,5 +22,6 @@ UserX Audit Report + PackML \ No newline at end of file From ec05e437582ef45885873e76df7b15834bca0025 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 10:51:20 -0400 Subject: [PATCH 030/159] Code initial commit --- .../PackML/PackMLMgr/PackMLMgr.st | 17 +++++++++++++++++ .../PackML/PackMLMgr/PackMLMgr.var | 2 ++ .../PC/Connectivity/OpcUA/PackMLMgr.uad | 8 ++------ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index bbb0bb75..a95e236f 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -15,6 +15,14 @@ PROGRAM _INIT END_IF // Initialize mapp function blocks + MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLCore_0.Enable := TRUE; + MpPackMLCore_0(); + + MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLMode_0.Enable := TRUE; + MpPackMLMode_0.ModeID := 1; + MpPackMLMode_0(); END_PROGRAM @@ -22,16 +30,25 @@ END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions + // Assign MpLinks & UIConnects + MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); // Call function blocks + MpPackMLCore_0(); + MpPackMLMode_0(); END_PROGRAM PROGRAM _EXIT // Disable the function blocks to unlink the MpLinks + MpPackMLCore_0.Enable := FALSE; + MpPackMLMode_0.Enable := FALSE; // Call function blocks + MpPackMLCore_0(); + MpPackMLMode_0(); END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index 90b72b89..766aff4c 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -1,6 +1,8 @@ (*Function Blocks*) VAR DirCreate_0 : DirCreate; (*DirCreate instance*) + MpPackMLCore_0 : MpPackMLCore; (*MpPackMLCore instance*) + MpPackMLMode_0 : MpPackMLMode; (*MpPackMLMode instance*) END_VAR (*Constants*) (*Structure Types*) diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index a903c946..2e7f787a 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -9,12 +9,6 @@ - - - - - - @@ -30,6 +24,8 @@ + +
    From d4f5b31e82c71ef9019961ccec4f0c1efa6db753 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 11:52:37 -0400 Subject: [PATCH 031/159] Setup PackML Navigation button --- .../Navigation/PackML.svg | 41 ++++++++++++ .../Navigation/Package.pkg | 1 + .../Texts/mappFrameworkTexts/PackMLTexts.tmx | 9 ++- .../Pages/DemoPage/Navigation.content | 3 +- .../PackMLContent/PackML.content | 4 +- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 37 ++++++++++- .../Simulation/PC/mappView/PackML.vis | 66 ++++++++----------- .../PackML/Navigation_content.binding | 6 +- .../PackML/Navigation_content.eventbinding | 13 +++- .../Simulation/PC/mappView/Visualization.vis | 7 +- 10 files changed, 140 insertions(+), 47 deletions(-) create mode 100644 mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg diff --git a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg new file mode 100644 index 00000000..099b4068 --- /dev/null +++ b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg @@ -0,0 +1,41 @@ + + + + + + diff --git a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/Package.pkg b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/Package.pkg index 714b7f1b..e4151ecd 100644 --- a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/Package.pkg +++ b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/Package.pkg @@ -13,5 +13,6 @@ UserGroup.svg PageDown.svg PageUp.svg + PackML.svg \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx index 4940b110..360a7e68 100644 --- a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx +++ b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx @@ -5,12 +5,15 @@ IAT/mappFramework/PackML - + - Servus Welt! + PackML + + + 包毫升 - Hello world! + PackML Bonjour tout le monde! diff --git a/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content b/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content index 3ef557fc..0b0c41ea 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content @@ -12,7 +12,8 @@ + - + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content index c9db9e4c..396796dd 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -1,4 +1,6 @@  - + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 2e7f787a..648c2dfa 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -24,8 +24,41 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis index 9dc08513..f73d665b 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis @@ -1,46 +1,38 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + - + - + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding index 5c1a9960..73780972 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding @@ -1,5 +1,9 @@  - + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding index e0f24176..11dfee1d 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.eventbinding @@ -1,4 +1,15 @@  - + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis b/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis index b38fef7c..34da4b19 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis @@ -50,6 +50,8 @@ + + @@ -90,7 +92,9 @@ - + + + @@ -150,6 +154,7 @@ + From 6635d4e07e26ad9bf22c5041e6cf7ebf6d798a07 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 12:14:22 -0400 Subject: [PATCH 032/159] Fixed PackML file device and added all config files to SourceReference --- .../Infrastructure/PackML/PackMLMgr/PackMLMgr.st | 2 +- .../SourceReference/PC/Connectivity/OpcUA/Package.pkg | 1 + .../SourceReference/PC/mappServices/PackML/Package.pkg | 7 +++++++ .../SourceReference/PC/mappServices/Package.pkg | 1 + .../SourceReference/PC/mappView/PackML/Package.pkg | 10 ++++++++++ .../Physical/SourceReference/PC/mappView/Package.pkg | 2 ++ 6 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 mappFramework/Physical/SourceReference/PC/mappServices/PackML/Package.pkg create mode 100644 mappFramework/Physical/SourceReference/PC/mappView/PackML/Package.pkg diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index a95e236f..f496ab80 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -7,7 +7,7 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('mappComponentFiles'), pName := ADR('/')); + DirCreate_0(enable := TRUE, pDevice := ADR('mappPackMLFiles'), pName := ADR('/')); // Check if folder already exist and if so disabled the function block call IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN diff --git a/mappFramework/Physical/SourceReference/PC/Connectivity/OpcUA/Package.pkg b/mappFramework/Physical/SourceReference/PC/Connectivity/OpcUA/Package.pkg index 4631494c..2514cb31 100644 --- a/mappFramework/Physical/SourceReference/PC/Connectivity/OpcUA/Package.pkg +++ b/mappFramework/Physical/SourceReference/PC/Connectivity/OpcUA/Package.pkg @@ -10,5 +10,6 @@ \Physical\Simulation\PC\Connectivity\OpcUA\RecipeMgr.uad \Physical\Simulation\PC\Connectivity\OpcUA\ReportMgr.uad \Physical\Simulation\PC\Connectivity\OpcUA\UserXMgr.uad + \Physical\Simulation\PC\Connectivity\OpcUA\PackMLMgr.uad \ No newline at end of file diff --git a/mappFramework/Physical/SourceReference/PC/mappServices/PackML/Package.pkg b/mappFramework/Physical/SourceReference/PC/mappServices/PackML/Package.pkg new file mode 100644 index 00000000..ac725311 --- /dev/null +++ b/mappFramework/Physical/SourceReference/PC/mappServices/PackML/Package.pkg @@ -0,0 +1,7 @@ + + + + + \Physical\Simulation\PC\mappServices\PackML\PackMLCfg.mppackmlcore + + \ No newline at end of file diff --git a/mappFramework/Physical/SourceReference/PC/mappServices/Package.pkg b/mappFramework/Physical/SourceReference/PC/mappServices/Package.pkg index b754ee7d..82455d9e 100644 --- a/mappFramework/Physical/SourceReference/PC/mappServices/Package.pkg +++ b/mappFramework/Physical/SourceReference/PC/mappServices/Package.pkg @@ -10,5 +10,6 @@ Recipe UserX Records + PackML \ No newline at end of file diff --git a/mappFramework/Physical/SourceReference/PC/mappView/PackML/Package.pkg b/mappFramework/Physical/SourceReference/PC/mappView/PackML/Package.pkg new file mode 100644 index 00000000..1c2cca28 --- /dev/null +++ b/mappFramework/Physical/SourceReference/PC/mappView/PackML/Package.pkg @@ -0,0 +1,10 @@ + + + + + \Physical\Simulation\PC\mappView\PackML\Navigation_content.binding + \Physical\Simulation\PC\mappView\PackML\Navigation_content.eventbinding + \Physical\Simulation\PC\mappView\PackML\PackML_content.binding + \Physical\Simulation\PC\mappView\PackML\PackML_content.eventbinding + + \ No newline at end of file diff --git a/mappFramework/Physical/SourceReference/PC/mappView/Package.pkg b/mappFramework/Physical/SourceReference/PC/mappView/Package.pkg index a7e895b2..415d4f87 100644 --- a/mappFramework/Physical/SourceReference/PC/mappView/Package.pkg +++ b/mappFramework/Physical/SourceReference/PC/mappView/Package.pkg @@ -12,6 +12,7 @@ \Physical\Simulation\PC\mappView\Recipe.vis \Physical\Simulation\PC\mappView\Report.vis \Physical\Simulation\PC\mappView\UserX.vis + \Physical\Simulation\PC\mappView\PackML.vis AlarmX DemoPage Axis @@ -21,5 +22,6 @@ UserX Audit Report + PackML \ No newline at end of file From 9cb2630cf0446a3443fb269c5f4ad7780f78583e Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 21 Mar 2023 12:40:09 -0400 Subject: [PATCH 033/159] Updated PackML icon --- .../mappFrameworkSymbols/Navigation/PackML.svg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg index 099b4068..e2255173 100644 --- a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg +++ b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Navigation/PackML.svg @@ -5,16 +5,16 @@ width="400" height="400" viewBox="0, 0, 400,400" - sodipodi:docname="PackML.svg" + sodipodi:docname="PackML2.svg" inkscape:version="1.2.2 (732a01da63, 2022-12-09)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + id="defs223" /> From 40524ec9f3cfe6f3b5d7fc87f866cbae01a813ab Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 22 Mar 2023 10:05:50 -0400 Subject: [PATCH 034/159] Implemented create directory test and ended other tests immediately to save time in testing --- .../Diagnosis/Simulation/PC/AuditMgr.PVM | 4 + .../Diagnosis/Simulation/PC/FileMgr.PVM | 457 ++++++++++++++++++ .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 0 -> 232 bytes .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 4 + .../UnitTest/Audit/AuditTest/Types.typ | 3 +- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 107 +++- .../UnitTest/File/FileUnitTest/variables.var | 3 + .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 12 +- 8 files changed, 576 insertions(+), 14 deletions(-) create mode 100644 mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM create mode 100644 mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM create mode 100644 mappFramework/Diagnosis/Simulation/PC/FileMgr.tc create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM diff --git a/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM new file mode 100644 index 00000000..9abf564d --- /dev/null +++ b/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM @@ -0,0 +1,4 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=0 ASCIIString=0 + name type force value level type len format place expand specs + VariableMonitorExample REAL 0 " 10.5" 0 8 1 10 1 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM new file mode 100644 index 00000000..10d6607c --- /dev/null +++ b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM @@ -0,0 +1,457 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=21 ASCIIString=0 + name type force value level type len format place expand specs + MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 + MpLink UDINT 0 " 136637096" 1 7 1 10 0 0 + Enable BOOL 0 " TRUE" 1 1 1 2 0 0 + ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 1 + FileListSize UINT 0 " 50" 2 6 1 10 0 0 + FileListScrollWindow USINT 0 " 1" 2 5 1 10 0 0 + UIConnect UDINT 0 " 142534078" 1 7 1 10 0 0 + Active BOOL 0 " TRUE" 1 1 1 2 0 0 + Error BOOL 0 " FALSE" 1 1 1 2 0 0 + StatusID DINT 0 " 0" 1 4 1 10 0 0 + Info MpFileInfoType 0 " *" 1 24 1 0 0 1 + Diag MpFileDiagType 0 " *" 2 24 1 0 0 1 + StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 1 + ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpFI + + Severity DINT 0 " 0" 4 4 1 10 0 0 e,0,mpCO + + Code UINT 0 " 0" 4 6 1 10 0 0 + Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 + pObject UDINT 0 " 165722768" 2 7 1 10 0 0 + State UDINT 0 " 3" 2 7 1 10 0 0 + MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 + Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + + DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 + SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 + File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'Backgrounds 2.0'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-12:39:30" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'Backgrounds 2.0(1)'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-12:41:48" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 + Size UDINT 0 " 964" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 + StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 + PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 + StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 + RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 + RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 + SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 + PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 + CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 + FileCount UDINT 0 " 3" 3 7 1 10 0 0 + FolderCount UDINT 0 " 4" 3 7 1 10 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + Copy BOOL 0 " FALSE" 2 1 1 2 0 0 + Cut BOOL 0 " FALSE" 2 1 1 2 0 0 + Paste BOOL 0 " FALSE" 2 1 1 2 0 0 + NewName STRING[255] 0 " 'TestDir'" 2 9 256 1 0 0 + Rename BOOL 0 " FALSE" 2 1 1 2 0 0 + CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc new file mode 100644 index 0000000000000000000000000000000000000000..71b4d1e5cab8729e76370944999c76fec1e09d68 GIT binary patch literal 232 zcmdO%?#nRw&A!%E*MBxJFflMNyZ~Y_Z~&72+ku1*5PJae6M=7~6=4kw5E3YW0+<*W zQTT99Er`X)V8)OM7XmWa7#Jop%w}YC%gjmjO)s+YEda9;^Agiji$Xn}^YijjlS}kK of_lzHsfi`2ZuvPWsYMKoECjR!mn4>y76bhPRmZ@v{-;eW09{!&)&Kwi literal 0 HcmV?d00001 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM new file mode 100644 index 00000000..26702b5d --- /dev/null +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -0,0 +1,4 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=0 ASCIIString=0 + name type force value level type len format place expand specs + cycleCount UINT 0 " 0" 0 6 1 10 1 0 diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ index 1643e1b1..333a1267 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Types.typ @@ -4,8 +4,7 @@ TYPE ( TEST_ARRANGE := 10, TEST_ACT := 20, - TEST_ASSERT := 30, - temp := 40 + TEST_ASSERT := 30 ); END_TYPE diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 33eb30b9..e0bce569 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -8,6 +8,20 @@ #include #include +#define TIMEOUT_TEST_CASE \ + if (cycleCount >= 1000) \ + { \ + char abortMessage[80]; \ + char substate[10]; \ + memset(abortMessage, 0, sizeof(abortMessage)); \ + memset(substate, 0, sizeof(substate)); \ + itoa(TestState, substate, 10); \ + strcpy(abortMessage, "Timeout in State = "); \ + strcat(abortMessage, substate); \ + TEST_FAIL(abortMessage); \ + TEST_DONE; \ + } + _SETUP_SET(void) { TestState = 0; @@ -94,6 +108,7 @@ bool FileIdleOrDisabled(void) { _SETUP_TEST(void) { TestState = 0; FileNumber = 0; + cycleCount = 0; HmiFile_UT.Parameters.Fifo.Enable = false; HmiFile_UT.Parameters.Fifo.ScanInterval = 60; @@ -172,8 +187,69 @@ _TEARDOWN_TEST(void) TEST_DONE; } +_CYCLIC_SET(void) +{ + cycleCount++; +} + +_TEST Create_Directory(void) +{ +// TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and input directory name + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + brsmemcpy(&MpFileManagerUIConnect.File.NewName, &DirName, sizeof(MpFileManagerUIConnect.File.NewName)); + TestState = 1; + break; + + case 1: + // Create directory + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.CreateFolder = 1; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + ActSubState = 2; + MpFileManagerUIConnect.File.Refresh = 1; + break; + + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + ActSubState = 3; + break; + + case 3: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + { + NameMatch = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: + // Check save location for directory + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -232,6 +308,7 @@ _TEST FIFO_20(void) _TEST FIFO_60(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -291,6 +368,7 @@ _TEST FIFO_60(void) _TEST FIFO_140(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -350,6 +428,7 @@ _TEST FIFO_140(void) _TEST FIFO_MaxFiles60(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -409,6 +488,7 @@ _TEST FIFO_MaxFiles60(void) _TEST FIFO_MaxFiles120(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -468,6 +548,7 @@ _TEST FIFO_MaxFiles120(void) _TEST FIFO_MaxFolderSize_30Files(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -539,6 +620,7 @@ _TEST FIFO_MaxFolderSize_30Files(void) _TEST FIFO_MaxFolderSize_60Files(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -610,6 +692,7 @@ _TEST FIFO_MaxFolderSize_60Files(void) _TEST FIFO_MaxFolderSize_Keep60Files(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -681,6 +764,7 @@ _TEST FIFO_MaxFolderSize_Keep60Files(void) _TEST FIFO_MaxFolderSize_Keep120Files(void) { + TEST_DONE; switch (TestState) { // Arrange @@ -753,21 +837,22 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2022-11-14 14:36:46Z +LastUpdated: 2023-03-21 20:38:13Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) { - new_TestFixture("FIFO_20", FIFO_20), - new_TestFixture("FIFO_60", FIFO_60), - new_TestFixture("FIFO_140", FIFO_140), - new_TestFixture("FIFO_MaxFiles60", FIFO_MaxFiles60), - new_TestFixture("FIFO_MaxFiles120", FIFO_MaxFiles120), - new_TestFixture("FIFO_MaxFolderSize_30Files", FIFO_MaxFolderSize_30Files), - new_TestFixture("FIFO_MaxFolderSize_60Files", FIFO_MaxFolderSize_60Files), - new_TestFixture("FIFO_MaxFolderSize_Keep60Files", FIFO_MaxFolderSize_Keep60Files), - new_TestFixture("FIFO_MaxFolderSize_Keep120Files", FIFO_MaxFolderSize_Keep120Files), + new_TestFixture("Create_Directory", Create_Directory), + new_TestFixture("FIFO_20", FIFO_20), + new_TestFixture("FIFO_60", FIFO_60), + new_TestFixture("FIFO_140", FIFO_140), + new_TestFixture("FIFO_MaxFiles60", FIFO_MaxFiles60), + new_TestFixture("FIFO_MaxFiles120", FIFO_MaxFiles120), + new_TestFixture("FIFO_MaxFolderSize_30Files", FIFO_MaxFolderSize_30Files), + new_TestFixture("FIFO_MaxFolderSize_60Files", FIFO_MaxFolderSize_60Files), + new_TestFixture("FIFO_MaxFolderSize_Keep60Files", FIFO_MaxFolderSize_Keep60Files), + new_TestFixture("FIFO_MaxFolderSize_Keep120Files", FIFO_MaxFolderSize_Keep120Files), }; -UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_FileMgr, "Set_FileMgr", setupTest, teardownTest, fixtures, setupSet, teardownSet, 0); +UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_FileMgr, "Set_FileMgr", setupTest, teardownTest, fixtures, setupSet, teardownSet, cyclicSetCaller); diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 7e096fcb..7d4aff98 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -14,6 +14,7 @@ VAR END_VAR (*Variables used in the tests*) VAR + cycleCount : {REDUND_UNREPLICABLE} UINT; HmiFile_UT : FileHmiInterfaceType; (*HMI interface structure*) FileName : STRING[24]; FileNumber : USINT; @@ -28,4 +29,6 @@ VAR FileWrite_UT : FileWrite; testData : {REDUND_UNREPLICABLE} STRING[1023] := 'testing data'; FileDelete_UT : FileDelete; + NameMatch : BOOL; + DirName : STRING[255] := 'FileTestDir'; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index d8354a0c..5caa21c8 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -1,6 +1,16 @@ +(*Inputs to the unit test*) VAR_CONFIG ::FileMgr:MpFileManagerUI_0.StatusID AT %Q.::FileTest:MpBlockStatus[0]; (*Insert your comment here...*) ::FileMgr:MpFileManagerUI_FIFO.StatusID AT %Q.::FileTest:MpBlockStatus[1]; (*Insert your comment here...*) - Cyclic#8.::FileTest:HmiFile_UT.Parameters AT %Q.Cyclic#8.::FileMgr:HmiFile.Parameters; (*Insert your comment here...*) Cyclic#8.::FileMgr:HmiFile.Status AT %Q.Cyclic#8.::FileTest:HmiFile_UT.Status; (*Insert your comment here...*) + ::FileMgr:MpFileManagerUIConnect.File.List.Items AT %Q.::FileTest:MpFileManagerUIConnect.File.List.Items; (*Insert your comment here...*) + ::FileMgr:MpFileManagerUIConnect.Status AT %Q.::FileTest:MpFileManagerUIConnect.Status; (*Insert your comment here...*) +END_VAR +(*Outputs from the unit test*) +VAR_CONFIG + Cyclic#8.::FileTest:HmiFile_UT.Parameters AT %Q.Cyclic#8.::FileMgr:HmiFile.Parameters; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.DeviceList.SelectedIndex AT %Q.::FileMgr:MpFileManagerUIConnect.DeviceList.SelectedIndex; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.NewName AT %Q.::FileMgr:MpFileManagerUIConnect.File.NewName; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.CreateFolder AT %Q.::FileMgr:MpFileManagerUIConnect.File.CreateFolder; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.Refresh AT %Q.::FileMgr:MpFileManagerUIConnect.File.Refresh; (*Insert your comment here...*) END_VAR From 67565442c1623fe4515bd7eb44552b4bf6426f86 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 22 Mar 2023 11:20:05 -0400 Subject: [PATCH 035/159] Implemented Add_File unit test Changed Audit unit test delays to use a variable as the check value instead of magic numbers --- .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 6 +- .../UnitTest/Audit/AuditTest/variables.var | 1 + .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 128 +++++++++++++++++- .../UnitTest/File/FileUnitTest/variables.var | 3 + 4 files changed, 134 insertions(+), 4 deletions(-) diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index 3906b02f..747c53ea 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -89,7 +89,7 @@ _TEST ExportArchive(void) case 1: ArrangeDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ArrangeDelay <= 10); + TEST_BUSY_CONDITION(ArrangeDelay <= DelayCycles); TestComparisonNumber = DirInfo_0.filenum; TestState = TEST_ACT; break; @@ -110,7 +110,7 @@ _TEST ExportArchive(void) case 1: ActDelay += 1; // This delay is compensating for the function block refreshing after finishing a command - TEST_BUSY_CONDITION(ActDelay <= 10); + TEST_BUSY_CONDITION(ActDelay <= DelayCycles); TestState = TEST_ASSERT; break; } @@ -150,7 +150,7 @@ _TEST AutomaticArchive(void) case 2: ArrangeDelay += 1; - TEST_BUSY_CONDITION(ArrangeDelay <= 2); + TEST_BUSY_CONDITION(ArrangeDelay <= DelayCycles); TestState = TEST_ACT; break; } diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var index 2f89a417..2697dd06 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/variables.var @@ -32,4 +32,5 @@ VAR TIMER_LENGTH : TIME := T#2s; MpAuditTrailCmdDone : BOOL; MpAuditTrailError : BOOL; + DelayCycles : USINT := 10; END_VAR diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index e0bce569..ffc4d71b 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -109,6 +109,7 @@ _SETUP_TEST(void) { TestState = 0; FileNumber = 0; cycleCount = 0; + NameMatch = 0; HmiFile_UT.Parameters.Fifo.Enable = false; HmiFile_UT.Parameters.Fifo.ScanInterval = 60; @@ -247,6 +248,129 @@ _TEST Create_Directory(void) } } +_TEST Add_File(void) +{ +// TEST_DONE; + TIMEOUT_TEST_CASE; + + FileCreate(&FileCreate_0); + FileClose(&FileClose_0); + TEST_ABORT_CONDITION((FileCreate_0.status != 0) && (FileCreate_0.status != 65535)); + TEST_ABORT_CONDITION((FileClose_0.status != 0) && (FileClose_0.status != 65535)); + + switch (TestState) + { + case 0: // Arrange + // Select Recipe file device and input directory name + FileCreate_0.pDevice = (UDINT)&"mappRecipeFiles"; + FileCreate_0.pFile = (UDINT)&CreateFileName; + TestState = 1; + break; + + case 1: // Act + // Create directory + switch (ActSubState) + { + case 0: + FileCreate_0.enable = 1; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(FileCreate_0.status != 0); + ActSubState = 2; + FileClose_0.ident = FileCreate_0.ident; + FileCreate_0.enable = 0; + break; + + case 2: + TEST_BUSY_CONDITION(FileClose_0.status != 0); + ActSubState = 3; + FileClose_0.enable = 0; + MpFileManagerUIConnect.File.Refresh = 1; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + ActSubState = 4; + break; + + case 4: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) + { + NameMatch = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: // Assert + // Check save location for file + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + +_TEST Copy_File(void) +{ + TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and input directory name + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + brsmemcpy(&MpFileManagerUIConnect.File.NewName, &DirName, sizeof(MpFileManagerUIConnect.File.NewName)); + TestState = 1; + break; + + case 1: + // Create directory + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.CreateFolder = 1; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + ActSubState = 2; + MpFileManagerUIConnect.File.Refresh = 1; + break; + + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + ActSubState = 3; + break; + + case 3: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + { + NameMatch = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: + // Check save location for directory + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -837,12 +961,14 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-21 20:38:13Z +LastUpdated: 2023-03-22 14:33:19Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) { new_TestFixture("Create_Directory", Create_Directory), + new_TestFixture("Add_File", Add_File), + new_TestFixture("Copy_File", Copy_File), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 7d4aff98..0cdde877 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -31,4 +31,7 @@ VAR FileDelete_UT : FileDelete; NameMatch : BOOL; DirName : STRING[255] := 'FileTestDir'; + CreateFileName : STRING[255] := 'FileTestFile'; + FileCreate_0 : FileCreate; + FileClose_0 : FileClose; END_VAR From 0b6dd70b0b905aa1022b2e165d23489b8e54c00e Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 22 Mar 2023 16:13:11 -0400 Subject: [PATCH 036/159] Finished the create file unit test Started copy file unit test --- .../Diagnosis/Simulation/PC/FileMgr.PVM | 446 ++++++++++++---- .../Diagnosis/UnitTest/PC_any/FileMgr.PVM | 488 ++++++++++++++++++ .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 0 -> 272 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 23 +- .../UnitTest/File/FileUnitTest/variables.var | 3 +- .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 1 + 6 files changed, 859 insertions(+), 102 deletions(-) create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM create mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM index 10d6607c..bf046325 100644 --- a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM +++ b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM @@ -1,14 +1,14 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=21 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=400 ASCIIString=0 name type force value level type len format place expand specs MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 136637096" 1 7 1 10 0 0 + MpLink UDINT 0 " 137131032" 1 7 1 10 0 0 Enable BOOL 0 " TRUE" 1 1 1 2 0 0 ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 1 FileListSize UINT 0 " 50" 2 6 1 10 0 0 FileListScrollWindow USINT 0 " 1" 2 5 1 10 0 0 - UIConnect UDINT 0 " 142534078" 1 7 1 10 0 0 + UIConnect UDINT 0 " 144938830" 1 7 1 10 0 0 Active BOOL 0 " TRUE" 1 1 1 2 0 0 Error BOOL 0 " FALSE" 1 1 1 2 0 0 StatusID DINT 0 " 0" 1 4 1 10 0 0 @@ -21,58 +21,58 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Code UINT 0 " 0" 4 6 1 10 0 0 Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " 165722768" 2 7 1 10 0 0 + pObject UDINT 0 " 166727552" 2 7 1 10 0 0 State UDINT 0 " 3" 2 7 1 10 0 0 - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 + MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 0 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 + DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 0 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Backgrounds 2.0'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-12:39:30" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Backgrounds 2.0(1)'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-12:41:48" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 - Size UDINT 0 " 964" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -80,7 +80,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -88,7 +88,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -96,7 +96,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -104,7 +104,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -112,7 +112,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -120,7 +120,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -128,7 +128,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -136,7 +136,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -144,7 +144,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -152,7 +152,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -160,7 +160,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -168,7 +168,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -176,7 +176,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -184,7 +184,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -192,7 +192,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -200,7 +200,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -208,7 +208,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -216,7 +216,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -224,7 +224,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -232,7 +232,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -240,7 +240,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -248,7 +248,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -256,7 +256,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -264,7 +264,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -272,7 +272,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -280,7 +280,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -288,7 +288,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -296,7 +296,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -304,7 +304,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -312,7 +312,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -320,7 +320,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -328,7 +328,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -336,7 +336,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -344,7 +344,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -352,7 +352,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -360,7 +360,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -368,7 +368,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -376,7 +376,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -384,7 +384,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 f Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -392,7 +392,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -400,7 +400,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -408,7 +408,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -416,7 +416,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -424,7 +424,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -437,21 +437,281 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 f SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 - FileCount UDINT 0 " 3" 3 7 1 10 0 0 - FolderCount UDINT 0 " 4" 3 7 1 10 0 0 + FileCount UDINT 0 " *" 3 7 1 10 0 0 + FolderCount UDINT 0 " *" 3 7 1 10 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " *" 2 1 1 2 0 0 + Delete BOOL 0 " *" 2 1 1 2 0 0 + Copy BOOL 0 " *" 2 1 1 2 0 0 + Cut BOOL 0 " *" 2 1 1 2 0 0 + Paste BOOL 0 " *" 2 1 1 2 0 0 + NewName STRING[255] 0 " ''" 2 9 256 1 0 0 + Rename BOOL 0 " *" 2 1 1 2 0 0 + CreateFolder BOOL 0 " *" 2 1 1 2 0 0 + HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - Copy BOOL 0 " FALSE" 2 1 1 2 0 0 - Cut BOOL 0 " FALSE" 2 1 1 2 0 0 - Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'TestDir'" 2 9 256 1 0 0 - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 1 + OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 1 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 + FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE + + ScanInterval DINT 0 " 60" 3 4 1 10 0 0 + MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 + MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 + MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 + Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 + FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 1 + FileNames[0] STRING[80] 0 " 'Backgrounds 2.0'" 3 9 81 1 0 0 + FileNames[1] STRING[80] 0 " 'CSVformat'" 3 9 81 1 0 0 + FileNames[2] STRING[80] 0 " 'XMLformat'" 3 9 81 1 0 0 + FileNames[3] STRING[80] 0 " 'Default(1).par'" 3 9 81 1 0 0 + FileNames[4] STRING[80] 0 " 'Default.par'" 3 9 81 1 0 0 + FileNames[5] STRING[80] 0 " 'Machine.mcfg'" 3 9 81 1 0 0 + FileNames[6] STRING[80] 0 " 'Package.pkg'" 3 9 81 1 0 0 + FileNames[7] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[8] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[9] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[10] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[11] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[12] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[13] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[14] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[15] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[16] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[17] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[18] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[19] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[20] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[21] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[22] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[23] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[24] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[25] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[26] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[27] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[28] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[29] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[30] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[31] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[32] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[33] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[34] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[35] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[36] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[37] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[38] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[39] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[40] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[41] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[42] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[43] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[44] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[45] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[46] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[47] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[48] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[49] STRING[80] 0 " ''" 3 9 81 1 0 0 + TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 1 + TimeStamps[0] DATE_AND_TIME 0 " DT#2023-03-21-12:39:30" 3 11 1 1 0 0 + TimeStamps[1] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 + TimeStamps[2] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 + TimeStamps[3] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 + TimeStamps[4] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 + TimeStamps[5] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 + TimeStamps[6] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 + TimeStamps[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[14] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[15] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[16] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[17] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[18] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[19] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[20] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[21] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[22] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[23] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[24] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[25] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[26] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[27] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[40] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[41] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[42] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[43] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[44] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[45] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[46] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[47] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[48] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[49] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + Type DINT[0..49] 0 " *" 2 4 50 0 0 1 + Type[0] DINT 0 " 0" 3 4 1 10 0 0 + Type[1] DINT 0 " 0" 3 4 1 10 0 0 + Type[2] DINT 0 " 0" 3 4 1 10 0 0 + Type[3] DINT 0 " 1" 3 4 1 10 0 0 + Type[4] DINT 0 " 1" 3 4 1 10 0 0 + Type[5] DINT 0 " 1" 3 4 1 10 0 0 + Type[6] DINT 0 " 1" 3 4 1 10 0 0 + Type[7] DINT 0 " 1" 3 4 1 10 0 0 + Type[8] DINT 0 " 1" 3 4 1 10 0 0 + Type[9] DINT 0 " 1" 3 4 1 10 0 0 + Type[10] DINT 0 " 1" 3 4 1 10 0 0 + Type[11] DINT 0 " 1" 3 4 1 10 0 0 + Type[12] DINT 0 " 1" 3 4 1 10 0 0 + Type[13] DINT 0 " 1" 3 4 1 10 0 0 + Type[14] DINT 0 " 1" 3 4 1 10 0 0 + Type[15] DINT 0 " 1" 3 4 1 10 0 0 + Type[16] DINT 0 " 1" 3 4 1 10 0 0 + Type[17] DINT 0 " 1" 3 4 1 10 0 0 + Type[18] DINT 0 " 1" 3 4 1 10 0 0 + Type[19] DINT 0 " 1" 3 4 1 10 0 0 + Type[20] DINT 0 " 1" 3 4 1 10 0 0 + Type[21] DINT 0 " 1" 3 4 1 10 0 0 + Type[22] DINT 0 " 1" 3 4 1 10 0 0 + Type[23] DINT 0 " 1" 3 4 1 10 0 0 + Type[24] DINT 0 " 1" 3 4 1 10 0 0 + Type[25] DINT 0 " 1" 3 4 1 10 0 0 + Type[26] DINT 0 " 1" 3 4 1 10 0 0 + Type[27] DINT 0 " 1" 3 4 1 10 0 0 + Type[28] DINT 0 " 1" 3 4 1 10 0 0 + Type[29] DINT 0 " 1" 3 4 1 10 0 0 + Type[30] DINT 0 " 1" 3 4 1 10 0 0 + Type[31] DINT 0 " 1" 3 4 1 10 0 0 + Type[32] DINT 0 " 1" 3 4 1 10 0 0 + Type[33] DINT 0 " 1" 3 4 1 10 0 0 + Type[34] DINT 0 " 1" 3 4 1 10 0 0 + Type[35] DINT 0 " 1" 3 4 1 10 0 0 + Type[36] DINT 0 " 1" 3 4 1 10 0 0 + Type[37] DINT 0 " 1" 3 4 1 10 0 0 + Type[38] DINT 0 " 1" 3 4 1 10 0 0 + Type[39] DINT 0 " 1" 3 4 1 10 0 0 + Type[40] DINT 0 " 1" 3 4 1 10 0 0 + Type[41] DINT 0 " 1" 3 4 1 10 0 0 + Type[42] DINT 0 " 1" 3 4 1 10 0 0 + Type[43] DINT 0 " 1" 3 4 1 10 0 0 + Type[44] DINT 0 " 1" 3 4 1 10 0 0 + Type[45] DINT 0 " 1" 3 4 1 10 0 0 + Type[46] DINT 0 " 1" 3 4 1 10 0 0 + Type[47] DINT 0 " 1" 3 4 1 10 0 0 + Type[48] DINT 0 " 1" 3 4 1 10 0 0 + Type[49] DINT 0 " 1" 3 4 1 10 0 0 + Size UDINT[0..49] 0 " *" 2 7 50 0 0 1 + Size[0] UDINT 0 " 0" 3 7 1 10 0 0 + Size[1] UDINT 0 " 0" 3 7 1 10 0 0 + Size[2] UDINT 0 " 0" 3 7 1 10 0 0 + Size[3] UDINT 0 " 1" 3 7 1 10 0 0 + Size[4] UDINT 0 " 1" 3 7 1 10 0 0 + Size[5] UDINT 0 " 1" 3 7 1 10 0 0 + Size[6] UDINT 0 " 1" 3 7 1 10 0 0 + Size[7] UDINT 0 " 0" 3 7 1 10 0 0 + Size[8] UDINT 0 " 0" 3 7 1 10 0 0 + Size[9] UDINT 0 " 0" 3 7 1 10 0 0 + Size[10] UDINT 0 " 0" 3 7 1 10 0 0 + Size[11] UDINT 0 " 0" 3 7 1 10 0 0 + Size[12] UDINT 0 " 0" 3 7 1 10 0 0 + Size[13] UDINT 0 " 0" 3 7 1 10 0 0 + Size[14] UDINT 0 " 0" 3 7 1 10 0 0 + Size[15] UDINT 0 " 0" 3 7 1 10 0 0 + Size[16] UDINT 0 " 0" 3 7 1 10 0 0 + Size[17] UDINT 0 " 0" 3 7 1 10 0 0 + Size[18] UDINT 0 " 0" 3 7 1 10 0 0 + Size[19] UDINT 0 " 0" 3 7 1 10 0 0 + Size[20] UDINT 0 " 0" 3 7 1 10 0 0 + Size[21] UDINT 0 " 0" 3 7 1 10 0 0 + Size[22] UDINT 0 " 0" 3 7 1 10 0 0 + Size[23] UDINT 0 " 0" 3 7 1 10 0 0 + Size[24] UDINT 0 " 0" 3 7 1 10 0 0 + Size[25] UDINT 0 " 0" 3 7 1 10 0 0 + Size[26] UDINT 0 " 0" 3 7 1 10 0 0 + Size[27] UDINT 0 " 0" 3 7 1 10 0 0 + Size[28] UDINT 0 " 0" 3 7 1 10 0 0 + Size[29] UDINT 0 " 0" 3 7 1 10 0 0 + Size[30] UDINT 0 " 0" 3 7 1 10 0 0 + Size[31] UDINT 0 " 0" 3 7 1 10 0 0 + Size[32] UDINT 0 " 0" 3 7 1 10 0 0 + Size[33] UDINT 0 " 0" 3 7 1 10 0 0 + Size[34] UDINT 0 " 0" 3 7 1 10 0 0 + Size[35] UDINT 0 " *" 3 7 1 10 0 0 + Size[36] UDINT 0 " *" 3 7 1 10 0 0 + Size[37] UDINT 0 " *" 3 7 1 10 0 0 + Size[38] UDINT 0 " 0" 3 7 1 10 0 0 + Size[39] UDINT 0 " 0" 3 7 1 10 0 0 + Size[40] UDINT 0 " 0" 3 7 1 10 0 0 + Size[41] UDINT 0 " 0" 3 7 1 10 0 0 + Size[42] UDINT 0 " 0" 3 7 1 10 0 0 + Size[43] UDINT 0 " 0" 3 7 1 10 0 0 + Size[44] UDINT 0 " 0" 3 7 1 10 0 0 + Size[45] UDINT 0 " 0" 3 7 1 10 0 0 + Size[46] UDINT 0 " 0" 3 7 1 10 0 0 + Size[47] UDINT 0 " 0" 3 7 1 10 0 0 + Size[48] UDINT 0 " 0" 3 7 1 10 0 0 + Size[49] UDINT 0 " 0" 3 7 1 10 0 0 + DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 1 + DeviceDataProvider[0] STRING[100] 0 " '{"value":"mappRecipeFiles","text":"mappRecipeFiles"}'" 3 9 101 1 0 0 + DeviceDataProvider[1] STRING[100] 0 " '{"value":"mappAuditFiles","text":"mappAuditFiles"}'" 3 9 101 1 0 0 + DeviceDataProvider[2] STRING[100] 0 " '{"value":"mappReportFiles","text":"mappReportFiles"}'" 3 9 101 1 0 0 + DeviceDataProvider[3] STRING[100] 0 " '{"value":"mappBackupFiles","text":"mappBackupFiles"}'" 3 9 101 1 0 0 + DeviceDataProvider[4] STRING[100] 0 " '{"value":"mappAlarmXFiles","text":"mappAlarmXFiles"}'" 3 9 101 1 0 0 + DeviceDataProvider[5] STRING[100] 0 " '{"value":"mappUserXFiles","text":"mappUserXFiles"}'" 3 9 101 1 0 0 + DeviceDataProvider[6] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[7] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[8] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[9] STRING[100] 0 " ''" 3 9 101 1 0 0 + FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 1 + FifoSelect[0] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[1] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[2] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[3] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[4] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[5] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[6] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[7] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[8] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[9] DINT 0 " 0" 3 4 1 10 0 0 + DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 + TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":6,"to":9, "visible":false}]}'" 3 9 121 1 0 0 + TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":7,"to":49, "visible":false}]}'" 3 9 121 1 0 0 + IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 + DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE + + AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 + FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 + SelectedIndex USINT 0 " 3" 2 5 1 10 0 0 + FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 + DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM new file mode 100644 index 00000000..fa1b07ad --- /dev/null +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM @@ -0,0 +1,488 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=70 ASCIIString=0 + name type force value level type len format place expand specs + HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 0 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 + OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 + FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE + + ScanInterval DINT 0 " 60" 3 4 1 10 0 0 + MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 + MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 + MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 + Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 + DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 + TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":6,"to":9, "visible":false}]}'" 3 9 121 1 0 0 + TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":6,"to":49, "visible":false}]}'" 3 9 121 1 0 0 + IsFolder BOOL 0 " TRUE" 2 1 1 2 0 0 + BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 + DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE + + AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 + FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 + SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 + FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 + DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 + MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 + Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + + DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 + DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 0 + DeviceNames[0] STRING[50] 0 " 'mappRecipeFiles'" 3 9 51 1 0 0 + DeviceNames[1] STRING[50] 0 " 'mappAuditFiles'" 3 9 51 1 0 0 + DeviceNames[2] STRING[50] 0 " 'mappReportFiles'" 3 9 51 1 0 0 + DeviceNames[3] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 + DeviceNames[4] STRING[50] 0 " 'mappAlarmXFiles'" 3 9 51 1 0 0 + DeviceNames[5] STRING[50] 0 " 'mappUserXFiles'" 3 9 51 1 0 0 + DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 + SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 + File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-22-14:51:40" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-22-15:30:41" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-22-14:51:40" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 + Size UDINT 0 " 964" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-22-14:51:40" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 + StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 + PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 + StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 + RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 + RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 + SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 + PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 + CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 + FileCount UDINT 0 " 3" 3 7 1 10 0 0 + FolderCount UDINT 0 " 3" 3 7 1 10 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + Copy BOOL 0 " FALSE" 2 1 1 2 0 0 + Cut BOOL 0 " FALSE" 2 1 1 2 0 0 + Paste BOOL 0 " FALSE" 2 1 1 2 0 0 + NewName STRING[255] 0 " ''" 2 9 256 1 0 0 + Rename BOOL 0 " FALSE" 2 1 1 2 0 0 + CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 1 + LayerStatus UINT 0 " *" 2 6 1 10 0 0 + Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI + + ErrorNumber UINT 0 " *" 2 6 1 10 0 0 + Confirm BOOL 0 " *" 2 1 1 2 0 0 + Cancel BOOL 0 " *" 2 1 1 2 0 0 + DefaultLayerStatus UINT 0 " *" 1 6 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc new file mode 100644 index 0000000000000000000000000000000000000000..dc8a8b45ec97dd34fc4c6f16d8fa9865bdfc6451 GIT binary patch literal 272 zcmdO%?#rFm>3us1sI^f0Z9K=1`;|z>;aVF5%^YC6T`p&A%TJ@0H_x` zs09f#GMF)VGh{KeGR%RfVq;*~#&D34)h#n8H6*pT#0o?Nmn4>?GBC2i1wjnwqEw)0 zyn$XZP`0#~0ZETzQBh)EdTMZK5>zL`ILG7?tir{`sYM7GCI*;QAXh2x&}IbyC%Hh* literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index ffc4d71b..96a91b3b 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -107,6 +107,9 @@ bool FileIdleOrDisabled(void) { _SETUP_TEST(void) { TestState = 0; + ArrangeSubState = 0; + ActSubState = 0; + AssertSubState = 0; FileNumber = 0; cycleCount = 0; NameMatch = 0; @@ -255,8 +258,6 @@ _TEST Add_File(void) FileCreate(&FileCreate_0); FileClose(&FileClose_0); - TEST_ABORT_CONDITION((FileCreate_0.status != 0) && (FileCreate_0.status != 65535)); - TEST_ABORT_CONDITION((FileClose_0.status != 0) && (FileClose_0.status != 65535)); switch (TestState) { @@ -277,13 +278,16 @@ _TEST Add_File(void) break; case 1: + TEST_ABORT_CONDITION((FileCreate_0.status != 0) && (FileCreate_0.status != 65535)); TEST_BUSY_CONDITION(FileCreate_0.status != 0); ActSubState = 2; FileClose_0.ident = FileCreate_0.ident; + FileClose_0.enable = 1; FileCreate_0.enable = 0; break; case 2: + TEST_ABORT_CONDITION((FileClose_0.status != 0) && (FileClose_0.status != 65535)); TEST_BUSY_CONDITION(FileClose_0.status != 0); ActSubState = 3; FileClose_0.enable = 0; @@ -318,15 +322,18 @@ _TEST Add_File(void) _TEST Copy_File(void) { - TEST_DONE; +// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) { case 0: // Select Recipe file device and input directory name - MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; - brsmemcpy(&MpFileManagerUIConnect.File.NewName, &DirName, sizeof(MpFileManagerUIConnect.File.NewName)); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) + HmiFile.Status.SelectedIndex = i; + } TestState = 1; break; @@ -335,14 +342,14 @@ _TEST Copy_File(void) switch (ActSubState) { case 0: - MpFileManagerUIConnect.File.CreateFolder = 1; + MpFileManagerUIConnect.File.Copy = 1; ActSubState = 1; break; case 1: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); ActSubState = 2; - MpFileManagerUIConnect.File.Refresh = 1; + MpFileManagerUIConnect.File.Paste = 1; break; case 2: @@ -353,7 +360,7 @@ _TEST Copy_File(void) case 3: for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { - if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedFileName) == 0) { NameMatch = 1; } diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 0cdde877..c9aa9c13 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -31,7 +31,8 @@ VAR FileDelete_UT : FileDelete; NameMatch : BOOL; DirName : STRING[255] := 'FileTestDir'; - CreateFileName : STRING[255] := 'FileTestFile'; + CreateFileName : STRING[255] := 'FileTestFile.xml'; FileCreate_0 : FileCreate; FileClose_0 : FileClose; + CopiedFileName : STRING[255] := 'FileTestFile(1).par'; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index 5caa21c8..64206ad3 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -13,4 +13,5 @@ VAR_CONFIG ::FileTest:MpFileManagerUIConnect.File.NewName AT %Q.::FileMgr:MpFileManagerUIConnect.File.NewName; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.CreateFolder AT %Q.::FileMgr:MpFileManagerUIConnect.File.CreateFolder; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.Refresh AT %Q.::FileMgr:MpFileManagerUIConnect.File.Refresh; (*Insert your comment here...*) + ::FileTest:HmiFile.Status.SelectedIndex AT %Q.::FileMgr:HmiFile.Status.SelectedIndex; (*Insert your comment here...*) END_VAR From 526f506af0b4774f23a1087802e694082de02a5c Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 22 Mar 2023 17:01:38 -0400 Subject: [PATCH 037/159] Can't get Copy test to work --- .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 272 -> 268 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 20 ++++++++++++++---- .../UnitTest/File/FileUnitTest/variables.var | 3 ++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc index dc8a8b45ec97dd34fc4c6f16d8fa9865bdfc6451..f2e7f9a77ca8d3d4cdf2bf5d4b7f2a3efe3105d8 100644 GIT binary patch literal 268 zcmdO%?#rFm>3usc^II;0Z9K=2NF6!>;aVF5cpQs=G4FdA%TJ@fQf+- zg%9V{f>?|UW(-~o@eE}Q-4F>j28PWH`xqJBGILTxQj1HhobwARK@0{)R=605A6$}H zl8P+om|PNEngkU_==V#^P4!JINzOo4>yeuYGE5Joy0lm?I5j6Vxg<5kGcP5z0_aFm>3us1sI^f0Z9K=1`;|z>;aVF5%^YC6T`p&A%TJ@0H_x` zs09f#GMF)VGh{KeGR%RfVq;*~#&D34)h#n8H6*pT#0o?Nmn4>?GBC2i1wjnwqEw)0 zyn$XZP`0#~0ZETzQBh)EdTMZK5>zL`ILG7?tir{`sYM7GCI*;QAXh2x&}IbyC%Hh* diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 96a91b3b..7291378c 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -188,6 +188,7 @@ _TEARDOWN_TEST(void) HmiFile_UT.Parameters.Fifo.ScanInterval = 60; TestState = 0; SetupState = 0; + CopyTest = 0; TEST_DONE; } @@ -323,18 +324,29 @@ _TEST Add_File(void) _TEST Copy_File(void) { // TEST_DONE; + CopyTest = 1; TIMEOUT_TEST_CASE; switch (TestState) { case 0: // Select Recipe file device and input directory name - for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + switch (ArrangeSubState) { - if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) - HmiFile.Status.SelectedIndex = i; + case 0: + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + ArrangeSubState = 1; + break; + + case 1: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; } - TestState = 1; break; case 1: diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index c9aa9c13..36dbf518 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -34,5 +34,6 @@ VAR CreateFileName : STRING[255] := 'FileTestFile.xml'; FileCreate_0 : FileCreate; FileClose_0 : FileClose; - CopiedFileName : STRING[255] := 'FileTestFile(1).par'; + CopiedFileName : STRING[255] := 'FileTestFile(1).xml'; + CopyTest : BOOL; END_VAR From 1a0ca22625efc152675ae1dbb7f7768d14d9c608 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 27 Mar 2023 15:17:07 -0400 Subject: [PATCH 038/159] Made Create_Directory test more robust with extra substeps and status checks --- .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 232 -> 280 bytes .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 17 +++++- .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 268 -> 352 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 56 ++++++++++++++++-- .../Physical/UnitTest/PC_any/Cpu.pkg | 2 +- .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 2 + 6 files changed, 68 insertions(+), 9 deletions(-) diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc index 71b4d1e5cab8729e76370944999c76fec1e09d68..ef667657949429f2dc70b64434007473dea6330d 100644 GIT binary patch delta 117 zcmaFCID^Std%7>fE0I>&9MnvFSbx}kE1Bjex yZX%k(FdZlZ1&j;~`x#C$GE8hx;R;GkD@rZSU;y!qK!p6nOG0c646Cmx_5uK?3LOam delta 115 zcmbQi^n%e`d%7>fFm>3us6BwYt0Z9M43?y`b*aIjNBk--d0;mK+0tHb3Py#z( zegPC`WH4ihXXs-%#Bh`03rHO!10yG+2qTMIW=?8IYH^8`Zvlwuo0ylFo>~;@>71XJ zmzrFn7hIB9Qd-Qw$Vf;bNM0`}HLWPMID=T_&PAz-C8=)tIVq_{42-OBD;$$cf=iP? eR;Qu}7ZoMurKe((0(k+Vo{0fw48!ZLE+GKS%wV+u literal 268 zcmdO%?#rFm>3usc^II;0Z9K=2NF6!>;aVF5cpQs=G4FdA%TJ@fQf+- zg%9V{f>?|UW(-~o@eE}Q-4F>j28PWH`xqJBGILTxQj1HhobwARK@0{)R=605A6$}H zl8P+om|PNEngkU_==V#^P4!JINzOo4>yeuYGE5Joy0lm?I5j6Vxg<5kGcP5z0_a - + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index 64206ad3..f817dead 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -14,4 +14,6 @@ VAR_CONFIG ::FileTest:MpFileManagerUIConnect.File.CreateFolder AT %Q.::FileMgr:MpFileManagerUIConnect.File.CreateFolder; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.Refresh AT %Q.::FileMgr:MpFileManagerUIConnect.File.Refresh; (*Insert your comment here...*) ::FileTest:HmiFile.Status.SelectedIndex AT %Q.::FileMgr:HmiFile.Status.SelectedIndex; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.Copy AT %Q.::FileMgr:MpFileManagerUIConnect.File.Copy; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.Paste AT %Q.::FileMgr:MpFileManagerUIConnect.File.Paste; (*Insert your comment here...*) END_VAR From c8d9c554082196b8c6a651fc7879d176fa3afaaa Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 27 Mar 2023 15:53:48 -0400 Subject: [PATCH 039/159] Made Add_File test more robust by adding more substates and status checks --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 50 +++++++++++++++---- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index d324cc17..6f412bd9 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -298,7 +298,7 @@ _TEST Create_Directory(void) _TEST Add_File(void) { - TEST_DONE; +// TEST_DONE; TIMEOUT_TEST_CASE; FileCreate(&FileCreate_0); @@ -307,14 +307,39 @@ _TEST Add_File(void) switch (TestState) { case 0: // Arrange - // Select Recipe file device and input directory name - FileCreate_0.pDevice = (UDINT)&"mappRecipeFiles"; - FileCreate_0.pFile = (UDINT)&CreateFileName; - TestState = 1; + // Select Recipe file device and input file name + switch (ArrangeSubState) + { + case 0: + FileCreate_0.pDevice = (UDINT)&"mappRecipeFiles"; + FileCreate_0.pFile = (UDINT)&CreateFileName; + ArrangeSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.File.Refresh = 1; + ArrangeSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + MpFileManagerUIConnect.File.Refresh = 0; + ArrangeSubState = 3; + break; + + case 3: // Check to make sure there isn't already a file by the specified name in the directory + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + TEST_ABORT_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0); + } + TestState = 1; + break; + } break; case 1: // Act - // Create directory + // Create file switch (ActSubState) { case 0: @@ -334,17 +359,24 @@ _TEST Add_File(void) case 2: TEST_ABORT_CONDITION((FileClose_0.status != 0) && (FileClose_0.status != 65535)); TEST_BUSY_CONDITION(FileClose_0.status != 0); - ActSubState = 3; FileClose_0.enable = 0; MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 3; break; case 3: - TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; ActSubState = 4; break; - + case 4: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + ActSubState = 5; + break; + + case 5: + MpFileManagerUIConnect.File.Refresh = 0; for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) From 6e07cdc537b945b025c4833eb3b2011e322a4622 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 27 Mar 2023 16:52:00 -0400 Subject: [PATCH 040/159] Copy_File test is working, but seems to cause a MpFileManagerUI fub error on successive executions of file tests Error number is -1064165374: no element to paste --- .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 280 -> 268 bytes .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 61 +++++++++++++++++- .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 352 -> 256 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 14 ++-- 4 files changed, 68 insertions(+), 7 deletions(-) diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc index ef667657949429f2dc70b64434007473dea6330d..24b77f758b007213b7a3ad38c8d6dd24ba513faf 100644 GIT binary patch delta 134 zcmbQi)Wc+8dK@|%6FtFHfSU|?ckVB}$d0tX=NKN(2q0I>&9hC|?6b+b7G1DKp> zVJsTQ&;^u&0yYMQtql7aStdSIV`5~S_)vc0d{&Nt#Nv`v1{hbwIlrJ1Xo*{9PO5Ku L5d(wc``lvyRbC;X delta 150 zcmeBSn!#kDJ>8dK@|%6FtFHfSU|?ckV3c5h0tX=N-wq^nfY<{lBO>svx+tQ70ZdM` zFcwW=m=2VJ0!9Xg{R}4=874N!^Sfo{r0NBwrWK_YXE1<;M8HDMMX8A;sc!i>DXB$Z UaWz3E29S(zdJ)K&)z=hz0q@2pfdBvi diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 951d3522..3687eda4 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,12 +1,71 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=5 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=2 ASCIIString=0 name type force value level type len format place expand specs cycleCount UINT 0 " 4" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 + ActSubState USINT 0 " 0" 0 5 1 10 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-16:09:28" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 + Size UDINT 0 " 964" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + + Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'FileTestFile.xml'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-16:09:28" 5 11 1 1 0 0 + ItemType DINT 0 " 7" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Machine.mcfg'" 5 9 256 1 0 0 + Size UDINT 0 " 981" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + + Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Package.pkg'" 5 9 256 1 0 0 + Size UDINT 0 " 548" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + + Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + + PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 + StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 + PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 + StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 + RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 + RangeEnd REAL 0 " 0.0" 3 8 1 10 0 0 Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 Copy BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc index 1475928acd123f2a138f09fe47efe68bea3bdeb7..5be1ebf2b4f517c97f8185651ab934db1768dbe8 100644 GIT binary patch delta 117 zcmaFB)WGDUJ>8dK@tb|^8Mo`7F)%SOFfzb^1Ca6C7)a;$E0wGX}B)ML(&nT?YW~a~He- delta 155 zcmZo*dcfqPJ>8dK@tb|^8Mo`7F)%SOFeWfSfdi2Kbs0$L0I>&9CPv^}bp=ofgaitr z0HDM~A4S1FhC>WD8NPs|7#SEj8AT@6X)!WRY*65L%gjmD3rbBZN-fS{01F9%g`A60 W6H8Lv@^eyBizY4$W_jJ!B?JJdCMD_s diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 6f412bd9..3af27bfe 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -399,7 +399,7 @@ _TEST Add_File(void) _TEST Copy_File(void) { - TEST_DONE; +// TEST_DONE; CopyTest = 1; TIMEOUT_TEST_CASE; @@ -433,19 +433,21 @@ _TEST Copy_File(void) MpFileManagerUIConnect.File.Copy = 1; ActSubState = 1; break; - + case 1: - TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); - ActSubState = 2; + MpFileManagerUIConnect.File.Copy = 0; MpFileManagerUIConnect.File.Paste = 1; + ActSubState = 2; break; - + case 2: - TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); + MpFileManagerUIConnect.File.Paste = 0; ActSubState = 3; break; case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedFileName) == 0) From 08f40a39168accd2c2dd21e3039dc7bbfbda8389 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 28 Mar 2023 09:56:14 -0400 Subject: [PATCH 041/159] Moved the end of the paste command call to happen before the paste is completed, solved the fub error --- mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 3af27bfe..fe5e223c 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -441,8 +441,8 @@ _TEST Copy_File(void) break; case 2: - TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); MpFileManagerUIConnect.File.Paste = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); ActSubState = 3; break; From 55d014b2691160e022eabecf7d7d12f6e6a081bd Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 28 Mar 2023 10:06:11 -0400 Subject: [PATCH 042/159] Added copy/paste directory test --- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 81 ++++++++++-------- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 83 +++++++++++++++++-- .../UnitTest/File/FileUnitTest/variables.var | 2 +- 3 files changed, 124 insertions(+), 42 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 3687eda4..91041482 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,76 +1,87 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=2 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=75 ASCIIString=0 name type force value level type len format place expand specs cycleCount UINT 0 " 4" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 ActSubState USINT 0 " 0" 0 5 1 10 1 0 - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 + MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 0 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 0 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-27-16:09:28" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-09:32:02" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 Size UDINT 0 " 964" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'FileTestFile.xml'" 5 9 256 1 0 0 + Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'FileTestFile(1).xml'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-27-16:09:28" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-09:32:02" 5 11 1 1 0 0 ItemType DINT 0 " 7" 5 4 1 10 0 0 e,0,mpFI IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'FileTestFile.xml'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-09:32:02" 5 11 1 1 0 0 + ItemType DINT 0 " 7" 5 4 1 10 0 0 e,0,mpFI + + Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'Machine.mcfg'" 5 9 256 1 0 0 Size UDINT 0 " 981" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'Package.pkg'" 5 9 256 1 0 0 Size UDINT 0 " 548" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#2023-03-27-14:23:13" 5 11 1 1 0 0 ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI - - PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 - StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 - PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 - StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 - RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 - RangeEnd REAL 0 " 0.0" 3 8 1 10 0 0 - Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - Copy BOOL 0 " FALSE" 2 1 1 2 0 0 - Cut BOOL 0 " FALSE" 2 1 1 2 0 0 - Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'FileTestDir'" 2 9 256 1 0 0 - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + PageUp BOOL 0 " *" 3 1 1 2 0 0 + StepUp BOOL 0 " *" 3 1 1 2 0 0 + PageDown BOOL 0 " *" 3 1 1 2 0 0 + StepDown BOOL 0 " *" 3 1 1 2 0 0 + RangeStart REAL 0 " *" 3 8 1 10 0 0 + RangeEnd REAL 0 " *" 3 8 1 10 0 0 + Refresh BOOL 0 " *" 2 1 1 2 0 0 + Delete BOOL 0 " *" 2 1 1 2 0 0 + Copy BOOL 0 " *" 2 1 1 2 0 0 + Cut BOOL 0 " *" 2 1 1 2 0 0 + Paste BOOL 0 " *" 2 1 1 2 0 0 + NewName STRING[255] 0 " *" 2 9 256 1 0 0 + Rename BOOL 0 " *" 2 1 1 2 0 0 + CreateFolder BOOL 0 " *" 2 1 1 2 0 0 + MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 + MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[3] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[4] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[5] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[6] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[7] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[8] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[9] DINT 0 " 0" 1 4 1 10 1 0 diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index fe5e223c..fa8296fb 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -199,7 +199,6 @@ _TEARDOWN_TEST(void) HmiFile_UT.Parameters.Fifo.ScanInterval = 60; TestState = 0; SetupState = 0; - CopyTest = 0; FileCreate_0.enable = 0; FileClose_0.enable = 0; @@ -400,13 +399,12 @@ _TEST Add_File(void) _TEST Copy_File(void) { // TEST_DONE; - CopyTest = 1; TIMEOUT_TEST_CASE; switch (TestState) { case 0: - // Select Recipe file device and input directory name + // Select Recipe file device and input file name switch (ArrangeSubState) { case 0: @@ -426,7 +424,7 @@ _TEST Copy_File(void) break; case 1: - // Create directory + // Copy/paste file switch (ActSubState) { case 0: @@ -447,6 +445,7 @@ _TEST Copy_File(void) break; case 3: + // Check file list for copied file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -461,7 +460,78 @@ _TEST Copy_File(void) break; case 2: - // Check save location for directory + // Check if copied file was found + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + +_TEST Copy_Directory(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and input directory name + switch (ArrangeSubState) + { + case 0: + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + ArrangeSubState = 1; + break; + + case 1: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + } + break; + + case 1: + // Copy/paste directory + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Copy = 1; + ActSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.File.Copy = 0; + MpFileManagerUIConnect.File.Paste = 1; + ActSubState = 2; + break; + + case 2: + MpFileManagerUIConnect.File.Paste = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); + ActSubState = 3; + break; + + case 3: + // Check file list for copied directory + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedDirName) == 0) + { + NameMatch = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: + // Check if copied directory was found TEST_ASSERT(NameMatch); TEST_DONE; break; @@ -1058,7 +1128,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-22 14:33:19Z +LastUpdated: 2023-03-28 14:01:58Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1066,6 +1136,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Create_Directory", Create_Directory), new_TestFixture("Add_File", Add_File), new_TestFixture("Copy_File", Copy_File), + new_TestFixture("Copy_Directory", Copy_Directory), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 36dbf518..53f11f32 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -35,5 +35,5 @@ VAR FileCreate_0 : FileCreate; FileClose_0 : FileClose; CopiedFileName : STRING[255] := 'FileTestFile(1).xml'; - CopyTest : BOOL; + CopiedDirName : STRING[255] := 'FileTestDir(1)'; END_VAR From 97804010fcdfe4d7611eb82d9e416466d09676ca Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Tue, 28 Mar 2023 17:36:42 +0300 Subject: [PATCH 043/159] UserX, FileMng, Recipe implementation done according to last sprint. --- .../AlarmX/AlarmImportExport.py | 413 ++ .../AlarmX/AlarmMgr/AlarmMgr.st | 2 +- .../AlarmX/AlarmMgr/AlarmMgr.var | 1 - .../Logical/Infrastructure/AlarmX/Package.pkg | 1 + .../Infrastructure/Audit/AuditMgr/AuditMgr.st | 2 +- .../Audit/AuditMgr/AuditMgr.var | 1 - .../Backup/BackupMgr/BackupMgr.st | 2 +- .../Backup/BackupMgr/BackupMgr.var | 1 - .../Infrastructure/File/FileMgr/FileMgr.st | 5 +- .../Infrastructure/File/FileMgr/FileMgr.typ | 1 + .../Infrastructure/File/FileMgr/HMIActions.st | 5 +- .../Logical/Infrastructure/File/Package.pkg | 2 +- .../Recipe/RecipeMgr/HMIActions.st | 10 +- .../Recipe/RecipeMgr/RecipeMgr.st | 30 +- .../Recipe/RecipeMgr/RecipeMgr.typ | 3 + .../Recipe/RecipeMgr/RecipeMgr.var | 3 - .../Report/ReportMgr/ReportMgr.st | 2 +- .../Report/ReportMgr/ReportMgr.var | 1 - .../UserX/UserXMgr/HMIAction.st | 9 +- .../Infrastructure/UserX/UserXMgr/UserXMgr.st | 2 +- .../UserX/UserXMgr/UserXMgr.typ | 2 + .../UserX/UserXMgr/UserXMgr.var | 5 +- .../VC4/Visu/Pages/MpAuditTrailUI.page | 120 +- .../VC4/Visu/Pages/MpFileManagerUI.page | 255 + .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 350 +- .../Visu/Pages/MpUserXManagerUI_Users.page | 393 +- .../Logical/VC4/Visu/VirtualKeys.vcvk | 92 + .../VCShared/DataSources/DataSource.dso | 6506 +++++++++-------- mappFramework/Logical/VCShared/Package.vcp | 3 +- .../TextGroups/MpAuditEventsOutput.txtgrp | 40 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 19 + mappFramework/Physical/Simulation/Hardware.hw | 32 +- mappFramework/Physical/Simulation/PC/Cpu.pkg | 2 +- 34 files changed, 4915 insertions(+), 3402 deletions(-) create mode 100644 mappFramework/Logical/Infrastructure/AlarmX/AlarmImportExport.py create mode 100644 mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmImportExport.py b/mappFramework/Logical/Infrastructure/AlarmX/AlarmImportExport.py new file mode 100644 index 00000000..82f6d94b --- /dev/null +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmImportExport.py @@ -0,0 +1,413 @@ +import csv +import argparse +import os +from lxml import etree as et +from dataclasses import dataclass + +@dataclass +class EdgeAlarm: + retain: bool + asynchronous: bool + +@dataclass +class PersistentAlarm: + retain: bool + asynchronous: bool + +@dataclass +class DiscreteValueMonitoring: + monitoredPV: str + triggerValues: list + delay: str + +@dataclass +class Level: + limit: any + text: str + +@dataclass +class LevelMonitoring: + monitoredPV: str + delay: str + lowLimit: Level + highLimit: Level + lowLowLimit: Level = None + highHighLimit: Level = None + +@dataclass +class DeviationMonitoring: + monitoredPV: str + delay: str + setpointPV: str + lowLimit: Level + highLimit: Level + lowLowLimit: Level = None + highHighLimit: Level = None + +@dataclass +class RateOfChangeMonitoring: + monitoredPV: str + delay: str + lowLimit: Level + highLimit: Level + lowLowLimit: Level = None + highHighLimit: Level = None + +class Alarm: + def __init__(self, name: str, message, severity, behavior, code): + self._name = name + self._message = message + self._severity = severity + self._behavior = behavior + self._code = code + + def __eq__(self, obj): + return isinstance(obj, Alarm) and (self._name == obj._name) and (self._message == obj._message) and (self._severity == obj._severity) and (self._behavior == obj._behavior) and (self._code == obj._code) + +def parseDict(alarmDict: dict): + name = alarmDict['Name'] if ('Name' in alarmDict) else None + message = alarmDict['Message'] if ('Message' in alarmDict) else None + severity = alarmDict['Severity'] if ('Severity' in alarmDict) else None + code = alarmDict['Code'] if ('Code' in alarmDict) else None + behavior = None + if (alarmDict['Behavior'] == 'EdgeAlarm'): + behavior = EdgeAlarm(alarmDict['Retain'], alarmDict['Async']) + elif (alarmDict['Behavior'] == 'PersistentAlarm'): + behavior = PersistentAlarm(alarmDict['Retain'], alarmDict['Async']) + elif (alarmDict['Behavior'] == 'DiscreteValueMonitoring'): + behavior = DiscreteValueMonitoring(alarmDict['Monitored PV'], alarmDict['Trigger Values'].strip('][').replace("'", '').split(', '), alarmDict['Delay']) + elif (alarmDict['Behavior'] == 'LevelMonitoring'): + behavior = LevelMonitoring(alarmDict['Monitored PV'], alarmDict['Delay'], Level(alarmDict['Low Limit'], alarmDict['Low Limit Text']), Level(alarmDict['High Limit'], alarmDict['High Limit Text']), Level(alarmDict['Low Low Limit'], alarmDict['Low Low Limit Text']), Level(alarmDict['High High Limit'], alarmDict['High High Limit Text'])) + elif (alarmDict['Behavior'] == 'DeviationMonitoring'): + behavior = DeviationMonitoring(alarmDict['Monitored PV'], alarmDict['Delay'], alarmDict['Set Point PV'], Level(alarmDict['Low Limit'], alarmDict['Low Limit Text']), Level(alarmDict['High Limit'], alarmDict['High Limit Text']), Level(alarmDict['Low Low Limit'], alarmDict['Low Low Limit Text']), Level(alarmDict['High High Limit'], alarmDict['High High Limit Text'])) + elif (alarmDict['Behavior'] == 'RateOfChangeMonitoring'): + behavior = RateOfChangeMonitoring(alarmDict['Monitored PV'], alarmDict['Delay'], Level(alarmDict['Low Limit'], alarmDict['Low Limit Text']), Level(alarmDict['High Limit'], alarmDict['High Limit Text']), Level(alarmDict['Low Low Limit'], alarmDict['Low Low Limit Text']), Level(alarmDict['High High Limit'], alarmDict['High High Limit Text'])) + return Alarm(name, message, severity, behavior, code) + +def parseLevel( element: et.Element) -> Level: + if (element is None): return None + if (element.find('Property[@ID="Limit"]') is not None): + value = element.find('Property[@ID="Limit"]').attrib['Value'] + elif (element.find('Property[@ID="LimitPV"]') is not None): + value = element.find('Property[@ID="LimitPV"]').attrib['Value'] + text = element.find('Property[@ID="LimitText"]').attrib['Value'] + level = Level(value, text) + return level + +def parseLevels(selector: et.Element): + low = None + lowLow = None + high = None + highHigh = None + levelElement = selector.find('Group/Selector[@ID="LowLimitEnable"]') + if (levelElement is not None): + low = parseLevel(levelElement) + lowLow = parseLevel(levelElement.find('Selector[@ID="LowLowLimitEnable"]')) + + levelElement = selector.find('Group/Selector[@ID="HighLimitEnable"]') + if (levelElement is not None): + high = parseLevel(levelElement) + highHigh = parseLevel(levelElement.find('Selector[@ID="HighHighLimitEnable"]')) + return low, lowLow, high, highHigh + +def parseDelay(settings): + delay = None + if settings is not None: + print('has settings') + delay = settings.find('Property[@ID="Delay"]').attrib['Value'] if (settings.find('Property[@ID="Delay"]') is not None) else None + if delay is None: + delay = settings.find('Property[@ID="DelayPV"]').attrib['Value'] if (settings.find('Property[@ID="DelayPV"]') is not None) else None + return delay + +def parseAlarmElement(element: et.Element): + name = element.find('Property[@ID="Name"]').attrib['Value'] + message = element.find('Property[@ID="Message"]').attrib['Value'] if (element.find('Property[@ID="Message"]') is not None) else None + code = element.find('Property[@ID="Code"]').attrib['Value'] if (element.find('Property[@ID="Code"]') is not None) else None + severity = element.find('Property[@ID="Severity"]').attrib['Value'] if (element.find('Property[@ID="Severity"]') is not None) else None + selector = element.find('Selector') + if (selector is None): + behavior = EdgeAlarm(False, False) + elif ('Value' in selector.attrib): + if (selector.attrib['Value'] == 'PersistentAlarm'): + retain = (selector.find('Property[@ID="Retain"]').attrib['Value'].lower() == 'true') if (selector.find('Property[@ID="Retain"]') is not None) else False + asynchronous = (selector.find('Property[@ID="Async"]').attrib['Value'].lower() == 'true') if (selector.find('Property[@ID="Async"]') is not None) else False + behavior = PersistentAlarm(retain, asynchronous) + elif (selector.attrib['Value'] == 'DiscreteValueMonitoring'): + variable = selector.find('Group/Property[@ID="MonitoredPV"]').attrib['Value'] + triggers = [] + for trigger in selector.findall('Group/Group/Property'): + triggers.append(trigger.attrib['Value']) + delay = parseDelay(selector.find('Group/Selector[@ID="Settings"]')) + behavior = DiscreteValueMonitoring(variable, triggers, delay) + elif (selector.attrib['Value'] == 'LevelMonitoring'): + variable = selector.find('Group/Property[@ID="MonitoredPV"]').attrib['Value'] + low, lowLow, high, highHigh = parseLevels(selector) + delay = parseDelay(selector.find('Group/Selector[@ID="Settings"]')) + behavior = LevelMonitoring(variable, delay, low, high, lowLow, highHigh) + elif (selector.attrib['Value'] == 'DeviationMonitoring'): + variable = selector.find('Group/Property[@ID="MonitoredPV"]').attrib['Value'] + setPointPV = selector.find('Group/Property[@ID="SetpointPV"]').attrib['Value'] + low, lowLow, high, highHigh = parseLevels(selector) + delay = parseDelay(selector.find('Group/Selector[@ID="Settings"]')) + behavior = DeviationMonitoring(variable, delay, setPointPV, low, high, lowLow, highHigh) + elif (selector.attrib['Value'] == 'RateOfChangeMonitoring'): + variable = selector.find('Group/Property[@ID="MonitoredPV"]').attrib['Value'] + low, lowLow, high, highHigh = parseLevels(selector) + delay = parseDelay(selector.find('Group/Selector[@ID="Settings"]')) + behavior = RateOfChangeMonitoring(variable, delay, low, high, lowLow, highHigh) + else: + print('unsupported behavior type ' + selector.attrib['Value']) + behavior = None + else: + retain = (selector.find('Property[@ID="Retain"]').attrib['Value'].lower() == 'true') if (selector.find('Property[@ID="Retain"]') is not None) else False + asynchronous = (selector.find('Property[@ID="Async"]').attrib['Value'].lower() == 'true') if (selector.find('Property[@ID="Async"]') is not None) else False + behavior = EdgeAlarm(retain, asynchronous) + return Alarm(name, message, severity, behavior, code) + +def readAlarmXCore(alarmXCore) -> list: + if (not os.path.isfile(alarmXCore)): + return + alarmXTree = et.parse(alarmXCore) + alarmXRoot = alarmXTree.getroot() + configuration = alarmXRoot.find('.//Element[@Type="mpalarmxcore"]').find('.//Group[@ID="mapp.AlarmX.Core.Configuration"]') + alarmList = [] + for element in configuration.findall('Group'): + alarmList.append(parseAlarmElement(element)) + return alarmList + +def prettyPrintLevel(level: Level) -> list: + if (level is None): return ['', ''] + return [level.limit, level.text] + +def levelToElement(parent: et.Element, name: str, level: Level) -> et.Element: + if (level.limit == ''): + return None + if (level.limit.startswith(':')): + limitEnable = et.SubElement(parent, 'Selector', {'ID': f'{name}LimitEnable', 'Value': 'Dynamic'}) + et.SubElement(limitEnable, 'Property', {'ID': 'LimitPV', 'Value': level.limit}) + else: + limitEnable = et.SubElement(parent, 'Selector', {'ID': f'{name}LimitEnable', 'Value': 'Static'}) + et.SubElement(limitEnable, 'Property', {'ID': 'Limit', 'Value': level.limit}) + et.SubElement(limitEnable, 'Property', {'ID': 'LimitText', 'Value': level.text}) + return limitEnable + +def levelsToElement(parent: et.Element, behavior): + if (behavior.lowLimit is not None): + low = levelToElement(parent, 'Low', behavior.lowLimit) + if (behavior.lowLowLimit is not None): + levelToElement(low, 'LowLow', behavior.lowLowLimit) + if (behavior.highLimit is not None): + high = levelToElement(parent, 'High', behavior.highLimit) + if (behavior.highHighLimit is not None): + levelToElement(high, 'HighHigh', behavior.highHighLimit) + +def exportAlarmXCore(csvFile, alarmXCore) -> None: + alarmList = readAlarmXCore(alarmXCore) + csvData = csv.writer(open(csvFile, 'w', newline=''), dialect='excel') + csvData.writerow(['Name', 'Message', 'Code', 'Severity', 'Behavior', 'Retain', 'Async', 'Monitored PV', 'Trigger Values', 'Set Point PV', 'Low Low Limit', 'Low Low Limit Text', 'Low Limit', 'Low Limit Text', 'High Limit', 'High Limit Text', 'High High Limit', 'High High Limit Text', 'Delay']) + for alarm in alarmList: + row = [alarm._name, alarm._message, alarm._code, alarm._severity, alarm._behavior.__class__.__name__] + if (alarm._behavior is None): + row.remove('NoneType') + row.append('EdgeAlarm') + row.append('') # no retain + row.append('') # no async + row.append('') # no monitoredPV + row.append('') # no triggerValues + row.append('') # no set point PV + row.append('') # no lowLowLimit + row.append('') # no lowLowText + row.append('') # no lowLimit + row.append('') # no lowLimitText + row.append('') # no highLimit + row.append('') # no highLimitText + row.append('') # no highHighLimit + row.append('') # no highHighLimitText + row.append('') # no delay + if (type(alarm._behavior) is EdgeAlarm): + row.append(alarm._behavior.retain) + row.append(alarm._behavior.asynchronous) + row.append('') # no monitoredPV + row.append('') # no triggerValues + row.append('') # no set point PV + row.append('') # no lowLowLimit + row.append('') # no lowLowText + row.append('') # no lowLimit + row.append('') # no lowLimitText + row.append('') # no highLimit + row.append('') # no highLimitText + row.append('') # no highHighLimit + row.append('') # no highHighLimitText + row.append('') # no delay + elif (type(alarm._behavior) is PersistentAlarm): + row.append(alarm._behavior.retain) + row.append(alarm._behavior.asynchronous) + row.append('') # no monitoredPV + row.append('') # no triggerValues + row.append('') # no set point PV + row.append('') # no lowLowLimit + row.append('') # no lowLowText + row.append('') # no lowLimit + row.append('') # no lowLimitText + row.append('') # no highLimit + row.append('') # no highLimitText + row.append('') # no highHighLimit + row.append('') # no highHighLimitText + elif (type(alarm._behavior) is DiscreteValueMonitoring): + row.append('') # no retain + row.append('') # no async + row.append(alarm._behavior.monitoredPV) + row.append(alarm._behavior.triggerValues) + row.append('') # no set point PV + row.append('') # no lowLowLimit + row.append('') # no lowLowText + row.append('') # no lowLimit + row.append('') # no lowLimitText + row.append('') # no highLimit + row.append('') # no highLimitText + row.append('') # no highHighLimit + row.append('') # no highHighLimitText + row.append(alarm._behavior.delay) + elif (type(alarm._behavior) is LevelMonitoring): + row.append('') # no retain + row.append('') # no async + row.append(alarm._behavior.monitoredPV) + row.append('') # no trigger values + row.append('') # no set point PV + row += prettyPrintLevel(alarm._behavior.lowLowLimit) + row += prettyPrintLevel(alarm._behavior.lowLimit) + row += prettyPrintLevel(alarm._behavior.highLimit) + row += prettyPrintLevel(alarm._behavior.highHighLimit) + row.append(alarm._behavior.delay) + elif (type(alarm._behavior) is DeviationMonitoring): + row.append('') # no retain + row.append('') # no async + row.append(alarm._behavior.monitoredPV) + row.append('') # no trigger values + row.append(alarm._behavior.setpointPV) + row += prettyPrintLevel(alarm._behavior.lowLowLimit) + row += prettyPrintLevel(alarm._behavior.lowLimit) + row += prettyPrintLevel(alarm._behavior.highLimit) + row += prettyPrintLevel(alarm._behavior.highHighLimit) + row.append(alarm._behavior.delay) + elif (type(alarm._behavior) is RateOfChangeMonitoring): + row.append('') # no retain + row.append('') # no async + row.append(alarm._behavior.monitoredPV) + row.append('') # no trigger values + row.append('') # no set point PV + row += prettyPrintLevel(alarm._behavior.lowLowLimit) + row += prettyPrintLevel(alarm._behavior.lowLimit) + row += prettyPrintLevel(alarm._behavior.highLimit) + row += prettyPrintLevel(alarm._behavior.highHighLimit) + row.append(alarm._behavior.delay) + csvData.writerow(row) + +def readCsvFile(csvFile) -> list: + if (not os.path.isfile(csvFile)): + print('CSV file not found') + return + csvData = csv.DictReader(open(csvFile, 'r', newline=''), dialect='excel') + alarmList = [] + for row in csvData: + alarm = parseDict(row) + alarmList.append(alarm) + return alarmList + +def createAlarm(alarm: Alarm, index: int) -> et.Element: + element = et.Element('Group', {'ID': f'[{str(index)}]'}) + t = et.SubElement(element, 'Property', {'ID': 'Name', 'Value': alarm._name}) + if (alarm._message is not None) and (alarm._message != ''): + et.SubElement(element, 'Property', {'ID': 'Message', 'Value': alarm._message}) + if (alarm._code is not None) and (alarm._code != '') and (alarm._code != 0): + et.SubElement(element, 'Property', {'ID': 'Code', 'Value': str(alarm._code)}) + if (alarm._severity is not None) and (alarm._severity != ''): + et.SubElement(element, 'Property', {'ID': 'Severity', 'Value': str(alarm._severity)}) + if (type(alarm._behavior) is EdgeAlarm): + behavior = et.SubElement(element, 'Selector', {'ID': 'Behavior'}) + if (alarm._behavior.retain == True): + et.SubElement(behavior, 'Property', {'ID': 'Retain', 'Value': str(alarm._behavior.retain).upper()}) + if (alarm._behavior.asynchronous == True): + et.SubElement(behavior, 'Property', {'ID': 'Async', 'Value': str(alarm._behavior.asynchronous).upper()}) + elif (type(alarm._behavior) is PersistentAlarm): + behavior = et.SubElement(element, 'Selector', {'ID': 'Behavior', 'Value': 'PersistentAlarm'}) + if (alarm._behavior.retain == True): + et.SubElement(behavior, 'Property', {'ID': 'Retain', 'Value': str(alarm._behavior.retain).upper()}) + if (alarm._behavior.asynchronous == True): + et.SubElement(behavior, 'Property', {'ID': 'Async', 'Value': str(alarm._behavior.asynchronous).upper()}) + elif (type(alarm._behavior) is DiscreteValueMonitoring): + behavior = et.SubElement(element, 'Selector', {'ID': 'Behavior', 'Value': 'DiscreteValueMonitoring'}) + monitoring = et.SubElement(behavior, 'Group', {'ID': 'Monitoring'}) + et.SubElement(monitoring, 'Property', {'ID': 'MonitoredPV', 'Value': alarm._behavior.monitoredPV}) + triggerValues = et.SubElement(monitoring, 'Group', {'ID': 'TriggerValues'}) + triggerIndex = 0 + for trigger in alarm._behavior.triggerValues: + et.SubElement(triggerValues, 'Property', {'ID': f'[{triggerIndex}]', 'Value': trigger}) + triggerIndex += 1 + if (alarm._behavior.delay is not None) and (alarm._behavior.delay != ''): + settings = et.SubElement(monitoring, 'Selector', {'ID': 'Settings'}) + if (alarm._behavior.delay.startswith(':')): + et.SubElement(settings, 'Property', {'ID': 'DelayPV', 'Value': alarm._behavior.delay}) + else: + et.SubElement(settings, 'Property', {'ID': 'Delay', 'Value': alarm._behavior.delay}) + elif (type(alarm._behavior) is LevelMonitoring): + behavior = et.SubElement(element, 'Selector', {'ID': 'Behavior', 'Value': 'LevelMonitoring'}) + monitoring = et.SubElement(behavior, 'Group', {'ID': 'Monitoring'}) + et.SubElement(monitoring, 'Property', {'ID': 'MonitoredPV', 'Value': alarm._behavior.monitoredPV}) + levelsToElement(monitoring, alarm._behavior) + elif (type(alarm._behavior) is DeviationMonitoring): + behavior = et.SubElement(element, 'Selector', {'ID': 'Behavior', 'Value': 'DeviationMonitoring'}) + monitoring = et.SubElement(behavior, 'Group', {'ID': 'Monitoring'}) + et.SubElement(monitoring, 'Property', {'ID': 'MonitoredPV', 'Value': alarm._behavior.monitoredPV}) + et.SubElement(monitoring, 'Property', {'ID': 'SetpointPV', 'Value': alarm._behavior.setpointPV}) + levelsToElement(monitoring, alarm._behavior) + elif (type(alarm._behavior) is RateOfChangeMonitoring): + behavior = et.SubElement(element, 'Selector', {'ID': 'Behavior', 'Value': 'RateOfChangeMonitoring'}) + monitoring = et.SubElement(behavior, 'Group', {'ID': 'Monitoring'}) + et.SubElement(monitoring, 'Property', {'ID': 'MonitoredPV', 'Value': alarm._behavior.monitoredPV}) + levelsToElement(monitoring, alarm._behavior) + return element + +def updateAlarmXCore(alarmXCore, alarmList): + if (not os.path.isfile(alarmXCore)): + print('mpAlarmXCore file not found') + return + if (alarmList is None): + print('no alarms in list') + return + alarmXTree = et.parse(alarmXCore) + alarmXRoot = alarmXTree.getroot() + print(alarmXRoot.text) + parent = alarmXRoot.find('.//Element[@Type="mpalarmxcore"]') + config = parent.find('.//Group[@ID="mapp.AlarmX.Core.Configuration"]') + for element in config.findall('Group'): + config.remove(element) + index = 0 + for alarm in alarmList: + element = createAlarm(alarm, index) + index += 1 + config.append(element) + et.indent(alarmXRoot, space=" ") + alarmXTree.write(alarmXCore, encoding="utf-8", xml_declaration=True, pretty_print=True) + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument('-e', '--export', help='Exports the AlarmXCore configuration to a CSV file', dest='export', required=False, default=False) + parser.add_argument('-c', '--csv-file', help='The CSV file that you want to import from', dest='csvFile', required=False, default='AlarmTriggers.csv') + parser.add_argument('-m', '--mpalarmxcore', help='The CSV file that you want to import from', dest='alarmXCore', required=False, default='AlarmXCfg.mpalarmxcore') + args = parser.parse_args() + + if (args.export): + if (not os.path.isfile(args.alarmXCore)): + print('MpAlarmXCore file not found') + return + exportAlarmXCore(args.csvFile, args.alarmXCore) + else: + if (not os.path.isfile(args.csvFile)): + print('CSV file not found') + return + alarmList = readCsvFile(args.csvFile) + updateAlarmXCore(args.alarmXCore, alarmList) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index d005b287..741df90c 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -8,7 +8,7 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('UserPartition'), pName := ADR(LOCAL_FOLDER)); + DirCreate_0(enable := TRUE, pDevice := ADR('mappAlarmXFiles'), pName := ADR('/')); // Check if folder already exist and if so disabled the function block call IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var index 148a676f..355a8727 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.var @@ -13,7 +13,6 @@ VAR CONSTANT MAX_QUERY_RESULTS : USINT := 19; (*Maximum number of query results (Value+1)*) MAX_SAFETY_DOOR : UINT := 5; (*Maximum number of safety doors (Value+1)*) MAX_ESTOP : UINT := 2; (*Maximum number of emergency stops (Value+1)*) - LOCAL_FOLDER : STRING[10] := 'AlarmX'; (*Folder name on the file device for AlarmX files*) DISPLAY : USINT := 0; HIDE : USINT := 1; END_VAR diff --git a/mappFramework/Logical/Infrastructure/AlarmX/Package.pkg b/mappFramework/Logical/Infrastructure/AlarmX/Package.pkg index 61f20bba..012a3d15 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/Package.pkg +++ b/mappFramework/Logical/Infrastructure/AlarmX/Package.pkg @@ -4,5 +4,6 @@ AlarmMgr Alarms.tmx + AlarmImportExport.py \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st index 1c061923..c5f72f98 100644 --- a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st +++ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st @@ -8,7 +8,7 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('UserPartition'), pName := ADR(LOCAL_FOLDER)); + DirCreate_0(enable := TRUE, pDevice := ADR('mappAuditFiles'), pName := ADR('/')); // Check if folder already exist and if so disabled the function block call IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN diff --git a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var index 8d962ecd..98d4a771 100644 --- a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var +++ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var @@ -10,7 +10,6 @@ END_VAR (*Constants*) VAR CONSTANT MAX_QUERY_RESULTS : USINT := 19; (*Maximum number of query results (Value+1)*) - LOCAL_FOLDER : STRING[10] := 'Audit'; (*Folder name on the file device for UserX files*) MAX_CUSTOM_EVENTS : USINT := 9; (*Maximum number of custom events*) MAX_QUERIES : USINT := 2; (*Maximum number of configured queries*) END_VAR diff --git a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st index 4f02ac82..f070e990 100644 --- a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st @@ -8,7 +8,7 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('UserPartition'), pName := ADR(LOCAL_FOLDER)); + DirCreate_0(enable := TRUE, pDevice := ADR('mappBackupFiles'), pName := ADR('/')); // Check if folder already exist and if so disabled the function block call IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN diff --git a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.var b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.var index 87245f46..87b283f5 100644 --- a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.var +++ b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.var @@ -7,7 +7,6 @@ VAR END_VAR (*Constants*) VAR CONSTANT - LOCAL_FOLDER : STRING[10] := 'Backup'; (*Folder name on the file device for Backup files*) MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 1; (*Maximum number of file devices *) END_VAR (*Structure Types*) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st index 481b424a..c6b8ce36 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st @@ -100,14 +100,15 @@ PROGRAM _CYCLIC MpFileManagerUI_0.ErrorReset := FALSE; END_IF - // Assign MpLink + // Assign MpLinks and address references MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_FIFO.MpLink := ADR(gMpLinkFileManagerUIFile_FIFO); // Call function block MpFileManagerUI_0(); MpFileManagerUI_FIFO(); - END_PROGRAM PROGRAM _EXIT diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ index 6b9cf53c..2e91b00d 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.typ @@ -49,6 +49,7 @@ TYPE FifoConfigEnable : BOOL; (*Disable FIFO access or change confirmation when FIFO is active*) FIFOLayerStatus : USINT; FIFOLayerObjects : FileHmiStatusFIFOLayerObjType; + DefaultFileSelected : BOOL; (*The default recipe is selected*) END_STRUCT; FileHmiStatusFIFOLayerObjType : STRUCT MaxNumberOfFilesVisiblity : USINT; diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index b2d069f4..3e4eafa2 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -192,6 +192,9 @@ ACTION FileManager: END_IF END_IF - + HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Default.par') OR + (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Machine.mcfg')) AND + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/File/Package.pkg b/mappFramework/Logical/Infrastructure/File/Package.pkg index 5b254ea4..2d4e65f1 100644 --- a/mappFramework/Logical/Infrastructure/File/Package.pkg +++ b/mappFramework/Logical/Infrastructure/File/Package.pkg @@ -2,7 +2,7 @@ - FileMgr FileAlarms.tmx + FileMgr \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st index 9d54c641..33a31ee0 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st @@ -30,6 +30,9 @@ ACTION FormatDeviceDataProvider: END_IF END_FOR +END_ACTION + +ACTION LoadStatus: // Configure visible recipe list IF MpRecipeUIConnect.Recipe.List.Names[0] = '' THEN HmiRecipe.Status.TableConfig := '{ "specRows": [{"from":0,"to":19, "visible":false}]}'; @@ -41,12 +44,15 @@ ACTION FormatDeviceDataProvider: HmiRecipe.Status.FilesAvailable := (MpRecipeUIConnect.Recipe.List.Names[0] <> ''); HmiRecipe.Status.LoadAllowed := HmiRecipe.Status.FilesAvailable AND NOT HmiRecipe.Status.InvalidRecipe; + HmiRecipe.Status.DeviceValid := (MpFileManagerUI_0.StatusID <> mpFILE_ERR_INVALID_FILE_DEV); END_ACTION ACTION LoadPreview: + + // Category name genarate IF HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX THEN MpRecipeUIConnect.Recipe.Filter := '*par'; @@ -352,9 +358,9 @@ ACTION RecipeHMIcommands: FOR i:=0 TO ((SIZEOF(MpRecipeUIConnect.Recipe.List.Names) / SIZEOF(MpRecipeUIConnect.Recipe.List.Names[0])) - 1) DO temp := HmiRecipe.Parameters.FileName; IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN - brsstrcat(ADR(temp),ADR('.par')); + brsstrcat(ADR(temp),ADR(PARAMETERS_FILE_EXTENSION)); ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN - brsstrcat(ADR(temp),ADR('.mcfg')); + brsstrcat(ADR(temp),ADR(MACHINE_CONFIG_FILE_EXTENSION)); END_IF IF temp = MpRecipeUIConnect.Recipe.List.Names[i] THEN HmiRecipe.Status.FileDuplicate := TRUE; diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st index 60dccf37..d312542d 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.st @@ -8,10 +8,15 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('UserPartition'), pName := ADR(LOCAL_FOLDER)); - + DirCreate_0(enable := TRUE, pDevice := ADR('mappRecipeFiles'), pName := ADR('/')); + + // Wait for DirCreate_0 to complete. + WHILE (DirCreate_0.status = ERR_FUB_BUSY) DO + DirCreate_0(); + END_WHILE + // Check if folder already exist and if so disabled the function block call - IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST OR (DirCreate_0.status = ERR_OK) THEN DirCreate_0(enable := FALSE); END_IF @@ -19,7 +24,7 @@ PROGRAM _INIT // By default, the Framework sets up an XML recipe system. To swtich to the CSV format, refer to the "Change Recipe Format" // page in the AS Help (GUID 2052b3a5-f59b-45f9-9fcd-3289c93401af) MpRecipeUISetup.Confirmation.RecipeDelete := TRUE; - MpRecipeUISetup.RecipeListSize := 10; + MpRecipeUISetup.RecipeListSize := 9; MpRecipeUISetup.RecipeListScrollWindow := 0; MpRecipeUISetup.AutoLoadHeader := TRUE; MpRecipeUIConnect.New.FileName := 'newRecipe'; @@ -138,14 +143,17 @@ PROGRAM _INIT HMIActions_Init; -END_PROGRAM -PROGRAM _CYCLIC + +END_PROGRAM +PROGRAM _CYCLIC + // Call actions FormatDeviceDataProvider; LoadPreview; RecipeHMIcommands; + LoadStatus; // Reset commands on MpRecipe FUB IF MpRecipe_0.CommandDone THEN @@ -169,12 +177,20 @@ PROGRAM _CYCLIC MpRecipeUI_0.ErrorReset := FALSE; END_IF - // Assign MpLinks + // Assign MpLinks & address references MpRecipe_0.MpLink := ADR(gMpLinkRecipeXml); + MpRecipe_0.DeviceName := ADR(HmiRecipe.Parameters.DeviceName); + MpRecipe_0.Header := ADR(Header); MpRecipeUI_0.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeUI_0.UIConnect := ADR(MpRecipeUIConnect); MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIRecipe); MpRecipeRegPar_PreviewPar.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_PreviewPar.PVName := ADR('RecipeMgr:ParametersPreview'); + MpRecipeRegPar_PreviewPar.Category := ADR(PARAMETERS_CATEGORY); MpRecipeRegPar_PreviewCfg.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_PreviewCfg.PVName := ADR('RecipeMgr:MachineSettingsPreview'); + MpRecipeRegPar_PreviewCfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); // Call function blocks MpRecipe_0(); diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ index 53781741..f46c99e1 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.typ @@ -49,6 +49,7 @@ TYPE RecipeLoadLayer : RecipeStatusRecipeLoadLayerType; EditRecipeLayer : RecipeStatusEditRecLayerType; DuplicateLayer : USINT; + DeviceValid : BOOL; (*Flag for whether FileDevice is valid. Prevents user from being prompted to load default recipe.*) END_STRUCT; RecipeStatusDefRecLayerType : STRUCT Status : USINT; @@ -103,3 +104,5 @@ TYPE REC_HMI_RESET_PREVIEW (*Reset the preview values to 0 / empty*) ); END_TYPE + +(**) diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var index 19b9e40f..ec8c9a4a 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var @@ -20,9 +20,6 @@ VAR PARAMETERS_RECIPE : STRING[50] := 'Parameters'; (*Value of the DropDownBox selection for the Parameters category*) MACHINE_CONFIGURATION_RECIPE : STRING[50] := 'Machine Configuration'; (*Value of the DropDownBox selection for the Machine Configuration category*) END_VAR -VAR CONSTANT - LOCAL_FOLDER : STRING[10] := 'Recipe'; (*Folder name on the file device for Recipe files*) -END_VAR (*Structure Types*) VAR HmiRecipe : RecipeHmiInterfaceType; (*HMI interface structure*) diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.st b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.st index f436f8b2..c318e9ad 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.st +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.st @@ -8,7 +8,7 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('UserPartition'), pName := ADR(LOCAL_FOLDER)); + DirCreate_0(enable := TRUE, pDevice := ADR('mappReportFiles'), pName := ADR('/')); // Check if folder already exist and if so disabled the function block call IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var index b89b6080..4dc4d392 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var @@ -6,7 +6,6 @@ VAR END_VAR (*Constants*) VAR CONSTANT - LOCAL_FOLDER : STRING[10] := 'Report'; (*Folder name on the file device for Recipe files*) NUM_LINES : INT := 2; (*The number lines on the machine*) NUM_TEMP_SAMPLES : INT := 95; (*The number of temperature samples in the example data*) END_VAR diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st index 09e3462f..cf456bb2 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st @@ -1,6 +1,7 @@ ACTION HMIAction_Init: - HmiUserX.FileDuplicateLayerStatus := HIDE; + HmiUserX.FileDuplicateLayerStatus := HIDE; + HmiUserX.ButtonLockedMessageLayer := HIDE; UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := HIDE; END_ACTION @@ -44,6 +45,12 @@ ACTION HMIAction: END_IF + //check User is Admin + IF UserXLoginUIConnect.UserLevel = USER_ADMIN_LEVEL THEN + HmiUserX.ButtonLockingLayer := HIDE; + ELSE + HmiUserX.ButtonLockingLayer := DISPLAY; + END_IF; diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st index 5d5efccb..0177a2da 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st @@ -8,7 +8,7 @@ PROGRAM _INIT // Create folder for this component on the user file device - DirCreate_0(enable := TRUE, pDevice := ADR('UserPartition'), pName := ADR(LOCAL_FOLDER)); + DirCreate_0(enable := TRUE, pDevice := ADR('mappUserXFiles'), pName := ADR('/')); // Check if folder already exist and if so disabled the function block call IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ index 540529f3..cb90100a 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ @@ -16,5 +16,7 @@ TYPE CancelOverwrite : BOOL; FileDuplicate : BOOL; FileDuplicateLayerStatus : USINT; + ButtonLockedMessageLayer : USINT; + ButtonLockingLayer : USINT; END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var index 954c6344..866a3043 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.var @@ -9,10 +9,13 @@ END_VAR VAR CONSTANT DISPLAY : USINT := 0; HIDE : USINT := 1; + USER_ADMIN_LEVEL : USINT := 100; +END_VAR +(**) +VAR CONSTANT USER_LIST_MAX_SELECTION : USINT := 20; (*Maxiumum selections on the User List *) USER_LIST_RANGE_START : USINT := 0; (*Range start (used for UserXMgrUIConnect)*) USER_LIST_RANGE_END : USINT := 20; (*Range end (used for UserXMgrUIConnect)*) - LOCAL_FOLDER : STRING[10] := 'UserX'; (*Folder name on the file device for UserX files*) END_VAR (*Structure Types*) VAR diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page index be33f100..8e4ab3bf 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page @@ -32,7 +32,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -173,7 +173,7 @@ - + @@ -194,7 +194,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -241,7 +241,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -269,7 +269,7 @@ - + @@ -292,10 +292,10 @@ - + - + @@ -390,7 +390,7 @@ - + @@ -420,7 +420,7 @@ - + @@ -450,7 +450,7 @@ - + @@ -480,7 +480,7 @@ - + @@ -510,7 +510,7 @@ - + @@ -540,7 +540,7 @@ - + @@ -606,7 +606,7 @@ - + @@ -646,7 +646,7 @@ - + @@ -678,7 +678,7 @@ - + @@ -692,7 +692,7 @@ - + @@ -748,7 +748,7 @@ - + @@ -764,7 +764,7 @@ - + @@ -802,7 +802,7 @@ - + @@ -817,7 +817,7 @@ - + @@ -832,7 +832,7 @@ - + @@ -847,7 +847,7 @@ - + @@ -862,7 +862,7 @@ - + @@ -877,7 +877,7 @@ - + @@ -893,7 +893,7 @@ - + @@ -1071,7 +1071,7 @@ - + @@ -1088,7 +1088,7 @@ - + @@ -1106,7 +1106,7 @@ - + @@ -1124,7 +1124,7 @@ - + @@ -1143,7 +1143,7 @@ - + @@ -1162,7 +1162,7 @@ - + @@ -1181,7 +1181,7 @@ - + @@ -1200,7 +1200,7 @@ - + @@ -1263,7 +1263,7 @@ - + @@ -1282,7 +1282,7 @@ - + @@ -1301,7 +1301,7 @@ - + @@ -1320,7 +1320,7 @@ - + @@ -1339,7 +1339,7 @@ - + @@ -1638,7 +1638,7 @@ - + @@ -1678,7 +1678,7 @@ - + @@ -1694,7 +1694,7 @@ - + @@ -1710,7 +1710,7 @@ - + @@ -1726,7 +1726,7 @@ - + @@ -1742,7 +1742,7 @@ - + @@ -1758,7 +1758,7 @@ - + @@ -1774,7 +1774,7 @@ - + @@ -1790,7 +1790,7 @@ - + @@ -1806,7 +1806,7 @@ - + @@ -1822,7 +1822,7 @@ - + @@ -1838,7 +1838,7 @@ - + @@ -1853,7 +1853,7 @@ - + @@ -1869,7 +1869,7 @@ - + @@ -1985,7 +1985,7 @@ - + @@ -2000,7 +2000,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index 0d88a4f4..833ce7ce 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -2286,6 +2286,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index 6d9aee7f..4f91352b 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -118,6 +118,9 @@ + + + @@ -171,6 +174,9 @@ + + + @@ -392,6 +398,7 @@ + @@ -400,6 +407,9 @@ + + + @@ -422,6 +432,9 @@ + + + @@ -615,10 +628,12 @@ - - + + - + + + @@ -630,7 +645,7 @@ - + @@ -780,6 +795,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -791,7 +999,7 @@ - + @@ -807,7 +1015,7 @@ - + @@ -920,7 +1128,7 @@ - + @@ -1230,7 +1438,7 @@ - + @@ -1530,7 +1738,7 @@ - + @@ -1690,7 +1898,7 @@ - + @@ -1799,7 +2007,7 @@ - + @@ -2129,7 +2337,7 @@ - + @@ -2399,7 +2607,8 @@ - + + @@ -2493,7 +2702,7 @@ - + @@ -2817,7 +3026,7 @@ - + @@ -3099,7 +3308,8 @@ - + + @@ -3175,7 +3385,7 @@ - + @@ -3334,7 +3544,7 @@ - + @@ -3468,6 +3678,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index e520ee54..c9531300 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -1040,6 +1040,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1054,7 +1323,7 @@ - + @@ -1357,7 +1626,7 @@ - + @@ -2047,7 +2316,7 @@ - + @@ -2755,7 +3024,7 @@ - + @@ -2904,7 +3173,7 @@ - + @@ -3213,7 +3482,7 @@ - + @@ -3229,7 +3498,7 @@ - + @@ -3491,7 +3760,7 @@ - + @@ -3642,7 +3911,7 @@ - + @@ -3799,7 +4068,7 @@ - + @@ -3934,6 +4203,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index 28b24697..82b6963b 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -2542,4 +2542,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 677d99d3..32042253 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -3209,830 +3209,909 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + - + - - - + + + + + + + - + - - - + + + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + + + + + + + - - + + + + + + - - - - + + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + - + - + + - + + + - + - + - + + - + + + - + - + - + + - + + + - + - + - + + - + + + - + - - + + + - + + + - + - + - + + - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - - - + + + - - + - + - - - + + + + - - + + + - + - - - + + + + + + + - - + - + - - - + + + + - - + + + - + - - - + + + - - + - + - - + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + - + - - - + + + - - + - + - - - + + + + - - + + + - + - - - + + + + + + + - - + - + - - - + + + - - + - + - - - + + + + - - + + + - + - - - + + + + + + + + + + + + - - - - - + + + + + + - - - + + + - - + - + - - - + + + - - + - + - - - + + + + + + + - - + - + - - - + + + - - + - + - - - + + + + - - + + + - + - - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + @@ -4041,25 +4120,16 @@ - - - - - - - - - - + - + - + - + @@ -4068,1717 +4138,1303 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + + + - - - - - - + + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - - - - - - - - - - + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - - + - + - + - - - - + - + - + - - - - + - + - - - - - + + + + - - - - + + + + + + + + + + - + + + - + - - - + + + + - + + + - + - - - - + + + + - - - + + + - + - - - - - - - + + + + - + + + - + - - - - + + + + - - - + + + - + - - - + + + + - + + + - + - - - - - - + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + - + + + - + - - - + + + + - + + + - + - - - - + + + + - - - + + + - + - - - - - - - + + + + - + + + - + - - - + + + + - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - + + + - - + + - - - - - - - - - - - - + + + - - + + - - - + + + - - + + - - - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - + + + - + - - - + + + + - + + + - + - - - - - - + + + - - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + + + + + + + + + + + + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + + + + + + + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + - - - - - + + + + - - - + + - + - - - - + + + - - - + + - + - - - - + + + - - - + + - + - - - - + + + - - - + + - + - - - - + + + - - - + + - + - - - - + + + - - - + + - + - - - - + + + + + + + + + + + + + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + + + + + + + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + - - - + - + - - - - + + + + + + + + + + + + - - - + - + - - - - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - - + - + - + - - + - + - - - - - - - - - - - - - - - - - - + - - - - + - - + + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + @@ -5789,7 +5445,7 @@ - + @@ -5801,7 +5457,7 @@ - + @@ -5813,7 +5469,7 @@ - + @@ -5825,7 +5481,7 @@ - + @@ -5837,7 +5493,7 @@ - + @@ -5849,7 +5505,7 @@ - + @@ -5862,367 +5518,573 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - - + - - - - - - - - - - - - + + + + + + - - + - + - + - - + - + - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + @@ -6232,7 +6094,19 @@ - + + + + + + + + + + + + + @@ -6241,1236 +6115,492 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - + - + - + + - + - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + - + + + + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - + - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + + - + - + - + + - + - - - + - - - - - - + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -13019,6 +12149,15 @@ + + + + + + + + + @@ -14914,6 +14053,24 @@ + + + + + + + + + + + + + + + + + + @@ -16560,18 +15717,878 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16580,52 +16597,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index f1b516ee..ef4c2f54 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + @@ -103,6 +103,7 @@ + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index b7d22892..658a600a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -150,7 +150,7 @@ - + @@ -158,7 +158,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index bb3536d5..487100ed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -6,7 +6,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp new file mode 100644 index 00000000..7954eb02 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/Hardware.hw b/mappFramework/Physical/Simulation/Hardware.hw index 9bf717bf..21d5954e 100644 --- a/mappFramework/Physical/Simulation/Hardware.hw +++ b/mappFramework/Physical/Simulation/Hardware.hw @@ -15,29 +15,29 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/mappFramework/Physical/Simulation/PC/Cpu.pkg b/mappFramework/Physical/Simulation/PC/Cpu.pkg index 2e3e0525..6256686a 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.pkg +++ b/mappFramework/Physical/Simulation/PC/Cpu.pkg @@ -20,7 +20,7 @@ VC - + From 3c0463b56fb98dc57ac931a43f98282c075cfdf8 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 28 Mar 2023 11:09:56 -0400 Subject: [PATCH 044/159] Implemented file rename test, still has errors --- .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 268 -> 228 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 75 +++++++++++++++++- .../UnitTest/File/FileUnitTest/variables.var | 1 + 3 files changed, 75 insertions(+), 1 deletion(-) diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc index 24b77f758b007213b7a3ad38c8d6dd24ba513faf..57fef1f7453b4bbdb5e5945a74474bfeb6ad292b 100644 GIT binary patch delta 110 zcmeBSdctU-J>8dK@|%6FtFHfSU|?ckV0Z$=VBi2G{dWTi9U%4q;s*lXYC`xL7{KI2 q3sXU$7!0s5Fmy9aoml555tN#jn41bT$}KY|)i=Eeq@ud==t%%FA{*TR delta 123 zcmaFD*u!L@J>8dK@|%6FtFHfSU|?ckVB}$d0tX=NKN(2q0I>&9hC|?6b+b7G1DKp> zVJg@Klz;*@28OK+`zO};p8x;= diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index fa8296fb..c360a933 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -538,6 +538,78 @@ _TEST Copy_Directory(void) } } +_TEST Rename_File(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and input name of file to be renamed and new name + switch (ArrangeSubState) + { + case 0: + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + brsmemcpy(&MpFileManagerUIConnect.File.NewName, &NewFileName, sizeof(MpFileManagerUIConnect.File.NewName)); + ArrangeSubState = 1; + break; + + case 1: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedFileName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + } + break; + + case 1: + // Rename file + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Rename = 1; + ActSubState = 2; + break; + + case 1: + MpFileManagerUIConnect.File.Rename = 0; + MpFileManagerUIConnect.File.Paste = 1; + ActSubState = 2; + break; + + case 2: + MpFileManagerUIConnect.File.Rename = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + ActSubState = 3; + break; + + case 3: + // Check file list for renamed file + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewFileName) == 0) + { + NameMatch = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: + // Check if renamed file was found + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -1128,7 +1200,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-28 14:01:58Z +LastUpdated: 2023-03-28 14:11:25Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1137,6 +1209,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Add_File", Add_File), new_TestFixture("Copy_File", Copy_File), new_TestFixture("Copy_Directory", Copy_Directory), + new_TestFixture("Rename_File", Rename_File), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 53f11f32..29e188ca 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -36,4 +36,5 @@ VAR FileClose_0 : FileClose; CopiedFileName : STRING[255] := 'FileTestFile(1).xml'; CopiedDirName : STRING[255] := 'FileTestDir(1)'; + NewFileName : STRING[255] := 'FileRename'; END_VAR From 9c5bd20ba563ea9ae2172490a9cdfa900d4d0fa4 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 28 Mar 2023 11:18:49 -0400 Subject: [PATCH 045/159] Added rename command varable mapping and changed file rename to have a filetype, test now works --- mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var | 2 +- mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 29e188ca..3177c239 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -36,5 +36,5 @@ VAR FileClose_0 : FileClose; CopiedFileName : STRING[255] := 'FileTestFile(1).xml'; CopiedDirName : STRING[255] := 'FileTestDir(1)'; - NewFileName : STRING[255] := 'FileRename'; + NewFileName : STRING[255] := 'FileRename.xml'; END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index f817dead..2ba36b87 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -16,4 +16,5 @@ VAR_CONFIG ::FileTest:HmiFile.Status.SelectedIndex AT %Q.::FileMgr:HmiFile.Status.SelectedIndex; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.Copy AT %Q.::FileMgr:MpFileManagerUIConnect.File.Copy; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.Paste AT %Q.::FileMgr:MpFileManagerUIConnect.File.Paste; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.Rename AT %Q.::FileMgr:MpFileManagerUIConnect.File.Rename; (*Insert your comment here...*) END_VAR From ac55756e6522bf6c520e0a23408e7bc3556c9264 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 28 Mar 2023 11:30:07 -0400 Subject: [PATCH 046/159] Implemented directory rename unit test --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 75 ++++++++++++++++++- .../UnitTest/File/FileUnitTest/variables.var | 1 + 2 files changed, 72 insertions(+), 4 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index c360a933..a24e0be9 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -569,6 +569,72 @@ _TEST Rename_File(void) case 1: // Rename file switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Rename = 1; + ActSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.File.Rename = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + ActSubState = 2; + break; + + case 2: + // Check file list for renamed file + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewFileName) == 0) + { + NameMatch = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: + // Check if renamed file was found + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + +_TEST Rename_Directory(void) +{ +// TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and input name of directory to be renamed and new name + switch (ArrangeSubState) + { + case 0: + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + brsmemcpy(&MpFileManagerUIConnect.File.NewName, &NewDirName, sizeof(MpFileManagerUIConnect.File.NewName)); + ArrangeSubState = 1; + break; + + case 1: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedDirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + } + break; + + case 1: + // Rename directory + switch (ActSubState) { case 0: MpFileManagerUIConnect.File.Rename = 1; @@ -588,11 +654,11 @@ _TEST Rename_File(void) break; case 3: - // Check file list for renamed file + // Check file list for renamed directory TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { - if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewFileName) == 0) + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewDirName) == 0) { NameMatch = 1; } @@ -603,7 +669,7 @@ _TEST Rename_File(void) break; case 2: - // Check if renamed file was found + // Check if renamed directory was found TEST_ASSERT(NameMatch); TEST_DONE; break; @@ -1200,7 +1266,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-28 14:11:25Z +LastUpdated: 2023-03-28 15:22:59Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1210,6 +1276,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Copy_File", Copy_File), new_TestFixture("Copy_Directory", Copy_Directory), new_TestFixture("Rename_File", Rename_File), + new_TestFixture("Rename_Directory", Rename_Directory), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 3177c239..63cc219b 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -37,4 +37,5 @@ VAR CopiedFileName : STRING[255] := 'FileTestFile(1).xml'; CopiedDirName : STRING[255] := 'FileTestDir(1)'; NewFileName : STRING[255] := 'FileRename.xml'; + NewDirName : STRING[255] := 'DirRename'; END_VAR From 2c7175395242a0b88017a20074727b2891382bef Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 28 Mar 2023 16:28:09 -0400 Subject: [PATCH 047/159] Implemented cut/paste file test --- .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 228 -> 432 bytes .../Diagnosis/UnitTest/PC_any/FileMgr.PVM | 408 ++---------------- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 128 +++--- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 110 ++++- .../UnitTest/File/FileUnitTest/variables.var | 2 + .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 3 + 6 files changed, 230 insertions(+), 421 deletions(-) diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc index 57fef1f7453b4bbdb5e5945a74474bfeb6ad292b..e893d0f3f9355c1b3c028a308e3cb4bf99687d4d 100644 GIT binary patch literal 432 zcmdO%?#nRw&A!%E*MBxJFflMNZeV}{2O#bD9!Tf_u?J9Qjlj2>vLXfs2niHK0Za^x zD111l7Q|v?Fk^^g=wR5w@Qjg*(U5_Gg@G}GF^Q4IEi)(8H@(Qpw*bsa%u7s9EeiE? z&d;`?LZr%o#Nv`vBGtO)m82HA<>#cN79r{I$jyY< znV*}Rn3qzl2T>7PfKLsIQLHd8!Hk0VRWCR-2k7(E6wkbr)CypfK$QUlF@DF}4*=5q Be4zjU delta 110 zcmdnM{Djd$d%7>f Date: Wed, 29 Mar 2023 11:00:02 -0400 Subject: [PATCH 048/159] Finished implementing cut/paste directory unit test --- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 120 ++++++++--------- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 126 +++++++++++++++++- .../UnitTest/File/FileUnitTest/variables.var | 4 +- 3 files changed, 181 insertions(+), 69 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index f5e54e82..7991bbb7 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,16 +1,37 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=13 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=7 ASCIIString=0 name type force value level type len format place expand specs - cycleCount UINT 0 " 4" 0 6 1 10 1 0 + cycleCount UINT 0 " 0" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 ActSubState USINT 0 " 0" 0 5 1 10 1 0 + HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + EnterFolder BOOL 0 " TRUE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Status FileHmiStatusType 0 " *" 1 24 1 0 0 0 + IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 + MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 + MpBlockStatus[0] DINT 0 " -1064165373" 1 4 1 10 1 0 + MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[3] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[4] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[5] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[6] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[7] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[8] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[9] DINT 0 " *" 1 4 1 10 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + Status DINT 0 " 99" 1 4 1 10 0 0 e,0,mpFI File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 @@ -23,53 +44,53 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-14:15:03" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 + Size UDINT 0 " 964" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " 'FileTestFile.xml'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-16:21:33" 5 11 1 1 0 0 + ItemType DINT 0 " 7" 5 4 1 10 0 0 e,0,mpFI Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " 'Machine.mcfg'" 5 9 256 1 0 0 + Size UDINT 0 " 981" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " 'Package.pkg'" 5 9 256 1 0 0 + Size UDINT 0 " 548" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 @@ -78,7 +99,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I RangeEnd REAL 0 " 0.0" 3 8 1 10 0 0 Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " TRUE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -86,24 +107,3 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 - MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 - MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[3] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[4] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[5] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[6] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[7] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[8] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[9] DINT 0 " *" 1 4 1 10 1 0 diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index fc7df0dc..c66563e7 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -113,6 +113,8 @@ _SETUP_TEST(void) { FileNumber = 0; cycleCount = 0; NameMatch = 0; + InNewLocation = 0; + InOldLocation = 0; HmiFile.Status.SelectedIndex = 0; MpFileManagerUIConnect.File.Copy = 0; MpFileManagerUIConnect.File.CreateFolder = 0; @@ -704,7 +706,7 @@ _TEST Cut_Paste_File(void) break; case 1: - // Copy/paste file + // Cut/paste file switch (ActSubState) { case 0: @@ -719,11 +721,11 @@ _TEST Cut_Paste_File(void) if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) HmiFile.Status.SelectedIndex = i; } - HmiFile.Commands.EnterFolder = 1; ActSubState = 2; break; case 2: + HmiFile.Commands.EnterFolder = 1; TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.EnterFolder = 0; ActSubState = 3; @@ -742,11 +744,12 @@ _TEST Cut_Paste_File(void) break; case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewFileName) == 0) { - FileInNewLocation = 1; + InNewLocation = 1; } } HmiFile.Commands.FolderUp = 1; @@ -766,7 +769,115 @@ _TEST Cut_Paste_File(void) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewFileName) == 0) { - FileInOldLocation = 1; + InOldLocation = 1; + } + } + TestState = 2; + break; + } + break; + + case 2: + // Check if copied file was found + TEST_ASSERT(InNewLocation); + TEST_ASSERT(!InOldLocation); + TEST_DONE; + break; + } +} + +_TEST Cut_Paste_Directory(void) +{ +// TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and input directory name + switch (ArrangeSubState) + { + case 0: + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + ArrangeSubState = 1; + break; + + case 1: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewDirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + } + break; + + case 1: + // Cut/paste directory + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Cut = 1; + ActSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.File.Cut = 0; + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + ActSubState = 2; + break; + + case 2: + HmiFile.Commands.EnterFolder = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + HmiFile.Commands.EnterFolder = 0; + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect.File.Paste = 1; + ActSubState = 4; + break; + + case 4: + MpFileManagerUIConnect.File.Paste = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewDirName) == 0) + { + InNewLocation = 1; + } + } + HmiFile.Commands.FolderUp = 1; + ActSubState = 6; + break; + + case 6: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + HmiFile.Commands.FolderUp = 0; + ActSubState = 7; + break; + + case 7: + // Check file list for copied file + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewDirName) == 0) + { + InOldLocation = 1; } } TestState = 2; @@ -776,8 +887,8 @@ _TEST Cut_Paste_File(void) case 2: // Check if copied file was found - TEST_ASSERT(FileInNewLocation); - TEST_ASSERT(!FileInOldLocation); + TEST_ASSERT(InNewLocation); + TEST_ASSERT(!InOldLocation); TEST_DONE; break; } @@ -1373,7 +1484,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-28 15:36:46Z +LastUpdated: 2023-03-28 20:32:52Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1385,6 +1496,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Rename_File", Rename_File), new_TestFixture("Rename_Directory", Rename_Directory), new_TestFixture("Cut_Paste_File", Cut_Paste_File), + new_TestFixture("Cut_Paste_Directory", Cut_Paste_Directory), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 9c3d4a9e..04a97176 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -38,6 +38,6 @@ VAR CopiedDirName : STRING[255] := 'FileTestDir(1)'; NewFileName : STRING[255] := 'FileRename.xml'; NewDirName : STRING[255] := 'DirRename'; - FileInNewLocation : BOOL; - FileInOldLocation : BOOL; + InNewLocation : BOOL; + InOldLocation : BOOL; END_VAR From e80085e63f5526d2579842f918c9cc13093adc0d Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 29 Mar 2023 16:55:47 -0400 Subject: [PATCH 049/159] Multiselect test added but not finished Cut/paste directory test needed some timing touching up to make sure the correct location was chosen for pasting --- .../Diagnosis/Simulation/PC/FileMgr.PVM | 684 +++++++++--------- .../Diagnosis/UnitTest/PC_any/FileMgr.PVM | 112 +-- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 113 +-- .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 3 + 4 files changed, 469 insertions(+), 443 deletions(-) diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM index bf046325..01e14d89 100644 --- a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM +++ b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM @@ -1,14 +1,14 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=400 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=293 ASCIIString=0 name type force value level type len format place expand specs MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 137131032" 1 7 1 10 0 0 + MpLink UDINT 0 " 134409288" 1 7 1 10 0 0 Enable BOOL 0 " TRUE" 1 1 1 2 0 0 ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 1 FileListSize UINT 0 " 50" 2 6 1 10 0 0 FileListScrollWindow USINT 0 " 1" 2 5 1 10 0 0 - UIConnect UDINT 0 " 144938830" 1 7 1 10 0 0 + UIConnect UDINT 0 " 141168718" 1 7 1 10 0 0 Active BOOL 0 " TRUE" 1 1 1 2 0 0 Error BOOL 0 " FALSE" 1 1 1 2 0 0 StatusID DINT 0 " 0" 1 4 1 10 0 0 @@ -21,34 +21,294 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Code UINT 0 " 0" 4 6 1 10 0 0 Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " 166727552" 2 7 1 10 0 0 + pObject UDINT 0 " 164041552" 2 7 1 10 0 0 State UDINT 0 " 3" 2 7 1 10 0 0 - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 0 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 0 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 + OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 - SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 0 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 + FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + ScanInterval DINT 0 " 60" 3 4 1 10 0 0 + MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 + MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 + MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 + Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 + FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 0 + FileNames[0] STRING[80] 0 " 'Backgrounds 2.0'" 3 9 81 1 0 0 + FileNames[1] STRING[80] 0 " 'CSVformat'" 3 9 81 1 0 0 + FileNames[2] STRING[80] 0 " 'FileTestDir'" 3 9 81 1 0 0 + FileNames[3] STRING[80] 0 " 'XMLformat'" 3 9 81 1 0 0 + FileNames[4] STRING[80] 0 " 'Default.par'" 3 9 81 1 0 0 + FileNames[5] STRING[80] 0 " 'Machine.mcfg'" 3 9 81 1 0 0 + FileNames[6] STRING[80] 0 " 'Package.pkg'" 3 9 81 1 0 0 + FileNames[7] STRING[80] 0 " 'TestFile.xml'" 3 9 81 1 0 0 + FileNames[8] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[9] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[10] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[11] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[12] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[13] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[14] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[15] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[16] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[17] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[18] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[19] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[20] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[21] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[22] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[23] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[24] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[25] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[26] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[27] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[28] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[29] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[30] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[31] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[32] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[33] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[34] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[35] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[36] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[37] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[38] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[39] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[40] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[41] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[42] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[43] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[44] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[45] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[46] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[47] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[48] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[49] STRING[80] 0 " *" 3 9 81 1 0 0 + TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 0 + TimeStamps[0] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[1] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[2] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[3] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[4] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[5] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[6] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[7] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[8] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[9] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[10] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[11] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[12] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[13] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[14] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[15] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[16] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[17] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[18] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[19] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[20] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[21] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[22] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[23] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[24] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[25] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[26] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[27] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[40] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[41] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[42] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[43] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[44] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[45] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[46] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[47] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[48] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[49] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + Type DINT[0..49] 0 " *" 2 4 50 0 0 0 + Type[0] DINT 0 " *" 3 4 1 10 0 0 + Type[1] DINT 0 " *" 3 4 1 10 0 0 + Type[2] DINT 0 " *" 3 4 1 10 0 0 + Type[3] DINT 0 " *" 3 4 1 10 0 0 + Type[4] DINT 0 " *" 3 4 1 10 0 0 + Type[5] DINT 0 " *" 3 4 1 10 0 0 + Type[6] DINT 0 " *" 3 4 1 10 0 0 + Type[7] DINT 0 " *" 3 4 1 10 0 0 + Type[8] DINT 0 " *" 3 4 1 10 0 0 + Type[9] DINT 0 " *" 3 4 1 10 0 0 + Type[10] DINT 0 " *" 3 4 1 10 0 0 + Type[11] DINT 0 " *" 3 4 1 10 0 0 + Type[12] DINT 0 " *" 3 4 1 10 0 0 + Type[13] DINT 0 " *" 3 4 1 10 0 0 + Type[14] DINT 0 " *" 3 4 1 10 0 0 + Type[15] DINT 0 " *" 3 4 1 10 0 0 + Type[16] DINT 0 " *" 3 4 1 10 0 0 + Type[17] DINT 0 " *" 3 4 1 10 0 0 + Type[18] DINT 0 " *" 3 4 1 10 0 0 + Type[19] DINT 0 " *" 3 4 1 10 0 0 + Type[20] DINT 0 " *" 3 4 1 10 0 0 + Type[21] DINT 0 " *" 3 4 1 10 0 0 + Type[22] DINT 0 " *" 3 4 1 10 0 0 + Type[23] DINT 0 " *" 3 4 1 10 0 0 + Type[24] DINT 0 " *" 3 4 1 10 0 0 + Type[25] DINT 0 " *" 3 4 1 10 0 0 + Type[26] DINT 0 " *" 3 4 1 10 0 0 + Type[27] DINT 0 " *" 3 4 1 10 0 0 + Type[28] DINT 0 " *" 3 4 1 10 0 0 + Type[29] DINT 0 " *" 3 4 1 10 0 0 + Type[30] DINT 0 " *" 3 4 1 10 0 0 + Type[31] DINT 0 " *" 3 4 1 10 0 0 + Type[32] DINT 0 " *" 3 4 1 10 0 0 + Type[33] DINT 0 " *" 3 4 1 10 0 0 + Type[34] DINT 0 " *" 3 4 1 10 0 0 + Type[35] DINT 0 " *" 3 4 1 10 0 0 + Type[36] DINT 0 " *" 3 4 1 10 0 0 + Type[37] DINT 0 " *" 3 4 1 10 0 0 + Type[38] DINT 0 " *" 3 4 1 10 0 0 + Type[39] DINT 0 " *" 3 4 1 10 0 0 + Type[40] DINT 0 " *" 3 4 1 10 0 0 + Type[41] DINT 0 " *" 3 4 1 10 0 0 + Type[42] DINT 0 " *" 3 4 1 10 0 0 + Type[43] DINT 0 " *" 3 4 1 10 0 0 + Type[44] DINT 0 " *" 3 4 1 10 0 0 + Type[45] DINT 0 " *" 3 4 1 10 0 0 + Type[46] DINT 0 " *" 3 4 1 10 0 0 + Type[47] DINT 0 " *" 3 4 1 10 0 0 + Type[48] DINT 0 " *" 3 4 1 10 0 0 + Type[49] DINT 0 " *" 3 4 1 10 0 0 + Size UDINT[0..49] 0 " *" 2 7 50 0 0 0 + Size[0] UDINT 0 " *" 3 7 1 10 0 0 + Size[1] UDINT 0 " *" 3 7 1 10 0 0 + Size[2] UDINT 0 " *" 3 7 1 10 0 0 + Size[3] UDINT 0 " *" 3 7 1 10 0 0 + Size[4] UDINT 0 " *" 3 7 1 10 0 0 + Size[5] UDINT 0 " *" 3 7 1 10 0 0 + Size[6] UDINT 0 " *" 3 7 1 10 0 0 + Size[7] UDINT 0 " *" 3 7 1 10 0 0 + Size[8] UDINT 0 " *" 3 7 1 10 0 0 + Size[9] UDINT 0 " *" 3 7 1 10 0 0 + Size[10] UDINT 0 " *" 3 7 1 10 0 0 + Size[11] UDINT 0 " *" 3 7 1 10 0 0 + Size[12] UDINT 0 " *" 3 7 1 10 0 0 + Size[13] UDINT 0 " *" 3 7 1 10 0 0 + Size[14] UDINT 0 " *" 3 7 1 10 0 0 + Size[15] UDINT 0 " *" 3 7 1 10 0 0 + Size[16] UDINT 0 " *" 3 7 1 10 0 0 + Size[17] UDINT 0 " *" 3 7 1 10 0 0 + Size[18] UDINT 0 " *" 3 7 1 10 0 0 + Size[19] UDINT 0 " *" 3 7 1 10 0 0 + Size[20] UDINT 0 " *" 3 7 1 10 0 0 + Size[21] UDINT 0 " *" 3 7 1 10 0 0 + Size[22] UDINT 0 " *" 3 7 1 10 0 0 + Size[23] UDINT 0 " *" 3 7 1 10 0 0 + Size[24] UDINT 0 " *" 3 7 1 10 0 0 + Size[25] UDINT 0 " *" 3 7 1 10 0 0 + Size[26] UDINT 0 " *" 3 7 1 10 0 0 + Size[27] UDINT 0 " *" 3 7 1 10 0 0 + Size[28] UDINT 0 " *" 3 7 1 10 0 0 + Size[29] UDINT 0 " *" 3 7 1 10 0 0 + Size[30] UDINT 0 " *" 3 7 1 10 0 0 + Size[31] UDINT 0 " *" 3 7 1 10 0 0 + Size[32] UDINT 0 " *" 3 7 1 10 0 0 + Size[33] UDINT 0 " *" 3 7 1 10 0 0 + Size[34] UDINT 0 " *" 3 7 1 10 0 0 + Size[35] UDINT 0 " *" 3 7 1 10 0 0 + Size[36] UDINT 0 " *" 3 7 1 10 0 0 + Size[37] UDINT 0 " *" 3 7 1 10 0 0 + Size[38] UDINT 0 " *" 3 7 1 10 0 0 + Size[39] UDINT 0 " *" 3 7 1 10 0 0 + Size[40] UDINT 0 " *" 3 7 1 10 0 0 + Size[41] UDINT 0 " *" 3 7 1 10 0 0 + Size[42] UDINT 0 " *" 3 7 1 10 0 0 + Size[43] UDINT 0 " *" 3 7 1 10 0 0 + Size[44] UDINT 0 " *" 3 7 1 10 0 0 + Size[45] UDINT 0 " *" 3 7 1 10 0 0 + Size[46] UDINT 0 " *" 3 7 1 10 0 0 + Size[47] UDINT 0 " *" 3 7 1 10 0 0 + Size[48] UDINT 0 " *" 3 7 1 10 0 0 + Size[49] UDINT 0 " *" 3 7 1 10 0 0 + DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 0 + DeviceDataProvider[0] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[1] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[2] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[3] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[4] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[5] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[6] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[7] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[8] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[9] STRING[100] 0 " *" 3 9 101 1 0 0 + FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 0 + FifoSelect[0] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[1] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[2] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[3] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[4] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[5] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[6] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[7] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[8] DINT 0 " *" 3 4 1 10 0 0 + FifoSelect[9] DINT 0 " *" 3 4 1 10 0 0 + DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 + TableConfig[0] STRING[120] 0 " *" 3 9 121 1 0 0 + TableConfig[1] STRING[120] 0 " *" 3 9 121 1 0 0 + IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 + DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 + FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 + SelectedIndex USINT 0 " 6" 2 5 1 10 0 0 + FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 + DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 + MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 + Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + + DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 + SelectedIndex UINT 0 " *" 2 6 1 10 0 0 + File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Backgrounds 2.0'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-12:39:30" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -56,7 +316,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -64,7 +324,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -72,7 +332,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -80,7 +340,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -88,7 +348,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -96,7 +356,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -104,7 +364,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -112,7 +372,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -120,7 +380,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -128,7 +388,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -136,7 +396,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -144,7 +404,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -152,7 +412,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -160,7 +420,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -168,7 +428,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -176,7 +436,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -184,7 +444,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -192,7 +452,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -200,7 +460,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -208,7 +468,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -216,7 +476,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -224,7 +484,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -232,7 +492,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -240,7 +500,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -248,7 +508,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -256,7 +516,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -264,7 +524,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -272,7 +532,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -280,7 +540,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -288,7 +548,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -296,7 +556,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -304,7 +564,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -312,7 +572,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -320,7 +580,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -328,7 +588,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -336,7 +596,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -344,7 +604,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -352,7 +612,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -360,7 +620,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -368,7 +628,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -376,7 +636,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -384,7 +644,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 f + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -392,7 +652,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -400,7 +660,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -408,7 +668,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -416,7 +676,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -424,7 +684,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -437,281 +697,21 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 f + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 - CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 + CurrentDir STRING[255] 0 " *" 3 9 256 1 0 0 FileCount UDINT 0 " *" 3 7 1 10 0 0 FolderCount UDINT 0 " *" 3 7 1 10 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " *" 2 1 1 2 0 0 - Delete BOOL 0 " *" 2 1 1 2 0 0 - Copy BOOL 0 " *" 2 1 1 2 0 0 - Cut BOOL 0 " *" 2 1 1 2 0 0 - Paste BOOL 0 " *" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 - Rename BOOL 0 " *" 2 1 1 2 0 0 - CreateFolder BOOL 0 " *" 2 1 1 2 0 0 - HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 1 - OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 1 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 - FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE - - ScanInterval DINT 0 " 60" 3 4 1 10 0 0 - MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 - MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 - MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 - Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 1 - FileNames[0] STRING[80] 0 " 'Backgrounds 2.0'" 3 9 81 1 0 0 - FileNames[1] STRING[80] 0 " 'CSVformat'" 3 9 81 1 0 0 - FileNames[2] STRING[80] 0 " 'XMLformat'" 3 9 81 1 0 0 - FileNames[3] STRING[80] 0 " 'Default(1).par'" 3 9 81 1 0 0 - FileNames[4] STRING[80] 0 " 'Default.par'" 3 9 81 1 0 0 - FileNames[5] STRING[80] 0 " 'Machine.mcfg'" 3 9 81 1 0 0 - FileNames[6] STRING[80] 0 " 'Package.pkg'" 3 9 81 1 0 0 - FileNames[7] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[8] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[9] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[10] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[11] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[12] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[13] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[14] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[15] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[16] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[17] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[18] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[19] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[20] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[21] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[22] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[23] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[24] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[25] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[26] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[27] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[28] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[29] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[30] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[31] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[32] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[33] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[34] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[35] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[36] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[37] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[38] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[39] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[40] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[41] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[42] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[43] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[44] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[45] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[46] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[47] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[48] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[49] STRING[80] 0 " ''" 3 9 81 1 0 0 - TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 1 - TimeStamps[0] DATE_AND_TIME 0 " DT#2023-03-21-12:39:30" 3 11 1 1 0 0 - TimeStamps[1] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 - TimeStamps[2] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 - TimeStamps[3] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 - TimeStamps[4] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 - TimeStamps[5] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 - TimeStamps[6] DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 3 11 1 1 0 0 - TimeStamps[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[14] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[15] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[16] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[17] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[18] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[19] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[20] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[21] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[22] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[23] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[24] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[25] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[26] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[27] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[40] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[41] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[42] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[43] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[44] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[45] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[46] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[47] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[48] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[49] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - Type DINT[0..49] 0 " *" 2 4 50 0 0 1 - Type[0] DINT 0 " 0" 3 4 1 10 0 0 - Type[1] DINT 0 " 0" 3 4 1 10 0 0 - Type[2] DINT 0 " 0" 3 4 1 10 0 0 - Type[3] DINT 0 " 1" 3 4 1 10 0 0 - Type[4] DINT 0 " 1" 3 4 1 10 0 0 - Type[5] DINT 0 " 1" 3 4 1 10 0 0 - Type[6] DINT 0 " 1" 3 4 1 10 0 0 - Type[7] DINT 0 " 1" 3 4 1 10 0 0 - Type[8] DINT 0 " 1" 3 4 1 10 0 0 - Type[9] DINT 0 " 1" 3 4 1 10 0 0 - Type[10] DINT 0 " 1" 3 4 1 10 0 0 - Type[11] DINT 0 " 1" 3 4 1 10 0 0 - Type[12] DINT 0 " 1" 3 4 1 10 0 0 - Type[13] DINT 0 " 1" 3 4 1 10 0 0 - Type[14] DINT 0 " 1" 3 4 1 10 0 0 - Type[15] DINT 0 " 1" 3 4 1 10 0 0 - Type[16] DINT 0 " 1" 3 4 1 10 0 0 - Type[17] DINT 0 " 1" 3 4 1 10 0 0 - Type[18] DINT 0 " 1" 3 4 1 10 0 0 - Type[19] DINT 0 " 1" 3 4 1 10 0 0 - Type[20] DINT 0 " 1" 3 4 1 10 0 0 - Type[21] DINT 0 " 1" 3 4 1 10 0 0 - Type[22] DINT 0 " 1" 3 4 1 10 0 0 - Type[23] DINT 0 " 1" 3 4 1 10 0 0 - Type[24] DINT 0 " 1" 3 4 1 10 0 0 - Type[25] DINT 0 " 1" 3 4 1 10 0 0 - Type[26] DINT 0 " 1" 3 4 1 10 0 0 - Type[27] DINT 0 " 1" 3 4 1 10 0 0 - Type[28] DINT 0 " 1" 3 4 1 10 0 0 - Type[29] DINT 0 " 1" 3 4 1 10 0 0 - Type[30] DINT 0 " 1" 3 4 1 10 0 0 - Type[31] DINT 0 " 1" 3 4 1 10 0 0 - Type[32] DINT 0 " 1" 3 4 1 10 0 0 - Type[33] DINT 0 " 1" 3 4 1 10 0 0 - Type[34] DINT 0 " 1" 3 4 1 10 0 0 - Type[35] DINT 0 " 1" 3 4 1 10 0 0 - Type[36] DINT 0 " 1" 3 4 1 10 0 0 - Type[37] DINT 0 " 1" 3 4 1 10 0 0 - Type[38] DINT 0 " 1" 3 4 1 10 0 0 - Type[39] DINT 0 " 1" 3 4 1 10 0 0 - Type[40] DINT 0 " 1" 3 4 1 10 0 0 - Type[41] DINT 0 " 1" 3 4 1 10 0 0 - Type[42] DINT 0 " 1" 3 4 1 10 0 0 - Type[43] DINT 0 " 1" 3 4 1 10 0 0 - Type[44] DINT 0 " 1" 3 4 1 10 0 0 - Type[45] DINT 0 " 1" 3 4 1 10 0 0 - Type[46] DINT 0 " 1" 3 4 1 10 0 0 - Type[47] DINT 0 " 1" 3 4 1 10 0 0 - Type[48] DINT 0 " 1" 3 4 1 10 0 0 - Type[49] DINT 0 " 1" 3 4 1 10 0 0 - Size UDINT[0..49] 0 " *" 2 7 50 0 0 1 - Size[0] UDINT 0 " 0" 3 7 1 10 0 0 - Size[1] UDINT 0 " 0" 3 7 1 10 0 0 - Size[2] UDINT 0 " 0" 3 7 1 10 0 0 - Size[3] UDINT 0 " 1" 3 7 1 10 0 0 - Size[4] UDINT 0 " 1" 3 7 1 10 0 0 - Size[5] UDINT 0 " 1" 3 7 1 10 0 0 - Size[6] UDINT 0 " 1" 3 7 1 10 0 0 - Size[7] UDINT 0 " 0" 3 7 1 10 0 0 - Size[8] UDINT 0 " 0" 3 7 1 10 0 0 - Size[9] UDINT 0 " 0" 3 7 1 10 0 0 - Size[10] UDINT 0 " 0" 3 7 1 10 0 0 - Size[11] UDINT 0 " 0" 3 7 1 10 0 0 - Size[12] UDINT 0 " 0" 3 7 1 10 0 0 - Size[13] UDINT 0 " 0" 3 7 1 10 0 0 - Size[14] UDINT 0 " 0" 3 7 1 10 0 0 - Size[15] UDINT 0 " 0" 3 7 1 10 0 0 - Size[16] UDINT 0 " 0" 3 7 1 10 0 0 - Size[17] UDINT 0 " 0" 3 7 1 10 0 0 - Size[18] UDINT 0 " 0" 3 7 1 10 0 0 - Size[19] UDINT 0 " 0" 3 7 1 10 0 0 - Size[20] UDINT 0 " 0" 3 7 1 10 0 0 - Size[21] UDINT 0 " 0" 3 7 1 10 0 0 - Size[22] UDINT 0 " 0" 3 7 1 10 0 0 - Size[23] UDINT 0 " 0" 3 7 1 10 0 0 - Size[24] UDINT 0 " 0" 3 7 1 10 0 0 - Size[25] UDINT 0 " 0" 3 7 1 10 0 0 - Size[26] UDINT 0 " 0" 3 7 1 10 0 0 - Size[27] UDINT 0 " 0" 3 7 1 10 0 0 - Size[28] UDINT 0 " 0" 3 7 1 10 0 0 - Size[29] UDINT 0 " 0" 3 7 1 10 0 0 - Size[30] UDINT 0 " 0" 3 7 1 10 0 0 - Size[31] UDINT 0 " 0" 3 7 1 10 0 0 - Size[32] UDINT 0 " 0" 3 7 1 10 0 0 - Size[33] UDINT 0 " 0" 3 7 1 10 0 0 - Size[34] UDINT 0 " 0" 3 7 1 10 0 0 - Size[35] UDINT 0 " *" 3 7 1 10 0 0 - Size[36] UDINT 0 " *" 3 7 1 10 0 0 - Size[37] UDINT 0 " *" 3 7 1 10 0 0 - Size[38] UDINT 0 " 0" 3 7 1 10 0 0 - Size[39] UDINT 0 " 0" 3 7 1 10 0 0 - Size[40] UDINT 0 " 0" 3 7 1 10 0 0 - Size[41] UDINT 0 " 0" 3 7 1 10 0 0 - Size[42] UDINT 0 " 0" 3 7 1 10 0 0 - Size[43] UDINT 0 " 0" 3 7 1 10 0 0 - Size[44] UDINT 0 " 0" 3 7 1 10 0 0 - Size[45] UDINT 0 " 0" 3 7 1 10 0 0 - Size[46] UDINT 0 " 0" 3 7 1 10 0 0 - Size[47] UDINT 0 " 0" 3 7 1 10 0 0 - Size[48] UDINT 0 " 0" 3 7 1 10 0 0 - Size[49] UDINT 0 " 0" 3 7 1 10 0 0 - DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 1 - DeviceDataProvider[0] STRING[100] 0 " '{"value":"mappRecipeFiles","text":"mappRecipeFiles"}'" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " '{"value":"mappAuditFiles","text":"mappAuditFiles"}'" 3 9 101 1 0 0 - DeviceDataProvider[2] STRING[100] 0 " '{"value":"mappReportFiles","text":"mappReportFiles"}'" 3 9 101 1 0 0 - DeviceDataProvider[3] STRING[100] 0 " '{"value":"mappBackupFiles","text":"mappBackupFiles"}'" 3 9 101 1 0 0 - DeviceDataProvider[4] STRING[100] 0 " '{"value":"mappAlarmXFiles","text":"mappAlarmXFiles"}'" 3 9 101 1 0 0 - DeviceDataProvider[5] STRING[100] 0 " '{"value":"mappUserXFiles","text":"mappUserXFiles"}'" 3 9 101 1 0 0 - DeviceDataProvider[6] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[7] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[8] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[9] STRING[100] 0 " ''" 3 9 101 1 0 0 - FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 1 - FifoSelect[0] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[1] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[2] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[3] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[4] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[5] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[6] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[7] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[8] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[9] DINT 0 " 0" 3 4 1 10 0 0 - DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 - TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":6,"to":9, "visible":false}]}'" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":7,"to":49, "visible":false}]}'" 3 9 121 1 0 0 - IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 - DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE - - AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 - FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 - SelectedIndex USINT 0 " 3" 2 5 1 10 0 0 - FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 - DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + Copy BOOL 0 " FALSE" 2 1 1 2 0 0 + Cut BOOL 0 " FALSE" 2 1 1 2 0 0 + Paste BOOL 0 " FALSE" 2 1 1 2 0 0 + NewName STRING[255] 0 " ''" 2 9 256 1 0 0 + Rename BOOL 0 " FALSE" 2 1 1 2 0 0 + CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM index 4556d9f4..c47f41a7 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM @@ -1,5 +1,5 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=4 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=131 ASCIIString=0 name type force value level type len format place expand specs HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 @@ -24,54 +24,54 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 FileName STRING[255] 0 " ''" 2 9 256 1 0 0 IsFolder BOOL 0 " TRUE" 2 1 1 2 0 0 - BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 + BackButton BOOL 0 " TRUE" 2 1 1 2 0 0 DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 99" 1 4 1 10 0 0 e,0,mpFI - - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 0 - DeviceNames[0] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[1] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[2] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[3] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[4] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[5] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[6] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[7] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[8] STRING[50] 0 " *" 3 9 51 1 0 0 - DeviceNames[9] STRING[50] 0 " *" 3 9 51 1 0 0 - SelectedIndex UINT 0 " *" 2 6 1 10 0 0 + Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + + DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 + DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 1 + DeviceNames[0] STRING[50] 0 " 'mappRecipeFiles'" 3 9 51 1 0 0 + DeviceNames[1] STRING[50] 0 " 'mappAuditFiles'" 3 9 51 1 0 0 + DeviceNames[2] STRING[50] 0 " 'mappReportFiles'" 3 9 51 1 0 0 + DeviceNames[3] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 + DeviceNames[4] STRING[50] 0 " 'mappAlarmXFiles'" 3 9 51 1 0 0 + DeviceNames[5] STRING[50] 0 " 'mappUserXFiles'" 3 9 51 1 0 0 + DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 + SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 @@ -138,10 +138,10 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 - CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 - FileCount UDINT 0 " 5" 3 7 1 10 0 0 - FolderCount UDINT 0 " 4" 3 7 1 10 0 0 + PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 + CurrentDir STRING[255] 0 " 'DirRename'" 3 9 256 1 0 0 + FileCount UDINT 0 " 0" 3 7 1 10 0 0 + FolderCount UDINT 0 " 0" 3 7 1 10 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -149,14 +149,36 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 + NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 1 - LayerStatus UINT 0 " 1" 2 6 1 10 0 0 - Type DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 0 + LayerStatus UINT 0 " 0" 2 6 1 10 0 0 + Type DINT 0 " 3" 2 4 1 10 0 0 e,0,mpFI ErrorNumber UINT 0 " 0" 2 6 1 10 0 0 Confirm BOOL 0 " FALSE" 2 1 1 2 0 0 Cancel BOOL 0 " FALSE" 2 1 1 2 0 0 DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 + MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 + MpLink UDINT 0 " 115241700" 1 7 1 10 0 0 + Enable BOOL 0 " TRUE" 1 1 1 2 0 0 + ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 0 + FileListSize UINT 0 " 50" 2 6 1 10 0 0 + FileListScrollWindow USINT 0 " 1" 2 5 1 10 0 0 + UIConnect UDINT 0 " 153234574" 1 7 1 10 0 0 + Active BOOL 0 " TRUE" 1 1 1 2 0 0 + Error BOOL 0 " FALSE" 1 1 1 2 0 0 + StatusID DINT 0 " 0" 1 4 1 10 0 0 + Info MpFileInfoType 0 " *" 1 24 1 0 0 0 + Diag MpFileDiagType 0 " *" 2 24 1 0 0 0 + StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 0 + ID DINT 0 " -1064165371" 4 4 1 10 0 0 e,0,mpFI + + Severity DINT 0 " 3" 4 4 1 10 0 0 e,0,mpCO + + Code UINT 0 " 8197" 4 6 1 10 0 0 + Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 + pObject UDINT 0 " 166792568" 2 7 1 10 0 0 + State UDINT 0 " 3" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 7991bbb7..7a527e83 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,96 +1,97 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=7 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=92 ASCIIString=0 name type force value level type len format place expand specs - cycleCount UINT 0 " 0" 0 6 1 10 1 0 + cycleCount UINT 0 " 4" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 ActSubState USINT 0 " 0" 0 5 1 10 1 0 HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - EnterFolder BOOL 0 " TRUE" 2 1 1 2 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - Status FileHmiStatusType 0 " *" 1 24 1 0 0 0 + Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 + DeviceName STRING[50] 0 " ''" 2 9 51 1 0 0 IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 - MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 - MpBlockStatus[0] DINT 0 " -1064165373" 1 4 1 10 1 0 + MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 0 + MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[3] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[4] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[5] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[6] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[7] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[8] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[9] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[6] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[7] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[8] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[9] DINT 0 " 0" 1 4 1 10 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 99" 1 4 1 10 0 0 e,0,mpFI + Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + LastModified DATE_AND_TIME 0 " DT#2023-03-29-09:25:34" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + LastModified DATE_AND_TIME 0 " DT#2023-03-29-10:56:11" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 - Size UDINT 0 " 964" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'FileTestFile.xml'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-16:21:33" 5 11 1 1 0 0 - ItemType DINT 0 " 7" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Machine.mcfg'" 5 9 256 1 0 0 - Size UDINT 0 " 981" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Package.pkg'" 5 9 256 1 0 0 - Size UDINT 0 " 548" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-28-15:46:43" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 @@ -104,6 +105,6 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 + NewName STRING[255] 0 " 'FileRename.xml'" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index 3ee6e961..b4e4cbfc 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -20,4 +20,7 @@ VAR_CONFIG ::FileTest:MpFileManagerUIConnect.File.Cut AT %Q.::FileMgr:MpFileManagerUIConnect.File.Cut; (*Insert your comment here...*) ::FileTest:HmiFile.Commands.EnterFolder AT %Q.::FileMgr:HmiFile.Commands.EnterFolder; (*Insert your comment here...*) ::FileTest:HmiFile.Commands.FolderUp AT %Q.::FileMgr:HmiFile.Commands.FolderUp; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.MultiSelect AT %Q.::FileMgr:MpFileManagerUIConnect.File.MultiSelect; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.List.Items[0].IsSelected AT %Q.::FileMgr:MpFileManagerUIConnect.File.List.Items[0].IsSelected; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.List.Items[1].IsSelected AT %Q.::FileMgr:MpFileManagerUIConnect.File.List.Items[1].IsSelected; (*Insert your comment here...*) END_VAR From 946edb8444d9e45321f1373e8c35e4733ffbd003 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 29 Mar 2023 16:56:31 -0400 Subject: [PATCH 050/159] Missed files on the last commit --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 162 ++++++++++++++++-- .../UnitTest/File/FileUnitTest/variables.var | 4 + 2 files changed, 151 insertions(+), 15 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index c66563e7..0740ea83 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -824,34 +824,62 @@ _TEST Cut_Paste_Directory(void) case 1: MpFileManagerUIConnect.File.Cut = 0; + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) HmiFile.Status.SelectedIndex = i; } - ActSubState = 2; + ActSubState = 4; + break; + + case 4: + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 6; break; - case 2: + case 6: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); HmiFile.Commands.EnterFolder = 1; + ActSubState = 7; + break; + + case 7: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.EnterFolder = 0; - ActSubState = 3; + ActSubState = 8; break; - case 3: + case 8: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); MpFileManagerUIConnect.File.Paste = 1; - ActSubState = 4; + ActSubState = 9; break; - case 4: + case 9: MpFileManagerUIConnect.File.Paste = 0; TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); - ActSubState = 5; + ActSubState = 10; break; - case 5: + case 10: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -861,17 +889,17 @@ _TEST Cut_Paste_Directory(void) } } HmiFile.Commands.FolderUp = 1; - ActSubState = 6; + ActSubState = 11; break; - case 6: + case 11: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.FolderUp = 0; - ActSubState = 7; + ActSubState = 12; break; - case 7: - // Check file list for copied file + case 12: + // Check file list for copied directory TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -886,7 +914,7 @@ _TEST Cut_Paste_Directory(void) break; case 2: - // Check if copied file was found + // Check if copied directory was found TEST_ASSERT(InNewLocation); TEST_ASSERT(!InOldLocation); TEST_DONE; @@ -894,6 +922,109 @@ _TEST Cut_Paste_Directory(void) } } +_TEST Multiselect(void) +{ + TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select Recipe file device and navigate into directory with test files + switch (ArrangeSubState) + { + case 0: + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + ArrangeSubState = 1; + break; + + case 1: + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + ArrangeSubState = 2; + break; + + case 2: + HmiFile.Commands.EnterFolder = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + HmiFile.Commands.EnterFolder = 0; + ArrangeSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + TestState = 1; + break; + } + break; + + case 1: + // Select multiple files/directories and copy/paste + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.MultiSelect = 1; + ActSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.File.List.Items[0].IsSelected = 1; + MpFileManagerUIConnect.File.List.Items[1].IsSelected = 1; + ActSubState = 2; + break; + + case 2: + MpFileManagerUIConnect.File.Copy = 1; + ActSubState = 3; + break; + + case 3: + MpFileManagerUIConnect.File.Copy = 0; + MpFileManagerUIConnect.File.Paste = 1; + ActSubState = 4; + break; + + case 4: + MpFileManagerUIConnect.File.Paste = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); + ActSubState = 5; + break; + + case 5: + // Check for copied file + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedNewFileName) == 0) + MultiSelectFileCopy = 1; + } + ActSubState = 6; + break; + + case 6: + // Check for copied directory + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedNewDirName) == 0) + MultiSelectDirCopy = 1; + } + TestState = 2; + break; + } + break; + + case 2: + // Check if copied file was found + TEST_ASSERT(MultiSelectFileCopy); + TEST_ASSERT(MultiSelectDirCopy); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -1484,7 +1615,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-28 20:32:52Z +LastUpdated: 2023-03-29 16:13:21Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1497,6 +1628,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Rename_Directory", Rename_Directory), new_TestFixture("Cut_Paste_File", Cut_Paste_File), new_TestFixture("Cut_Paste_Directory", Cut_Paste_Directory), + new_TestFixture("Multiselect", Multiselect), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var index 04a97176..e21e4bfc 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/variables.var @@ -40,4 +40,8 @@ VAR NewDirName : STRING[255] := 'DirRename'; InNewLocation : BOOL; InOldLocation : BOOL; + CopiedNewFileName : STRING[255] := 'FileRename(1).xml'; + CopiedNewDirName : STRING[255] := 'DirRename(1)'; + MultiSelectFileCopy : BOOL; + MultiSelectDirCopy : BOOL; END_VAR From bf6f0162d8692aa603a7eb30aba277eab4ef6a53 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Thu, 30 Mar 2023 11:42:01 -0400 Subject: [PATCH 051/159] Completed Multiselect test --- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 37 +++++++++--------- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 39 ++++++++++++++++--- .../Physical/UnitTest/PC_any/Cpu.pkg | 2 +- 3 files changed, 53 insertions(+), 25 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 7a527e83..50f71f60 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,9 +1,9 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 Index=92 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=26 ASCIIString=0 name type force value level type len format place expand specs - cycleCount UINT 0 " 4" 0 6 1 10 1 0 + cycleCount UINT 0 " 374" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 - ActSubState USINT 0 " 0" 0 5 1 10 1 0 + ActSubState USINT 0 " 3" 0 5 1 10 1 0 HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -15,7 +15,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I DeviceName STRING[50] 0 " ''" 2 9 51 1 0 0 IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 - MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 0 + MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 @@ -35,28 +35,28 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-29-09:25:34" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-29-15:32:30" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-29-10:56:11" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-29-16:50:59" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-29-15:32:30" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-29-15:32:30" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 @@ -101,10 +101,11 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=30 I Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'FileRename.xml'" 2 9 256 1 0 0 + NewName STRING[255] 0 " ''" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 0740ea83..9765acd0 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -115,6 +115,8 @@ _SETUP_TEST(void) { NameMatch = 0; InNewLocation = 0; InOldLocation = 0; + MultiSelectDirCopy = 0; + MultiSelectFileCopy = 0; HmiFile.Status.SelectedIndex = 0; MpFileManagerUIConnect.File.Copy = 0; MpFileManagerUIConnect.File.CreateFolder = 0; @@ -924,7 +926,7 @@ _TEST Cut_Paste_Directory(void) _TEST Multiselect(void) { - TEST_DONE; +// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -946,15 +948,27 @@ _TEST Multiselect(void) } ArrangeSubState = 2; break; - - case 2: + + case 2: + MpFileManagerUIConnect.File.Refresh = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ArrangeSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); HmiFile.Commands.EnterFolder = 1; + ArrangeSubState = 4; + break; + + case 4: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.EnterFolder = 0; - ArrangeSubState = 3; + ArrangeSubState = 5; break; - case 3: + case 5: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); TestState = 1; break; @@ -983,13 +997,14 @@ _TEST Multiselect(void) case 3: MpFileManagerUIConnect.File.Copy = 0; + MpFileManagerUIConnect.File.MultiSelect = 0; MpFileManagerUIConnect.File.Paste = 1; ActSubState = 4; break; case 4: - MpFileManagerUIConnect.File.Paste = 0; TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_PASTE); + MpFileManagerUIConnect.File.Paste = 0; ActSubState = 5; break; @@ -1011,6 +1026,18 @@ _TEST Multiselect(void) if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedNewDirName) == 0) MultiSelectDirCopy = 1; } + ActSubState = 7; + break; + + case 7: + HmiFile.Commands.FolderUp = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + HmiFile.Commands.FolderUp = 0; + ActSubState = 8; + break; + + case 8: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); TestState = 2; break; } diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg index ca230015..1ba90ab9 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg @@ -17,7 +17,7 @@ - + \ No newline at end of file From 34b51fdb88d9aa72aad71184f8d2c66673254db6 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Thu, 30 Mar 2023 12:52:35 -0400 Subject: [PATCH 052/159] Watch window updates --- .../Diagnosis/UnitTest/PC_any/FileMgr.PVM | 142 +++++++++--------- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 24 +-- 2 files changed, 84 insertions(+), 82 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM index c47f41a7..90769336 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM @@ -1,5 +1,5 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=131 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=39 ASCIIString=0 name type force value level type len format place expand specs HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 @@ -13,7 +13,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 Enable BOOL 0 " *" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " *" 3 9 51 1 0 0 + DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 l FifoType DINT 0 " *" 3 4 1 10 0 0 e,0,FILE ScanInterval DINT 0 " *" 3 4 1 10 0 0 @@ -21,10 +21,10 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I MaxFolderSize REAL 0 " *" 3 8 1 10 0 0 MaxNumberOfFiles UINT 0 " *" 3 6 1 10 0 0 Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 + DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 ( + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 l IsFolder BOOL 0 " TRUE" 2 1 1 2 0 0 - BackButton BOOL 0 " TRUE" 2 1 1 2 0 0 + BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 @@ -33,47 +33,47 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 1 - DeviceNames[0] STRING[50] 0 " 'mappRecipeFiles'" 3 9 51 1 0 0 - DeviceNames[1] STRING[50] 0 " 'mappAuditFiles'" 3 9 51 1 0 0 - DeviceNames[2] STRING[50] 0 " 'mappReportFiles'" 3 9 51 1 0 0 - DeviceNames[3] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 - DeviceNames[4] STRING[50] 0 " 'mappAlarmXFiles'" 3 9 51 1 0 0 - DeviceNames[5] STRING[50] 0 " 'mappUserXFiles'" 3 9 51 1 0 0 - DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 - DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 + DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 1 ( + DeviceNames[0] STRING[50] 0 " 'mappRecipeFiles'" 3 9 51 1 0 0 ( + DeviceNames[1] STRING[50] 0 " 'mappAuditFiles'" 3 9 51 1 0 0 ( + DeviceNames[2] STRING[50] 0 " 'mappReportFiles'" 3 9 51 1 0 0 ( + DeviceNames[3] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 ( + DeviceNames[4] STRING[50] 0 " 'mappAlarmXFiles'" 3 9 51 1 0 0 ( + DeviceNames[5] STRING[50] 0 " 'mappUserXFiles'" 3 9 51 1 0 0 ( + DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 ( + DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 ( + DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 ( + DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 ( SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 l + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 - ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " ''" 5 9 256 1 0 0 l + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 l Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -81,7 +81,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -89,7 +89,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 l Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -97,7 +97,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -105,7 +105,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 l Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -113,7 +113,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI @@ -121,27 +121,27 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 l Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 - PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 - StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 - PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 - StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 - RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 - RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 + PageUp BOOL 0 " *" 3 1 1 2 0 0 + StepUp BOOL 0 " *" 3 1 1 2 0 0 + PageDown BOOL 0 " *" 3 1 1 2 0 0 + StepDown BOOL 0 " *" 3 1 1 2 0 0 + RangeStart REAL 0 " *" 3 8 1 10 0 0 + RangeEnd REAL 0 " *" 3 8 1 10 0 0 + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 ( SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 - CurrentDir STRING[255] 0 " 'DirRename'" 3 9 256 1 0 0 - FileCount UDINT 0 " 0" 3 7 1 10 0 0 - FolderCount UDINT 0 " 0" 3 7 1 10 0 0 + PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 + CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 l + FileCount UDINT 0 " 4" 3 7 1 10 0 0 + FolderCount UDINT 0 " 3" 3 7 1 10 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -149,36 +149,36 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 + NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 l Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 0 - LayerStatus UINT 0 " 0" 2 6 1 10 0 0 - Type DINT 0 " 3" 2 4 1 10 0 0 e,0,mpFI + LayerStatus UINT 0 " *" 2 6 1 10 0 0 + Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - ErrorNumber UINT 0 " 0" 2 6 1 10 0 0 - Confirm BOOL 0 " FALSE" 2 1 1 2 0 0 - Cancel BOOL 0 " FALSE" 2 1 1 2 0 0 + ErrorNumber UINT 0 " *" 2 6 1 10 0 0 + Confirm BOOL 0 " *" 2 1 1 2 0 0 + Cancel BOOL 0 " *" 2 1 1 2 0 0 DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 115241700" 1 7 1 10 0 0 + MpLink UDINT 0 " 115353732" 1 7 1 10 0 0 Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + ErrorReset BOOL 0 " *" 1 1 1 2 0 0 UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 0 - FileListSize UINT 0 " 50" 2 6 1 10 0 0 - FileListScrollWindow USINT 0 " 1" 2 5 1 10 0 0 - UIConnect UDINT 0 " 153234574" 1 7 1 10 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 + FileListSize UINT 0 " *" 2 6 1 10 0 0 + FileListScrollWindow USINT 0 " *" 2 5 1 10 0 0 + UIConnect UDINT 0 " *" 1 7 1 10 0 0 + Active BOOL 0 " *" 1 1 1 2 0 0 + Error BOOL 0 " *" 1 1 1 2 0 0 + StatusID DINT 0 " *" 1 4 1 10 0 0 Info MpFileInfoType 0 " *" 1 24 1 0 0 0 Diag MpFileDiagType 0 " *" 2 24 1 0 0 0 StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " -1064165371" 4 4 1 10 0 0 e,0,mpFI + ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpFI - Severity DINT 0 " 3" 4 4 1 10 0 0 e,0,mpCO + Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - Code UINT 0 " 8197" 4 6 1 10 0 0 + Code UINT 0 " *" 4 6 1 10 0 0 Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " 166792568" 2 7 1 10 0 0 - State UDINT 0 " 3" 2 7 1 10 0 0 + pObject UDINT 0 " *" 2 7 1 10 0 0 + State UDINT 0 " *" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 50f71f60..adca3800 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,9 +1,11 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=26 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=17 ASCIIString=0 name type force value level type len format place expand specs - cycleCount UINT 0 " 374" 0 6 1 10 1 0 + MultiSelectDirCopy BOOL 0 " FALSE" 0 1 1 2 1 0 + MultiSelectFileCopy BOOL 0 " FALSE" 0 1 1 2 1 0 + cycleCount UINT 0 " 4" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 - ActSubState USINT 0 " 3" 0 5 1 10 1 0 + ActSubState USINT 0 " 0" 0 5 1 10 1 0 HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 Delete BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -35,28 +37,28 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-29-15:32:30" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-30-10:38:59" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-29-16:50:59" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-30-11:41:36" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-29-15:32:30" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-30-10:38:59" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-29-15:32:30" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 @@ -106,6 +108,6 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 + NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 From 4f15825803fa6cff112d5da7c2ecdad89326c9e0 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Fri, 31 Mar 2023 11:37:24 -0400 Subject: [PATCH 053/159] AAZM572: Improved workflow of export alarms and moved to HmiActions action file --- .../AlarmX/AlarmMgr/AlarmMgr.st | 10 +--------- .../AlarmX/AlarmMgr/AlarmMgr.typ | 3 ++- .../AlarmX/AlarmMgr/HMIActions.st | 19 +++++++++++++++++++ .../AlarmX/AlarmXHistory_content.eventbinding | 8 ++++---- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st index 225aa346..59ceebb0 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.st @@ -50,9 +50,6 @@ PROGRAM _CYCLIC MpAlarmXListUIConnect.AcknowledgeAll := TRUE; END_IF - IF (HmiAlarmX.Commands.ExportAlarms = TRUE) THEN - MpAlarmXHistory_0.Export := TRUE; - END_IF // Call all cyclic actions AlarmHandling; @@ -60,6 +57,7 @@ PROGRAM _CYCLIC ExecuteQuery; QueryTableConfig; AlarmSampleFub; + ExportAlarms; // Check if any reactions are active. // Typically the MpAlarmXCheckReaction() function is called from other tasks within the application. @@ -73,12 +71,6 @@ PROGRAM _CYCLIC // Info is active. Add code here to resond to info situation. END_IF - IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN - HmiAlarmX.Commands.ExportAlarms := FALSE; - MpAlarmXHistory_0.Export := FALSE; - HmiAlarmX.Status.AlarmExportDone := TRUE; - END_IF - // Error reset IF NOT MpAlarmXCore_0.Error THEN MpAlarmXCore_0.ErrorReset := FALSE; diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ index 74db3d0d..f0f832d6 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/AlarmMgr.typ @@ -7,7 +7,7 @@ TYPE Parameters : AlarmParametersType; (*HMI parameters*) END_STRUCT; AlarmCommandsType : STRUCT (*Structure to hold the commands from the HMI*) - ExportAlarms : BOOL; (*Triggers an alarm export of the alarm history.*) + ExportAlarms : BOOL; (*Triggers an alarm export of the alarm history. Connected to a button on the HMI.*) RunQuery : BOOL; (*Triggers the query to run. Connected to a button on the HMI. *) END_STRUCT; AlarmParametersType : STRUCT (*Structure to hold the parameters from the HMI*) @@ -20,6 +20,7 @@ TYPE AlarmFilterCfg : STRING[1000]; (*Filter configuration for the AlarmList widget*) TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the alarm query Table*) AlarmExportDone : BOOL; (*Alarm export of alarm history is completed. Connected to a button on the HMI. *) + AlarmExportDisplayed : BOOL; (*Alarm export of alarm history is displayed. Connected to a button on the HMI. *) Query : AlarmQueryHMIType; (*Structure which rearranges the query data from AlarmQuery into a structure of arrays for easy connection to the Table widget*) END_STRUCT; AlarmQueryType : STRUCT (*Structure for query results and status*) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st index 92464a6c..f7606583 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/AlarmX/AlarmMgr/HMIActions.st @@ -43,3 +43,22 @@ ACTION QueryTableConfig: brsstrcat(ADR(HmiAlarmX.Status.TableConfig[0]), ADR(',"to":19, "visible":false}]}')); END_ACTION + +ACTION ExportAlarms: + + IF (HmiAlarmX.Commands.ExportAlarms = TRUE) THEN + MpAlarmXHistory_0.Export := TRUE; + END_IF + + IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN + MpAlarmXHistory_0.Export := FALSE; + HmiAlarmX.Commands.ExportAlarms := FALSE; + HmiAlarmX.Status.AlarmExportDone := TRUE; + END_IF + + IF HmiAlarmX.Status.AlarmExportDisplayed THEN + HmiAlarmX.Status.AlarmExportDisplayed := FALSE; + HmiAlarmX.Status.AlarmExportDone := FALSE; + END_IF + +END_ACTION diff --git a/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding index 1b3a0129..289e0fde 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/AlarmX/AlarmXHistory_content.eventbinding @@ -37,15 +37,15 @@ - - + + - - + + From 9d82e27fd882900ebd9ca9d2a68719c59f5d4c6a Mon Sep 17 00:00:00 2001 From: austin_justin Date: Fri, 31 Mar 2023 16:56:42 -0400 Subject: [PATCH 054/159] Implemented search and enter folder tests --- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 282 +++++++++++++++++- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 136 ++++++++- .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 2 + 3 files changed, 403 insertions(+), 17 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index adca3800..5d612d81 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,9 +1,9 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=17 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=335 ASCIIString=0 name type force value level type len format place expand specs MultiSelectDirCopy BOOL 0 " FALSE" 0 1 1 2 1 0 MultiSelectFileCopy BOOL 0 " FALSE" 0 1 1 2 1 0 - cycleCount UINT 0 " 4" 0 6 1 10 1 0 + cycleCount UINT 0 " 0" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 ActSubState USINT 0 " 0" 0 5 1 10 1 0 HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 @@ -13,10 +13,259 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 1 + OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 1 + Enable BOOL 0 " FALSE" 3 1 1 2 0 0 + DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 + FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE + + ScanInterval DINT 0 " 60" 3 4 1 10 0 0 + MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 + MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 + MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 + FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 0 + FileNames[0] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[1] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[2] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[3] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[4] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[5] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[6] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[7] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[8] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[9] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[10] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[11] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[12] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[13] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[14] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[15] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[16] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[17] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[18] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[19] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[20] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[21] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[22] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[23] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[24] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[25] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames[26] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[27] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[28] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[29] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[30] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[31] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[32] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[33] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[34] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[35] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[36] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[37] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[38] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[39] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[40] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[41] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[42] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[43] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[44] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[45] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[46] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[47] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[48] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[49] STRING[80] 0 " *" 3 9 81 1 0 0 + TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 0 + TimeStamps[0] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[1] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[2] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[3] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[4] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[5] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[6] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[14] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[15] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[16] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[17] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[18] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[19] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[20] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[21] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[22] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[23] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[24] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 + TimeStamps[25] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[26] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[27] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[40] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[41] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[42] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[43] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[44] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[45] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[46] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[47] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[48] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + TimeStamps[49] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + Type DINT[0..49] 0 " *" 2 4 50 0 0 0 + Type[0] DINT 0 " 0" 3 4 1 10 0 0 + Type[1] DINT 0 " 0" 3 4 1 10 0 0 + Type[2] DINT 0 " 0" 3 4 1 10 0 0 + Type[3] DINT 0 " 0" 3 4 1 10 0 0 + Type[4] DINT 0 " 0" 3 4 1 10 0 0 + Type[5] DINT 0 " 0" 3 4 1 10 0 0 + Type[6] DINT 0 " 0" 3 4 1 10 0 0 + Type[7] DINT 0 " 0" 3 4 1 10 0 0 + Type[8] DINT 0 " 0" 3 4 1 10 0 0 + Type[9] DINT 0 " 0" 3 4 1 10 0 0 + Type[10] DINT 0 " 0" 3 4 1 10 0 0 + Type[11] DINT 0 " 0" 3 4 1 10 0 0 + Type[12] DINT 0 " 0" 3 4 1 10 0 0 + Type[13] DINT 0 " 0" 3 4 1 10 0 0 + Type[14] DINT 0 " 0" 3 4 1 10 0 0 + Type[15] DINT 0 " 0" 3 4 1 10 0 0 + Type[16] DINT 0 " 0" 3 4 1 10 0 0 + Type[17] DINT 0 " 0" 3 4 1 10 0 0 + Type[18] DINT 0 " 0" 3 4 1 10 0 0 + Type[19] DINT 0 " 0" 3 4 1 10 0 0 + Type[20] DINT 0 " 0" 3 4 1 10 0 0 + Type[21] DINT 0 " 0" 3 4 1 10 0 0 + Type[22] DINT 0 " 0" 3 4 1 10 0 0 + Type[23] DINT 0 " 0" 3 4 1 10 0 0 + Type[24] DINT 0 " *" 3 4 1 10 0 0 + Type[25] DINT 0 " *" 3 4 1 10 0 0 + Type[26] DINT 0 " *" 3 4 1 10 0 0 + Type[27] DINT 0 " *" 3 4 1 10 0 0 + Type[28] DINT 0 " *" 3 4 1 10 0 0 + Type[29] DINT 0 " *" 3 4 1 10 0 0 + Type[30] DINT 0 " *" 3 4 1 10 0 0 + Type[31] DINT 0 " *" 3 4 1 10 0 0 + Type[32] DINT 0 " *" 3 4 1 10 0 0 + Type[33] DINT 0 " *" 3 4 1 10 0 0 + Type[34] DINT 0 " *" 3 4 1 10 0 0 + Type[35] DINT 0 " *" 3 4 1 10 0 0 + Type[36] DINT 0 " *" 3 4 1 10 0 0 + Type[37] DINT 0 " *" 3 4 1 10 0 0 + Type[38] DINT 0 " *" 3 4 1 10 0 0 + Type[39] DINT 0 " *" 3 4 1 10 0 0 + Type[40] DINT 0 " *" 3 4 1 10 0 0 + Type[41] DINT 0 " *" 3 4 1 10 0 0 + Type[42] DINT 0 " *" 3 4 1 10 0 0 + Type[43] DINT 0 " *" 3 4 1 10 0 0 + Type[44] DINT 0 " *" 3 4 1 10 0 0 + Type[45] DINT 0 " *" 3 4 1 10 0 0 + Type[46] DINT 0 " *" 3 4 1 10 0 0 + Type[47] DINT 0 " *" 3 4 1 10 0 0 + Type[48] DINT 0 " *" 3 4 1 10 0 0 + Type[49] DINT 0 " *" 3 4 1 10 0 0 + Size UDINT[0..49] 0 " *" 2 7 50 0 0 0 + Size[0] UDINT 0 " 0" 3 7 1 10 0 0 + Size[1] UDINT 0 " 0" 3 7 1 10 0 0 + Size[2] UDINT 0 " 0" 3 7 1 10 0 0 + Size[3] UDINT 0 " 0" 3 7 1 10 0 0 + Size[4] UDINT 0 " 0" 3 7 1 10 0 0 + Size[5] UDINT 0 " 0" 3 7 1 10 0 0 + Size[6] UDINT 0 " 0" 3 7 1 10 0 0 + Size[7] UDINT 0 " 0" 3 7 1 10 0 0 + Size[8] UDINT 0 " 0" 3 7 1 10 0 0 + Size[9] UDINT 0 " 0" 3 7 1 10 0 0 + Size[10] UDINT 0 " 0" 3 7 1 10 0 0 + Size[11] UDINT 0 " 0" 3 7 1 10 0 0 + Size[12] UDINT 0 " 0" 3 7 1 10 0 0 + Size[13] UDINT 0 " 0" 3 7 1 10 0 0 + Size[14] UDINT 0 " 0" 3 7 1 10 0 0 + Size[15] UDINT 0 " 0" 3 7 1 10 0 0 + Size[16] UDINT 0 " 0" 3 7 1 10 0 0 + Size[17] UDINT 0 " 0" 3 7 1 10 0 0 + Size[18] UDINT 0 " 0" 3 7 1 10 0 0 + Size[19] UDINT 0 " 0" 3 7 1 10 0 0 + Size[20] UDINT 0 " 0" 3 7 1 10 0 0 + Size[21] UDINT 0 " 0" 3 7 1 10 0 0 + Size[22] UDINT 0 " 0" 3 7 1 10 0 0 + Size[23] UDINT 0 " *" 3 7 1 10 0 0 + Size[24] UDINT 0 " *" 3 7 1 10 0 0 + Size[25] UDINT 0 " *" 3 7 1 10 0 0 + Size[26] UDINT 0 " *" 3 7 1 10 0 0 + Size[27] UDINT 0 " *" 3 7 1 10 0 0 + Size[28] UDINT 0 " *" 3 7 1 10 0 0 + Size[29] UDINT 0 " *" 3 7 1 10 0 0 + Size[30] UDINT 0 " *" 3 7 1 10 0 0 + Size[31] UDINT 0 " *" 3 7 1 10 0 0 + Size[32] UDINT 0 " *" 3 7 1 10 0 0 + Size[33] UDINT 0 " *" 3 7 1 10 0 0 + Size[34] UDINT 0 " *" 3 7 1 10 0 0 + Size[35] UDINT 0 " *" 3 7 1 10 0 0 + Size[36] UDINT 0 " *" 3 7 1 10 0 0 + Size[37] UDINT 0 " *" 3 7 1 10 0 0 + Size[38] UDINT 0 " *" 3 7 1 10 0 0 + Size[39] UDINT 0 " *" 3 7 1 10 0 0 + Size[40] UDINT 0 " *" 3 7 1 10 0 0 + Size[41] UDINT 0 " *" 3 7 1 10 0 0 + Size[42] UDINT 0 " *" 3 7 1 10 0 0 + Size[43] UDINT 0 " *" 3 7 1 10 0 0 + Size[44] UDINT 0 " *" 3 7 1 10 0 0 + Size[45] UDINT 0 " *" 3 7 1 10 0 0 + Size[46] UDINT 0 " *" 3 7 1 10 0 0 + Size[47] UDINT 0 " *" 3 7 1 10 0 0 + Size[48] UDINT 0 " *" 3 7 1 10 0 0 + Size[49] UDINT 0 " *" 3 7 1 10 0 0 + DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 0 + DeviceDataProvider[0] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[2] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[3] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[4] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[5] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[6] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[7] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[8] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[9] STRING[100] 0 " ''" 3 9 101 1 0 0 + FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 0 + FifoSelect[0] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[1] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[2] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[3] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[4] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[5] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[6] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[7] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[8] DINT 0 " 0" 3 4 1 10 0 0 + FifoSelect[9] DINT 0 " 0" 3 4 1 10 0 0 DeviceName STRING[50] 0 " ''" 2 9 51 1 0 0 + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 + TableConfig[0] STRING[120] 0 " ''" 3 9 121 1 0 0 + TableConfig[1] STRING[120] 0 " ''" 3 9 121 1 0 0 IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 + DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE + + AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 + FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 + FifoConfigEnable BOOL 0 " FALSE" 2 1 1 2 0 0 + DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 @@ -32,28 +281,28 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-30-10:38:59" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-31-13:38:21" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-30-11:41:36" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-30-10:38:59" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-31-13:38:21" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 + Size UDINT 0 " 964" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-31-13:38:21" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 @@ -100,6 +349,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 RangeEnd REAL 0 " 0.0" 3 8 1 10 0 0 + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -108,6 +358,6 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 + NewName STRING[255] 0 " ''" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 9765acd0..a1ede580 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -1052,6 +1052,138 @@ _TEST Multiselect(void) } } +_TEST Search(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Set filter value to name of file + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + brsmemcpy(&MpFileManagerUIConnect.File.Filter, &CreateFileName, sizeof(MpFileManagerUIConnect.File.Filter)); + TestState = 1; + break; + + case 1: + // Refresh MpFileManagerUIConnect + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[0].Name, &CreateFileName) == 0) + NameMatch = 1; + ActSubState = 3; + break; + + case 3: + brsmemcpy(&MpFileManagerUIConnect.File.Filter, &"", sizeof(MpFileManagerUIConnect.File.Filter)); + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + TestState = 2; + break; + } + break; + + case 2: + // Check if copied file was found + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + +_TEST Enter_Folder(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Set filter value to name of file + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + + case 1: + // Refresh MpFileManagerUIConnect + switch (ActSubState) + { + case 0: + ActSubState = 100; + break; + + case 100: + HmiFile.Commands.EnterFolder = 1; + ActSubState = 1; + break; + + case 1: + HmiFile.Commands.EnterFolder = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + if(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) == 0) + NameMatch = 1; + ActSubState = 3; + break; + + case 3: + HmiFile.Commands.FolderUp = 1; + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + HmiFile.Commands.FolderUp = 0; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + TestState = 2; + break; + } + break; + + case 2: + // Check if copied file was found + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -1642,7 +1774,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-29 16:13:21Z +LastUpdated: 2023-03-31 20:23:22Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1656,6 +1788,8 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Cut_Paste_File", Cut_Paste_File), new_TestFixture("Cut_Paste_Directory", Cut_Paste_Directory), new_TestFixture("Multiselect", Multiselect), + new_TestFixture("Search", Search), + new_TestFixture("Enter_Folder", Enter_Folder), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index b4e4cbfc..44210664 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -5,6 +5,7 @@ VAR_CONFIG Cyclic#8.::FileMgr:HmiFile.Status AT %Q.Cyclic#8.::FileTest:HmiFile_UT.Status; (*Insert your comment here...*) ::FileMgr:MpFileManagerUIConnect.File.List.Items AT %Q.::FileTest:MpFileManagerUIConnect.File.List.Items; (*Insert your comment here...*) ::FileMgr:MpFileManagerUIConnect.Status AT %Q.::FileTest:MpFileManagerUIConnect.Status; (*Insert your comment here...*) + ::FileMgr:MpFileManagerUIConnect.File.PathInfo AT %Q.::FileTest:MpFileManagerUIConnect.File.PathInfo; (*Insert your comment here...*) END_VAR (*Outputs from the unit test*) VAR_CONFIG @@ -23,4 +24,5 @@ VAR_CONFIG ::FileTest:MpFileManagerUIConnect.File.MultiSelect AT %Q.::FileMgr:MpFileManagerUIConnect.File.MultiSelect; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.List.Items[0].IsSelected AT %Q.::FileMgr:MpFileManagerUIConnect.File.List.Items[0].IsSelected; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.List.Items[1].IsSelected AT %Q.::FileMgr:MpFileManagerUIConnect.File.List.Items[1].IsSelected; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.Filter AT %Q.::FileMgr:MpFileManagerUIConnect.File.Filter; (*Insert your comment here...*) END_VAR From ecdae03bbf8d6a8f17b8bd4215c251c8bff0fef4 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Fri, 31 Mar 2023 16:57:32 -0400 Subject: [PATCH 055/159] Watch window updates --- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 270 ++---------------- 1 file changed, 24 insertions(+), 246 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 5d612d81..430118fb 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,9 +1,9 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=335 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=8 ASCIIString=0 name type force value level type len format place expand specs MultiSelectDirCopy BOOL 0 " FALSE" 0 1 1 2 1 0 MultiSelectFileCopy BOOL 0 " FALSE" 0 1 1 2 1 0 - cycleCount UINT 0 " 0" 0 6 1 10 1 0 + cycleCount UINT 0 " 4" 0 6 1 10 1 0 i USINT 0 " 0" 0 5 1 10 1 0 ActSubState USINT 0 " 0" 0 5 1 10 1 0 HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 @@ -16,7 +16,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 1 OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 1 + Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 Enable BOOL 0 " FALSE" 3 1 1 2 0 0 DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE @@ -26,235 +26,8 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 0 - FileNames[0] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[1] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[2] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[3] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[4] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[5] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[6] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[7] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[8] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[9] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[10] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[11] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[12] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[13] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[14] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[15] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[16] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[17] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[18] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[19] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[20] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[21] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[22] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[23] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[24] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[25] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[26] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[27] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[28] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[29] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[30] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[31] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[32] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[33] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[34] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[35] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[36] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[37] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[38] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[39] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[40] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[41] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[42] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[43] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[44] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[45] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[46] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[47] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[48] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[49] STRING[80] 0 " *" 3 9 81 1 0 0 - TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 0 - TimeStamps[0] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[1] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[2] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[3] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[4] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[5] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[6] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[7] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[8] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[9] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[10] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[11] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[12] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[13] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[14] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[15] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[16] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[17] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[18] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[19] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[20] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[21] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[22] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[23] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[24] DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 3 11 1 1 0 0 - TimeStamps[25] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[26] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[27] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[40] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[41] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[42] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[43] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[44] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[45] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[46] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[47] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[48] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[49] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - Type DINT[0..49] 0 " *" 2 4 50 0 0 0 - Type[0] DINT 0 " 0" 3 4 1 10 0 0 - Type[1] DINT 0 " 0" 3 4 1 10 0 0 - Type[2] DINT 0 " 0" 3 4 1 10 0 0 - Type[3] DINT 0 " 0" 3 4 1 10 0 0 - Type[4] DINT 0 " 0" 3 4 1 10 0 0 - Type[5] DINT 0 " 0" 3 4 1 10 0 0 - Type[6] DINT 0 " 0" 3 4 1 10 0 0 - Type[7] DINT 0 " 0" 3 4 1 10 0 0 - Type[8] DINT 0 " 0" 3 4 1 10 0 0 - Type[9] DINT 0 " 0" 3 4 1 10 0 0 - Type[10] DINT 0 " 0" 3 4 1 10 0 0 - Type[11] DINT 0 " 0" 3 4 1 10 0 0 - Type[12] DINT 0 " 0" 3 4 1 10 0 0 - Type[13] DINT 0 " 0" 3 4 1 10 0 0 - Type[14] DINT 0 " 0" 3 4 1 10 0 0 - Type[15] DINT 0 " 0" 3 4 1 10 0 0 - Type[16] DINT 0 " 0" 3 4 1 10 0 0 - Type[17] DINT 0 " 0" 3 4 1 10 0 0 - Type[18] DINT 0 " 0" 3 4 1 10 0 0 - Type[19] DINT 0 " 0" 3 4 1 10 0 0 - Type[20] DINT 0 " 0" 3 4 1 10 0 0 - Type[21] DINT 0 " 0" 3 4 1 10 0 0 - Type[22] DINT 0 " 0" 3 4 1 10 0 0 - Type[23] DINT 0 " 0" 3 4 1 10 0 0 - Type[24] DINT 0 " *" 3 4 1 10 0 0 - Type[25] DINT 0 " *" 3 4 1 10 0 0 - Type[26] DINT 0 " *" 3 4 1 10 0 0 - Type[27] DINT 0 " *" 3 4 1 10 0 0 - Type[28] DINT 0 " *" 3 4 1 10 0 0 - Type[29] DINT 0 " *" 3 4 1 10 0 0 - Type[30] DINT 0 " *" 3 4 1 10 0 0 - Type[31] DINT 0 " *" 3 4 1 10 0 0 - Type[32] DINT 0 " *" 3 4 1 10 0 0 - Type[33] DINT 0 " *" 3 4 1 10 0 0 - Type[34] DINT 0 " *" 3 4 1 10 0 0 - Type[35] DINT 0 " *" 3 4 1 10 0 0 - Type[36] DINT 0 " *" 3 4 1 10 0 0 - Type[37] DINT 0 " *" 3 4 1 10 0 0 - Type[38] DINT 0 " *" 3 4 1 10 0 0 - Type[39] DINT 0 " *" 3 4 1 10 0 0 - Type[40] DINT 0 " *" 3 4 1 10 0 0 - Type[41] DINT 0 " *" 3 4 1 10 0 0 - Type[42] DINT 0 " *" 3 4 1 10 0 0 - Type[43] DINT 0 " *" 3 4 1 10 0 0 - Type[44] DINT 0 " *" 3 4 1 10 0 0 - Type[45] DINT 0 " *" 3 4 1 10 0 0 - Type[46] DINT 0 " *" 3 4 1 10 0 0 - Type[47] DINT 0 " *" 3 4 1 10 0 0 - Type[48] DINT 0 " *" 3 4 1 10 0 0 - Type[49] DINT 0 " *" 3 4 1 10 0 0 - Size UDINT[0..49] 0 " *" 2 7 50 0 0 0 - Size[0] UDINT 0 " 0" 3 7 1 10 0 0 - Size[1] UDINT 0 " 0" 3 7 1 10 0 0 - Size[2] UDINT 0 " 0" 3 7 1 10 0 0 - Size[3] UDINT 0 " 0" 3 7 1 10 0 0 - Size[4] UDINT 0 " 0" 3 7 1 10 0 0 - Size[5] UDINT 0 " 0" 3 7 1 10 0 0 - Size[6] UDINT 0 " 0" 3 7 1 10 0 0 - Size[7] UDINT 0 " 0" 3 7 1 10 0 0 - Size[8] UDINT 0 " 0" 3 7 1 10 0 0 - Size[9] UDINT 0 " 0" 3 7 1 10 0 0 - Size[10] UDINT 0 " 0" 3 7 1 10 0 0 - Size[11] UDINT 0 " 0" 3 7 1 10 0 0 - Size[12] UDINT 0 " 0" 3 7 1 10 0 0 - Size[13] UDINT 0 " 0" 3 7 1 10 0 0 - Size[14] UDINT 0 " 0" 3 7 1 10 0 0 - Size[15] UDINT 0 " 0" 3 7 1 10 0 0 - Size[16] UDINT 0 " 0" 3 7 1 10 0 0 - Size[17] UDINT 0 " 0" 3 7 1 10 0 0 - Size[18] UDINT 0 " 0" 3 7 1 10 0 0 - Size[19] UDINT 0 " 0" 3 7 1 10 0 0 - Size[20] UDINT 0 " 0" 3 7 1 10 0 0 - Size[21] UDINT 0 " 0" 3 7 1 10 0 0 - Size[22] UDINT 0 " 0" 3 7 1 10 0 0 - Size[23] UDINT 0 " *" 3 7 1 10 0 0 - Size[24] UDINT 0 " *" 3 7 1 10 0 0 - Size[25] UDINT 0 " *" 3 7 1 10 0 0 - Size[26] UDINT 0 " *" 3 7 1 10 0 0 - Size[27] UDINT 0 " *" 3 7 1 10 0 0 - Size[28] UDINT 0 " *" 3 7 1 10 0 0 - Size[29] UDINT 0 " *" 3 7 1 10 0 0 - Size[30] UDINT 0 " *" 3 7 1 10 0 0 - Size[31] UDINT 0 " *" 3 7 1 10 0 0 - Size[32] UDINT 0 " *" 3 7 1 10 0 0 - Size[33] UDINT 0 " *" 3 7 1 10 0 0 - Size[34] UDINT 0 " *" 3 7 1 10 0 0 - Size[35] UDINT 0 " *" 3 7 1 10 0 0 - Size[36] UDINT 0 " *" 3 7 1 10 0 0 - Size[37] UDINT 0 " *" 3 7 1 10 0 0 - Size[38] UDINT 0 " *" 3 7 1 10 0 0 - Size[39] UDINT 0 " *" 3 7 1 10 0 0 - Size[40] UDINT 0 " *" 3 7 1 10 0 0 - Size[41] UDINT 0 " *" 3 7 1 10 0 0 - Size[42] UDINT 0 " *" 3 7 1 10 0 0 - Size[43] UDINT 0 " *" 3 7 1 10 0 0 - Size[44] UDINT 0 " *" 3 7 1 10 0 0 - Size[45] UDINT 0 " *" 3 7 1 10 0 0 - Size[46] UDINT 0 " *" 3 7 1 10 0 0 - Size[47] UDINT 0 " *" 3 7 1 10 0 0 - Size[48] UDINT 0 " *" 3 7 1 10 0 0 - Size[49] UDINT 0 " *" 3 7 1 10 0 0 - DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 0 - DeviceDataProvider[0] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[2] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[3] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[4] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[5] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[6] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[7] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[8] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[9] STRING[100] 0 " ''" 3 9 101 1 0 0 - FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 0 - FifoSelect[0] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[1] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[2] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[3] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[4] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[5] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[6] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[7] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[8] DINT 0 " 0" 3 4 1 10 0 0 - FifoSelect[9] DINT 0 " 0" 3 4 1 10 0 0 - DeviceName STRING[50] 0 " ''" 2 9 51 1 0 0 FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 TableConfig[0] STRING[120] 0 " ''" 3 9 121 1 0 0 TableConfig[1] STRING[120] 0 " ''" 3 9 121 1 0 0 IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -266,7 +39,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 FifoConfigEnable BOOL 0 " FALSE" 2 1 1 2 0 0 DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 - MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 1 + MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 0 MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 @@ -277,32 +50,33 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I MpBlockStatus[7] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[8] DINT 0 " 0" 1 4 1 10 1 0 MpBlockStatus[9] DINT 0 " 0" 1 4 1 10 1 0 + NameMatch BOOL 0 " FALSE" 0 1 1 2 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 + Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-31-13:38:21" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-31-16:26:09" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-31-13:38:21" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-31-16:55:52" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 - Size UDINT 0 " 964" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-31-13:38:21" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 @@ -351,6 +125,10 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I RangeEnd REAL 0 " 0.0" 3 8 1 10 0 0 Filter STRING[255] 0 " ''" 2 9 256 1 0 0 Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 + PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 + CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 + FileCount UDINT 0 " 4" 3 7 1 10 0 0 + FolderCount UDINT 0 " 3" 3 7 1 10 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -358,6 +136,6 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 + NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 From 670a8513e770ba25ddb5a1efbcc0906f766fb524 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 09:51:56 -0400 Subject: [PATCH 056/159] Fixed some state numbers and comments --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index a1ede580..87ae3fda 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -1123,7 +1123,7 @@ _TEST Enter_Folder(void) switch (TestState) { case 0: - // Set filter value to name of file + // Select folder to enter for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) @@ -1133,43 +1133,46 @@ _TEST Enter_Folder(void) break; case 1: - // Refresh MpFileManagerUIConnect + // Give HMI command to enter folder switch (ActSubState) { case 0: - ActSubState = 100; + // Acts as a delay to let the folder selection make its way to FileMgr task + ActSubState = 1; break; - case 100: + case 1: HmiFile.Commands.EnterFolder = 1; - ActSubState = 1; + ActSubState = 2; break; - case 1: + case 2: HmiFile.Commands.EnterFolder = 0; TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); - ActSubState = 2; + ActSubState = 3; break; - case 2: + case 3: + // Check if current directory matches what is expected TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); if(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) == 0) NameMatch = 1; - ActSubState = 3; + ActSubState = 4; break; - case 3: + case 4: + // Go back up to root folder HmiFile.Commands.FolderUp = 1; - ActSubState = 4; + ActSubState = 5; break; - case 4: + case 5: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.FolderUp = 0; - ActSubState = 5; + ActSubState = 6; break; - case 5: + case 6: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); TestState = 2; break; @@ -1177,7 +1180,6 @@ _TEST Enter_Folder(void) break; case 2: - // Check if copied file was found TEST_ASSERT(NameMatch); TEST_DONE; break; From 6bd8a07b94742577e882750dddc324b2db71c000 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 10:00:18 -0400 Subject: [PATCH 057/159] Implemented go up level test --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 75 ++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 87ae3fda..78f01c51 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -1186,6 +1186,78 @@ _TEST Enter_Folder(void) } } +_TEST Go_Up_Level(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select folder to enter + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + + case 1: + // Give HMI command to enter folder + switch (ActSubState) + { + case 0: + // Acts as a delay to let the folder selection make its way to FileMgr task + ActSubState = 1; + break; + + case 1: + HmiFile.Commands.EnterFolder = 1; + ActSubState = 2; + break; + + case 2: + HmiFile.Commands.EnterFolder = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + ActSubState = 3; + break; + + case 3: + // Check if current directory matches what is expected + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + TEST_FAIL_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) != 0); + ActSubState = 4; + break; + + case 4: + // Go back up to root folder + HmiFile.Commands.FolderUp = 1; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); + HmiFile.Commands.FolderUp = 0; + ActSubState = 6; + break; + + case 6: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + if(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &"") == 0) + NameMatch = 1; + TestState = 2; + break; + } + break; + + case 2: + TEST_ASSERT(NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -1776,7 +1848,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-03-31 20:23:22Z +LastUpdated: 2023-04-03 13:57:39Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1792,6 +1864,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Multiselect", Multiselect), new_TestFixture("Search", Search), new_TestFixture("Enter_Folder", Enter_Folder), + new_TestFixture("Go_Up_Level", Go_Up_Level), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), From 706e32ed89702bcf6c8a4b0ab0f595aa07ca3e44 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 10:04:36 -0400 Subject: [PATCH 058/159] TEST_FAIL_CONDITION changed to TEST_ABORT_CONDITION, it now compiles --- mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 78f01c51..a58e9264 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -1226,7 +1226,7 @@ _TEST Go_Up_Level(void) case 3: // Check if current directory matches what is expected TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); - TEST_FAIL_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) != 0); + TEST_ABORT_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) != 0); ActSubState = 4; break; From b89d1b3559ffbbe76e6ede83cc9405f8e529d97c Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 11:22:32 -0400 Subject: [PATCH 059/159] Implemented change sort test --- .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 256 -> 300 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 54 +++++++++++++++++- .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 1 + 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc index 5be1ebf2b4f517c97f8185651ab934db1768dbe8..b6b0989439df33efc900b63cb20ef34a19837d3c 100644 GIT binary patch literal 300 zcmdO%?#rFm>3usbr_()0Z9L52NEC=51@>Oz_;dzXABGw5-5lQfO@e5 z<`+P5Mg}v6c!miG6^slFml*CcvbbgDq=uvxmst50fSA6Cd5P(%MWLR~`FVM%$t8Nh zC5a`a#SDZMf^_Qz=NFau7p0^YF)(ryG8wGFC$qRj&$A>ow>a7$R?jD~xWqRFm>3us8DPKx$oOpxBy@n-1Bm|!e5-EsWMF`hKmioMgrpTk zg82oI%gA8H5YJG?FcBuj#=x+QVIw1pTV_sbNNRD3m2Uxv>6@6Bn4Ve`>gk-HmzSDc zq8D6}SW;Tdz{m<$=$Kp*T$%(DPel Date: Mon, 3 Apr 2023 12:18:46 -0400 Subject: [PATCH 060/159] Implemented delete file test --- .../Diagnosis/Simulation/PC/FileMgr.PVM | 469 +++--------------- .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 432 -> 260 bytes .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 44 +- .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 300 -> 300 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 58 ++- .../UnitTest/PC_any/UnitTest/FileMgr.vvm | 2 + 6 files changed, 148 insertions(+), 425 deletions(-) diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM index 01e14d89..2a117d6c 100644 --- a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM +++ b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM @@ -1,60 +1,60 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=293 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=360 ASCIIString=0 name type force value level type len format place expand specs MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 134409288" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + MpLink UDINT 0 " *" 1 7 1 10 0 0 + Enable BOOL 0 " *" 1 1 1 2 0 0 + ErrorReset BOOL 0 " *" 1 1 1 2 0 0 UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 1 - FileListSize UINT 0 " 50" 2 6 1 10 0 0 - FileListScrollWindow USINT 0 " 1" 2 5 1 10 0 0 - UIConnect UDINT 0 " 141168718" 1 7 1 10 0 0 - Active BOOL 0 " TRUE" 1 1 1 2 0 0 - Error BOOL 0 " FALSE" 1 1 1 2 0 0 - StatusID DINT 0 " 0" 1 4 1 10 0 0 + FileListSize UINT 0 " *" 2 6 1 10 0 0 + FileListScrollWindow USINT 0 " *" 2 5 1 10 0 0 + UIConnect UDINT 0 " *" 1 7 1 10 0 0 + Active BOOL 0 " *" 1 1 1 2 0 0 + Error BOOL 0 " *" 1 1 1 2 0 0 + StatusID DINT 0 " *" 1 4 1 10 0 0 Info MpFileInfoType 0 " *" 1 24 1 0 0 1 Diag MpFileDiagType 0 " *" 2 24 1 0 0 1 StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 1 - ID DINT 0 " 0" 4 4 1 10 0 0 e,0,mpFI + ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpFI - Severity DINT 0 " 0" 4 4 1 10 0 0 e,0,mpCO + Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - Code UINT 0 " 0" 4 6 1 10 0 0 + Code UINT 0 " *" 4 6 1 10 0 0 Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " 164041552" 2 7 1 10 0 0 - State UDINT 0 " 3" 2 7 1 10 0 0 + pObject UDINT 0 " *" 2 7 1 10 0 0 + State UDINT 0 " *" 2 7 1 10 0 0 HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 0 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Delete BOOL 0 " *" 2 1 1 2 0 0 + FolderUp BOOL 0 " *" 2 1 1 2 0 0 + EnterFolder BOOL 0 " *" 2 1 1 2 0 0 + MultiSelect BOOL 0 " *" 2 1 1 2 0 0 + CheckFolder BOOL 0 " *" 2 1 1 2 0 0 Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 - OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + OldSortOrder DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 - FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE - - ScanInterval DINT 0 " 60" 3 4 1 10 0 0 - MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 - MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 - MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 + Enable BOOL 0 " *" 3 1 1 2 0 0 + DeviceName STRING[50] 0 " *" 3 9 51 1 0 0 + FifoType DINT 0 " *" 3 4 1 10 0 0 e,0,FILE + + ScanInterval DINT 0 " *" 3 4 1 10 0 0 + MaxFileAge UINT 0 " *" 3 6 1 10 0 0 + MaxFolderSize REAL 0 " *" 3 8 1 10 0 0 + MaxNumberOfFiles UINT 0 " *" 3 6 1 10 0 0 Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 0 - FileNames[0] STRING[80] 0 " 'Backgrounds 2.0'" 3 9 81 1 0 0 - FileNames[1] STRING[80] 0 " 'CSVformat'" 3 9 81 1 0 0 - FileNames[2] STRING[80] 0 " 'FileTestDir'" 3 9 81 1 0 0 - FileNames[3] STRING[80] 0 " 'XMLformat'" 3 9 81 1 0 0 - FileNames[4] STRING[80] 0 " 'Default.par'" 3 9 81 1 0 0 - FileNames[5] STRING[80] 0 " 'Machine.mcfg'" 3 9 81 1 0 0 - FileNames[6] STRING[80] 0 " 'Package.pkg'" 3 9 81 1 0 0 - FileNames[7] STRING[80] 0 " 'TestFile.xml'" 3 9 81 1 0 0 - FileNames[8] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[9] STRING[80] 0 " ''" 3 9 81 1 0 0 - FileNames[10] STRING[80] 0 " ''" 3 9 81 1 0 0 + FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 1 + FileNames[0] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[1] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[2] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[3] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[4] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[5] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[6] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[7] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[8] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[9] STRING[80] 0 " *" 3 9 81 1 0 0 + FileNames[10] STRING[80] 0 " *" 3 9 81 1 0 0 FileNames[11] STRING[80] 0 " *" 3 9 81 1 0 0 FileNames[12] STRING[80] 0 " *" 3 9 81 1 0 0 FileNames[13] STRING[80] 0 " *" 3 9 81 1 0 0 @@ -247,17 +247,17 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Size[47] UDINT 0 " *" 3 7 1 10 0 0 Size[48] UDINT 0 " *" 3 7 1 10 0 0 Size[49] UDINT 0 " *" 3 7 1 10 0 0 - DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 0 + DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 1 DeviceDataProvider[0] STRING[100] 0 " *" 3 9 101 1 0 0 DeviceDataProvider[1] STRING[100] 0 " *" 3 9 101 1 0 0 DeviceDataProvider[2] STRING[100] 0 " *" 3 9 101 1 0 0 DeviceDataProvider[3] STRING[100] 0 " *" 3 9 101 1 0 0 DeviceDataProvider[4] STRING[100] 0 " *" 3 9 101 1 0 0 DeviceDataProvider[5] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[6] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[7] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[8] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[9] STRING[100] 0 " *" 3 9 101 1 0 0 + DeviceDataProvider[6] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[7] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[8] STRING[100] 0 " ''" 3 9 101 1 0 0 + DeviceDataProvider[9] STRING[100] 0 " ''" 3 9 101 1 0 0 FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 0 FifoSelect[0] DINT 0 " *" 3 4 1 10 0 0 FifoSelect[1] DINT 0 " *" 3 4 1 10 0 0 @@ -271,20 +271,20 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I FifoSelect[9] DINT 0 " *" 3 4 1 10 0 0 DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 - TableConfig[0] STRING[120] 0 " *" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " *" 3 9 121 1 0 0 - IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 + TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":6,"to":9, "visible":false}]}'" 3 9 121 1 0 0 + TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":7,"to":49, "visible":false}]}'" 3 9 121 1 0 0 + IsFolder BOOL 0 " TRUE" 2 1 1 2 0 0 BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 - SelectedIndex USINT 0 " 6" 2 5 1 10 0 0 + SelectedIndex USINT 0 " 2" 2 5 1 10 0 0 FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI + Status DINT 0 " 7" 1 4 1 10 0 0 e,0,mpFI DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 SelectedIndex UINT 0 " *" 2 6 1 10 0 0 @@ -307,14 +307,14 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 + ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 + IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 @@ -345,350 +345,6 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[11] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[12] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[13] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[14] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[15] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[16] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[17] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[18] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[19] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[20] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[21] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[22] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[23] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[24] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[25] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[26] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[27] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[28] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[29] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[30] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[31] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[32] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[33] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[34] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[35] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[36] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[37] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[38] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[39] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[40] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[41] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[42] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[43] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[44] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[45] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[46] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[47] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[48] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[49] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 IsFolder BOOL 0 " *" 5 1 1 2 0 0 PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 @@ -715,3 +371,10 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I NewName STRING[255] 0 " ''" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 1 + LayerStatus UINT 0 " 1" 2 6 1 10 0 0 + Type DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + ErrorNumber UINT 0 " 0" 2 6 1 10 0 0 + Confirm BOOL 0 " FALSE" 2 1 1 2 0 0 + Cancel BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc index e893d0f3f9355c1b3c028a308e3cb4bf99687d4d..bef43b393570b7af97ccc17862c2c43ec2cf8bd4 100644 GIT binary patch delta 122 zcmdnM+`?p`J>8dK@|%6FtFHfSU|?ckU}Rx{0tX=NKO0Es0I>&9hC$$4b6ipb1DKp> zVJg@Flz;*@28Oi^+b7l;O^#s{WOGT)Ni9j8cwSu$!U7uXmYI|4n_k4gaK`aZG5|&o BAN>FT literal 432 zcmdO%?#nRw&A!%E*MBxJFflMNZeV}{2O#bD9!Tf_u?J9Qjlj2>vLXfs2niHK0Za^x zD111l7Q|v?Fk^^g=wR5w@Qjg*(U5_Gg@G}GF^Q4IEi)(8H@(Qpw*bsa%u7s9EeiE? z&d;`?LZr%o#Nv`vBGtO)m82HA<>#cN79r{I$jyY< znV*}Rn3qzl2T>7PfKLsIQLHd8!Hk0VRWCR-2k7(E6wkbr)CypfK$QUlF@DF}4*=5q Be4zjU diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 430118fb..ba00e5ee 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,5 +1,5 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=8 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=52 ASCIIString=0 name type force value level type len format place expand specs MultiSelectDirCopy BOOL 0 " FALSE" 0 1 1 2 1 0 MultiSelectFileCopy BOOL 0 " FALSE" 0 1 1 2 1 0 @@ -13,21 +13,21 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 1 + Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " FALSE" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 - FifoType DINT 0 " 0" 3 4 1 10 0 0 e,0,FILE + Enable BOOL 0 " *" 3 1 1 2 0 0 + DeviceName STRING[50] 0 " *" 3 9 51 1 0 0 + FifoType DINT 0 " *" 3 4 1 10 0 0 e,0,FILE - ScanInterval DINT 0 " 60" 3 4 1 10 0 0 - MaxFileAge UINT 0 " 365" 3 6 1 10 0 0 - MaxFolderSize REAL 0 " 1000.0" 3 8 1 10 0 0 - MaxNumberOfFiles UINT 0 " 20" 3 6 1 10 0 0 + ScanInterval DINT 0 " *" 3 4 1 10 0 0 + MaxFileAge UINT 0 " *" 3 6 1 10 0 0 + MaxFolderSize REAL 0 " *" 3 8 1 10 0 0 + MaxNumberOfFiles UINT 0 " *" 3 6 1 10 0 0 Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 0 + TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 TableConfig[0] STRING[120] 0 " ''" 3 9 121 1 0 0 TableConfig[1] STRING[120] 0 " ''" 3 9 121 1 0 0 IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -40,16 +40,16 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I FifoConfigEnable BOOL 0 " FALSE" 2 1 1 2 0 0 DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 0 - MpBlockStatus[0] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[1] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[2] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[3] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[4] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[5] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[6] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[7] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[8] DINT 0 " 0" 1 4 1 10 1 0 - MpBlockStatus[9] DINT 0 " 0" 1 4 1 10 1 0 + MpBlockStatus[0] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[1] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[2] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[3] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[4] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[5] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[6] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[7] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[8] DINT 0 " *" 1 4 1 10 1 0 + MpBlockStatus[9] DINT 0 " *" 1 4 1 10 1 0 NameMatch BOOL 0 " FALSE" 0 1 1 2 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI @@ -66,7 +66,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-31-16:55:52" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-04-03-11:18:56" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 @@ -124,6 +124,8 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 RangeEnd REAL 0 " 0.0" 3 8 1 10 0 0 Filter STRING[255] 0 " ''" 2 9 256 1 0 0 + SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc index b6b0989439df33efc900b63cb20ef34a19837d3c..ce6635064ef25d037c135b274449b9d32672c0b6 100644 GIT binary patch delta 28 kcmZ3(w1#PdK1cK|28M6V(YGd=J2J9OtX$9XQAYj%0GE;qzyJUM delta 28 kcmZ3(w1#PdK1ake28M6V5zi)?J2Em(tX$9XN?!Od0GMeCzyJUM diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 92ce54c2..e5bc80c7 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -1307,6 +1307,61 @@ _TEST Change_Sort(void) } } +_TEST Delet_File(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select file to be deleted + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + + case 1: + // Delete file + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Delete = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_DELETE); + MpFileManagerUIConnect.File.Delete = 0; + ActSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.MessageBox.Confirm = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect.MessageBox.Confirm = 0; + ActSubState = 2; + break; + + case 2: + // Check for file + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) + NameMatch = 1; + } + TestState = 2; + break; + } + break; + + case 2: + // Check if file was deleted + TEST_ASSERT(!NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -1897,7 +1952,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-04-03 14:13:38Z +LastUpdated: 2023-04-03 15:28:05Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1915,6 +1970,7 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Enter_Folder", Enter_Folder), new_TestFixture("Go_Up_Level", Go_Up_Level), new_TestFixture("Change_Sort", Change_Sort), + new_TestFixture("Delet_File", Delet_File), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), diff --git a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm index 987ae3a6..72c6efba 100644 --- a/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm +++ b/mappFramework/Physical/UnitTest/PC_any/UnitTest/FileMgr.vvm @@ -26,4 +26,6 @@ VAR_CONFIG ::FileTest:MpFileManagerUIConnect.File.List.Items[1].IsSelected AT %Q.::FileMgr:MpFileManagerUIConnect.File.List.Items[1].IsSelected; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.Filter AT %Q.::FileMgr:MpFileManagerUIConnect.File.Filter; (*Insert your comment here...*) ::FileTest:MpFileManagerUIConnect.File.SortOrder AT %Q.::FileMgr:MpFileManagerUIConnect.File.SortOrder; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.File.Delete AT %Q.::FileMgr:MpFileManagerUIConnect.File.Delete; (*Insert your comment here...*) + ::FileTest:MpFileManagerUIConnect.MessageBox.Confirm AT %Q.::FileMgr:MpFileManagerUIConnect.MessageBox.Confirm; (*Insert your comment here...*) END_VAR From cf3b01985fb4c0c47c67f0d2c70b0444947fed91 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 12:25:06 -0400 Subject: [PATCH 061/159] Implemented delete directory test --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 62 ++++++++++++++++++- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index e5bc80c7..69795c77 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -1307,7 +1307,7 @@ _TEST Change_Sort(void) } } -_TEST Delet_File(void) +_TEST Delete_File(void) { // TEST_DONE; TIMEOUT_TEST_CASE; @@ -1362,6 +1362,61 @@ _TEST Delet_File(void) } } +_TEST Delete_Directory(void) +{ + // TEST_DONE; + TIMEOUT_TEST_CASE; + + switch (TestState) + { + case 0: + // Select directory to be deleted + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + HmiFile.Status.SelectedIndex = i; + } + TestState = 1; + break; + + case 1: + // Delete file + switch (ActSubState) + { + case 0: + MpFileManagerUIConnect.File.Delete = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_DELETE); + MpFileManagerUIConnect.File.Delete = 0; + ActSubState = 1; + break; + + case 1: + MpFileManagerUIConnect.MessageBox.Confirm = 1; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect.MessageBox.Confirm = 0; + ActSubState = 2; + break; + + case 2: + // Check for file + for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) + { + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + NameMatch = 1; + } + TestState = 2; + break; + } + break; + + case 2: + // Check if file was deleted + TEST_ASSERT(!NameMatch); + TEST_DONE; + break; + } +} + _TEST FIFO_20(void) { TEST_DONE; @@ -1952,7 +2007,7 @@ _TEST FIFO_MaxFolderSize_Keep120Files(void) B+R UnitTest: This is generated code. Do not edit! Do not move! Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2023-04-03 15:28:05Z +LastUpdated: 2023-04-03 16:22:59Z By B+R UnitTest Helper Version: 2.0.1.59 */ UNITTEST_FIXTURES(fixtures) @@ -1970,7 +2025,8 @@ UNITTEST_FIXTURES(fixtures) new_TestFixture("Enter_Folder", Enter_Folder), new_TestFixture("Go_Up_Level", Go_Up_Level), new_TestFixture("Change_Sort", Change_Sort), - new_TestFixture("Delet_File", Delet_File), + new_TestFixture("Delete_File", Delete_File), + new_TestFixture("Delete_Directory", Delete_Directory), new_TestFixture("FIFO_20", FIFO_20), new_TestFixture("FIFO_60", FIFO_60), new_TestFixture("FIFO_140", FIFO_140), From 2e40101b9083308c866bade4dd014ab9bca5f631 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 13:04:36 -0400 Subject: [PATCH 062/159] Got rid of commented code and added some comments --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 52 ++++++++----------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 69795c77..602816ce 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -219,7 +219,6 @@ _CYCLIC_SET(void) _TEST Create_Directory(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -301,7 +300,6 @@ _TEST Create_Directory(void) _TEST Add_File(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; FileCreate(&FileCreate_0); @@ -309,7 +307,7 @@ _TEST Add_File(void) switch (TestState) { - case 0: // Arrange + case 0: // Select Recipe file device and input file name switch (ArrangeSubState) { @@ -341,7 +339,7 @@ _TEST Add_File(void) } break; - case 1: // Act + case 1: // Create file switch (ActSubState) { @@ -392,7 +390,7 @@ _TEST Add_File(void) } break; - case 2: // Assert + case 2: // Check save location for file TEST_ASSERT(NameMatch); TEST_DONE; @@ -402,13 +400,12 @@ _TEST Add_File(void) _TEST Copy_File(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) { case 0: - // Select Recipe file device and input file name + // Select Recipe file device and input name of file to be copied switch (ArrangeSubState) { case 0: @@ -473,13 +470,12 @@ _TEST Copy_File(void) _TEST Copy_Directory(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) { case 0: - // Select Recipe file device and input directory name + // Select Recipe file device and input name of directory to be copied switch (ArrangeSubState) { case 0: @@ -544,7 +540,6 @@ _TEST Copy_Directory(void) _TEST Rename_File(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -610,7 +605,6 @@ _TEST Rename_File(void) _TEST Rename_Directory(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -682,13 +676,12 @@ _TEST Rename_Directory(void) _TEST Cut_Paste_File(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) { case 0: - // Select Recipe file device and input file name + // Select Recipe file device and input name of file to be cut switch (ArrangeSubState) { case 0: @@ -746,6 +739,7 @@ _TEST Cut_Paste_File(void) break; case 5: + // Check paste location for cut file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -765,7 +759,7 @@ _TEST Cut_Paste_File(void) break; case 7: - // Check file list for copied file + // Check old location for cut file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -780,7 +774,7 @@ _TEST Cut_Paste_File(void) break; case 2: - // Check if copied file was found + // Check new and old locations for file TEST_ASSERT(InNewLocation); TEST_ASSERT(!InOldLocation); TEST_DONE; @@ -790,13 +784,12 @@ _TEST Cut_Paste_File(void) _TEST Cut_Paste_Directory(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) { case 0: - // Select Recipe file device and input directory name + // Select Recipe file device and input name of directory to be cut switch (ArrangeSubState) { case 0: @@ -837,6 +830,7 @@ _TEST Cut_Paste_Directory(void) break; case 3: + // Find folder to paste directory into TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -882,6 +876,7 @@ _TEST Cut_Paste_Directory(void) break; case 10: + // Check new location for cut directory TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -901,7 +896,7 @@ _TEST Cut_Paste_Directory(void) break; case 12: - // Check file list for copied directory + // Check old location for cut directory TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -916,7 +911,7 @@ _TEST Cut_Paste_Directory(void) break; case 2: - // Check if copied directory was found + // Check new and old locations for directory TEST_ASSERT(InNewLocation); TEST_ASSERT(!InOldLocation); TEST_DONE; @@ -926,7 +921,6 @@ _TEST Cut_Paste_Directory(void) _TEST Multiselect(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1044,7 +1038,7 @@ _TEST Multiselect(void) break; case 2: - // Check if copied file was found + // Check if copied file and directory were found TEST_ASSERT(MultiSelectFileCopy); TEST_ASSERT(MultiSelectDirCopy); TEST_DONE; @@ -1054,7 +1048,6 @@ _TEST Multiselect(void) _TEST Search(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1082,6 +1075,7 @@ _TEST Search(void) break; case 2: + // Check if the first item in the file list is the desired file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[0].Name, &CreateFileName) == 0) NameMatch = 1; @@ -1089,6 +1083,7 @@ _TEST Search(void) break; case 3: + // Reset filter brsmemcpy(&MpFileManagerUIConnect.File.Filter, &"", sizeof(MpFileManagerUIConnect.File.Filter)); MpFileManagerUIConnect.File.Refresh = 1; ActSubState = 4; @@ -1108,7 +1103,7 @@ _TEST Search(void) break; case 2: - // Check if copied file was found + // Check if filter worked TEST_ASSERT(NameMatch); TEST_DONE; break; @@ -1117,7 +1112,6 @@ _TEST Search(void) _TEST Enter_Folder(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1188,7 +1182,6 @@ _TEST Enter_Folder(void) _TEST Go_Up_Level(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1224,7 +1217,7 @@ _TEST Go_Up_Level(void) break; case 3: - // Check if current directory matches what is expected + // Check if folder was successfully entered TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); TEST_ABORT_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) != 0); ActSubState = 4; @@ -1243,6 +1236,7 @@ _TEST Go_Up_Level(void) break; case 6: + // Check if folder level went back up to the root TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); if(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &"") == 0) NameMatch = 1; @@ -1260,7 +1254,6 @@ _TEST Go_Up_Level(void) _TEST Change_Sort(void) { -// TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1272,15 +1265,16 @@ _TEST Change_Sort(void) break; case 1: - // Give HMI command to enter folder switch (ActSubState) { case 0: + // Wait for sort to take effect TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_SORT); ActSubState = 1; break; case 1: + // Make sure sort worked correctly TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[0].Name, &DirName) == 0) NameMatch = 1; @@ -1309,7 +1303,6 @@ _TEST Change_Sort(void) _TEST Delete_File(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1364,7 +1357,6 @@ _TEST Delete_File(void) _TEST Delete_Directory(void) { - // TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) From 4365721e445e1fa1aad0ac07d76911f4f6f1b649 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Mon, 3 Apr 2023 15:58:20 -0400 Subject: [PATCH 063/159] AAZM-589 Fixed Chinese report generation bug by changing the font for Chinese reports --- .../Simulation/PC/mappServices/Report/SimpleCfg.mpreportcore | 1 + 1 file changed, 1 insertion(+) diff --git a/mappFramework/Physical/Simulation/PC/mappServices/Report/SimpleCfg.mpreportcore b/mappFramework/Physical/Simulation/PC/mappServices/Report/SimpleCfg.mpreportcore index 5fe1b916..f63bc3f1 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/Report/SimpleCfg.mpreportcore +++ b/mappFramework/Physical/Simulation/PC/mappServices/Report/SimpleCfg.mpreportcore @@ -14,6 +14,7 @@ + From 1efeb9a3056503941f4ffe38492e65f21ae955d7 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Tue, 4 Apr 2023 16:53:22 -0400 Subject: [PATCH 064/159] Manually forced and checked fail cases up to Rename_Directory Tidied up code along the way --- .../Diagnosis/UnitTest/PC_any/FileMgr.PVM | 184 ------------------ .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 147 ++++++-------- .../Diagnosis/UnitTest/PC_any/FileTest.tc | Bin 300 -> 0 bytes .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 77 ++++++-- 4 files changed, 124 insertions(+), 284 deletions(-) delete mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM delete mode 100644 mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM deleted file mode 100644 index 90769336..00000000 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileMgr.PVM +++ /dev/null @@ -1,184 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=39 ASCIIString=0 - name type force value level type len format place expand specs - HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 - OldSortOrder DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - - Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " *" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " ''" 3 9 51 1 0 0 l - FifoType DINT 0 " *" 3 4 1 10 0 0 e,0,FILE - - ScanInterval DINT 0 " *" 3 4 1 10 0 0 - MaxFileAge UINT 0 " *" 3 6 1 10 0 0 - MaxFolderSize REAL 0 " *" 3 8 1 10 0 0 - MaxNumberOfFiles UINT 0 " *" 3 6 1 10 0 0 - Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 ( - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 l - IsFolder BOOL 0 " TRUE" 2 1 1 2 0 0 - BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 - DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE - - SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 - FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI - - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 1 - DeviceNames STRING[50][0..9] 0 " *" 2 9 51 0 0 1 ( - DeviceNames[0] STRING[50] 0 " 'mappRecipeFiles'" 3 9 51 1 0 0 ( - DeviceNames[1] STRING[50] 0 " 'mappAuditFiles'" 3 9 51 1 0 0 ( - DeviceNames[2] STRING[50] 0 " 'mappReportFiles'" 3 9 51 1 0 0 ( - DeviceNames[3] STRING[50] 0 " 'mappBackupFiles'" 3 9 51 1 0 0 ( - DeviceNames[4] STRING[50] 0 " 'mappAlarmXFiles'" 3 9 51 1 0 0 ( - DeviceNames[5] STRING[50] 0 " 'mappUserXFiles'" 3 9 51 1 0 0 ( - DeviceNames[6] STRING[50] 0 " ''" 3 9 51 1 0 0 ( - DeviceNames[7] STRING[50] 0 " ''" 3 9 51 1 0 0 ( - DeviceNames[8] STRING[50] 0 " ''" 3 9 51 1 0 0 ( - DeviceNames[9] STRING[50] 0 " ''" 3 9 51 1 0 0 ( - SelectedIndex UINT 0 " 0" 2 6 1 10 0 0 - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 0 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 0 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 l - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 l - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 l - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 l - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 l - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 ( - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " ''" 5 9 256 1 0 0 l - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - PageUp BOOL 0 " *" 3 1 1 2 0 0 - StepUp BOOL 0 " *" 3 1 1 2 0 0 - PageDown BOOL 0 " *" 3 1 1 2 0 0 - StepDown BOOL 0 " *" 3 1 1 2 0 0 - RangeStart REAL 0 " *" 3 8 1 10 0 0 - RangeEnd REAL 0 " *" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 ( - SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 - CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 l - FileCount UDINT 0 " 4" 3 7 1 10 0 0 - FolderCount UDINT 0 " 3" 3 7 1 10 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - Copy BOOL 0 " FALSE" 2 1 1 2 0 0 - Cut BOOL 0 " FALSE" 2 1 1 2 0 0 - Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 l - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 0 - LayerStatus UINT 0 " *" 2 6 1 10 0 0 - Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - - ErrorNumber UINT 0 " *" 2 6 1 10 0 0 - Confirm BOOL 0 " *" 2 1 1 2 0 0 - Cancel BOOL 0 " *" 2 1 1 2 0 0 - DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 - MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " 115353732" 1 7 1 10 0 0 - Enable BOOL 0 " TRUE" 1 1 1 2 0 0 - ErrorReset BOOL 0 " *" 1 1 1 2 0 0 - UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 0 - FileListSize UINT 0 " *" 2 6 1 10 0 0 - FileListScrollWindow USINT 0 " *" 2 5 1 10 0 0 - UIConnect UDINT 0 " *" 1 7 1 10 0 0 - Active BOOL 0 " *" 1 1 1 2 0 0 - Error BOOL 0 " *" 1 1 1 2 0 0 - StatusID DINT 0 " *" 1 4 1 10 0 0 - Info MpFileInfoType 0 " *" 1 24 1 0 0 0 - Diag MpFileDiagType 0 " *" 2 24 1 0 0 0 - StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 0 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpFI - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 0 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index ba00e5ee..5f2f2690 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,115 +1,86 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 Index=52 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=20 ASCIIString=0 name type force value level type len format place expand specs - MultiSelectDirCopy BOOL 0 " FALSE" 0 1 1 2 1 0 - MultiSelectFileCopy BOOL 0 " FALSE" 0 1 1 2 1 0 - cycleCount UINT 0 " 4" 0 6 1 10 1 0 - i USINT 0 " 0" 0 5 1 10 1 0 - ActSubState USINT 0 " 0" 0 5 1 10 1 0 - HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 - OldSortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " *" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " *" 3 9 51 1 0 0 - FifoType DINT 0 " *" 3 4 1 10 0 0 e,0,FILE - - ScanInterval DINT 0 " *" 3 4 1 10 0 0 - MaxFileAge UINT 0 " *" 3 6 1 10 0 0 - MaxFolderSize REAL 0 " *" 3 8 1 10 0 0 - MaxNumberOfFiles UINT 0 " *" 3 6 1 10 0 0 - Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 - TableConfig[0] STRING[120] 0 " ''" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " ''" 3 9 121 1 0 0 - IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 - DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE - - AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 - FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 - SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 - FifoConfigEnable BOOL 0 " FALSE" 2 1 1 2 0 0 - DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 - MpBlockStatus DINT[0..9] 0 " *" 0 4 10 0 1 0 - MpBlockStatus[0] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[1] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[2] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[3] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[4] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[5] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[6] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[7] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[8] DINT 0 " *" 1 4 1 10 1 0 - MpBlockStatus[9] DINT 0 " *" 1 4 1 10 1 0 - NameMatch BOOL 0 " FALSE" 0 1 1 2 1 0 + cycleCount UINT 0 " 0" 0 6 1 10 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-31-16:26:09" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-04-04-13:46:36" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'FileTestDir'" 5 9 256 1 0 0 + Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-04-03-11:18:56" 5 11 1 1 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 + Size UDINT 0 " 964" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Machine.mcfg'" 5 9 256 1 0 0 + Size UDINT 0 " 981" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " 'Package.pkg'" 5 9 256 1 0 0 + Size UDINT 0 " 548" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 + ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " ''" 5 9 256 1 0 0 + Size UDINT 0 " 0" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 + ItemType DINT 0 " 0" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 + IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[8] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - Items[10] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[9] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 @@ -129,8 +100,8 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 1 CurrentDir STRING[255] 0 " ''" 3 9 256 1 0 0 - FileCount UDINT 0 " 4" 3 7 1 10 0 0 - FolderCount UDINT 0 " 3" 3 7 1 10 0 0 + FileCount UDINT 0 " 5" 3 7 1 10 0 0 + FolderCount UDINT 0 " 4" 3 7 1 10 0 0 EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 @@ -138,6 +109,14 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=123 Type=100 Scope=37 Force=37 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 + NewName STRING[255] 0 " 'FileTestDir'" 2 9 256 1 0 0 Rename BOOL 0 " FALSE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 1 + LayerStatus UINT 0 " 0" 2 6 1 10 0 0 + Type DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + + ErrorNumber UINT 0 " 0" 2 6 1 10 0 0 + Confirm BOOL 0 " FALSE" 2 1 1 2 0 0 + Cancel BOOL 0 " FALSE" 2 1 1 2 0 0 + DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.tc deleted file mode 100644 index ce6635064ef25d037c135b274449b9d32672c0b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmdO%?#rFm>3usbr_()0Z9L52NEC=51@>Oz_;e;TMP^k5-5lQfO@e5 z<`+P5Mg}v6c!miG6>JO)ml*CcvbbgDq=uvxmst50fSA6Cd5P(%MWLR~`FVM%$t8Nh zC5a`a#SDZMf^_Qz=NFau7p0^YF)(ryG8wGFC$qRj&$A>ow>a7$R?jD~xWqR Date: Wed, 5 Apr 2023 14:16:36 -0400 Subject: [PATCH 065/159] Checked all test fail conditions and made slight timing changes to code along the way --- .../Diagnosis/UnitTest/PC_any/FileTest.PVM | 124 +++++++++------ .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 148 ++++++++++++++---- 2 files changed, 190 insertions(+), 82 deletions(-) diff --git a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM index 5f2f2690..ffd8efae 100644 --- a/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM +++ b/mappFramework/Diagnosis/UnitTest/PC_any/FileTest.PVM @@ -1,7 +1,29 @@ WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileTest -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=20 ASCIIString=0 +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=9 ASCIIString=0 name type force value level type len format place expand specs - cycleCount UINT 0 " 0" 0 6 1 10 1 0 + TestState USINT 0 " 0" 0 5 1 10 1 0 + ArrangeSubState USINT 0 " 0" 0 5 1 10 1 0 + ActSubState USINT 0 " 0" 0 5 1 10 1 0 + HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 1 + Delete BOOL 0 " FALSE" 2 1 1 2 0 0 + FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 + EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 + CheckFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + Status FileHmiStatusType 0 " *" 1 24 1 0 0 0 + DeviceName STRING[50] 0 " ''" 2 9 51 1 0 0 + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 + IsFolder BOOL 0 " FALSE" 2 1 1 2 0 0 + BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 + DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE + + AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 + FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 + SelectedIndex USINT 0 " 0" 2 5 1 10 0 0 + FifoConfigEnable BOOL 0 " FALSE" 2 1 1 2 0 0 + DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 + cycleCount UINT 0 " 4" 0 6 1 10 1 0 MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpFI @@ -9,46 +31,6 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-04-04-13:46:36" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Default.par'" 5 9 256 1 0 0 - Size UDINT 0 " 964" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Machine.mcfg'" 5 9 256 1 0 0 - Size UDINT 0 " 981" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Package.pkg'" 5 9 256 1 0 0 - Size UDINT 0 " 548" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-04-04-16:48:25" 5 11 1 1 0 0 - ItemType DINT 0 " 2" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 @@ -56,7 +38,7 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 - Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " ''" 5 9 256 1 0 0 Size UDINT 0 " 0" 5 7 1 10 0 0 LastModified DATE_AND_TIME 0 " DT#1970-01-01-00:00:00" 5 11 1 1 0 0 @@ -64,6 +46,46 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 IsFolder BOOL 0 " FALSE" 5 1 1 2 0 0 + Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 + Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 + Name STRING[255] 0 " *" 5 9 256 1 0 0 + Size UDINT 0 " *" 5 7 1 10 0 0 + LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 + ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI + + IsSelected BOOL 0 " *" 5 1 1 2 0 0 + IsFolder BOOL 0 " *" 5 1 1 2 0 0 Items[7] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 Name STRING[255] 0 " *" 5 9 256 1 0 0 Size UDINT 0 " *" 5 7 1 10 0 0 @@ -109,14 +131,14 @@ Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 I Copy BOOL 0 " FALSE" 2 1 1 2 0 0 Cut BOOL 0 " FALSE" 2 1 1 2 0 0 Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " 'FileTestDir'" 2 9 256 1 0 0 - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 + NewName STRING[255] 0 " 'DirRename'" 2 9 256 1 0 0 + Rename BOOL 0 " TRUE" 2 1 1 2 0 0 CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 1 - LayerStatus UINT 0 " 0" 2 6 1 10 0 0 - Type DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI + MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 0 + LayerStatus UINT 0 " *" 2 6 1 10 0 0 + Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - ErrorNumber UINT 0 " 0" 2 6 1 10 0 0 - Confirm BOOL 0 " FALSE" 2 1 1 2 0 0 - Cancel BOOL 0 " FALSE" 2 1 1 2 0 0 + ErrorNumber UINT 0 " *" 2 6 1 10 0 0 + Confirm BOOL 0 " *" 2 1 1 2 0 0 + Cancel BOOL 0 " *" 2 1 1 2 0 0 DefaultLayerStatus UINT 0 " 0" 1 6 1 10 0 0 diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 82f4b5c9..16e4c163 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -201,8 +201,35 @@ _TEARDOWN_TEST(void) { HmiFile_UT.Parameters.Fifo.Enable = false; HmiFile_UT.Parameters.Fifo.ScanInterval = 60; - TestState = 0; - SetupState = 0; + + TestState = 0; + ArrangeSubState = 0; + ActSubState = 0; + AssertSubState = 0; + cycleCount = 0; + NameMatch = 0; + InNewLocation = 0; + InOldLocation = 0; + MultiSelectDirCopy = 0; + MultiSelectFileCopy = 0; + HmiFile.Status.SelectedIndex = 0; + MpFileManagerUIConnect.File.Copy = 0; + MpFileManagerUIConnect.File.CreateFolder = 0; + MpFileManagerUIConnect.File.Cut = 0; + MpFileManagerUIConnect.File.Delete = 0; + MpFileManagerUIConnect.File.EnterFolder = 0; + MpFileManagerUIConnect.File.FolderUp = 0; + MpFileManagerUIConnect.File.MultiSelect = 0; + MpFileManagerUIConnect.File.Paste = 0; + MpFileManagerUIConnect.File.Refresh = 0; + MpFileManagerUIConnect.File.Rename = 0; + brsmemcpy(&MpFileManagerUIConnect.File.Filter, &"", sizeof(MpFileManagerUIConnect.File.Filter)); + + HmiFile.Commands.Delete = 0; + HmiFile.Commands.EnterFolder = 0; + HmiFile.Commands.FolderUp = 0; + HmiFile.Commands.MultiSelect = 0; + HmiFile.Status.SelectedIndex = 0; FileCreate_0.enable = 0; FileClose_0.enable = 0; @@ -712,7 +739,6 @@ _TEST Rename_Directory(void) _TEST Cut_Paste_File(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -723,10 +749,18 @@ _TEST Cut_Paste_File(void) { case 0: MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + MpFileManagerUIConnect.File.Refresh = 1; ArrangeSubState = 1; break; + + case 1: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ArrangeSubState = 2; + break; - case 1: + case 2: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &NewFileName) == 0) @@ -776,7 +810,19 @@ _TEST Cut_Paste_File(void) break; case 5: - // Check paste location for cut file + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 6; + break; + + case 6: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 7; + break; + + case 7: + // Check paste location for cut file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { @@ -786,16 +832,16 @@ _TEST Cut_Paste_File(void) } } HmiFile.Commands.FolderUp = 1; - ActSubState = 6; + ActSubState = 8; break; - case 6: + case 8: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.FolderUp = 0; - ActSubState = 7; + ActSubState = 9; break; - case 7: + case 9: // Check old location for cut file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) @@ -821,7 +867,6 @@ _TEST Cut_Paste_File(void) _TEST Cut_Paste_Directory(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -895,7 +940,7 @@ _TEST Cut_Paste_Directory(void) ActSubState = 7; break; - case 7: + case 7: HmiFile.Commands.EnterFolder = 0; TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); ActSubState = 8; @@ -914,6 +959,18 @@ _TEST Cut_Paste_Directory(void) break; case 10: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 11; + break; + + case 11: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 12; + break; + + case 12: // Check new location for cut directory TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) @@ -924,16 +981,16 @@ _TEST Cut_Paste_Directory(void) } } HmiFile.Commands.FolderUp = 1; - ActSubState = 11; + ActSubState = 13; break; - case 11: + case 13: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.FolderUp = 0; - ActSubState = 12; + ActSubState = 14; break; - case 12: + case 14: // Check old location for cut directory TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) @@ -959,7 +1016,6 @@ _TEST Cut_Paste_Directory(void) _TEST Multiselect(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -996,8 +1052,8 @@ _TEST Multiselect(void) break; case 4: - TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.EnterFolder = 0; + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); ArrangeSubState = 5; break; @@ -1042,6 +1098,18 @@ _TEST Multiselect(void) break; case 5: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 6; + break; + + case 6: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 7; + break; + + case 7: // Check for copied file TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) @@ -1049,27 +1117,27 @@ _TEST Multiselect(void) if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedNewFileName) == 0) MultiSelectFileCopy = 1; } - ActSubState = 6; + ActSubState = 8; break; - case 6: + case 8: // Check for copied directory for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CopiedNewDirName) == 0) MultiSelectDirCopy = 1; } - ActSubState = 7; + ActSubState = 9; break; - case 7: + case 9: HmiFile.Commands.FolderUp = 1; TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_CHANGE_DIR); HmiFile.Commands.FolderUp = 0; - ActSubState = 8; + ActSubState = 10; break; - case 8: + case 10: TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); TestState = 2; break; @@ -1087,7 +1155,6 @@ _TEST Multiselect(void) _TEST Search(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1152,7 +1219,6 @@ _TEST Search(void) _TEST Enter_Folder(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1223,7 +1289,6 @@ _TEST Enter_Folder(void) _TEST Go_Up_Level(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1296,7 +1361,6 @@ _TEST Go_Up_Level(void) _TEST Change_Sort(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1346,7 +1410,6 @@ _TEST Change_Sort(void) _TEST Delete_File(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1378,9 +1441,21 @@ _TEST Delete_File(void) MpFileManagerUIConnect.MessageBox.Confirm = 0; ActSubState = 2; break; - + case 2: + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 4; + break; + + case 4: // Check for file + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) @@ -1401,7 +1476,6 @@ _TEST Delete_File(void) _TEST Delete_Directory(void) { - TEST_DONE; TIMEOUT_TEST_CASE; switch (TestState) @@ -1433,8 +1507,20 @@ _TEST Delete_Directory(void) MpFileManagerUIConnect.MessageBox.Confirm = 0; ActSubState = 2; break; - + break; + case 2: + MpFileManagerUIConnect.File.Refresh = 1; + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_REFRESH); + MpFileManagerUIConnect.File.Refresh = 0; + ActSubState = 4; + break; + + case 4: // Check for file for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { From 3d24bcb8e7fc9a4952040819bf9866c91c6996b5 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Wed, 5 Apr 2023 15:39:32 -0400 Subject: [PATCH 066/159] Changed abort conditions to abort messages to give extra debugging information --- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 16e4c163..0e3b32c0 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -275,7 +275,10 @@ _TEST Create_Directory(void) TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { - TEST_ABORT_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0); + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &DirName) == 0) + { + TEST_ABORT_MSG("Directory with chosen name already exists"); + } } TestState = 1; break; @@ -364,7 +367,10 @@ _TEST Add_File(void) TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != 0); for(int i = 0; i < sizeof(MpFileManagerUIConnect.File.List.Items)/sizeof(MpFileManagerUIConnect.File.List.Items[0]); i++) { - TEST_ABORT_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0); + if(brsstrcmp(&MpFileManagerUIConnect.File.List.Items[i].Name, &CreateFileName) == 0) + { + TEST_ABORT_MSG("File with chosen name already exists"); + } } TestState = 1; break; @@ -381,7 +387,10 @@ _TEST Add_File(void) break; case 1: - TEST_ABORT_CONDITION((FileCreate_0.status != 0) && (FileCreate_0.status != 65535)); + if((FileCreate_0.status != 0) && (FileCreate_0.status != 65535)) + { + TEST_ABORT_MSG("FileCreate function block has an error"); + } TEST_BUSY_CONDITION(FileCreate_0.status != 0); FileClose_0.ident = FileCreate_0.ident; FileClose_0.enable = 1; @@ -390,7 +399,10 @@ _TEST Add_File(void) break; case 2: - TEST_ABORT_CONDITION((FileClose_0.status != 0) && (FileClose_0.status != 65535)); + if((FileClose_0.status != 0) && (FileClose_0.status != 65535)) + { + TEST_ABORT_MSG("FileClose function block has an error"); + } TEST_BUSY_CONDITION(FileClose_0.status != 0); FileClose_0.enable = 0; MpFileManagerUIConnect.File.Refresh = 1; @@ -1326,7 +1338,10 @@ _TEST Go_Up_Level(void) case 3: // Check if folder was successfully entered TEST_BUSY_CONDITION(MpFileManagerUIConnect.Status != mpFILE_UI_STATUS_IDLE); - TEST_ABORT_CONDITION(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) != 0); + if(brsstrcmp(&MpFileManagerUIConnect.File.PathInfo.CurrentDir , &DirName) != 0) + { + TEST_ABORT_MSG("Directory was not successfully entered"); + } ActSubState = 4; break; From c396568adec6b6bd7530072b3812b30806b25854 Mon Sep 17 00:00:00 2001 From: austin_justin Date: Thu, 6 Apr 2023 13:27:25 -0400 Subject: [PATCH 067/159] AAZM-595 Added "Export successful" pop-up on completed export of a UserX list --- .../Diagnosis/Simulation/PC/AuditMgr.PVM | 4 - .../Diagnosis/Simulation/PC/FileMgr.PVM | 380 ------------------ .../Diagnosis/Simulation/PC/FileMgr.tc | Bin 260 -> 0 bytes .../Diagnosis/Simulation/PC/UserXMgr.tc | Bin 0 -> 352 bytes .../UserX/UserXMgr/HMIAction.st | 13 +- .../Infrastructure/UserX/UserXMgr/UserXMgr.st | 3 + .../UserX/UserXMgr/UserXMgr.typ | 3 + .../mappFrameworkTexts/UserXPageTexts.tmx | 22 + .../UserX/UserList_content.eventbinding | 21 + 9 files changed, 61 insertions(+), 385 deletions(-) delete mode 100644 mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM delete mode 100644 mappFramework/Diagnosis/Simulation/PC/FileMgr.tc create mode 100644 mappFramework/Diagnosis/Simulation/PC/UserXMgr.tc diff --git a/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM deleted file mode 100644 index 9abf564d..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/AuditMgr.PVM +++ /dev/null @@ -1,4 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=AuditMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=0 ASCIIString=0 - name type force value level type len format place expand specs - VariableMonitorExample REAL 0 " 10.5" 0 8 1 10 1 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM deleted file mode 100644 index 2a117d6c..00000000 --- a/mappFramework/Diagnosis/Simulation/PC/FileMgr.PVM +++ /dev/null @@ -1,380 +0,0 @@ -WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=FileMgr -Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=360 ASCIIString=0 - name type force value level type len format place expand specs - MpFileManagerUI_0 MpFileManagerUI 0 " *" 0 24 1 0 1 1 - MpLink UDINT 0 " *" 1 7 1 10 0 0 - Enable BOOL 0 " *" 1 1 1 2 0 0 - ErrorReset BOOL 0 " *" 1 1 1 2 0 0 - UISetup MpFileManagerUISetupType 0 " *" 1 24 1 0 0 1 - FileListSize UINT 0 " *" 2 6 1 10 0 0 - FileListScrollWindow USINT 0 " *" 2 5 1 10 0 0 - UIConnect UDINT 0 " *" 1 7 1 10 0 0 - Active BOOL 0 " *" 1 1 1 2 0 0 - Error BOOL 0 " *" 1 1 1 2 0 0 - StatusID DINT 0 " *" 1 4 1 10 0 0 - Info MpFileInfoType 0 " *" 1 24 1 0 0 1 - Diag MpFileDiagType 0 " *" 2 24 1 0 0 1 - StatusID MpFileStatusIDType 0 " *" 3 24 1 0 0 1 - ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpFI - - Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO - - Code UINT 0 " *" 4 6 1 10 0 0 - Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 - pObject UDINT 0 " *" 2 7 1 10 0 0 - State UDINT 0 " *" 2 7 1 10 0 0 - HmiFile FileHmiInterfaceType 0 " *" 0 24 1 0 1 1 - Commands FileHmiCommandsType 0 " *" 1 24 1 0 0 0 - Delete BOOL 0 " *" 2 1 1 2 0 0 - FolderUp BOOL 0 " *" 2 1 1 2 0 0 - EnterFolder BOOL 0 " *" 2 1 1 2 0 0 - MultiSelect BOOL 0 " *" 2 1 1 2 0 0 - CheckFolder BOOL 0 " *" 2 1 1 2 0 0 - Parameters FileHmiParametersType 0 " *" 1 24 1 0 0 0 - OldSortOrder DINT 0 " *" 2 4 1 10 0 0 e,0,mpFI - - Fifo FileHmiParaFifoType 0 " *" 2 24 1 0 0 0 - Enable BOOL 0 " *" 3 1 1 2 0 0 - DeviceName STRING[50] 0 " *" 3 9 51 1 0 0 - FifoType DINT 0 " *" 3 4 1 10 0 0 e,0,FILE - - ScanInterval DINT 0 " *" 3 4 1 10 0 0 - MaxFileAge UINT 0 " *" 3 6 1 10 0 0 - MaxFolderSize REAL 0 " *" 3 8 1 10 0 0 - MaxNumberOfFiles UINT 0 " *" 3 6 1 10 0 0 - Status FileHmiStatusType 0 " *" 1 24 1 0 0 1 - FileNames STRING[80][0..49] 0 " *" 2 9 81 0 0 1 - FileNames[0] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[1] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[2] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[3] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[4] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[5] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[6] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[7] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[8] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[9] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[10] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[11] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[12] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[13] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[14] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[15] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[16] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[17] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[18] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[19] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[20] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[21] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[22] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[23] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[24] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[25] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[26] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[27] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[28] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[29] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[30] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[31] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[32] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[33] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[34] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[35] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[36] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[37] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[38] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[39] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[40] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[41] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[42] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[43] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[44] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[45] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[46] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[47] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[48] STRING[80] 0 " *" 3 9 81 1 0 0 - FileNames[49] STRING[80] 0 " *" 3 9 81 1 0 0 - TimeStamps DATE_AND_TIME[0..49] 0 " *" 2 11 50 0 0 0 - TimeStamps[0] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[1] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[2] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[3] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[4] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[5] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[6] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[7] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[8] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[9] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[10] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[11] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[12] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[13] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[14] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[15] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[16] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[17] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[18] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[19] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[20] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[21] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[22] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[23] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[24] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[25] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[26] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[27] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[28] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[29] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[30] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[31] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[32] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[33] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[34] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[35] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[36] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[37] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[38] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[39] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[40] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[41] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[42] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[43] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[44] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[45] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[46] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[47] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[48] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - TimeStamps[49] DATE_AND_TIME 0 " *" 3 11 1 1 0 0 - Type DINT[0..49] 0 " *" 2 4 50 0 0 0 - Type[0] DINT 0 " *" 3 4 1 10 0 0 - Type[1] DINT 0 " *" 3 4 1 10 0 0 - Type[2] DINT 0 " *" 3 4 1 10 0 0 - Type[3] DINT 0 " *" 3 4 1 10 0 0 - Type[4] DINT 0 " *" 3 4 1 10 0 0 - Type[5] DINT 0 " *" 3 4 1 10 0 0 - Type[6] DINT 0 " *" 3 4 1 10 0 0 - Type[7] DINT 0 " *" 3 4 1 10 0 0 - Type[8] DINT 0 " *" 3 4 1 10 0 0 - Type[9] DINT 0 " *" 3 4 1 10 0 0 - Type[10] DINT 0 " *" 3 4 1 10 0 0 - Type[11] DINT 0 " *" 3 4 1 10 0 0 - Type[12] DINT 0 " *" 3 4 1 10 0 0 - Type[13] DINT 0 " *" 3 4 1 10 0 0 - Type[14] DINT 0 " *" 3 4 1 10 0 0 - Type[15] DINT 0 " *" 3 4 1 10 0 0 - Type[16] DINT 0 " *" 3 4 1 10 0 0 - Type[17] DINT 0 " *" 3 4 1 10 0 0 - Type[18] DINT 0 " *" 3 4 1 10 0 0 - Type[19] DINT 0 " *" 3 4 1 10 0 0 - Type[20] DINT 0 " *" 3 4 1 10 0 0 - Type[21] DINT 0 " *" 3 4 1 10 0 0 - Type[22] DINT 0 " *" 3 4 1 10 0 0 - Type[23] DINT 0 " *" 3 4 1 10 0 0 - Type[24] DINT 0 " *" 3 4 1 10 0 0 - Type[25] DINT 0 " *" 3 4 1 10 0 0 - Type[26] DINT 0 " *" 3 4 1 10 0 0 - Type[27] DINT 0 " *" 3 4 1 10 0 0 - Type[28] DINT 0 " *" 3 4 1 10 0 0 - Type[29] DINT 0 " *" 3 4 1 10 0 0 - Type[30] DINT 0 " *" 3 4 1 10 0 0 - Type[31] DINT 0 " *" 3 4 1 10 0 0 - Type[32] DINT 0 " *" 3 4 1 10 0 0 - Type[33] DINT 0 " *" 3 4 1 10 0 0 - Type[34] DINT 0 " *" 3 4 1 10 0 0 - Type[35] DINT 0 " *" 3 4 1 10 0 0 - Type[36] DINT 0 " *" 3 4 1 10 0 0 - Type[37] DINT 0 " *" 3 4 1 10 0 0 - Type[38] DINT 0 " *" 3 4 1 10 0 0 - Type[39] DINT 0 " *" 3 4 1 10 0 0 - Type[40] DINT 0 " *" 3 4 1 10 0 0 - Type[41] DINT 0 " *" 3 4 1 10 0 0 - Type[42] DINT 0 " *" 3 4 1 10 0 0 - Type[43] DINT 0 " *" 3 4 1 10 0 0 - Type[44] DINT 0 " *" 3 4 1 10 0 0 - Type[45] DINT 0 " *" 3 4 1 10 0 0 - Type[46] DINT 0 " *" 3 4 1 10 0 0 - Type[47] DINT 0 " *" 3 4 1 10 0 0 - Type[48] DINT 0 " *" 3 4 1 10 0 0 - Type[49] DINT 0 " *" 3 4 1 10 0 0 - Size UDINT[0..49] 0 " *" 2 7 50 0 0 0 - Size[0] UDINT 0 " *" 3 7 1 10 0 0 - Size[1] UDINT 0 " *" 3 7 1 10 0 0 - Size[2] UDINT 0 " *" 3 7 1 10 0 0 - Size[3] UDINT 0 " *" 3 7 1 10 0 0 - Size[4] UDINT 0 " *" 3 7 1 10 0 0 - Size[5] UDINT 0 " *" 3 7 1 10 0 0 - Size[6] UDINT 0 " *" 3 7 1 10 0 0 - Size[7] UDINT 0 " *" 3 7 1 10 0 0 - Size[8] UDINT 0 " *" 3 7 1 10 0 0 - Size[9] UDINT 0 " *" 3 7 1 10 0 0 - Size[10] UDINT 0 " *" 3 7 1 10 0 0 - Size[11] UDINT 0 " *" 3 7 1 10 0 0 - Size[12] UDINT 0 " *" 3 7 1 10 0 0 - Size[13] UDINT 0 " *" 3 7 1 10 0 0 - Size[14] UDINT 0 " *" 3 7 1 10 0 0 - Size[15] UDINT 0 " *" 3 7 1 10 0 0 - Size[16] UDINT 0 " *" 3 7 1 10 0 0 - Size[17] UDINT 0 " *" 3 7 1 10 0 0 - Size[18] UDINT 0 " *" 3 7 1 10 0 0 - Size[19] UDINT 0 " *" 3 7 1 10 0 0 - Size[20] UDINT 0 " *" 3 7 1 10 0 0 - Size[21] UDINT 0 " *" 3 7 1 10 0 0 - Size[22] UDINT 0 " *" 3 7 1 10 0 0 - Size[23] UDINT 0 " *" 3 7 1 10 0 0 - Size[24] UDINT 0 " *" 3 7 1 10 0 0 - Size[25] UDINT 0 " *" 3 7 1 10 0 0 - Size[26] UDINT 0 " *" 3 7 1 10 0 0 - Size[27] UDINT 0 " *" 3 7 1 10 0 0 - Size[28] UDINT 0 " *" 3 7 1 10 0 0 - Size[29] UDINT 0 " *" 3 7 1 10 0 0 - Size[30] UDINT 0 " *" 3 7 1 10 0 0 - Size[31] UDINT 0 " *" 3 7 1 10 0 0 - Size[32] UDINT 0 " *" 3 7 1 10 0 0 - Size[33] UDINT 0 " *" 3 7 1 10 0 0 - Size[34] UDINT 0 " *" 3 7 1 10 0 0 - Size[35] UDINT 0 " *" 3 7 1 10 0 0 - Size[36] UDINT 0 " *" 3 7 1 10 0 0 - Size[37] UDINT 0 " *" 3 7 1 10 0 0 - Size[38] UDINT 0 " *" 3 7 1 10 0 0 - Size[39] UDINT 0 " *" 3 7 1 10 0 0 - Size[40] UDINT 0 " *" 3 7 1 10 0 0 - Size[41] UDINT 0 " *" 3 7 1 10 0 0 - Size[42] UDINT 0 " *" 3 7 1 10 0 0 - Size[43] UDINT 0 " *" 3 7 1 10 0 0 - Size[44] UDINT 0 " *" 3 7 1 10 0 0 - Size[45] UDINT 0 " *" 3 7 1 10 0 0 - Size[46] UDINT 0 " *" 3 7 1 10 0 0 - Size[47] UDINT 0 " *" 3 7 1 10 0 0 - Size[48] UDINT 0 " *" 3 7 1 10 0 0 - Size[49] UDINT 0 " *" 3 7 1 10 0 0 - DeviceDataProvider STRING[100][0..9] 0 " *" 2 9 101 0 0 1 - DeviceDataProvider[0] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[1] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[2] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[3] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[4] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[5] STRING[100] 0 " *" 3 9 101 1 0 0 - DeviceDataProvider[6] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[7] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[8] STRING[100] 0 " ''" 3 9 101 1 0 0 - DeviceDataProvider[9] STRING[100] 0 " ''" 3 9 101 1 0 0 - FifoSelect DINT[0..9] 0 " *" 2 4 10 0 0 0 - FifoSelect[0] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[1] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[2] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[3] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[4] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[5] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[6] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[7] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[8] DINT 0 " *" 3 4 1 10 0 0 - FifoSelect[9] DINT 0 " *" 3 4 1 10 0 0 - DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 - FileName STRING[255] 0 " ''" 2 9 256 1 0 0 - TableConfig STRING[120][0..1] 0 " *" 2 9 121 0 0 1 - TableConfig[0] STRING[120] 0 " '{ "specRows": [{"from":6,"to":9, "visible":false}]}'" 3 9 121 1 0 0 - TableConfig[1] STRING[120] 0 " '{ "specRows": [{"from":7,"to":49, "visible":false}]}'" 3 9 121 1 0 0 - IsFolder BOOL 0 " TRUE" 2 1 1 2 0 0 - BackButton BOOL 0 " FALSE" 2 1 1 2 0 0 - DeleteStep DINT 0 " 0" 2 4 1 10 0 0 e,0,FILE - - AutoDeleteSelected USINT 0 " 0" 2 5 1 10 0 0 - FolderSize REAL 0 " 0.0" 2 8 1 10 0 0 - SelectedIndex USINT 0 " 2" 2 5 1 10 0 0 - FifoConfigEnable BOOL 0 " TRUE" 2 1 1 2 0 0 - DefaultFileSelected BOOL 0 " FALSE" 2 1 1 2 0 0 - MpFileManagerUIConnect MpFileManagerUIConnectType 0 " *" 0 24 1 0 1 1 - Status DINT 0 " 7" 1 4 1 10 0 0 e,0,mpFI - - DeviceList MpFileManagerUIDeviceListType 0 " *" 1 24 1 0 0 0 - SelectedIndex UINT 0 " *" 2 6 1 10 0 0 - File MpFileManagerUIFileType 0 " *" 1 24 1 0 0 1 - List MpFileManagerUIFileListType 0 " *" 2 24 1 0 0 1 - Items MpFileManagerUIItemType[0..49] 0 " *" 3 24 50 0 0 1 - Items[0] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'Backgrounds 2.0'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-12:39:30" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[1] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'CSVformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " FALSE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[2] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 1 - Name STRING[255] 0 " 'XMLformat'" 5 9 256 1 0 0 - Size UDINT 0 " 0" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " DT#2023-03-21-09:32:18" 5 11 1 1 0 0 - ItemType DINT 0 " 1" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " TRUE" 5 1 1 2 0 0 - IsFolder BOOL 0 " TRUE" 5 1 1 2 0 0 - Items[3] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[4] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[5] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - Items[6] MpFileManagerUIItemType 0 " *" 4 24 1 0 0 0 - Name STRING[255] 0 " *" 5 9 256 1 0 0 - Size UDINT 0 " *" 5 7 1 10 0 0 - LastModified DATE_AND_TIME 0 " *" 5 11 1 1 0 0 - ItemType DINT 0 " *" 5 4 1 10 0 0 e,0,mpFI - - IsSelected BOOL 0 " *" 5 1 1 2 0 0 - IsFolder BOOL 0 " *" 5 1 1 2 0 0 - PageUp BOOL 0 " FALSE" 3 1 1 2 0 0 - StepUp BOOL 0 " FALSE" 3 1 1 2 0 0 - PageDown BOOL 0 " FALSE" 3 1 1 2 0 0 - StepDown BOOL 0 " FALSE" 3 1 1 2 0 0 - RangeStart REAL 0 " 0.0" 3 8 1 10 0 0 - RangeEnd REAL 0 " 100.0" 3 8 1 10 0 0 - Filter STRING[255] 0 " ''" 2 9 256 1 0 0 - SortOrder DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - Refresh BOOL 0 " FALSE" 2 1 1 2 0 0 - PathInfo MpFileManagerUIPathInfoType 0 " *" 2 24 1 0 0 0 - CurrentDir STRING[255] 0 " *" 3 9 256 1 0 0 - FileCount UDINT 0 " *" 3 7 1 10 0 0 - FolderCount UDINT 0 " *" 3 7 1 10 0 0 - EnterFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - FolderUp BOOL 0 " FALSE" 2 1 1 2 0 0 - MultiSelect BOOL 0 " FALSE" 2 1 1 2 0 0 - Delete BOOL 0 " FALSE" 2 1 1 2 0 0 - Copy BOOL 0 " FALSE" 2 1 1 2 0 0 - Cut BOOL 0 " FALSE" 2 1 1 2 0 0 - Paste BOOL 0 " FALSE" 2 1 1 2 0 0 - NewName STRING[255] 0 " ''" 2 9 256 1 0 0 - Rename BOOL 0 " FALSE" 2 1 1 2 0 0 - CreateFolder BOOL 0 " FALSE" 2 1 1 2 0 0 - MessageBox MpFileManagerUIMessageBoxType 0 " *" 1 24 1 0 0 1 - LayerStatus UINT 0 " 1" 2 6 1 10 0 0 - Type DINT 0 " 0" 2 4 1 10 0 0 e,0,mpFI - - ErrorNumber UINT 0 " 0" 2 6 1 10 0 0 - Confirm BOOL 0 " FALSE" 2 1 1 2 0 0 - Cancel BOOL 0 " FALSE" 2 1 1 2 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc b/mappFramework/Diagnosis/Simulation/PC/FileMgr.tc deleted file mode 100644 index bef43b393570b7af97ccc17862c2c43ec2cf8bd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmdO%?#nRw&A!%E*MBxJFflMNvM@k_1CaKg4J34c*aIlTAn>g@E~$Y5LIMR*025FF zR!|EPWn?g8h+}9#C}3k?Sj(`Tk;N@DC)GE-$jY|>%u38lOiwKe^>oh9%S%lz(F-m~ zEGaE!U}S`;^T^EvG4-7Db8{2(Qi}ClQgc#EQjt{PFbS*+s+frZY8(T@8OJ}#0CCzr A&;S4c diff --git a/mappFramework/Diagnosis/Simulation/PC/UserXMgr.tc b/mappFramework/Diagnosis/Simulation/PC/UserXMgr.tc new file mode 100644 index 0000000000000000000000000000000000000000..120b75fded28da4356ec55224c7be854df334379 GIT binary patch literal 352 zcmdO%?#r-z+v13@)$z|5m>3us6BwYt0Z6-K00|u+_5jMn2z+bH>}FtqkU&8c0Mv^e z)PjT=8O#`>7U{wRLQO_+i pC)K62ASW|9u_P6%Lbzd28~w{ti^_{KfvTApV6J6g@XU1T0{}cDUbp}N literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st index 5129d787..0b3f6990 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/HMIAction.st @@ -35,7 +35,7 @@ ACTION HMIAction: HmiUserX.Status.UserXHmiState := USERX_NEW_EXPORT; END_IF - //Duplicate file checks + // Duplicate file checks HmiUserX.Status.FileDuplicate := FALSE; FOR i := 0 TO ((SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames) / SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames[0])) - 1) DO temp := UserXMgrUIConnect.Export.Dialog.FileName; @@ -53,5 +53,16 @@ ACTION HMIAction: UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; HmiUserX.Commands.Export := FALSE; END_IF + + // Export confirmation pop-up handling + IF (HmiUserX.Status.LastMgrConnectStatus = mpUSERX_UI_STATUS_WAIT_DLG) AND (UserXMgrUIConnect.Status = mpUSERX_UI_STATUS_IDLE) AND UserXMgrUIConnect.Export.Dialog.Confirm THEN + HmiUserX.Status.ExportComplete := TRUE; + END_IF + + IF HmiUserX.Status.UserExportDisplayed THEN + HmiUserX.Status.ExportComplete := FALSE; + HmiUserX.Status.UserExportDisplayed := FALSE; + UserXMgrUIConnect.Export.Dialog.Confirm := FALSE; + END_IF END_ACTION diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st index c8055769..988fd711 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.st @@ -59,6 +59,9 @@ PROGRAM _CYCLIC // Call all cyclic actions HMIAction; + + // Saving last status of UserXMgrUIconnect + HmiUserX.Status.LastMgrConnectStatus := UserXMgrUIConnect.Status; // Assign MpLinks & address references MpUserXManagerUI_0.MpLink := ADR(gMpLinkUserXLogin); diff --git a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ index 150ac161..e4104d9f 100644 --- a/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ +++ b/mappFramework/Logical/Infrastructure/UserX/UserXMgr/UserXMgr.typ @@ -12,6 +12,9 @@ TYPE UserXStatusType : STRUCT (*Structure to hold status information to the HMI*) FileDuplicate : BOOL; (*Flag that a user export file already exists with the specified name*) UserXHmiState : HmiStateEnum; (*State variable for HMI interaction*) + LastMgrConnectStatus : MpUserXUIStatusEnum; + ExportComplete : BOOL; + UserExportDisplayed : BOOL; END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/UserXPageTexts.tmx b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/UserXPageTexts.tmx index ba10c72c..4bcd54cc 100644 --- a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/UserXPageTexts.tmx +++ b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/UserXPageTexts.tmx @@ -1373,5 +1373,27 @@ Refresh Users + + + Benutzerliste + + + 用户列表 + + + User List + + + + + Export erfolgreich + + + 导出成功 + + + Export successful + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding index b2fd1fe0..d14f710f 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding @@ -277,5 +277,26 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 4a612eb13258ae0e2d7f6bb76cfb8bc68065eb1b Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 10 Apr 2023 14:49:10 -0400 Subject: [PATCH 068/159] AAZM541: refactored Axis references and files to simplify adding new axis --- .../AppAxis_1/AppAxis_1/IEC.prg | 8 +- .../AxisMgr.var | 0 .../AxisStateMachine.st | 0 .../ChangeConfiguration.st | 240 +++++++++--------- .../AxisReferencedFiles/Package.pkg | 10 + .../AxisMgr => AxisReferencedFiles}/Recipe.st | 212 ++++++++-------- .../AxisTemplate/AxisMgr/IEC.prg | 8 +- .../Logical/MachineControl/Package.pkg | 3 +- .../AppAxis_1/AppAxisUnitTest/ANSIC.prg | 2 +- 9 files changed, 247 insertions(+), 236 deletions(-) rename mappFramework/Logical/MachineControl/{AxisTemplate/AxisMgr => AxisReferencedFiles}/AxisMgr.var (100%) rename mappFramework/Logical/MachineControl/{AxisTemplate/AxisMgr => AxisReferencedFiles}/AxisStateMachine.st (100%) rename mappFramework/Logical/MachineControl/{AxisTemplate/AxisMgr => AxisReferencedFiles}/ChangeConfiguration.st (97%) create mode 100644 mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg rename mappFramework/Logical/MachineControl/{AxisTemplate/AxisMgr => AxisReferencedFiles}/Recipe.st (97%) diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg index 39886a54..3525eb67 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg @@ -4,15 +4,15 @@ AxisMgr.st AxisMgr.typ - \Logical\MachineControl\AxisTemplate\AxisMgr\AxisMgr.var Variables.var - \Logical\MachineControl\AxisTemplate\AxisMgr\AxisStateMachine.st SimulationControl.st AxisControlModes.st - \Logical\MachineControl\AxisTemplate\AxisMgr\Recipe.st LocalFunctions.fun ManualCommand.st AutomaticCommand.st - \Logical\MachineControl\AxisTemplate\AxisMgr\ChangeConfiguration.st + \Logical\MachineControl\AxisReferencedFiles\AxisMgr.var + \Logical\MachineControl\AxisReferencedFiles\AxisStateMachine.st + \Logical\MachineControl\AxisReferencedFiles\ChangeConfiguration.st + \Logical\MachineControl\AxisReferencedFiles\Recipe.st \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.var similarity index 100% rename from mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var rename to mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.var diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisStateMachine.st similarity index 100% rename from mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st rename to mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisStateMachine.st diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/ChangeConfiguration.st b/mappFramework/Logical/MachineControl/AxisReferencedFiles/ChangeConfiguration.st similarity index 97% rename from mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/ChangeConfiguration.st rename to mappFramework/Logical/MachineControl/AxisReferencedFiles/ChangeConfiguration.st index 5a8226c3..a64647bb 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/ChangeConfiguration.st +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/ChangeConfiguration.st @@ -1,121 +1,121 @@ -ACTION ConfigurationInit: - // Initalize drive configuration - AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.DataAddress := ADR(AxisSettings.AxisFeatures); - AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.NumberOfArrayElements := SIZEOF(AxisSettings.AxisFeatures)/SIZEOF(AxisSettings.AxisFeatures[0]); - AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.NumberOfElements := 0; - i := 0; - WHILE ((i <= SIZEOF(AxisSettings.AxisFeatures)/SIZEOF(AxisSettings.AxisFeatures[0])) AND (AxisSettings.AxisFeatures[i] <> '')) DO - i := i + 1; - END_WHILE - AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.NumberOfElements := i; - - MC_BR_ProcessConfig_AX.DataAddress := ADR(AxisSettings.BaseConfiguration); - MC_BR_ProcessConfig_AX.DataType := mcCFG_AX; - - MC_BR_ProcessConfig_ACP.DataAddress := ADR(AxisSettings.DriveConfiguration); - MC_BR_ProcessConfig_ACP.DataType := mcCFG_PURE_V_AX; - - ConfigurationState := CONFIG_STATE_INIT; - -END_ACTION - -ACTION ChangeConfiguration: - - CASE ConfigurationState OF - CONFIG_STATE_INIT: - - // Assign string for the name - MC_BR_ProcessConfig_ACP.Name := MpAxisBasic_0.Info.HardwareInfo.Axis.ConfigElementLocation; - MC_BR_ProcessConfig_AX.Name := MpAxisBasic_0.Info.HardwareInfo.Axis.AxisName; - - IF (MpAxisBasic_0.Active = TRUE) THEN - ConfigurationState := CONFIG_STATE_READ; - END_IF - - CONFIG_STATE_READ: - // Read the current configuration - MC_BR_ProcessConfig_ACP.Mode := mcPCM_LOAD; - MC_BR_ProcessConfig_ACP.Execute := TRUE; - - MC_BR_ProcessConfig_AX.Mode := mcPCM_LOAD; - MC_BR_ProcessConfig_AX.Execute := TRUE; - IF (MC_BR_ProcessConfig_ACP.Done = TRUE) AND (MC_BR_ProcessConfig_AX.Done = TRUE) THEN - MC_BR_ProcessConfig_ACP.Execute := FALSE; - MC_BR_ProcessConfig_AX.Execute := FALSE; - ConfigurationState := CONFIG_STATE_READY; - END_IF - - CONFIG_STATE_WRITE: - // Write the configuration after changes - MC_BR_ProcessConfig_ACP.Mode := mcPCM_SAVE; - MC_BR_ProcessConfig_ACP.Execute := TRUE; - - MC_BR_ProcessConfig_AX.Mode := mcPCM_SAVE; - MC_BR_ProcessConfig_AX.Execute := TRUE; - IF (MC_BR_ProcessConfig_ACP.Done = TRUE) AND (MC_BR_ProcessConfig_AX.Done = TRUE) THEN - MC_BR_ProcessConfig_ACP.Execute := FALSE; - MC_BR_ProcessConfig_AX.Execute := FALSE; - ConfigurationState := CONFIG_STATE_READY; - END_IF - - CONFIG_STATE_READY: - - END_CASE - - // Cyclic function block calls - AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.DataAddress := ADR(AxisSettings.AxisFeatures); - MC_BR_ProcessConfig_AX.DataAddress := ADR(AxisSettings.BaseConfiguration); - MC_BR_ProcessConfig_ACP.DataAddress := ADR(AxisSettings.DriveConfiguration); - MC_BR_ProcessConfig_ACP(); - MC_BR_ProcessConfig_AX(); - -END_ACTION - -ACTION ParameterInit: - // Initalize drive parameter - MC_BR_ProcessParam_AX.DataAddress := ADR(AxisSettings.BaseParam); - MC_BR_ProcessParam_AX.DataType := mcCFG_AX_MOVE_LIM; - - ParameterState := PAR_STATE_INIT; - -END_ACTION - -ACTION ChangeParameter: - - CASE ParameterState OF - PAR_STATE_INIT: - // Wait state - MC_BR_ProcessParam_AX.Component := MpAxisBasic_0.MpLink; - - IF (MpAxisBasic_0.Active = TRUE) THEN - ParameterState := PAR_STATE_READ; - END_IF - - PAR_STATE_READ: - // Read current parameter values - MC_BR_ProcessParam_AX.Mode := mcPPM_READ; - MC_BR_ProcessParam_AX.Execute := TRUE; - - IF (MC_BR_ProcessParam_AX.Done = TRUE) THEN - MC_BR_ProcessParam_AX.Execute := FALSE; - ParameterState := PAR_STATE_READY; - END_IF - - PAR_STATE_WRITE: - // Write new parameter values - MC_BR_ProcessParam_AX.Mode := mcPPM_WRITE; - MC_BR_ProcessParam_AX.Execute := TRUE; - - IF (MC_BR_ProcessParam_AX.Done = TRUE) THEN - MC_BR_ProcessParam_AX.Execute := FALSE; - ParameterState := PAR_STATE_READY; - END_IF - - PAR_STATE_READY: - - END_CASE - - MC_BR_ProcessParam_AX.DataAddress := ADR(AxisSettings.BaseParam); - MC_BR_ProcessParam_AX(); - +ACTION ConfigurationInit: + // Initalize drive configuration + AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.DataAddress := ADR(AxisSettings.AxisFeatures); + AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.NumberOfArrayElements := SIZEOF(AxisSettings.AxisFeatures)/SIZEOF(AxisSettings.AxisFeatures[0]); + AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.NumberOfElements := 0; + i := 0; + WHILE ((i <= SIZEOF(AxisSettings.AxisFeatures)/SIZEOF(AxisSettings.AxisFeatures[0])) AND (AxisSettings.AxisFeatures[i] <> '')) DO + i := i + 1; + END_WHILE + AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.NumberOfElements := i; + + MC_BR_ProcessConfig_AX.DataAddress := ADR(AxisSettings.BaseConfiguration); + MC_BR_ProcessConfig_AX.DataType := mcCFG_AX; + + MC_BR_ProcessConfig_ACP.DataAddress := ADR(AxisSettings.DriveConfiguration); + MC_BR_ProcessConfig_ACP.DataType := mcCFG_PURE_V_AX; + + ConfigurationState := CONFIG_STATE_INIT; + +END_ACTION + +ACTION ChangeConfiguration: + + CASE ConfigurationState OF + CONFIG_STATE_INIT: + + // Assign string for the name + MC_BR_ProcessConfig_ACP.Name := MpAxisBasic_0.Info.HardwareInfo.Axis.ConfigElementLocation; + MC_BR_ProcessConfig_AX.Name := MpAxisBasic_0.Info.HardwareInfo.Axis.AxisName; + + IF (MpAxisBasic_0.Active = TRUE) THEN + ConfigurationState := CONFIG_STATE_READ; + END_IF + + CONFIG_STATE_READ: + // Read the current configuration + MC_BR_ProcessConfig_ACP.Mode := mcPCM_LOAD; + MC_BR_ProcessConfig_ACP.Execute := TRUE; + + MC_BR_ProcessConfig_AX.Mode := mcPCM_LOAD; + MC_BR_ProcessConfig_AX.Execute := TRUE; + IF (MC_BR_ProcessConfig_ACP.Done = TRUE) AND (MC_BR_ProcessConfig_AX.Done = TRUE) THEN + MC_BR_ProcessConfig_ACP.Execute := FALSE; + MC_BR_ProcessConfig_AX.Execute := FALSE; + ConfigurationState := CONFIG_STATE_READY; + END_IF + + CONFIG_STATE_WRITE: + // Write the configuration after changes + MC_BR_ProcessConfig_ACP.Mode := mcPCM_SAVE; + MC_BR_ProcessConfig_ACP.Execute := TRUE; + + MC_BR_ProcessConfig_AX.Mode := mcPCM_SAVE; + MC_BR_ProcessConfig_AX.Execute := TRUE; + IF (MC_BR_ProcessConfig_ACP.Done = TRUE) AND (MC_BR_ProcessConfig_AX.Done = TRUE) THEN + MC_BR_ProcessConfig_ACP.Execute := FALSE; + MC_BR_ProcessConfig_AX.Execute := FALSE; + ConfigurationState := CONFIG_STATE_READY; + END_IF + + CONFIG_STATE_READY: + + END_CASE + + // Cyclic function block calls + AxisSettings.DriveConfiguration.PureVirtualAxis.AxisFeatures.FeatureReference.DataAddress := ADR(AxisSettings.AxisFeatures); + MC_BR_ProcessConfig_AX.DataAddress := ADR(AxisSettings.BaseConfiguration); + MC_BR_ProcessConfig_ACP.DataAddress := ADR(AxisSettings.DriveConfiguration); + MC_BR_ProcessConfig_ACP(); + MC_BR_ProcessConfig_AX(); + +END_ACTION + +ACTION ParameterInit: + // Initalize drive parameter + MC_BR_ProcessParam_AX.DataAddress := ADR(AxisSettings.BaseParam); + MC_BR_ProcessParam_AX.DataType := mcCFG_AX_MOVE_LIM; + + ParameterState := PAR_STATE_INIT; + +END_ACTION + +ACTION ChangeParameter: + + CASE ParameterState OF + PAR_STATE_INIT: + // Wait state + MC_BR_ProcessParam_AX.Component := MpAxisBasic_0.MpLink; + + IF (MpAxisBasic_0.Active = TRUE) THEN + ParameterState := PAR_STATE_READ; + END_IF + + PAR_STATE_READ: + // Read current parameter values + MC_BR_ProcessParam_AX.Mode := mcPPM_READ; + MC_BR_ProcessParam_AX.Execute := TRUE; + + IF (MC_BR_ProcessParam_AX.Done = TRUE) THEN + MC_BR_ProcessParam_AX.Execute := FALSE; + ParameterState := PAR_STATE_READY; + END_IF + + PAR_STATE_WRITE: + // Write new parameter values + MC_BR_ProcessParam_AX.Mode := mcPPM_WRITE; + MC_BR_ProcessParam_AX.Execute := TRUE; + + IF (MC_BR_ProcessParam_AX.Done = TRUE) THEN + MC_BR_ProcessParam_AX.Execute := FALSE; + ParameterState := PAR_STATE_READY; + END_IF + + PAR_STATE_READY: + + END_CASE + + MC_BR_ProcessParam_AX.DataAddress := ADR(AxisSettings.BaseParam); + MC_BR_ProcessParam_AX(); + END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg b/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg new file mode 100644 index 00000000..936b96bc --- /dev/null +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg @@ -0,0 +1,10 @@ + + + + + AxisMgr.var + AxisStateMachine.st + Recipe.st + ChangeConfiguration.st + + \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Recipe.st b/mappFramework/Logical/MachineControl/AxisReferencedFiles/Recipe.st similarity index 97% rename from mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Recipe.st rename to mappFramework/Logical/MachineControl/AxisReferencedFiles/Recipe.st index 624c33ab..5a0e67f8 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Recipe.st +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/Recipe.st @@ -1,107 +1,107 @@ -ACTION RecipeInit: - - // Register the variables with the recipe system - AxisControl.Status.ProductSettingsName := AxisControl.Status.TaskName; - brsstrcat(ADR(AxisControl.Status.ProductSettingsName), ADR(':ParametersPreview')); - MpRecipeRegPar_Par.MpLink := ADR(gMpLinkRecipeXml); - MpRecipeRegPar_Par.Enable := TRUE; - MpRecipeRegPar_Par.PVName := ADR(AxisControl.Status.ProductSettingsName); - MpRecipeRegPar_Par.Category := ADR(PARAMETERS_CATEGORY); - MpRecipeRegPar_Par(); - ParametersPreview; - ParametersEdit; - - AxisControl.Status.MachineSettingsName := AxisControl.Status.TaskName; - brsstrcat(ADR(AxisControl.Status.MachineSettingsName), ADR(':MachineSettingsPreview')); - MpRecipeRegPar_Cfg.MpLink := ADR(gMpLinkRecipeXml); - MpRecipeRegPar_Cfg.Enable := TRUE; - MpRecipeRegPar_Cfg.PVName := ADR(AxisControl.Status.MachineSettingsName); - MpRecipeRegPar_Cfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); - MpRecipeRegPar_Cfg(); - MachineSettingsPreview; - MachineSettingsEdit; - - // Activate RegPar FUBs - WHILE NOT(MpRecipeRegPar_Par.Active OR MpRecipeRegPar_Par.Error) DO - MpRecipeRegPar_Par(); - END_WHILE - WHILE NOT(MpRecipeRegPar_Cfg.Active OR MpRecipeRegPar_Cfg.Error) DO - MpRecipeRegPar_Cfg(); - END_WHILE - -END_ACTION - -ACTION RecipeCyclic: - - // HMI support handling - IF (AxisRecipe.EditDialogOpened OR AxisRecipe.CreateDialogOpened) THEN - IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN - ParametersEdit := ParametersPreview; - ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN - MachineSettingsEdit := MachineSettingsPreview; - END_IF - AxisRecipe.EditDialogOpened := FALSE; - AxisRecipe.CreateDialogOpened := FALSE; - END_IF - - CASE AxisRecipe.State OF - // Wait state - REC_AXIS_WAIT: - IF AxisRecipe.CreateRecipe THEN - AxisRecipe.State := REC_AXIS_CREATE; - AxisRecipe.CreateRecipe := FALSE; - ELSIF AxisRecipe.SaveRecipe THEN - AxisRecipe.State := REC_AXIS_SAVE; - AxisRecipe.SaveRecipe := FALSE; - ELSIF AxisRecipe.LoadRecipe THEN - AxisRecipe.State := REC_AXIS_LOAD; - AxisRecipe.LoadRecipe := FALSE; - END_IF - // Create recipe state - REC_AXIS_CREATE: - IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN - ParametersPreview := ParametersEdit; - ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN - MachineSettingsPreview := MachineSettingsEdit; - END_IF - AxisRecipe.State := REC_AXIS_WAIT; - // Load recipe state - REC_AXIS_LOAD: - IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN - AxisControl.Parameters := ParametersPreview; - ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN - MachineSettings := MachineSettingsPreview; - END_IF - AxisRecipe.State := REC_AXIS_WAIT; - // Save recipe state - REC_AXIS_SAVE: - IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN - ParametersPreview := ParametersEdit; - ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN - MachineSettingsPreview := MachineSettingsEdit; - END_IF - AxisRecipe.State := REC_AXIS_WAIT; - - END_CASE; - - // Cyclic function block calls - MpRecipeRegPar_Par.MpLink := ADR(gMpLinkRecipeXml); - IF (AxisControl.Status.ProductSettingsName = '') THEN - AxisControl.Status.ProductSettingsName := AxisControl.Status.TaskName; - brsstrcat(ADR(AxisControl.Status.ProductSettingsName), ADR(':ParametersPreview')); - END_IF - MpRecipeRegPar_Par.PVName := ADR(AxisControl.Status.ProductSettingsName); - MpRecipeRegPar_Par.Category := ADR(PARAMETERS_CATEGORY); - MpRecipeRegPar_Par(); - - MpRecipeRegPar_Cfg.MpLink := ADR(gMpLinkRecipeXml); - IF (AxisControl.Status.MachineSettingsName = '') THEN - AxisControl.Status.MachineSettingsName := AxisControl.Status.TaskName; - brsstrcat(ADR(AxisControl.Status.MachineSettingsName), ADR(':MachineSettingsPreview')); - END_IF - - MpRecipeRegPar_Cfg.PVName := ADR(AxisControl.Status.MachineSettingsName); - MpRecipeRegPar_Cfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); - MpRecipeRegPar_Cfg(); - +ACTION RecipeInit: + + // Register the variables with the recipe system + AxisControl.Status.ProductSettingsName := AxisControl.Status.TaskName; + brsstrcat(ADR(AxisControl.Status.ProductSettingsName), ADR(':ParametersPreview')); + MpRecipeRegPar_Par.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_Par.Enable := TRUE; + MpRecipeRegPar_Par.PVName := ADR(AxisControl.Status.ProductSettingsName); + MpRecipeRegPar_Par.Category := ADR(PARAMETERS_CATEGORY); + MpRecipeRegPar_Par(); + ParametersPreview; + ParametersEdit; + + AxisControl.Status.MachineSettingsName := AxisControl.Status.TaskName; + brsstrcat(ADR(AxisControl.Status.MachineSettingsName), ADR(':MachineSettingsPreview')); + MpRecipeRegPar_Cfg.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_Cfg.Enable := TRUE; + MpRecipeRegPar_Cfg.PVName := ADR(AxisControl.Status.MachineSettingsName); + MpRecipeRegPar_Cfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); + MpRecipeRegPar_Cfg(); + MachineSettingsPreview; + MachineSettingsEdit; + + // Activate RegPar FUBs + WHILE NOT(MpRecipeRegPar_Par.Active OR MpRecipeRegPar_Par.Error) DO + MpRecipeRegPar_Par(); + END_WHILE + WHILE NOT(MpRecipeRegPar_Cfg.Active OR MpRecipeRegPar_Cfg.Error) DO + MpRecipeRegPar_Cfg(); + END_WHILE + +END_ACTION + +ACTION RecipeCyclic: + + // HMI support handling + IF (AxisRecipe.EditDialogOpened OR AxisRecipe.CreateDialogOpened) THEN + IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN + ParametersEdit := ParametersPreview; + ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN + MachineSettingsEdit := MachineSettingsPreview; + END_IF + AxisRecipe.EditDialogOpened := FALSE; + AxisRecipe.CreateDialogOpened := FALSE; + END_IF + + CASE AxisRecipe.State OF + // Wait state + REC_AXIS_WAIT: + IF AxisRecipe.CreateRecipe THEN + AxisRecipe.State := REC_AXIS_CREATE; + AxisRecipe.CreateRecipe := FALSE; + ELSIF AxisRecipe.SaveRecipe THEN + AxisRecipe.State := REC_AXIS_SAVE; + AxisRecipe.SaveRecipe := FALSE; + ELSIF AxisRecipe.LoadRecipe THEN + AxisRecipe.State := REC_AXIS_LOAD; + AxisRecipe.LoadRecipe := FALSE; + END_IF + // Create recipe state + REC_AXIS_CREATE: + IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN + ParametersPreview := ParametersEdit; + ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN + MachineSettingsPreview := MachineSettingsEdit; + END_IF + AxisRecipe.State := REC_AXIS_WAIT; + // Load recipe state + REC_AXIS_LOAD: + IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN + AxisControl.Parameters := ParametersPreview; + ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN + MachineSettings := MachineSettingsPreview; + END_IF + AxisRecipe.State := REC_AXIS_WAIT; + // Save recipe state + REC_AXIS_SAVE: + IF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Product')) = 0) THEN + ParametersPreview := ParametersEdit; + ELSIF (brsstrcmp(ADR(AxisRecipe.CategoryDropdown), ADR('Machine')) = 0) THEN + MachineSettingsPreview := MachineSettingsEdit; + END_IF + AxisRecipe.State := REC_AXIS_WAIT; + + END_CASE; + + // Cyclic function block calls + MpRecipeRegPar_Par.MpLink := ADR(gMpLinkRecipeXml); + IF (AxisControl.Status.ProductSettingsName = '') THEN + AxisControl.Status.ProductSettingsName := AxisControl.Status.TaskName; + brsstrcat(ADR(AxisControl.Status.ProductSettingsName), ADR(':ParametersPreview')); + END_IF + MpRecipeRegPar_Par.PVName := ADR(AxisControl.Status.ProductSettingsName); + MpRecipeRegPar_Par.Category := ADR(PARAMETERS_CATEGORY); + MpRecipeRegPar_Par(); + + MpRecipeRegPar_Cfg.MpLink := ADR(gMpLinkRecipeXml); + IF (AxisControl.Status.MachineSettingsName = '') THEN + AxisControl.Status.MachineSettingsName := AxisControl.Status.TaskName; + brsstrcat(ADR(AxisControl.Status.MachineSettingsName), ADR(':MachineSettingsPreview')); + END_IF + + MpRecipeRegPar_Cfg.PVName := ADR(AxisControl.Status.MachineSettingsName); + MpRecipeRegPar_Cfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); + MpRecipeRegPar_Cfg(); + END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg index 9df5c580..504b59a0 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg @@ -4,15 +4,15 @@ AxisMgr.st AxisMgr.typ - AxisMgr.var Variables.var - AxisStateMachine.st AxisControlModes.st - Recipe.st SimulationControl.st LocalFunctions.fun ManualCommand.st AutomaticCommand.st - ChangeConfiguration.st + \Logical\MachineControl\AxisReferencedFiles\AxisMgr.var + \Logical\MachineControl\AxisReferencedFiles\AxisStateMachine.st + \Logical\MachineControl\AxisReferencedFiles\ChangeConfiguration.st + \Logical\MachineControl\AxisReferencedFiles\Recipe.st \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/Package.pkg b/mappFramework/Logical/MachineControl/Package.pkg index 25e098aa..811d4824 100644 --- a/mappFramework/Logical/MachineControl/Package.pkg +++ b/mappFramework/Logical/MachineControl/Package.pkg @@ -1,8 +1,9 @@  - + LICENSE.txt + AxisReferencedFiles AxisTemplate AppAxis_1 diff --git a/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg b/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg index 357013a0..92a686fa 100644 --- a/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg +++ b/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg @@ -6,11 +6,11 @@ \Logical\UnitTest\Common\CommonUT\CommonVariables.var \Logical\UnitTest\Common\CommonUT\Set_Common.c \Logical\MachineControl\AppAxis_1\AppAxis_1\AxisMgr.typ - \Logical\MachineControl\AxisTemplate\AxisMgr\AxisMgr.var variables.var testSuite.c autoGeneratedFile.c Set_ManualTests.c Set_AutomaticTests.c + \Logical\MachineControl\AxisReferencedFiles\AxisMgr.var \ No newline at end of file From bb6ac58b6f57dd3cee9150efbac016b69380a632 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 10 Apr 2023 16:41:09 -0400 Subject: [PATCH 069/159] AAZM-559: Refactored variables to global to remove direct references to "Default.par" and "Machine.mcfg" --- .../Logical/Infrastructure/File/FileMgr/HMIActions.st | 6 +++--- .../Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st | 2 +- .../Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var | 4 ---- .../Logical/Infrastructure/mappFrameworkGlobal.var | 8 ++++++++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 1857dbaa..fe6c2092 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -142,8 +142,8 @@ ACTION FileManager: END_IF HmiFile.Status.BackButton := (FolderDepthCount > 0); - HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Default.par') OR - (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Machine.mcfg')) AND - MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = CONCAT(DEFAULT_PARAMETERS,PARAMETERS_FILE_EXTENSION)) OR + (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = CONCAT(DEFAULT_MACHINE_CONFIGURATION, + MACHINE_CONFIG_FILE_EXTENSION))) AND MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st index 608956c7..3cf3d553 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/HMIActions.st @@ -238,7 +238,7 @@ ACTION RecipeHMIcommands: // Set whether the loading .gif should be shown on the HMI HmiRecipe.Status.LoadingRecipeList := (MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_REFRESH); - HmiRecipe.Status.DefaultRecipeSelected := (HmiRecipe.Status.SelectedRecipe = 'Default.par') OR (HmiRecipe.Status.SelectedRecipe = 'Machine.mcfg'); + HmiRecipe.Status.DefaultRecipeSelected := (HmiRecipe.Status.SelectedRecipe = CONCAT(DEFAULT_PARAMETERS,PARAMETERS_FILE_EXTENSION)) OR (HmiRecipe.Status.SelectedRecipe = CONCAT(DEFAULT_MACHINE_CONFIGURATION, MACHINE_CONFIG_FILE_EXTENSION)); // Update status information HmiRecipe.Status.LastStatus := MpRecipeUIConnect.Status; diff --git a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var index 37b28eb0..a9571307 100644 --- a/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var +++ b/mappFramework/Logical/Infrastructure/Recipe/RecipeMgr/RecipeMgr.var @@ -11,10 +11,6 @@ END_VAR (*Constants*) VAR CONSTANT MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 1; (*Maximum number of file devices *) - DEFAULT_PARAMETERS : STRING[20] := 'Default'; (*Default parameters recipe file name*) - PARAMETERS_FILE_EXTENSION : STRING[10] := '.par'; (*File extension for parameter recipe files*) - DEFAULT_MACHINE_CONFIGURATION : STRING[20] := 'Machine'; (*Default machine configuration recipe file name*) - MACHINE_CONFIG_FILE_EXTENSION : STRING[10] := '.mcfg'; (*File extension for machine configuration recipe files*) END_VAR VAR PARAMETERS_RECIPE : STRING[50] := 'Parameters'; (*Value of the DropDownBox selection for the Parameters category*) diff --git a/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var b/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var index 9a12621a..c220ea45 100644 --- a/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var +++ b/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var @@ -1,6 +1,14 @@ +(*Recipe*) VAR CONSTANT PARAMETERS_CATEGORY : STRING[10] := 'Parameters'; (*Recipe category for runtime parameters*) MACHINE_CONFIGURATION_CATEGORY : STRING[30] := 'Machine Configuration'; (*Recipe category for machine configuration settings*) + DEFAULT_PARAMETERS : STRING[20] := 'Default'; (*Default parameters recipe file name*) + PARAMETERS_FILE_EXTENSION : STRING[10] := '.par'; (*File extension for parameter recipe files*) + DEFAULT_MACHINE_CONFIGURATION : STRING[20] := 'Machine'; (*Default machine configuration recipe file name*) + MACHINE_CONFIG_FILE_EXTENSION : STRING[10] := '.mcfg'; (*File extension for machine configuration recipe files*) +END_VAR +(*File*) +VAR CONSTANT MAX_IDX_USB_DEV_LIST : USINT := 2; (*Maximum number of USB storage devices. Value 2 = 2 USB devices (index 0 and 1)*) IDX_USB_DEV_LIST : USINT := MAX_IDX_USB_DEV_LIST - 1; (*Maximum number of USB storage devices.*) END_VAR From efb2086c3c126d3d7fc3b26cdfc01dc6d9360d7b Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Thu, 13 Apr 2023 09:30:46 +0300 Subject: [PATCH 070/159] mapp AlarmX - Done mapp UserX - Done mapp File - Done mapp Recipe - Done mapp Report - Almost finished mapp Audit - The start was made mapp Axis - Not started mapp Backup - Not started --- .../Report/ReportMgr/ReportMgr.typ | 11 + .../VC4/Visu/Layers/LockedMessageLayer.layer | 126 + mappFramework/Logical/VC4/Visu/Package.vcp | 3 + .../VC4/Visu/Pages/MpFileManagerUI.page | 99 +- .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 121 +- .../Logical/VC4/Visu/Pages/MpReport.page | 765 ++++++ .../Visu/Pages/MpUserXManagerUI_Users.page | 99 +- .../VC4/Visu/Pages/mapp1StartPage.page | 87 +- .../Logical/VC4/Visu/StyleSheets/Default2.vcs | 2320 +++++++++++++++++ .../Logical/VC4/Visu/VirtualKeys.vcvk | 56 +- .../VCShared/DataSources/DataSource.dso | 151 ++ mappFramework/Logical/VCShared/Package.vcp | 3 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 4 +- .../TextGroups/MpReportUITexts.txtgrp | 160 ++ .../VCShared/TextGroups/mappComponents.txtgrp | 3 + 15 files changed, 3693 insertions(+), 315 deletions(-) create mode 100644 mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpReport.page create mode 100644 mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ index cce565da..5ba1d201 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ @@ -34,6 +34,7 @@ TYPE LastSelectedDeviceIndex : UINT; (*Index of the last selected file device. Compared with MpFileManagerUIConnect.DeviceList.SelectedIndex*) TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available reports*) FilterString : STRING[1000]; (*String used to filter out any file that is not a PDF*) + Layer : ReportStatusLayerType; END_STRUCT; ReportExampleType : STRUCT (*Structure for the example data used by the two types of reports*) SimpleReport : SimpleReportDataType; (*Structure for the simple report's example data*) @@ -70,3 +71,13 @@ TYPE FORMAT_ADVANCED (*An advanced report to showcase some features of mapp Report*) ); END_TYPE + +(**) + +TYPE + ReportStatusLayerType : STRUCT + ReportCreate : USINT; + ReportDelete : USINT; + ReportView : USINT; + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer new file mode 100644 index 00000000..971396dc --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/Visu/Package.vcp index ddab5982..913934ac 100644 --- a/mappFramework/Logical/VC4/Visu/Package.vcp +++ b/mappFramework/Logical/VC4/Visu/Package.vcp @@ -401,13 +401,16 @@ + + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index 833ce7ce..d9a0e966 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -2437,110 +2437,19 @@ - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index 4f91352b..dbcf898c 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -3530,6 +3530,19 @@ + + + + + + + + + + + + + @@ -3544,7 +3557,7 @@ - + @@ -3586,7 +3599,7 @@ - + @@ -3678,110 +3691,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page b/mappFramework/Logical/VC4/Visu/Pages/MpReport.page new file mode 100644 index 00000000..cceb1298 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpReport.page @@ -0,0 +1,765 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index c9531300..5a7363bb 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -4203,110 +4203,19 @@ - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index 7564aed8..bbe228fe 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -192,7 +192,7 @@ - + @@ -202,7 +202,7 @@ - + @@ -402,7 +402,7 @@ - + @@ -412,10 +412,40 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -574,6 +604,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs b/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs new file mode 100644 index 00000000..7f243c93 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs @@ -0,0 +1,2320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index 82b6963b..c2013005 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -1702,19 +1702,15 @@ - + - + - - - - - + @@ -2542,10 +2538,6 @@ - - - - @@ -2626,7 +2618,47 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 32042253..17c6df0d 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -15240,6 +15240,15 @@ + + + + + + + + + @@ -16639,6 +16648,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index ef4c2f54..48b229e3 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + @@ -104,6 +104,7 @@ + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 89659a6c..c067216c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -27,10 +27,10 @@ - + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp new file mode 100644 index 00000000..1cb5d5f5 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index 186a5fbf..bd13d2e9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -42,6 +42,7 @@ + @@ -81,6 +82,7 @@ + @@ -120,5 +122,6 @@ + \ No newline at end of file From e48b5f5681adaf33511248f95b01cc73a95531cc Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Thu, 13 Apr 2023 09:08:00 -0400 Subject: [PATCH 071/159] Added PackML Library --- .../PackMLLib/Description.widgetlibrary | 2 + .../Widgets/PackMLLib/PackMLInfo/Package.pkg | 7 + .../PackMLInfo/Widget.compoundwidget | 310 +++++ .../PackMLLib/PackMLInfoBanner/Package.pkg | 7 + .../PackMLInfoBanner/Widget.compoundwidget | 429 ++++++ .../PackMLLib/PackMLMainModule/Package.pkg | 7 + .../PackMLMainModule/Widget.compoundwidget | 1012 ++++++++++++++ .../PackMLMainModuleSlim/Package.pkg | 7 + .../Widget.compoundwidget | 1011 ++++++++++++++ .../Widgets/PackMLLib/PackMLModel/Package.pkg | 7 + .../PackMLModel/Widget.compoundwidget | 302 +++++ .../PackMLLib/PackMLModelOld/Package.pkg | 7 + .../PackMLModelOld/Widget.compoundwidget | 270 ++++ .../PackMLLib/PackMLModule/Package.pkg | 7 + .../PackMLModule/Widget.compoundwidget | 416 ++++++ .../PackMLLib/PackMLModuleSlim/Package.pkg | 7 + .../PackMLModuleSlim/Widget.compoundwidget | 252 ++++ .../Widgets/PackMLLib/PackML_support_lib.png | Bin 0 -> 856 bytes .../mappView/Widgets/PackMLLib/Package.pkg | 17 + .../PackMLLib/Resources/Media/PackML.svg | 1167 ++++++++++++++++ .../PackMLLib/Resources/Media/PackMLCmd.svg | 1174 +++++++++++++++++ .../PackMLLib/Resources/Media/PackMLOld.svg | 241 ++++ .../PackMLLib/Resources/Media/Package.pkg | 10 + .../PackMLLib/Resources/Media/TouchMe.svg | 18 + .../Widgets/PackMLLib/Resources/Package.pkg | 8 + .../PackMLLib/Resources/Texts/Package.pkg | 5 + .../Logical/mappView/Widgets/Package.pkg | 1 + 27 files changed, 6701 insertions(+) create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Description.widgetlibrary create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/PackML_support_lib.png create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackML.svg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmd.svg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOld.svg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/TouchMe.svg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Description.widgetlibrary b/mappFramework/Logical/mappView/Widgets/PackMLLib/Description.widgetlibrary new file mode 100644 index 00000000..30a60c0d --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Description.widgetlibrary @@ -0,0 +1,2 @@ + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Widget.compoundwidget new file mode 100644 index 00000000..c6062ca5 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfo/Widget.compoundwidget @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + + Text for box + + + + + + + Dataprovider for sub state current + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Widget.compoundwidget new file mode 100644 index 00000000..44739d8f --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLInfoBanner/Widget.compoundwidget @@ -0,0 +1,429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + + + + + + + Text for box + + + + + + + Parent info visibility + + + + + + + + + + + Pin flyout + + + + + + + + + + + Pin the flyout to be always open + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Widget.compoundwidget new file mode 100644 index 00000000..1677dda3 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModule/Widget.compoundwidget @@ -0,0 +1,1012 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Text for box + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Widget.compoundwidget new file mode 100644 index 00000000..7c9be8d9 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLMainModuleSlim/Widget.compoundwidget @@ -0,0 +1,1011 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + Text for box + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget new file mode 100644 index 00000000..0a09a550 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PackML state + + + + + + + Bind to PackML command interface + + + + + + + + + + + + + + + + + + PackML transform + + + + + + + + PackML base model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget new file mode 100644 index 00000000..9a0b40e9 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + PackML state + + + + + + + PackML transform + + + + + + + + PackML base model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Widget.compoundwidget new file mode 100644 index 00000000..15d28db3 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModule/Widget.compoundwidget @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + + + + + + + Text for box + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Package.pkg new file mode 100644 index 00000000..9114ffb7 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Widget.compoundwidget new file mode 100644 index 00000000..89d8d47d --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModuleSlim/Widget.compoundwidget @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + Bind to the robot service interface + + + + + + + + + + + + + Text for box + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackML_support_lib.png b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackML_support_lib.png new file mode 100644 index 0000000000000000000000000000000000000000..abf10bf059a86dff826548c2f33bc2871513d039 GIT binary patch literal 856 zcmV-e1E>6nP)Vl&|00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10_90W zK~zYIwbo0hl~oi6@ZY+}UQ~#Y))k{jdeRFelFEtHBnl#^sl8|-L^g^hH48!fx_a80|vux7Fb;Sub?$>QYk3Y#xF zf=>8&ab3#B;^5^mxB>p@AwL!=B@wYyKEu~zA6`!>9UZZU%W(+%Qc5EmE+T%$6&=nvo}94r41V^hKT zqlf$?R*WFOx8VN7F1(0~unDJ%?p-Wx45}3^ANG$Z%^beMR@{$^i_u!$6YoUh_pyq` z^+FHvXYw(bZG1aZ_WGw00UyS-m8Zrzc(r6X%=T@ZR{+cKAhuy<1ZgwC3#-T*QA}e4 zt{M~VLlpsBUPB(k^lK#|R+X|3dLX}HWvXyod$Ba-pj`ew`J{#z^%qO=H-+tTX^;DV zsb}TmIfuhv^a3Sz~^1eQRMeevez*-F_S1$7%C-^={mUcgnXJ6`hPbJ4l=B z2v!Zj4>w5r)?OpVZHxTbF}@OBBVVJZD!@-p(3l@p`1=*!r~oGU4v0$fnn`$i3iqg! z)w&-AU2>oTvwsSgRyrgb2)-L%-+g3?DGvPEG;5qrd zKlE_|TX6nx0;$Pim*MipIHp?*uWYQPRq}wALZ$G iP=150JsZR+CI15E>YaLdB>^M=0000 + + + + Description.widgetlibrary + Resources + PackMLModel + PackMLInfo + PackMLModule + PackMLMainModule + PackMLModuleSlim + PackMLMainModuleSlim + PackMLInfoBanner + PackML_support_lib.png + PackMLModelOld + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackML.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackML.svg new file mode 100644 index 00000000..06ee41e2 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackML.svg @@ -0,0 +1,1167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuspending + Idle + Starting + Unholding + Resetting + Stopped + Stopping + Clearing + Suspended + Execute + Held + Holding + Completing + Suspending + Aborted + Aborting + Complete + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmd.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmd.svg new file mode 100644 index 00000000..d3d2b096 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmd.svg @@ -0,0 +1,1174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuspending + Idle + Starting + Unholding + Resetting + Stopped + Stopping + Clearing + Suspended + Execute + Held + Holding + Completing + Suspending + Aborted + Aborting + Complete + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOld.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOld.svg new file mode 100644 index 00000000..ad1d7de2 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOld.svg @@ -0,0 +1,241 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuspending + Idle + Starting + Unholding + Resetting + Stopped + Stopping + Clearing + Suspended + Execute + Held + Holding + Completing + Suspending + Aborted + Aborting + Complete + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg new file mode 100644 index 00000000..8b908d08 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg @@ -0,0 +1,10 @@ + + + + + PackML.svg + PackMLOld.svg + PackMLCmd.svg + TouchMe.svg + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/TouchMe.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/TouchMe.svg new file mode 100644 index 00000000..69cc59f1 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/TouchMe.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Package.pkg new file mode 100644 index 00000000..1cae5b1e --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Package.pkg @@ -0,0 +1,8 @@ + + + + + Texts + Media + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg new file mode 100644 index 00000000..9dbbe51f --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/Package.pkg b/mappFramework/Logical/mappView/Widgets/Package.pkg index 7fef1c83..8098b7e0 100644 --- a/mappFramework/Logical/mappView/Widgets/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/Package.pkg @@ -3,5 +3,6 @@ AxisControlWidgetLib + PackMLLib \ No newline at end of file From 138779512e2a6192d96da688b374ff1feff53e9a Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Thu, 13 Apr 2023 15:50:58 -0400 Subject: [PATCH 072/159] Implemented basic backend and frontend --- .../PackML/PackMLMgr/HMIActions.st | 15 ++- .../Infrastructure/PackML/PackMLMgr/IEC.prg | 1 + .../PackML/PackMLMgr/PackMLMgr.st | 6 +- .../PackML/PackMLMgr/PackMLMgr.typ | 14 +++ .../PackML/PackMLMgr/PackMLMgr.var | 3 + .../PackML/PackMLMgr/StateMachine.st | 116 ++++++++++++++++++ .../PackMLContent/PackML.content | 3 + .../PackMLModel/Widget.compoundwidget | 30 ++--- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 23 +++- .../PC/mappView/PackML/PackML_content.binding | 14 ++- 10 files changed, 206 insertions(+), 19 deletions(-) create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st index a4c8a1bb..e8dc46e6 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -1,4 +1,17 @@ -ACTION Action: +ACTION HmiCommands: + + MpPackMLMode_0.Abort := HmiPackML.Commands.Abort; + MpPackMLMode_0.Clear := HmiPackML.Commands.Clear; + MpPackMLMode_0.StateComplete := HmiPackML.Commands.Complete; + MpPackMLMode_0.Hold := HmiPackML.Commands.Hold; + MpPackMLMode_0.Reset := HmiPackML.Commands.Reset; + MpPackMLMode_0.Start := HmiPackML.Commands.Start; + MpPackMLMode_0.Stop := HmiPackML.Commands.Stop; + MpPackMLMode_0.Suspend := HmiPackML.Commands.Suspend; + MpPackMLMode_0.Unhold := HmiPackML.Commands.Unhold; + MpPackMLMode_0.Unsuspend := HmiPackML.Commands.Unsuspend; END_ACTION + + diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg index cb1debe6..45dd079b 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg @@ -6,5 +6,6 @@ PackMLMgr.typ PackMLMgr.var HMIActions.st + StateMachine.st \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index f496ab80..949ceafc 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -6,6 +6,7 @@ //*********************************************************************** PROGRAM _INIT + // Create folder for this component on the user file device DirCreate_0(enable := TRUE, pDevice := ADR('mappPackMLFiles'), pName := ADR('/')); @@ -28,8 +29,10 @@ PROGRAM _INIT END_PROGRAM PROGRAM _CYCLIC - // Call all cyclic actions + // Call all cyclic actions + HmiCommands; + StateMachine; // Assign MpLinks & UIConnects MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); @@ -42,6 +45,7 @@ PROGRAM _CYCLIC END_PROGRAM PROGRAM _EXIT + // Disable the function blocks to unlink the MpLinks MpPackMLCore_0.Enable := FALSE; MpPackMLMode_0.Enable := FALSE; diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ index ae9a53fe..acaee568 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ @@ -7,10 +7,24 @@ TYPE Status : PackMLStatusType; END_STRUCT; PackMLCommandsType : STRUCT + Reset : BOOL; + Start : BOOL; + Stop : BOOL; + Hold : BOOL; + Unhold : BOOL; + Suspend : BOOL; + Unsuspend : BOOL; + Abort : BOOL; + Clear : BOOL; + Complete : BOOL; END_STRUCT; PackMLParametersType : STRUCT + Par : USINT; END_STRUCT; PackMLStatusType : STRUCT + CurrentPackMLState : MpPackMLStateEnum; + CurrentMode : DINT; + DownTimeReason : STRING[255]; END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index 766aff4c..5b407f72 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -10,3 +10,6 @@ VAR HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) END_VAR (*Variables*) +VAR + HmiPackMLState : STRING[100]; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st new file mode 100644 index 00000000..817e8a0a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st @@ -0,0 +1,116 @@ + +ACTION StateMachine: + + CASE MpPackMLMode_0.StateCurrent OF + + + mpPACKML_STATE_UNDEFINED: + HmiPackMLState := 'Undefined'; + + // Add UNDEFINED actions here + + mpPACKML_STATE_CLEARING: + HmiPackMLState := 'Clearing'; + + // Add CLEARING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_STOPPED: + HmiPackMLState := 'Stopped'; + + // Add STOPPED actions here + + mpPACKML_STATE_STARTING: + HmiPackMLState := 'Starting'; + + // Add STARTING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_IDLE: + HmiPackMLState := 'Idle'; + + // Add IDLE actions here + + mpPACKML_STATE_SUSPENDED: + HmiPackMLState := 'Suspended'; + + // Add SUSPENDED actions here + + mpPACKML_STATE_EXECUTE: + HmiPackMLState := 'Execute'; + + // Add EXECUTE actions here + + mpPACKML_STATE_STOPPING: + HmiPackMLState := 'Stopping'; + + // Add STOPPING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_ABORTING: + HmiPackMLState := 'Aborting'; + + // Add ABORTING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_ABORTED: + HmiPackMLState := 'Aborted'; + + // Add ABORTED actions here + + mpPACKML_STATE_HOLDING: + // Add HOLDING actions here + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_HELD: + HmiPackMLState := 'Held'; + + // Add HELD actions here + + mpPACKML_STATE_UNHOLDING: + HmiPackMLState := 'Unholding'; + + // Add UNHOLDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_SUSPENDING: + HmiPackMLState := 'Suspending'; + + // Add SUSPENDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_UNSUSPENDING: + HmiPackMLState := 'Unsuspending'; + + // Add UNSUSPENDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_RESETTING: + HmiPackMLState := 'Resetting'; + + // Add RESETTING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_COMPLETING: + HmiPackMLState := 'Completing'; + + // Add COMPLETING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_COMPLETE: + HmiPackMLState := 'Complete'; + + // Add COMPLETE actions here + + END_CASE + +END_ACTION diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content index 396796dd..8bafb7ac 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -2,5 +2,8 @@ + + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget index 0a09a550..1cf19b91 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget @@ -1,21 +1,21 @@  - + - + - + - - - - - - - - - - - + + + + + + + + + + + @@ -33,7 +33,7 @@ - + Bind to PackML command interface diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 648c2dfa..5dd8cde3 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -23,7 +23,28 @@ - + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding index 99d0e60b..1c8bbae8 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding @@ -1,5 +1,17 @@  - + + + + + + + + + + + + + From 8c2030d7303effde8bee7af173968c6eadb8d3a6 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Thu, 13 Apr 2023 16:32:35 -0400 Subject: [PATCH 073/159] Fixed bug in state machine and banner --- .../PackML/PackMLMgr/PackMLMgr.var | 1 + .../PackML/PackMLMgr/StateMachine.st | 50 ++++++++++++++++++- .../PackMLContent/PackML.content | 2 +- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 1 + .../PC/mappView/PackML/PackML_content.binding | 4 ++ 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index 5b407f72..15e89e7e 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -12,4 +12,5 @@ END_VAR (*Variables*) VAR HmiPackMLState : STRING[100]; + Completing_TON : TON; END_VAR diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st index 817e8a0a..14be013f 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st @@ -1,15 +1,21 @@ ACTION StateMachine: - CASE MpPackMLMode_0.StateCurrent OF + CASE MpPackMLCore_0.StateCurrent OF mpPACKML_STATE_UNDEFINED: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Undefined'; // Add UNDEFINED actions here + + MpPackMLMode_0.Activate := TRUE; mpPACKML_STATE_CLEARING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Clearing'; // Add CLEARING actions here @@ -17,11 +23,15 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_STOPPED: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Stopped'; // Add STOPPED actions here mpPACKML_STATE_STARTING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Starting'; // Add STARTING actions here @@ -29,21 +39,28 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_IDLE: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Idle'; // Add IDLE actions here mpPACKML_STATE_SUSPENDED: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Suspended'; // Add SUSPENDED actions here mpPACKML_STATE_EXECUTE: + HmiPackMLState := 'Execute'; // Add EXECUTE actions here mpPACKML_STATE_STOPPING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Stopping'; // Add STOPPING actions here @@ -51,6 +68,8 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_ABORTING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Aborting'; // Add ABORTING actions here @@ -58,20 +77,31 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_ABORTED: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Aborted'; // Add ABORTED actions here mpPACKML_STATE_HOLDING: + + MpPackMLMode_0.StateComplete := FALSE; + HmiPackMLState := 'Holding'; + // Add HOLDING actions here + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_HELD: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Held'; // Add HELD actions here mpPACKML_STATE_UNHOLDING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Unholding'; // Add UNHOLDING actions here @@ -79,6 +109,8 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_SUSPENDING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Suspending'; // Add SUSPENDING actions here @@ -86,6 +118,8 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_UNSUSPENDING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Unsuspending'; // Add UNSUSPENDING actions here @@ -93,6 +127,8 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_RESETTING: + + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Resetting'; // Add RESETTING actions here @@ -100,13 +136,23 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_COMPLETING: + MpPackMLMode_0.StateComplete := FALSE; HmiPackMLState := 'Completing'; // Add COMPLETING actions here + // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below may be commented out and replaced by the following line. + Completing_TON.PT := T#100ms; + Completing_TON.IN := TRUE; + IF Completing_TON.Q THEN + Completing_TON.IN := FALSE; + MpPackMLMode_0.StateComplete := TRUE; + END_IF + Completing_TON(); + // MpPackMLMode_0.StateComplete := TRUE; - MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_COMPLETE: + HmiPackMLState := 'Complete'; // Add COMPLETE actions here diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content index 8bafb7ac..894a6a66 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 5dd8cde3..202d3b5d 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -80,6 +80,7 @@ + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding index 1c8bbae8..a8dc7609 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding @@ -13,5 +13,9 @@ + + + + From 6046825eb997909a55ae8443ea8c144a47f01468 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Fri, 14 Apr 2023 12:55:09 -0400 Subject: [PATCH 074/159] Fixed bug in Paper widget --- .../PackML/PackMLMgr/StateMachine.st | 3 +- .../PackMLModel/Widget.compoundwidget | 4 +- .../Resources/Media/PackMLCmdResized.svg | 329 ++++++++++++++++++ .../PackMLLib/Resources/Media/Package.pkg | 1 + 4 files changed, 334 insertions(+), 3 deletions(-) create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st index 14be013f..261041a3 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st @@ -140,7 +140,7 @@ ACTION StateMachine: HmiPackMLState := 'Completing'; // Add COMPLETING actions here - // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below may be commented out and replaced by the following line. + // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below may be removed and replaced by the following line. Completing_TON.PT := T#100ms; Completing_TON.IN := TRUE; IF Completing_TON.Q THEN @@ -148,6 +148,7 @@ ACTION StateMachine: MpPackMLMode_0.StateComplete := TRUE; END_IF Completing_TON(); + // MpPackMLMode_0.StateComplete := TRUE; diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget index 1cf19b91..db96593f 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget @@ -1,9 +1,9 @@  - + - + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg new file mode 100644 index 00000000..26eb6f9d --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg index 8b908d08..e4d5552d 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg @@ -6,5 +6,6 @@ PackMLOld.svg PackMLCmd.svg TouchMe.svg + PackMLCmdResized.svg \ No newline at end of file From 75ef340157db579d283bd3aae801f44f09f5e08c Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Fri, 14 Apr 2023 13:27:49 -0500 Subject: [PATCH 075/159] Quick Cancel svg fix - remove fill color --- .../Media/mappFrameworkSymbols/Edit/Cancel.svg | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Edit/Cancel.svg b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Edit/Cancel.svg index 912ae072..c7332e6c 100644 --- a/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Edit/Cancel.svg +++ b/mappFramework/Logical/mappView/Resources/Media/mappFrameworkSymbols/Edit/Cancel.svg @@ -10,7 +10,7 @@ height="32" class="br-symbol-library" sodipodi:docname="Cancel.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -30,15 +30,15 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1920" - inkscape:window-height="1017" + inkscape:window-width="3440" + inkscape:window-height="1377" id="namedview9" showgrid="false" - inkscape:zoom="1" - inkscape:cx="7.5" - inkscape:cy="20" - inkscape:window-x="3832" - inkscape:window-y="-8" + inkscape:zoom="16" + inkscape:cx="11" + inkscape:cy="25.875" + inkscape:window-x="1912" + inkscape:window-y="1072" inkscape:window-maximized="1" inkscape:current-layer="Ebene_1" inkscape:document-rotation="0" @@ -59,5 +59,5 @@
    From 75df071f235e40f85ec27348362bff7b204cda3e Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Mon, 17 Apr 2023 07:42:50 -0500 Subject: [PATCH 076/159] UserX - UserList EventBinding IDs missing/incomplete --- .../PC/mappView/UserX/UserList_content.eventbinding | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding index d14f710f..9b308b84 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/UserX/UserList_content.eventbinding @@ -209,7 +209,7 @@ - + @@ -219,7 +219,7 @@ - + From 369aade700e3d1d9ce7b8df76dec2fadf5011b37 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 10:21:10 -0400 Subject: [PATCH 077/159] Updated state machine and backend to view PackMLModule instead of PackMLCore --- .../PackML/PackMLMgr/HMIActions.st | 20 ++--- .../Infrastructure/PackML/PackMLMgr/IEC.prg | 2 +- .../PackML/PackMLMgr/PackMLMgr.st | 30 +++---- .../PackML/PackMLMgr/PackMLMgr.typ | 1 + .../PackML/PackMLMgr/PackMLMgr.var | 2 + .../{StateMachine.st => StateMachine_Main.st} | 85 ++++++++++--------- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 31 +++++++ .../PackML/PackMLCfg.mppackmlcore | 12 +++ .../PackML/PackMLMain.mppackmlmodule | 13 +++ .../PC/mappServices/PackML/Package.pkg | 1 + .../PC/mappView/Navigation_content.binding | 9 ++ .../Simulation/PC/mappView/PackML.vis | 5 +- .../PackML/Navigation_content.binding | 5 +- .../Simulation/PC/mappView/Package.pkg | 1 + 14 files changed, 141 insertions(+), 76 deletions(-) rename mappFramework/Logical/Infrastructure/PackML/PackMLMgr/{StateMachine.st => StateMachine_Main.st} (54%) create mode 100644 mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLMain.mppackmlmodule create mode 100644 mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st index e8dc46e6..e1799da2 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -1,16 +1,16 @@ ACTION HmiCommands: - MpPackMLMode_0.Abort := HmiPackML.Commands.Abort; - MpPackMLMode_0.Clear := HmiPackML.Commands.Clear; - MpPackMLMode_0.StateComplete := HmiPackML.Commands.Complete; - MpPackMLMode_0.Hold := HmiPackML.Commands.Hold; - MpPackMLMode_0.Reset := HmiPackML.Commands.Reset; - MpPackMLMode_0.Start := HmiPackML.Commands.Start; - MpPackMLMode_0.Stop := HmiPackML.Commands.Stop; - MpPackMLMode_0.Suspend := HmiPackML.Commands.Suspend; - MpPackMLMode_0.Unhold := HmiPackML.Commands.Unhold; - MpPackMLMode_0.Unsuspend := HmiPackML.Commands.Unsuspend; + MpPackMLModule_Main.Command.Abort := HmiPackML.Commands.Abort; + MpPackMLModule_Main.Command.Clear := HmiPackML.Commands.Clear; + MpPackMLModule_Main.Command.StateComplete := HmiPackML.Commands.Complete; + MpPackMLModule_Main.Command.Hold := HmiPackML.Commands.Hold; + MpPackMLModule_Main.Command.Reset := HmiPackML.Commands.Reset; + MpPackMLModule_Main.Command.Start := HmiPackML.Commands.Start; + MpPackMLModule_Main.Command.Stop := HmiPackML.Commands.Stop; + MpPackMLModule_Main.Command.Suspend := HmiPackML.Commands.Suspend; + MpPackMLModule_Main.Command.Unhold := HmiPackML.Commands.Unhold; + MpPackMLModule_Main.Command.Unsuspend := HmiPackML.Commands.Unsuspend; END_ACTION diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg index 45dd079b..4660f09e 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg @@ -6,6 +6,6 @@ PackMLMgr.typ PackMLMgr.var HMIActions.st - StateMachine.st + StateMachine_Main.st \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index 949ceafc..8b6ebfbf 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -16,43 +16,35 @@ PROGRAM _INIT END_IF // Initialize mapp function blocks - MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); - MpPackMLCore_0.Enable := TRUE; - MpPackMLCore_0(); + MpPackMLModule_Main.Parameters := ADR(MpPackMLModulePar_Main); + MpPackMLModule_Main.MpLink := ADR(gPackMLModule_Main); + MpPackMLModule_Main.Enable := TRUE; + MpPackMLModule_Main(); - MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); - MpPackMLMode_0.Enable := TRUE; - MpPackMLMode_0.ModeID := 1; - MpPackMLMode_0(); - - END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions HmiCommands; - StateMachine; + StateMachine_Main; // Assign MpLinks & UIConnects - MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); - MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); - + MpPackMLModule_Main.Parameters := ADR(MpPackMLModulePar_Main); + MpPackMLModule_Main.MpLink := ADR(gPackMLModule_Main); + // Call function blocks - MpPackMLCore_0(); - MpPackMLMode_0(); + MpPackMLModule_Main(); END_PROGRAM PROGRAM _EXIT // Disable the function blocks to unlink the MpLinks - MpPackMLCore_0.Enable := FALSE; - MpPackMLMode_0.Enable := FALSE; + MpPackMLModule_Main.Enable := FALSE; // Call function blocks - MpPackMLCore_0(); - MpPackMLMode_0(); + MpPackMLModule_Main(); END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ index acaee568..c062218e 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ @@ -5,6 +5,7 @@ TYPE Commands : PackMLCommandsType; Parameters : PackMLParametersType; Status : PackMLStatusType; + Activate : BOOL; END_STRUCT; PackMLCommandsType : STRUCT Reset : BOOL; diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index 15e89e7e..eef51a67 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -3,6 +3,8 @@ VAR DirCreate_0 : DirCreate; (*DirCreate instance*) MpPackMLCore_0 : MpPackMLCore; (*MpPackMLCore instance*) MpPackMLMode_0 : MpPackMLMode; (*MpPackMLMode instance*) + MpPackMLModule_Main : MpPackMLModule; + MpPackMLModulePar_Main : MpPackMLModuleParType; END_VAR (*Constants*) (*Structure Types*) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st similarity index 54% rename from mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st rename to mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index 261041a3..333710b4 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -1,53 +1,48 @@ -ACTION StateMachine: +ACTION StateMachine_Main: - CASE MpPackMLCore_0.StateCurrent OF - - - mpPACKML_STATE_UNDEFINED: + CASE MpPackMLModule_Main.StateCurrent OF + + mpPACKML_STATE_DEACTIVATING: - MpPackMLMode_0.StateComplete := FALSE; - HmiPackMLState := 'Undefined'; + // Add DEACTIVATING actions here - // Add UNDEFINED actions here + mpPACKML_STATE_DEACTIVATED: - MpPackMLMode_0.Activate := TRUE; - - mpPACKML_STATE_CLEARING: + // Add DEACTIVATED actions here - MpPackMLMode_0.StateComplete := FALSE; - HmiPackMLState := 'Clearing'; + mpPACKML_STATE_ACTIVATING: - // Add CLEARING actions here + // Add ACTIVATING actions here - MpPackMLMode_0.StateComplete := TRUE; - + MpPackMLModule_Main.Command.StateComplete := TRUE; + mpPACKML_STATE_STOPPED: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Stopped'; // Add STOPPED actions here mpPACKML_STATE_STARTING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Starting'; // Add STARTING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_IDLE: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Idle'; // Add IDLE actions here mpPACKML_STATE_SUSPENDED: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Suspended'; // Add SUSPENDED actions here @@ -60,83 +55,93 @@ ACTION StateMachine: mpPACKML_STATE_STOPPING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Stopping'; // Add STOPPING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; + + mpPACKML_STATE_CLEARING: + + MpPackMLModule_Main.Command.StateComplete := FALSE; + HmiPackMLState := 'Clearing'; + + // Add CLEARING actions here + + MpPackMLModule_Main.Command.StateComplete := TRUE; + mpPACKML_STATE_ABORTING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Aborting'; // Add ABORTING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_ABORTED: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Aborted'; // Add ABORTED actions here mpPACKML_STATE_HOLDING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Holding'; // Add HOLDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_HELD: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Held'; // Add HELD actions here mpPACKML_STATE_UNHOLDING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Unholding'; // Add UNHOLDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_SUSPENDING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Suspending'; // Add SUSPENDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_UNSUSPENDING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Unsuspending'; // Add UNSUSPENDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_RESETTING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Resetting'; // Add RESETTING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_COMPLETING: - MpPackMLMode_0.StateComplete := FALSE; + MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Completing'; // Add COMPLETING actions here @@ -145,11 +150,11 @@ ACTION StateMachine: Completing_TON.IN := TRUE; IF Completing_TON.Q THEN Completing_TON.IN := FALSE; - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLModule_Main.Command.StateComplete := TRUE; END_IF Completing_TON(); - // MpPackMLMode_0.StateComplete := TRUE; + // MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_COMPLETE: diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 202d3b5d..8e66c0b4 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -81,6 +81,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore index 2f587999..50d8e707 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore @@ -2,12 +2,24 @@ + + + + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLMain.mppackmlmodule b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLMain.mppackmlmodule new file mode 100644 index 00000000..e762dc21 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLMain.mppackmlmodule @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg b/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg index 8cee59ad..66309cc5 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/Package.pkg @@ -3,5 +3,6 @@ PackMLCfg.mppackmlcore + PackMLMain.mppackmlmodule \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding b/mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding new file mode 100644 index 00000000..551efbfc --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis index f73d665b..3dfe232f 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis @@ -6,8 +6,9 @@ - + + @@ -35,4 +36,4 @@ - \ No newline at end of file + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding index 73780972..0ab261e7 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding @@ -1,9 +1,6 @@  - - - - + diff --git a/mappFramework/Physical/Simulation/PC/mappView/Package.pkg b/mappFramework/Physical/Simulation/PC/mappView/Package.pkg index 2e537161..1de72394 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/mappView/Package.pkg @@ -23,5 +23,6 @@ Audit Report PackML + Navigation_content.binding \ No newline at end of file From 7c832f46b1696947afac13473996aa2dbe331fd6 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 10:27:59 -0400 Subject: [PATCH 078/159] Simplified state machine and var list --- .../PackML/PackMLMgr/PackMLMgr.var | 3 -- .../PackML/PackMLMgr/StateMachine_Main.st | 11 ++---- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 35 ------------------- 3 files changed, 2 insertions(+), 47 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index eef51a67..eaa299d9 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -1,8 +1,6 @@ (*Function Blocks*) VAR DirCreate_0 : DirCreate; (*DirCreate instance*) - MpPackMLCore_0 : MpPackMLCore; (*MpPackMLCore instance*) - MpPackMLMode_0 : MpPackMLMode; (*MpPackMLMode instance*) MpPackMLModule_Main : MpPackMLModule; MpPackMLModulePar_Main : MpPackMLModuleParType; END_VAR @@ -14,5 +12,4 @@ END_VAR (*Variables*) VAR HmiPackMLState : STRING[100]; - Completing_TON : TON; END_VAR diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index 333710b4..18d0861e 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -141,19 +141,12 @@ ACTION StateMachine_Main: MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_COMPLETING: - MpPackMLModule_Main.Command.StateComplete := FALSE; HmiPackMLState := 'Completing'; // Add COMPLETING actions here // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below may be removed and replaced by the following line. - Completing_TON.PT := T#100ms; - Completing_TON.IN := TRUE; - IF Completing_TON.Q THEN - Completing_TON.IN := FALSE; - MpPackMLModule_Main.Command.StateComplete := TRUE; - END_IF - Completing_TON(); - + MpPackMLModule_Main.Command.StateComplete := NOT MpPackMLModule_Main.Command.StateComplete; + // MpPackMLModule_Main.Command.StateComplete := TRUE; diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 8e66c0b4..d7708efb 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -45,41 +45,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 3132ebb150c21b7d6856769d423003eaef08ba0a Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 10:28:21 -0400 Subject: [PATCH 079/159] Simplified state machine and var list --- .../Infrastructure/PackML/PackMLMgr/StateMachine_Main.st | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index 18d0861e..c37e19d8 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -144,9 +144,10 @@ ACTION StateMachine_Main: HmiPackMLState := 'Completing'; // Add COMPLETING actions here - // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below may be removed and replaced by the following line. + + // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below line + // should be removed and replaced by the following line. MpPackMLModule_Main.Command.StateComplete := NOT MpPackMLModule_Main.Command.StateComplete; - // MpPackMLModule_Main.Command.StateComplete := TRUE; From 232a69b39118b78d12dde7fcc81b862748d52e39 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 12:48:48 -0400 Subject: [PATCH 080/159] Changed frontend to use localizable texts (TODO: not done with background PackML image since the texts are native to the image) --- .../PackML/PackMLMgr/PackMLMgr.var | 6 +- .../PackML/PackMLMgr/StateMachine_Main.st | 135 +++++------ .../Texts/mappFrameworkTexts/PackMLTexts.tmx | 220 ++++++++++++++++++ .../PackMLContent/PackML.content | 4 +- .../PackMLLib/Resources/Texts/PackMLTexts.tmx | 203 ++++++++++++++++ .../PackMLLib/Resources/Texts/Package.pkg | 4 +- .../Simulation/PC/TextSystem/TC.textconfig | 1 + .../PC/mappView/PackML/PackML_content.binding | 6 +- .../PackML/PackML_content.eventbinding | 134 ++++++++++- 9 files changed, 634 insertions(+), 79 deletions(-) create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/PackMLTexts.tmx diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index eaa299d9..742a8b4f 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -1,8 +1,8 @@ (*Function Blocks*) VAR DirCreate_0 : DirCreate; (*DirCreate instance*) - MpPackMLModule_Main : MpPackMLModule; - MpPackMLModulePar_Main : MpPackMLModuleParType; + MpPackMLModule_Main : MpPackMLModule; (*PackMLModule instance*) + MpPackMLModulePar_Main : MpPackMLModuleParType; (*PackMLModule Parameter instance*) END_VAR (*Constants*) (*Structure Types*) @@ -11,5 +11,5 @@ VAR END_VAR (*Variables*) VAR - HmiPackMLState : STRING[100]; + HmiPackMLState : USINT; (*PackML State (connected to HMI)*) END_VAR diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index c37e19d8..be6d6c50 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -2,80 +2,75 @@ ACTION StateMachine_Main: CASE MpPackMLModule_Main.StateCurrent OF - - mpPACKML_STATE_DEACTIVATING: - - // Add DEACTIVATING actions here - - mpPACKML_STATE_DEACTIVATED: - - // Add DEACTIVATED actions here - - mpPACKML_STATE_ACTIVATING: - - // Add ACTIVATING actions here - - MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_STOPPED: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Stopped'; + HmiPackMLState := 1; // Add STOPPED actions here mpPACKML_STATE_STARTING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Starting'; + HmiPackMLState := 2; // Add STARTING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - + mpPACKML_STATE_IDLE: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Idle'; + HmiPackMLState := 3; // Add IDLE actions here + + mpPACKML_STATE_SUSPENDING: + + MpPackMLModule_Main.Command.StateComplete := FALSE; + HmiPackMLState := 4; + + // Add SUSPENDING actions here + + MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_SUSPENDED: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Suspended'; + HmiPackMLState := 5; // Add SUSPENDED actions here - - mpPACKML_STATE_EXECUTE: - - HmiPackMLState := 'Execute'; - // Add EXECUTE actions here - mpPACKML_STATE_STOPPING: + mpPACKML_STATE_UNSUSPENDING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Stopping'; + HmiPackMLState := 6; - // Add STOPPING actions here + // Add UNSUSPENDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - mpPACKML_STATE_CLEARING: + mpPACKML_STATE_EXECUTE: + + HmiPackMLState := 7; + + // Add EXECUTE actions here + + mpPACKML_STATE_STOPPING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Clearing'; + HmiPackMLState := 8; - // Add CLEARING actions here + // Add STOPPING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - - + mpPACKML_STATE_ABORTING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Aborting'; + HmiPackMLState := 9; // Add ABORTING actions here @@ -84,78 +79,86 @@ ACTION StateMachine_Main: mpPACKML_STATE_ABORTED: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Aborted'; + HmiPackMLState := 10; + + // Add ABORTED actions here - // Add ABORTED actions here - mpPACKML_STATE_HOLDING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Holding'; + HmiPackMLState := 11; // Add HOLDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - + mpPACKML_STATE_HELD: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Held'; + HmiPackMLState := 12; // Add HELD actions here - + mpPACKML_STATE_UNHOLDING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Unholding'; + HmiPackMLState := 13; // Add UNHOLDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - - mpPACKML_STATE_SUSPENDING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Suspending'; + mpPACKML_STATE_COMPLETING: + HmiPackMLState := 14; - // Add SUSPENDING actions here + // Add COMPLETING actions here + + // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below line + // should be removed and replaced by the following line. + MpPackMLModule_Main.Command.StateComplete := NOT MpPackMLModule_Main.Command.StateComplete; + // MpPackMLModule_Main.Command.StateComplete := TRUE; - MpPackMLModule_Main.Command.StateComplete := TRUE; - mpPACKML_STATE_UNSUSPENDING: + mpPACKML_STATE_COMPLETE: + + HmiPackMLState := 15; + + // Add COMPLETE actions here + + mpPACKML_STATE_RESETTING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Unsuspending'; + HmiPackMLState := 16; - // Add UNSUSPENDING actions here + // Add RESETTING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - - mpPACKML_STATE_RESETTING: + + mpPACKML_STATE_CLEARING: MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 'Resetting'; + HmiPackMLState := 17; - // Add RESETTING actions here + // Add CLEARING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; - - mpPACKML_STATE_COMPLETING: - HmiPackMLState := 'Completing'; - // Add COMPLETING actions here + mpPACKML_STATE_DEACTIVATING: - // NOTE: once COMPLETING actions that take more than one cyclic have been added, the below line - // should be removed and replaced by the following line. - MpPackMLModule_Main.Command.StateComplete := NOT MpPackMLModule_Main.Command.StateComplete; - // MpPackMLModule_Main.Command.StateComplete := TRUE; + HmiPackMLState := 18; + // Add DEACTIVATING actions here + + mpPACKML_STATE_DEACTIVATED: + + HmiPackMLState := 18; + // Add DEACTIVATED actions here + mpPACKML_STATE_ACTIVATING: + + HmiPackMLState := 18; + // Add ACTIVATING actions here - mpPACKML_STATE_COMPLETE: - HmiPackMLState := 'Complete'; - - // Add COMPLETE actions here END_CASE diff --git a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx index 360a7e68..819cfa8b 100644 --- a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx +++ b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx @@ -19,5 +19,225 @@ Bonjour tout le monde! + + + Aktuellen Zustand: + + + 当前状态 + + + Current State: + + + Mon unité + + + + + Abgebrochen + + + 中止完成 + + + Aborted + + + Ma description + + + + + Abbrechen + + + 中止过程 + + + Aborting + + + Unité + + + + + Säuberung + + + 清除过程中 + + + Clearing + + + + + +Vollständig + + + 完全的 + + + Complete + + + + + Abschluss + + + 完成 + + + Completing + + + + + Ausführen + + + 执行 + + + Execute + + + + + Gehaltenen + + + 保持 + + + Held + + + + + Halten + + + 举行中 + + + Holding + + + + + Leerlauf + + + + + + Idle + + + + + Zurücksetzen + + + 正在重置 + + + Resetting + + + + + Beginnend + + + 开始进行中 + + + Starting + + + + + Gestoppt + + + 停止 + + + Stopped + + + + + Stoppen + + + 停止进行中 + + + Stopping + + + + + Ausgesetzt + + + 暂停 + + + Suspended + + + + + Aussetzen + + + 暂停进行中 + + + Suspending + + + + + Unhaltbar + + + 不持有 + + + Unholding + + + + + Unaussetzend + + + 解除暂停 + + + Unsuspending + + + + + Nicht definiert + + + + 不明确的 + + + Undefined + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content index 894a6a66..550a070e 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -3,7 +3,7 @@ - - + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/PackMLTexts.tmx b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/PackMLTexts.tmx new file mode 100644 index 00000000..66be5de2 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/PackMLTexts.tmx @@ -0,0 +1,203 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + Localization/Units/User +
    + + + + Abgebrochen + + + 中止完成 + + + Aborted + + + Ma description + + + + + Abbrechen + + + 中止过程 + + + Aborting + + + Unité + + + + + Säuberung + + + 清除过程中 + + + Clearing + + + + + +Vollständig + + + 完全的 + + + Complete + + + + + Abschluss + + + 完成 + + + Completing + + + + + Ausführen + + + 执行 + + + Execute + + + + + Gehaltenen + + + 保持 + + + Held + + + + + Halten + + + 举行中 + + + Holding + + + + + Leerlauf + + + + + + Idle + + + + + Zurücksetzen + + + 正在重置 + + + Resetting + + + + + Beginnend + + + 开始进行中 + + + Starting + + + + + Gestoppt + + + 停止 + + + Stopped + + + + + Stoppen + + + 停止进行中 + + + Stopping + + + + + Ausgesetzt + + + 暂停 + + + Suspended + + + + + Aussetzen + + + 暂停进行中 + + + Suspending + + + + + Unhaltbar + + + 不持有 + + + Unholding + + + + + Unaussetzend + + + 解除暂停 + + + Unsuspending + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg index 9dbbe51f..270c91f2 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Texts/Package.pkg @@ -1,5 +1,7 @@  - + + PackMLTexts.tmx + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig b/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig index e88a568f..78d99b25 100644 --- a/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig +++ b/mappFramework/Physical/Simulation/PC/TextSystem/TC.textconfig @@ -46,6 +46,7 @@ + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding index a8dc7609..452e4dfb 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding @@ -13,9 +13,5 @@ - - - - - + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding index 47e8a685..36a38018 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding @@ -1,4 +1,134 @@  - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 9820608b112868a1891b8160c851e2506e0b4847 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 13:10:35 -0400 Subject: [PATCH 081/159] Added modes according to PML V3.0 Mode & States Definition Document --- .../PC/mappServices/PackML/PackMLCfg.mppackmlcore | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore index 50d8e707..415b365d 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore +++ b/mappFramework/Physical/Simulation/PC/mappServices/PackML/PackMLCfg.mppackmlcore @@ -18,6 +18,19 @@ + + + + + + + + + + + + + From 9ae211abdc00b04623dbe761efdb55d42a9316d8 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 15:23:05 -0400 Subject: [PATCH 082/159] Cleaned up state machine/HmiActions to better separate out action files --- .../PackML/PackMLMgr/HMIActions.st | 68 ++++++++++++++++++- .../PackML/PackMLMgr/PackMLMgr.st | 2 +- .../PackML/PackMLMgr/PackMLMgr.typ | 2 +- .../PackML/PackMLMgr/PackMLMgr.var | 3 - .../PackML/PackMLMgr/StateMachine_Main.st | 62 ++--------------- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 1 - .../PackML/PackML_content.eventbinding | 20 +++--- 7 files changed, 85 insertions(+), 73 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st index e1799da2..46581eb8 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -1,6 +1,7 @@ -ACTION HmiCommands: +ACTION HmiActions: + // Connect HMIPackML Commands to function block MpPackMLModule_Main.Command.Abort := HmiPackML.Commands.Abort; MpPackMLModule_Main.Command.Clear := HmiPackML.Commands.Clear; MpPackMLModule_Main.Command.StateComplete := HmiPackML.Commands.Complete; @@ -11,6 +12,71 @@ ACTION HmiCommands: MpPackMLModule_Main.Command.Suspend := HmiPackML.Commands.Suspend; MpPackMLModule_Main.Command.Unhold := HmiPackML.Commands.Unhold; MpPackMLModule_Main.Command.Unsuspend := HmiPackML.Commands.Unsuspend; + + // Check current state and convert to a usable format by HMI + CASE MpPackMLModule_Main.StateCurrent OF + + mpPACKML_STATE_STOPPED: + HmiPackML.Status.CurrentPackMLState := 1; + + mpPACKML_STATE_STARTING: + HmiPackML.Status.CurrentPackMLState := 2; + + mpPACKML_STATE_IDLE: + HmiPackML.Status.CurrentPackMLState := 3; + + mpPACKML_STATE_SUSPENDING: + HmiPackML.Status.CurrentPackMLState := 4; + + mpPACKML_STATE_SUSPENDED: + HmiPackML.Status.CurrentPackMLState := 5; + + mpPACKML_STATE_UNSUSPENDING: + HmiPackML.Status.CurrentPackMLState := 6; + + mpPACKML_STATE_EXECUTE: + HmiPackML.Status.CurrentPackMLState := 7; + + mpPACKML_STATE_STOPPING: + HmiPackML.Status.CurrentPackMLState := 8; + + mpPACKML_STATE_ABORTING: + HmiPackML.Status.CurrentPackMLState := 9; + + mpPACKML_STATE_ABORTED: + HmiPackML.Status.CurrentPackMLState := 10; + + mpPACKML_STATE_HOLDING: + HmiPackML.Status.CurrentPackMLState := 11; + + mpPACKML_STATE_HELD: + HmiPackML.Status.CurrentPackMLState := 12; + + mpPACKML_STATE_UNHOLDING: + HmiPackML.Status.CurrentPackMLState := 13; + + mpPACKML_STATE_COMPLETING: + HmiPackML.Status.CurrentPackMLState := 14; + + mpPACKML_STATE_COMPLETE: + HmiPackML.Status.CurrentPackMLState := 15; + + mpPACKML_STATE_RESETTING: + HmiPackML.Status.CurrentPackMLState := 16; + + mpPACKML_STATE_CLEARING: + HmiPackML.Status.CurrentPackMLState := 17; + + mpPACKML_STATE_DEACTIVATING: + HmiPackML.Status.CurrentPackMLState := 18; + + mpPACKML_STATE_DEACTIVATED: + HmiPackML.Status.CurrentPackMLState := 18; + + mpPACKML_STATE_ACTIVATING: + HmiPackML.Status.CurrentPackMLState := 18; + + END_CASE END_ACTION diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index 8b6ebfbf..490d3ce4 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -26,7 +26,7 @@ END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions - HmiCommands; + HmiActions; StateMachine_Main; // Assign MpLinks & UIConnects diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ index c062218e..d8a86630 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ @@ -23,7 +23,7 @@ TYPE Par : USINT; END_STRUCT; PackMLStatusType : STRUCT - CurrentPackMLState : MpPackMLStateEnum; + CurrentPackMLState : USINT; CurrentMode : DINT; DownTimeReason : STRING[255]; END_STRUCT; diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index 742a8b4f..c60fff8b 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -10,6 +10,3 @@ VAR HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) END_VAR (*Variables*) -VAR - HmiPackMLState : USINT; (*PackML State (connected to HMI)*) -END_VAR diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index be6d6c50..54294538 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -5,111 +5,72 @@ ACTION StateMachine_Main: mpPACKML_STATE_STOPPED: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 1; - // Add STOPPED actions here mpPACKML_STATE_STARTING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 2; - // Add STARTING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_IDLE: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 3; - // Add IDLE actions here mpPACKML_STATE_SUSPENDING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 4; - // Add SUSPENDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_SUSPENDED: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 5; - // Add SUSPENDED actions here mpPACKML_STATE_UNSUSPENDING: - - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 6; - + // Add UNSUSPENDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_EXECUTE: - - HmiPackMLState := 7; // Add EXECUTE actions here mpPACKML_STATE_STOPPING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 8; - // Add STOPPING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_ABORTING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 9; - // Add ABORTING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_ABORTED: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 10; - // Add ABORTED actions here mpPACKML_STATE_HOLDING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 11; - // Add HOLDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_HELD: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 12; - // Add HELD actions here mpPACKML_STATE_UNHOLDING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 13; - // Add UNHOLDING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_COMPLETING: - HmiPackMLState := 14; // Add COMPLETING actions here @@ -120,45 +81,34 @@ ACTION StateMachine_Main: mpPACKML_STATE_COMPLETE: - - HmiPackMLState := 15; // Add COMPLETE actions here mpPACKML_STATE_RESETTING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 16; - // Add RESETTING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_CLEARING: - MpPackMLModule_Main.Command.StateComplete := FALSE; - HmiPackMLState := 17; - // Add CLEARING actions here MpPackMLModule_Main.Command.StateComplete := TRUE; mpPACKML_STATE_DEACTIVATING: - - HmiPackMLState := 18; + // Add DEACTIVATING actions here mpPACKML_STATE_DEACTIVATED: - - HmiPackMLState := 18; + // Add DEACTIVATED actions here mpPACKML_STATE_ACTIVATING: - - HmiPackMLState := 18; - // Add ACTIVATING actions here - + // Add ACTIVATING actions here + + MpPackMLModule_Main.Command.StateComplete := TRUE; END_CASE diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index d7708efb..54be5a51 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -45,7 +45,6 @@
    - diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding index 36a38018..aff9f348 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding @@ -2,7 +2,7 @@ - + @@ -121,14 +121,14 @@ - - - - - - - - +
    + + + + + + +
    - + \ No newline at end of file From 85b03668fdc1bb94674414a3e32e17bb80cd6b4e Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Mon, 17 Apr 2023 15:28:50 -0400 Subject: [PATCH 083/159] Fixed bug in HMI where StateComplete can change states outside of Execute state --- .../Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st index 46581eb8..2d846c44 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -4,7 +4,6 @@ ACTION HmiActions: // Connect HMIPackML Commands to function block MpPackMLModule_Main.Command.Abort := HmiPackML.Commands.Abort; MpPackMLModule_Main.Command.Clear := HmiPackML.Commands.Clear; - MpPackMLModule_Main.Command.StateComplete := HmiPackML.Commands.Complete; MpPackMLModule_Main.Command.Hold := HmiPackML.Commands.Hold; MpPackMLModule_Main.Command.Reset := HmiPackML.Commands.Reset; MpPackMLModule_Main.Command.Start := HmiPackML.Commands.Start; @@ -13,6 +12,11 @@ ACTION HmiActions: MpPackMLModule_Main.Command.Unhold := HmiPackML.Commands.Unhold; MpPackMLModule_Main.Command.Unsuspend := HmiPackML.Commands.Unsuspend; + // Allow user to command StateComplete only while machine is in state execute + IF MpPackMLModule_Main.StateCurrent = mpPACKML_STATE_EXECUTE THEN + MpPackMLModule_Main.Command.StateComplete := HmiPackML.Commands.Complete; + END_IF + // Check current state and convert to a usable format by HMI CASE MpPackMLModule_Main.StateCurrent OF From 5350a3a7f4841038af94965038f48c253b145bdf Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Thu, 20 Apr 2023 08:59:36 -0500 Subject: [PATCH 084/159] AAZM-464 - adding VC4 MpAxisBasic page with manual and auto control and supporting content --- .../AppAxis_1/AppAxis_1/AxisMgr.typ | 6 +- .../AxisTemplate/AxisMgr/AxisMgr.typ | 2 + .../AxisTemplate/AxisMgr/AxisMgr.var | 2 +- .../AxisTemplate/AxisMgr/AxisStateMachine.st | 4 + .../MpAlarmAcknowledgeState.bmgrp | 2 +- .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 2 +- .../Visu/BitmapGroups/MpAlarmXStates.bmgrp | 2 +- .../Visu/BitmapGroups/MpAuditCheckbox.bmgrp | 2 +- .../Visu/BitmapGroups/MpAuditEventsID.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp | 15 + .../VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp | 15 + .../VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp | 25 + .../VC4/Visu/BitmapGroups/MpAxisPower.bmgrp | 15 + .../VC4/Visu/BitmapGroups/MpBorders.bmgrp | 2 +- .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 2 +- .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 2 +- .../BitmapGroups/MpDataLimitViolation.bmgrp | 2 +- .../Visu/BitmapGroups/MpFileFIFOIcons.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpFileIcons.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpIcons.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpIconsClick.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpListbox.bmgrp | 2 +- .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpPads.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp | 2 +- .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpUserIcons.bmgrp | 2 +- .../Visu/Bitmaps/MpAxis_AlarmActive.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAxis_AlarmActive.png | Bin 0 -> 959 bytes .../Visu/Bitmaps/MpAxis_GearDisabled.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAxis_GearDisabled.png | Bin 0 -> 954 bytes .../Visu/Bitmaps/MpAxis_GearEnabled.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAxis_GearEnabled.png | Bin 0 -> 768 bytes .../Visu/Bitmaps/MpAxis_GearRotating.bminfo | 14 + .../VC4/Visu/Bitmaps/MpAxis_GearRotating.png | Bin 0 -> 1228 bytes .../Visu/Bitmaps/MpAxis_KnownPosition.bminfo | 15 + .../VC4/Visu/Bitmaps/MpAxis_KnownPosition.png | Bin 0 -> 821 bytes .../VC4/Visu/Bitmaps/MpAxis_Off.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpAxis_Off.png | Bin 0 -> 611 bytes .../VC4/Visu/Bitmaps/MpAxis_Off1.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png | Bin 0 -> 1025 bytes .../Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpAxis_On.png | Bin 0 -> 614 bytes .../VC4/Visu/Bitmaps/MpAxis_On1.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpAxis_On1.png | Bin 0 -> 958 bytes .../VC4/Visu/Bitmaps/MpAxis_Reset.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png | Bin 0 -> 620 bytes .../VC4/Visu/Bitmaps/MpAxis_Stop.bminfo | 15 + .../Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png | Bin 0 -> 169 bytes .../Bitmaps/MpAxis_UnknownPosition.bminfo | 15 + .../Visu/Bitmaps/MpAxis_UnknownPosition.png | Bin 0 -> 1017 bytes .../VC4/Visu/Bitmaps/MpAxis_Warning.png | Bin 1527 -> 1574 bytes .../VC4/Visu/Borders/Mp_AttentionOff.bdr | 2 +- .../VC4/Visu/Borders/Mp_AttentionOn.bdr | 2 +- .../VC4/Visu/Borders/Mp_BitmapFrame.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_Button.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_Control.bdr | 2 +- .../Borders/Mp_Button_Control_pressed.bdr | 2 +- .../Borders/Mp_Button_Device_Select_Left.bdr | 2 +- .../Mp_Button_Device_Unselect_Left.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Down.bdr | 2 +- .../Mp_Button_Multi_Scroll_Dwn_press.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Up.bdr | 2 +- .../Mp_Button_Multi_Scroll_Up_press.bdr | 2 +- .../Visu/Borders/Mp_Button_Safety_ACK_off.bdr | 2 +- .../Visu/Borders/Mp_Button_Safety_ACK_on.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr | 2 +- .../Borders/Mp_Button_Scoll_Up_pressed.bdr | 2 +- .../Visu/Borders/Mp_Button_Scroll_Down.bdr | 2 +- .../Borders/Mp_Button_Scroll_Down_pressed.bdr | 2 +- .../Visu/Borders/Mp_Button_Scroll_Left.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_Multi.bdr | 2 +- .../Mp_Button_Scroll_Left_Multi_pres.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_pressed.bdr | 2 +- .../Visu/Borders/Mp_Button_Scroll_Right.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right_Multi.bdr | 2 +- .../Mp_Button_Scroll_Right_Multi_pr.bdr | 2 +- .../Mp_Button_Scroll_Right_pressed.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_pressed.bdr | 2 +- .../VC4/Visu/Borders/Mp_CheckBox_checked.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataDevBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataMaxBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataMeanBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataMinBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataNameFrame.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataRangeBorder.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr | 2 +- .../VC4/Visu/Borders/Mp_FrameInvisible.bdr | 2 +- .../VC4/Visu/Borders/Mp_GroupControl.bdr | 2 +- .../VC4/Visu/Borders/Mp_InputBorder.bdr | 2 +- .../Visu/Borders/Mp_InputBorderInactive.bdr | 2 +- .../VC4/Visu/Borders/Mp_LabelBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_LabelBorderDown.bdr | 2 +- .../VC4/Visu/Borders/Mp_LabelBorderSlim.bdr | 2 +- .../Visu/Borders/Mp_LabelBorder_Orange.bdr | 2 +- .../VC4/Visu/Borders/Mp_ListBoxCenter.bdr | 2 +- .../VC4/Visu/Borders/Mp_ListBoxLeft.bdr | 2 +- .../VC4/Visu/Borders/Mp_ListBoxRight.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_MoveOff.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_MoveOn.bdr | 2 +- .../VC4/Visu/Borders/Mp_OutputBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_PackML_States.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_RangeBar.bdr | 2 +- .../VC4/Visu/Borders/Mp_SliderBorder09.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr | 2 +- .../VC4/Visu/Borders/Mp_SunkenNGgray.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_TabActive.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_TabSelect.bdr | 2 +- .../VC4/Visu/Borders/Mp_TabUnSelect.bdr | 2 +- .../Visu/Borders/Mp_TeachPointSelected.bdr | 2 +- .../Borders/Mp_TeachPointUnselectedEven.bdr | 2 +- .../Borders/Mp_TeachPointUnselectedOdd.bdr | 2 +- .../VC4/Visu/ColorMaps/MpEnergyChartData.clm | 2 +- .../VC4/Visu/ColorMaps/MpPMLStateColors.clm | 2 +- .../Logical/VC4/Visu/Fonts/MpButton.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpDefault.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpHeader.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpHeader2.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpInfo.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpInput.fninfo | 2 +- .../VC4/Visu/Fonts/MpMenuButtons.fninfo | 2 +- .../VC4/Visu/Fonts/MpPackMLStateNames.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpPads.fninfo | 2 +- .../VC4/Visu/Layers/LockedMessageLayer.layer | 2 +- .../VC4/Visu/Layers/MpBackground.layer | 2 +- .../VC4/Visu/Layers/MpOeeControl.layer | 2 +- .../VC4/Visu/Layers/MpPageControl.layer | 2 +- .../Logical/VC4/Visu/Layers/MpUserXSign.layer | 2 +- .../Visu/Layers/MpUserXSignMessageBox.layer | 2 +- mappFramework/Logical/VC4/Visu/Package.vcp | 19 +- .../VC4/Visu/Pages/MpAlarmXHistory.page | 2 +- .../Logical/VC4/Visu/Pages/MpAlarmXList.page | 2 +- .../Visu/Pages/MpAlarmXListUI_Backtrace.page | 2 +- .../Logical/VC4/Visu/Pages/MpAlarmXQuery.page | 2 +- .../VC4/Visu/Pages/MpAuditTrailUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpAxisBasic.page | 1291 +++++++++++++++++ .../Logical/VC4/Visu/Pages/MpComLoggerUI.page | 2 +- .../VC4/Visu/Pages/MpDataStatisticsUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpDataTableUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpEnergyUI.page | 2 +- .../VC4/Visu/Pages/MpFileManagerUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpOeeCoreUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpOeeListUI.page | 2 +- .../VC4/Visu/Pages/MpOeeTimelineUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpOeeTrendUI.page | 2 +- .../VC4/Visu/Pages/MpPackMLBasicUI.page | 2 +- .../VC4/Visu/Pages/MpPackMLStatisticsUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpReport.page | 2 +- .../Logical/VC4/Visu/Pages/MpSetup.page | 2 +- .../VC4/Visu/Pages/MpSystemDiagnostics.page | 2 +- .../VC4/Visu/Pages/MpTweetCoreUI_Alarm.page | 2 +- .../Visu/Pages/MpTweetCoreUI_Receiver.page | 2 +- .../Visu/Pages/MpUserXManagerUI_Roles.page | 2 +- .../Visu/Pages/MpUserXManagerUI_Users.page | 2 +- .../VC4/Visu/Pages/mapp1StartPage.page | 69 +- mappFramework/Logical/VC4/Visu/Palette.vcr | 2 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 2 +- .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 2 +- .../VC4/Visu/TextGroups/ShiftGroup.txtgrp | 2 +- .../Logical/VC4/Visu/Trends/MpOeeTrendUI.tre | 2 +- .../Logical/VC4/Visu/VirtualKeys.vcvk | 98 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../AlarmGroups/MpAuditTrailAlarms.algrp | 2 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 2 +- .../AlarmGroups/MpDataRecorderAlarms.algrp | 2 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 2 +- .../AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 2 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 251 +++- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 5 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 2 +- .../TextGroups/MpAlarmBasicUIText.txtgrp | 2 +- .../TextGroups/MpAlarmBypassState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 2 +- .../TextGroups/MpAlarmSeparator.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 2 +- .../TextGroups/MpAlarmXListCode.txtgrp | 2 +- .../TextGroups/MpAlarmXListEventID.txtgrp | 2 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 2 +- .../TextGroups/MpAlarmXListState.txtgrp | 2 +- .../TextGroups/MpAlarmXListStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIText.txtgrp | 2 +- .../TextGroups/MpAuditEventsOutput.txtgrp | 2 +- .../TextGroups/MpAuditSignatureEvent.txtgrp | 2 +- .../TextGroups/MpAuditTrailUIText.txtgrp | 2 +- .../TextGroups/MpAuditTweetEvent.txtgrp | 2 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 2 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../TextGroups/MpAuditUserAction.txtgrp | 2 +- .../TextGroups/MpAuditUserIDText.txtgrp | 2 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 70 + .../TextGroups/MpComLoggerUIText.txtgrp | 2 +- .../MpDataStatisticsUIStatus.txtgrp | 2 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpDataTableHeader.txtgrp | 2 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 2 +- .../TextGroups/MpDataTableUIText.txtgrp | 2 +- .../TextGroups/MpDateTimeFormats.txtgrp | 2 +- .../TextGroups/MpEnergyCoreStatus.txtgrp | 2 +- .../TextGroups/MpEnergyCoreUIText.txtgrp | 2 +- .../TextGroups/MpEnergyForwardEnergy.txtgrp | 2 +- .../TextGroups/MpEnergyReverseEnergy.txtgrp | 2 +- .../TextGroups/MpFileManagerUIDevices.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 2 +- .../MpFileManagerUIMessageBox.txtgrp | 2 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 2 +- .../TextGroups/MpFileManagerUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpLanguages.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUIText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUITime.txtgrp | 2 +- .../TextGroups/MpOeeListUIText.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 2 +- .../MpOeeTimelineUIProductionState.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 2 +- .../TextGroups/MpOeeTrendUIText.txtgrp | 2 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 2 +- .../TextGroups/MpPackMLModesNames.txtgrp | 2 +- .../TextGroups/MpPackMLStateNames.txtgrp | 2 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 2 +- .../MpPackMLStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpRecipeAuditText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 2 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../TextGroups/MpReportUITexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 2 +- .../TextGroups/MpTweetCoreUITexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIType.txtgrp | 2 +- .../VCShared/TextGroups/MpUnits.txtgrp | 2 +- .../TextGroups/MpUserConfirmText.txtgrp | 2 +- .../TextGroups/MpUserDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 2 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 2 +- .../TextGroups/MpUserRightLevel.txtgrp | 2 +- .../TextGroups/MpUserUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUITexts.txtgrp | 2 +- .../TextGroups/MpUserXConfirmText.txtgrp | 2 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 2 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 2 +- .../TextGroups/MpUserXRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 2 +- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../TextGroups/MpUserXSignUIText.txtgrp | 2 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 2 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- .../VCShared/TextGroups/mappComponents.txtgrp | 2 +- .../VCShared/TextGroups/mappTopics.txtgrp | 2 +- .../Logical/VCShared/UnitGroups/Energy.vcug | 2 +- .../Logical/VCShared/UnitGroups/Length.vcug | 2 +- .../Logical/VCShared/UnitGroups/Mass.vcug | 2 +- .../Logical/VCShared/UnitGroups/Memory.vcug | 2 +- .../Logical/VCShared/UnitGroups/Power.vcug | 2 +- .../Logical/VCShared/UnitGroups/Pressure.vcug | 2 +- .../VCShared/UnitGroups/Temperatures.vcug | 2 +- .../Logical/VCShared/UnitGroups/Volume.vcug | 2 +- .../AxisContent/AxisAuto.content | 14 +- .../FrameworkPackage/AxisContent/Package.pkg | 2 +- .../AutoControl/Package.pkg | 7 + .../AutoControl/Widget.compoundwidget | 198 +++ .../Widgets/AxisControlWidgetLib/Package.pkg | 1 + .../Media/AxisControl/AlarmActive.svg | 36 +- .../Media/AxisControl/GearDisabled.svg | 74 +- .../Media/AxisControl/GearEnabled.svg | 74 +- .../Media/AxisControl/GearRotating_1.png | Bin 0 -> 815 bytes .../Media/AxisControl/GearRotating_2.png | Bin 0 -> 760 bytes .../Media/AxisControl/GearRotating_3.png | Bin 0 -> 808 bytes .../Media/AxisControl/KnownPosition.svg | 35 +- .../Resources/Media/AxisControl/Off.svg | 52 +- .../Resources/Media/AxisControl/Off1.svg | 34 +- .../Resources/Media/AxisControl/On.svg | 52 +- .../Resources/Media/AxisControl/On1.svg | 34 +- .../Resources/Media/AxisControl/Stop.svg | 50 +- .../Media/AxisControl/UnknownPosition.svg | 35 +- .../PC/mappView/Axis/AxisAuto_content.binding | 20 - mappFramework/mappFramework.apj | 2 +- 312 files changed, 2827 insertions(+), 463 deletions(-) create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearDisabled.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearDisabled.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.png create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp create mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg create mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget create mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/GearRotating_1.png create mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/GearRotating_2.png create mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/GearRotating_3.png diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ index e2450457..3dfd7fdd 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ @@ -40,7 +40,7 @@ TYPE ProductNumber : {REDUND_UNREPLICABLE} INT := 0; (*Product Number*) ProductLength : {REDUND_UNREPLICABLE} REAL := 70; (*Real Product Length*) END_STRUCT; - AxisControlStatusType : {REDUND_UNREPLICABLE} STRUCT + AxisControlStatusType : STRUCT TaskName : {REDUND_UNREPLICABLE} STRING[80]; (*Current task name for configuration changes*) MachineSettingsName : {REDUND_UNREPLICABLE} STRING[255]; (*Category name for machine settings*) ProductSettingsName : {REDUND_UNREPLICABLE} STRING[255]; (*Category name for product settings*) @@ -56,7 +56,9 @@ TYPE MotorTemperature : {REDUND_UNREPLICABLE} REAL; (*Motor temperature*) IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) - PLCopenState : McAxisPLCopenStateEnum; (*Axis PLCopenState*) + PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) + ModeManual : BOOL; (*Axis may be moved manually*) + StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ index b23c2be8..8d9eaf1d 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ @@ -55,6 +55,8 @@ TYPE IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) + ModeManual : {REDUND_UNREPLICABLE} BOOL; (*Axis may be moved manually*) + StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var index 6b5c1628..3a30ee7d 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var @@ -5,7 +5,7 @@ VAR State : {REDUND_UNREPLICABLE} StateEnum; (*OMAC based state machine*) AutomaticState : {REDUND_UNREPLICABLE} AutomaticStateEnum; (*Automatic handling state*) ManualState : {REDUND_UNREPLICABLE} ManualStateEnum; (*Manual handling state*) - AxisControl : {REDUND_UNREPLICABLE} AxisControlType; (*Single axis control type*) + AxisControl : {REDUND_UNREPLICABLE} AxisControlType := (Status:=(VisibilityControl:=[0,1])); (*Single axis control type*) AxisSettings : {REDUND_UNREPLICABLE} AxisSettingsType; (*Single axis settings *) END_VAR (*Function Blocks*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st index 632d9258..e8aebb76 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st @@ -202,6 +202,10 @@ ACTION AxisStateMachine: AxisControl.Status.PLCopenState := MpAxisBasic_0.Info.PLCopenState; AxisControl.Status.Position := MpAxisBasic_0.Position; AxisControl.Status.Velocity := MpAxisBasic_0.Velocity; + AxisControl.Status.ModeManual := (State <> STATE_AUTOMATIC_OPERATION); + //VC4 related code + AxisControl.Status.StatusPointControl[0].0 := NOT AxisControl.Status.StatusPointControl[1].0; + AxisControl.Status.StatusPointControl[0].1 := NOT AxisControl.Status.ModeManual; END_ACTION diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp index 2c76da2e..e45dc079 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp index 9275673d..797fbbd6 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp index 7c092b71..720e726e 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp index fdadfd8c..d85e8b31 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp index 6a8acaa4..a18fbb01 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp new file mode 100644 index 00000000..58085c45 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp new file mode 100644 index 00000000..6a3505d6 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp new file mode 100644 index 00000000..9ea0a8da --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp new file mode 100644 index 00000000..a726323e --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp index e0430d00..68845d95 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp index afbf100c..d28df2c8 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp index c5e655ce..646c8ac1 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp index 70bcf4b1..1eb9e6ad 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp index 6be2b648..461f23b5 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp index 9383b7c5..f2b8bbb5 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp index a8006a02..5bf941b7 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp index 0b94b76d..33d0656e 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp index 980a87f3..0a6ead4d 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp index 9130b02a..7e7edba7 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp index 3347ee45..4811aa7a 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp index 7f753a73..3ef2ba5b 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp index e465685c..c5670294 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp index 5ad94c3f..afebd054 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo new file mode 100644 index 00000000..8e1fd413 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.png new file mode 100644 index 0000000000000000000000000000000000000000..9cd4a62c4a6e522180f2899b8ebd9410b113886f GIT binary patch literal 959 zcmV;w13>(VP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15`;wK~zXf#a3NQ zltC0evu>^_6%vI}f`t02S%P`dm0(cNg?9x>5MA|wUPxs`R?=nB7gCaX5fpe)KOqPU zFBQ^c-F1T^yXZ@eLT%OE={YlJ{n~fk57Ztwd!94%zVp0uX6DQ)tu_4*c*JiwG8b0L zV=O~tlhy z6QHuw!c#_Css5l!wniu`0J_VzEa1D3!cLL?_)FrXNNdIry#*H&eJ#e=875zw@RX49 zj4|5^2)_f}1dG6`vDWiT+UBtY)n$6*J$O>2JYxtvfMWqtq&plP7%J8wKX@m%0bcNj z!jmE;;h-uz0e93!G=U?;DK|ihZ^Hew5go>}$Azzoq{3fR;byoyHZo{MI>&|6emyh^ z$Ko;EA5v9$!V@B?@D$};gDbKT4LTI;#;lrQnr&1$ZD{M_KKlq2VuxQ9o)D`Fhm^Ay z?y`-Duz8wE>j>6zn>2A-zO*%&(4qy^twgvhRuztt;?0s{BYJ@p_cFm6&zTmBF#nY5 zU?1E|=70|s?VfN~BosypkHOX3h^8atZ4u7+B%U!U9y{MWGi@WPmoZ%7D(qL4*+?ND z9|NTEc7-1PEFs4OLYemqC4L6+(v8@T^Y0VB46ednn!5<+*oemd(3ZQx4X~L)aKB-H z(dRdff?S$rVUrPjd@;^{GxL>*6GnP=m5u%SIoWxb?;8y!#gwffF&a=|F zuE3Op0 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearDisabled.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearDisabled.png new file mode 100644 index 0000000000000000000000000000000000000000..167a9812bd576fcea3c1e783255d6f6f534c42e7 GIT binary patch literal 954 zcmV;r14aCaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15ZgrK~zXf#gVL_yGlP(-j^L_tsl3yOk*UPL^3 zkZSP*Po+(on$RLDL8K*#V2BD$O;ESSz-T! zN`$3gFt`oALz1Lwuh)A|l-Gu-a5NgNPN&mn5gvoJ$VC8gH^kpjS}`{Ay3Ehd?}xhx zD~ob4;e!-v5)Ox*6l!8B3|^7{o1s7;a1vfM#^mJWU_PJ!3O|Z_Hc(lCX{*P^#@1C; zRpk&$qN3sxYy_?UP%IX+@Vk-oE|qwXN$m9bd@0IhOocJyJs9jcrEBF)CX?y*`~5#C zH*R$(6xs;UTa;R%y{4w7n_?MV;qmeDO=#TKITd0D=uLoK>=h~hG`Fc#8nxHylESXfw~NDYowiZr=`^Pq!b8N~sDi+eGNhX@^_ zqGV=fMpwY;bh6IQPRcal?_vVuKf=f5reYuW_4SRyofny!hK2@;)EHeO>@Xi5^b$`L z!W^8dcj3N^Oo_|oVs&-utzBPV&zhT?DKmwi?b>HGS{_78G*>#mKb1!&oEmS79$< zPjk84V}3!^Y8;=Z;P|<1l>|f&U&CnMC{i_wR@-bg z{_~a;nI(=JiES}_5> zDB5BCBR&LQzHxebx;C55o_wB&|XHZhi&g1cXL;V86 z8=|6O2YFpIpLn%k2W*G?bJg+>%^iosF^tLOMM)b=!hruW9mN>c=uW7=zyB?2s~XU% c@ET$47yU3y`4^sn2><{907*qoM6N<$f;*hDJOBUy literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo new file mode 100644 index 00000000..9b975313 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3013a4094c34389873eee9bed930807d77d3dfff GIT binary patch literal 768 zcmV+b1ONPqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0+mTbK~zXf#n(+p z6;T+*@uQZO8}ox8qQHX4FcPVSLQpNDKr>N-2&q*qB54swNI?rBa3QYRM&&*bS_$SN z3Nfq#+maH-V?jE%@~_}k9xBy10c zu@UJ;VEf)Rmh0DpCA`5wTtfwN%{UGt<;;1pdvF$;mB$Dit;o0iH`(c`Nv4vf^J}N6 z8LM%0Om~?1<$1eQ&2Bpl#5>jRAg5!+ETk4p-FTfDO^n(WH&xrK%t-Z!Db6ppErHBp z7n07Ljd#TR?R3TT{_Kr(Dw#-5nC>6lb}o_;vD4dqh>L^Xsc+7@``MwrW~&!dv`+`ypFx}%Q2vdmw@WJB7#G678=nw(`>W&*K;#0%8BWiafT>HF1Z24)9LB9$_vF{zVPGp9^c(Er(DIfTk6rSaTT6pr!(hf7z2=(@d2E|HfULf zER!KNKH*bfRYE>jBr=FQJD8ya_Yn8+u6UY-+GrJ^Hq;i@11%Szt?yGC*Wf5J^98rD y725i~xaT + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1f49fe2091a2e57c06c6b6fd8978fafea03624 GIT binary patch literal 1228 zcmV;-1T*`IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TH>yyrdY%pBL*HRw0|IL~>`d*(UkydUR; z`FuY5KX{VDVK4{245Q$;@af^gXBY)PgUj$Fc~Gl;NNOenyb87W0&2Bay`YghQZpG~ z2Gqh0--kLFc+LmV3kP6=%=sBgA4k9gvh6<#nIv6p*Sf&Kc8xA zYsC{e!K?6RC47A0w7I!CYhPcV!Rz%>X=y2ymzPs`c(^?54_^c>l14^GM4XkCMGXxN z6c)y_kiLSSaG;_V=A$+I~jz<0z&D=RCJKAVk=4eIXhCY(=ob#+u& zSU89DOVBGCNOW>*f*-<<;P6=l@I zX1Nt`!KtY!5t~dV^>GRIz5CR<+DZlY3xqf9H^|{}$fF9mxw#Y{A5Yuc+cZBvpC{9P zsE?XQ9X}3%)oP{5$w|>qjg5^miy`TCk#WvQwmqB7C}cmAO?UI|l3u5m8KTkAQ5qW? zqk@8h1GCxuEK>XJ?d|#4z6D#=JAP4a1u-!(q}S`Iq@+Y<6mI=_E2t{st~9A(7E&q?VQzN=;3b8HKTb#$*)C z!o3BWot>qwt}e3KY=p%`bP>;em&^5KbaeC}nq@%l!>`rCA49&xI_Ts?z#J5~eQp^A z^C;sH6%`eU6|KL&UvwAuGk2xMVoAg(H=_7Kb93`xTU(n`EvzyCKUczFt|VNMQ84uv z>#4fBT1+9H>(kTIw6n7#jx8=Ol1`_irlzJS%n~u5wH6Q_2;5P}BSqrH&-}ZY26yJ2RYk?cylRTIJNvYiYZ6{oLVxgXq1%7mChOl; z+Vk#FZ9*+wyLb&N(D9UGcuMy6_LALh=aEeq+42Z|2jBL4Rh{q$cy6$E`>=@ku!PEt zpdOyOR?omoN_Z{~;4u6H@+T9I&Ntwp*4$JuZcJ}>qZc(t)Yo?-^bud8UNg$MF6<*VQ{0v~}i9sUZL z4k#}0gz>N)dY~4Meax(8QW_2~1>^#~3AJc|TJ4Y2Og@3Hz>_S&Phlj~YJcQu^Egy^ qxq1iktM3 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.png new file mode 100644 index 0000000000000000000000000000000000000000..b5de465be937a57d98729176aea918c3b8af938a GIT binary patch literal 821 zcmV-51Iqk~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0?J85K~zXf#nwwm zRACs#@uOxp%%~_KA`2}dXi<<9q8k?mU7$s@s)f9@WNDxYl?uzL2f6kn5_~!V|nIi-}@Z-!p-1g`mY?bjM)#D zV<>|)-&XvDav#<_IcDiufbUSw!}U|ph>e&Xb+R2U8gu;wX6bQTt1X!eby`qATy)&E z67DxIpd@a!S$ZBrxeM3bP|@1onrZ26$qbDS>FWU8_+Ay{52nKPdCbz&1LX{IUDvO! zOwb;L+6LM*KIV;YQW2#ZuFq5KI(FkTqN(z(c6x14S5X&Kl~)B#l}+ltg(KO_jHXIi zG@Tf0Z9Mm&yoT%M;Rjr_wOioE!(BjhUX;T1dCbyt5H9`+RE|A3ibYW;I`O_hc?j1} zV3wZ6&=x5lpv%jePjr3XhKp`2)_ftejCl%|K5RgIo)vfk7afWU#OKQ~%NX4V;?WA+ z!F6|3TD7J3MDVWA2#4!!8Th5xWfOq!ExCEB2c>BMQq0k~YjAiB|ui&%%`#CL&5uQ#Wm zyHY!v;qOkJXoHyVb*pd!HwlH%g9bBz0lJrK3;=uvCg>!Wf!dR#9iG79lzOF zsv;Kc)?3++d6@;>GIi_J;jv?_jb}67V+7}*2Zr^+u02wZBlwJ$(0g}$zMM2?wf4$d zG@=33D2IMH5>3bO5zp}qI>Qq)*~{r4B?$fkutp7)w2Yc~00000NkvXXu0mjfC*pc~ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo new file mode 100644 index 00000000..23398482 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..630155938a96f022184fb67b48f1a0867aeb05b0 GIT binary patch literal 611 zcmV-p0-XJcP)Px#1ZP1_K>z@;j|==^1poj61yD>>MWa3-uvkCLl!V~Fwdv8y%#?$yQa9kev;O`4 z|NsBryt1rOHn?h2_wVi9xUJBgj?tcv-MOy!?(DZ{QLC(&n`ueCnl!ZC28ulhB=wxocF`shs}({HsqisY@@`sG8%% zyYuJc@7>tq!nx(i!1Lzf?%USo$iLaJr2YH*sY))VMk@RF_SmkWy>wo?aa-E5roD7u z$&P*Q+tsvUO5eP(vRy>_^z-f5(zRtx`}g&_ZdbT#RQvYzwPQ=Zc47MU^xe0tzIS4; zSU%^?#o)fQuv$Q*KqA9|ZS2_6?AOu4ergUA_AdYc010qNS#tmY4#NNd4#NS*Z>VGd z008GnL_t(IPtDL)h%GL0@`+o3wVYU4)n{^zqbHSyy`K50OxDK6rWrj> z4*4y%D%jX|*kT7LGPM%0%M@ko?K8DX9#y6|z#+>x!ZAyn;FM+5P-lrVoL?}t%LcBP z;u^^6qv^Ug`nUy}W}b2G&}b>u2HHy9chKcN^Uy>3QLg(I21CxC(UX3yxqe3Pg`>~w x+gPsM+=NrmyIcqVr=L9SS0A5WQ|4b&>Kltw6_*}&Dn$SQ002ovPDHLkV1l^~L%IL} literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo new file mode 100644 index 00000000..0eb844ba --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png new file mode 100644 index 0000000000000000000000000000000000000000..d5999f80dd43e58a25a2ec0f95553bc3f82f81b0 GIT binary patch literal 1025 zcmV+c1pfPpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1C~idK~zXf#g?FEqSx^x|jdWGj zhkAuXn$RG`W2G{oMAFXqoqJEenQvykPCJNSa&!LYeBZt2-t*nLcl_~q-1k2iapJD7 zt|^0qgEfA?e+BMz+Enwv=lei=%Q(%!VDLt1Y3WBB9-gd;TU%R;^78TylW-?)&_+Fp z@!n-7c%ZVf^0US=GHl}Z_VzUl)PM}z$cXtyzfEOjWjEDN!!vP5N5@{wDO$h;68xk+ zU|=b+kN#5f#k2zPlZf$bUqwa5IrUv+Ox)SoSxfvX(r+V%ceEq@{r%Ufs;c^J$kNi% zGAl9{n;%9ZhiAST+9oT2qHIrXUHRh{pa3$siDUtJC`3#3fveHzltE+#p%021|0Y1Sx z)rQnkuT(3%r);-Wj~af*_b@%yGmBcK(%>ZKpcsppYdu3mZO%}!+bV^5kw|2W>O^98 z?PQe(I`yjj6JDwn{Dp;ulT;@XvzsTVG*FtT%A8>_UsM|S?nNqHiCu>RD|SsJ7f3Ww zrGdqKSD8qhpP&B;rq`^Wq(q!W0ga<*FUznk0UgOXRV(NOyO)tE2+)3d|hi0An|+G`JE|-bR%M{4@G9 zbKq_+CB76{qHWp0z`!DTHUxe0Fz2mjkWVPrtAi^srFe|FYdyoPP$+Z(>%7NzODjJU zNxsEoznsP_w4Qn1%whCgT|?R+lw>!?IVSNpQMQXcJv|`}dD7I>6y!=hi`-=+h99)# z+^|#jvHXuWz+#Pl}6+m*~WYz>RNDy%L4A!~)41D9?Um^3Q9$N>50V ze22&BbC9uI`(}uYi3MhPnvQFcU&WWHi_OB&JMy1vGh>`kKMl{s0v)em=FyIG3f(us zVPI}gFekYJ7tr^TjbTmpa@cDiNb_h>cSQr%@00000NkvXXu0mjf&2Z+o literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo new file mode 100644 index 00000000..b0d4a291 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.png new file mode 100644 index 0000000000000000000000000000000000000000..f28e1b4186e3a0c92b0146c7396638f31483db1e GIT binary patch literal 614 zcmV-s0-61ZP)Px#1ZP1_K>z@;j|==^1poj63s6i{MF4;RR;yOZ<;u(D%UG;frqibX|NjDk0w$9t z!{Ni4&6=v!s=eO5B9S6ar%v_y^`Ow8uh*~h`SVJpN;8==^!oJa^yxaCIzXU6@AvP{ z=g#o>@F$ZeFqkmb>(&H<1V*DqXtZcZq)3^}nL?pLb-Hy;rcIX1mI{Rm5r`4{{ri>5 zmABis&*#tH@7~eq(cZ8%4f4_gE z(xmJ4>o=P>rP8JR{`?n<7jU?6snn^c)TnQ_Zy}H&3z*~500009a7bBm000id000id z0mpBsWB>pF&F(7&bQL z98Vw;Q+m zt&B64sKBZ+m0BI=OmP8RGL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6b0d24aea4e10887425e02e9c89af260f88923 GIT binary patch literal 958 zcmV;v13~Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15-&vK~zXf#aGQs zR8bVa@6C*3IVF)Kp=4#tP@=#-Ac!^<>7qs8Dk+c_Lj40llu@f_+bVZOn~JC)Du@as zD*~x72r4lblcO)oa^A=7ciuho=Ds)6n-2qj@O$T+d(S=Re%~2GN-35DCd*pTHRH@o zWu2@=%sIK)oSQq&b=8ALTnnf3(<6NoeNv1HpUq>S?)&Lm*~h|woCAj#Q83a@*$KKW&3bg#=&MuScB2u zN6~h+LnxOxBSqp42;(H{gdc`54?=!dW>xr!=iefc7HZ{ z(#eC8=t}3hR#z8YXUYbZ}g z{K_#AxipA>q+Hw@^$i(CI!Dkzn{uN45#>iw-%#o=lc?*((u{}O&=flZ5nrD%Kj^(v zaJdX6v;hISlb@s27f26}0lhkVz_p+biIZ^_&CjtNMzkkk(kL7&I*KZ|fVTbRV=9&{ zjIagkb_u~2Bf-m&mggqgY>LDvVJ-ii)?;Sz7eeBZmz}s`=)%V`$Vup*F|7|^($5@v g3M*on{ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png new file mode 100644 index 0000000000000000000000000000000000000000..52a92f21fc7d87eae584baf91880ced5eba56ca3 GIT binary patch literal 620 zcmV-y0+aoTP)Px#1ZP1_K>z@;j|==^1poj62vAH^MgOG$|Hxwhs0jb20{^%*|IBXx)P?`jfB&!_ z|LDK}?acqB0sqKj|MT4c|NsB#!vDHF|M=|x>A?U0{{Pd1|Ni~|>cs!to&VjR|L@ZO z){OuA_5Zjw|MJ=Y!cqUUEB~t!|MA%Wrv?A{?*F+s|Gh>3_vioSx&PLR|HWMYwJ!hd z%m3Gn|F$sytrq{;l>g$b|K+v+<+T6Xn*XmI|HWJXtr-9O_W#FU|GYx~&2azWtN;7- z|Ley8&vyT&1plfI|KFqkvL^re?f>)L|I~#4#$Nx~lK=SY|LVj4rw9M{=>Mz~|E?PU z;HUrk^8e9(|FI+g&v*ahum9`C|LDH|-Jt)g5jHJW+W-In32;bRa{vGi!TOY&k%TD&xXFZn%NXtuamU0dJSDi%vP1lI@v0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png new file mode 100644 index 0000000000000000000000000000000000000000..c9cfed2ddb20cb7580041ab117bdefc8fccb8c48 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^azHG_!VDyX`aiY8q{chvkN^MwUn)yP7bweF;1OBOz`%DHgc*!Z5i2 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo new file mode 100644 index 00000000..f5465c1d --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.png new file mode 100644 index 0000000000000000000000000000000000000000..31af09068532bc65119242d85497fb58f747436b GIT binary patch literal 1017 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1CB{VK~zXf#gFEldZ7*U@-9waV7$9aycM>>uwMD5l9G}iDz*i|hzi$qc6QEE zaT-p-^2^Auebh5|bSod|@9)o5aT-p-sppx>JHkh1sZe9Z`&5{QtuT#rif8zOdVxEN zl^^7n>Q!+Xw!(aIs|uH~!ow=IBp#2?#qBUMeUXhDVLDDdzKzpgrq>Pfdr53YBogtB zjEr0*oF_T;Z;7|UR+!)8Gp@zRv;rD?!A6nVp(g3*=vbVaoBM=ti&3Ke9vd6GuVPai zcP@HaNu7r(O(Apl3LC}>vE`Tt)1m%F=J%jVO>uQdup^1c3L|qQ!3kCn4u`*}+!WiP zp29ih9bsKGI*AIdgqiDmG$_4xVuZOprD9v$_ILu}qbjz9X}jd6w}M+?jlEh{?K2}Y z2tKTUF8$~8}s;opJ z@tSmjQL683Wr0ATtEi~xmr>-5qi{4DE%bW5HH7Oh5!;K&W}$D13~>W?hJC$>G=Vi^ z_52Ajd2WTJa7#-|hTrd(yVgGJCE_PpV6wRMy_-$tDQ+c#OSsm4lQKqRDeWD`+Q{G5gos*NZ-FT9Y zr7#Wm;6!Nd@bK_Ly>JQ$bhC<6*PKZh3Aq>+5GL@l7EH07V@{$?4Dki(qyRK;A-J%4s00000NkvXXu0mjfzh~e* literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png index 728814b1a7e6b12d6de56a9e5a89879c46d97bde..00ff8920c118a68df627a30eefa9a1e89473f92d 100644 GIT binary patch delta 1533 zcmV|2cY`=Xtu$;*^>>gXDEcZ|Z|WVJV`OsU>vD3hW^edg(rh5OnE5u<%KH$=6FM z_!2@6K`5d2kT~Hy&!_L($L;+!^`3LN4+VX&*wfm3e|xR9*S~-9KmKdbF3RVD*52NK z{;q?ALx+clN95Ml*8IZ4!neJ>y^k@rZc(uv#*5NcXl-q6AH>DQJ+7~>_s-1B)KXGX zJdTf#?|XT9nI|VFe}m4xMb$Pu7opnP+K`~2pdT6=8=VXWgE%@m5@xemL`6ku^Yins ztgWs6w7k5$0M#?g4C`UIC~bk!)6=tmv#_wx(`YmbSVd@>CQeRH#Odj&$j!}lg2g_9 zUVug2HrQ$*t)ZbIGdeo@>+{))F$r$H#vHSA^3dB;n}j zD1(_+qOeXdhDeGQLvZ`$=jXqFhi-p4Xa%ftSxrq%bXZu}cU4tYCKWrh1~D@;BV~1U zRRjkIOLrltWn8(rxe26zl-=Fk;l;(pzo339C*1*S2pMt8Zz?J(Ugqg}&EYy}0me&b zXQ!B+o)#k`BO)m&NyU!<0cj~;Uti1$^icqE(}BS&OPrMG?bK-yo1Hk z{rvo-HE@lkOO$m8x=n$92~vT2v!w z5?X-nBQcUypoMtbC>#q74VC?@CnqQKTlXQdd_1~La^MEsM#zBEevV)cq*b^eV?_nB z{`(ah8!IR9hLNluoJ+#gVhVxf=T4>0wasi%RPK{w3J&57~xaoJ`f92y#u{e+$rt;`#!>U<3#rF@Kh z6$#ZVUeXgXAc)`3$jFFSPYIfsCu3bLPN*_GJY2eoAQ8lWhOA%LrO?U@0fM(NEiEl9 zFE6hi&8OEC&=azU3z~7w#m>%-v<~wK-9};*ZmLRd!qd`1{r&xdZ!vDje!Z?t3i`_$-*AEtN^YZ9Ua>c4Sx@^L**NiDo< z-QAsuA^Kf^rvEE0!$)uizcccrbQ9V#?~s_vKNPlAox)92zZ%o)sJSea)%fJat6&!U zUP)g1fU?JJ*hO$Yz~{oitIk`)QVDOB5|U=JRKh-$JXvSS_@l6{glqD7GB`MB9vd6$ z!e7cS*n0;eO{{kr(|I8NCdv`4O$gSPU}{O2KBw7eS<=)j3FRgQw)K7bHcPd}`uh4G z!1tr0qd#J34#I2v4??UvLVPcTnN;u67X_Y%1lAy{5dKhFP6+4;5p47QOKZ_O*T-KJ j7&m;3Q!dH;3n9ec|Ja$uI1Tn`00000NkvXXu0mjfTgUgt delta 1488 zcmV;>1uy!h4EGC=B#|)~e-How3lIUVBfWJ1000?uMObuGZ)S9NVRB^vP+@6qbS_Rs zR3LUUE;TMVH#>k`000GaNkl&GV=^5$aty>b z${-OWGL$r0{z);d)N=NwF|;CjWsnVD$#4H@EA^kt2>CdlM28 zzSi}>{crfdm6n#4T3A@<^!4@0$jFF1eE3j`ii(`=+qdT{knf^G#m2_ImzS3}HaIva z*rP{}3{ZD>w;VovfB2VxfPgRs@?I>crKzc@-&Isp7|#In`0-=8fB(L8c6Q3eix*|* z&YeFhjQ?T)xl|{g6%-UqKYjXi#xqk>Q_|JdC2ehOa_`YDyp$&e=jeu4;9G0P*AR&`J1z6&&rc0PmEp=^0Q~p z3>0QVN4DL%e|5`1m6n!@W@M4V_{}R&Oiav%Lx&DcQgaAPM@NT&!SDo`Rb5?e!iE7< zS63%ju3QnFHx(2V^rZs5K3`BvQ&LiXsI06sp#la$Hh=@cTv+|XoRFK}9z6}T!-B4qw%;*ImyyWfeZD6qL*RLBO3~ySX z3l}bkYOr&~iWMKdN*QqL>QhKxJOK<)=!TjzJUncGEDT2kZGpJo(9j@+y0*4fPM$m| zQBhIffBxe>w|VnsUrpNq`V%byT@VU9WBV89zP`RQPzajPVvOMk5aGl2?%g}Se*O9{ z6za9PhR&_pIe{SQRd@$5Ji<$C|3bhaAt46H&(F_ ze;Xw~Kc6y?q4VB)DbU7^8<+3iy}ON$O|JsRzI-+e*9adEpPgmr&Yd%!1PBn$F~ZG! zJOmiEDKRmzclGMkfjWPwCn(Z9v$(j}tRC->T|D?j814ha%hs$}W1!q_w;9K^7h!D8 zVkZC)eU35^85wy(=f3L+$Xj=U?Y2GOe;rn8>&oox0mh0JJ)Jpo#?&C|4cq-~!zDYZ zU)%?XUWd2TO9Ki+vHVjl`5ZiW&|xAl7%RGQb+8%Xouaf^8hl9Dofhh)TN$aWEX}|F;)ybuofKnf7#%6 zTLL7{i;s`*RG3dZ0r`Z7hbL+MnI=sEV?~(tnEh|Bz4)JTc3*Ah*i7X==NK?KIXTXz zO`F(Je&7j+a_+C2^Az1KH0p%k4jee(VA%RkZpFp+?wo%{!0000 - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr index 4d4731d1..81b01c5f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr index f68624e1..7678681f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr index 3a06a71e..daa034ab 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr index b1168cc6..7924a897 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr index ab1d23a2..ed446c2c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr index f2774dfe..d06c55f6 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr index 738127ff..40a2be33 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr index f2273614..7f08c71f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr index ab382780..0ccc8c84 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr index c591fd13..29303810 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr index a8f40f22..84977485 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr index 84474499..76b59db1 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr index cd05f67c..5a28f03f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr index aed26ff7..32da758d 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr index dd6d7f55..5b5726c4 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr index bc8f4162..0c7a7703 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr index 794f12ab..2ee12a33 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr index 43d17b80..a7e1bbad 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr index e3a41f4a..7ca1ec12 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr index 6b4c45ac..bdece365 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr index cec2835e..6f458f89 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr index c584eb9a..be6dd5db 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr index bb7632d6..50e3706f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr index cadb57e8..528ffb2c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr index fad588eb..aad77720 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr index 4a66802b..12d3c25a 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr index 37a863c9..617786ff 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr index ebbe19fb..b5f4c27d 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr index cb5bcdcf..dcc2f205 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr index a9d80516..f09490c5 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr index bd5aff57..3fce10b3 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr index 6673fbe5..41c43054 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr index 576bc3e6..a3d02c0c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr index 66b2fd67..16a16701 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr index 5c58a1b4..2c90fa0c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr index 155197b0..da4d224c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr index 67903832..ba89734f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr index 9b73f4a4..d8153748 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr index 85b81a05..20e4df3b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr index b253b85c..abfa90d8 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr index 6f91edec..8d3a1961 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr index 74c03be6..4a63d258 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr index b6f9b030..4706ef0b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr index 771ebc66..f743062b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr index ce3c0726..0ed59b8d 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr index 6cf1e8e1..e47443bc 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr index 29169210..a8b0c405 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr index 4db49d73..e7aa05c3 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr index 11ea810c..5d4d3949 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr index 8dffa2b5..ac55a465 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr index 7177f71c..9852a12e 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr index 5a937ebc..26268ea5 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr index d94c3c6f..fa400860 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr index 686e2f7d..193596e5 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr index 17365678..937e079d 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr index 05c57ac2..a3217c90 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr index 2b96dadc..dfbea32b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr index 33453874..51a19583 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr index 901ec1bd..f0ccd0b0 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr index bef3f97a..b594ab05 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr index 5e39b22b..3605b2c3 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm index 7dd49e69..2af80923 100644 --- a/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm +++ b/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm index e53026de..db8a3d60 100644 --- a/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm +++ b/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo index 6869e9ae..a1c1f14a 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo index 83d1917b..6b475256 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo index 764b9541..954b0139 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo index b2a902c5..97343d9e 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo index 962c5086..dcb22252 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo index f08d1727..17c6cffc 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo index cf68c914..36f1d34c 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo index 0426fc60..287cdeb5 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo index f692f2fc..055c52d0 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo index 978d2c25..16de94a8 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer index 971396dc..32eb84bf 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer index 337c1304..631dc8e2 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer index eac10e60..931ba074 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer index a8dba7ee..5af50832 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer index b560ccee..c25545be 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer index 86729dc1..e37fd118 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/Visu/Package.vcp index 913934ac..d3b15ae3 100644 --- a/mappFramework/Logical/VC4/Visu/Package.vcp +++ b/mappFramework/Logical/VC4/Visu/Package.vcp @@ -1,5 +1,5 @@ - + @@ -358,6 +358,18 @@ + + + + + + + + + + + + @@ -377,6 +389,10 @@ + + + + @@ -402,6 +418,7 @@ + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page index 199a88a3..fb8206b7 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page index 776bf0db..63feae78 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page index ff872317..b4c1d69b 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page index 82226ffe..e41028dc 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page index 8e4ab3bf..0141bc8e 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page new file mode 100644 index 00000000..05345708 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page @@ -0,0 +1,1291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page index 40ccd867..57182ad8 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page index 45b0cc33..9135f2cf 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page index 9227bde2..e3bdc1b1 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page index b09056b3..83c6de76 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index d9a0e966..ed34c3dc 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page index 6c7ea18f..697e7bc2 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page index a99c913a..3bdfa44e 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page index fc3a18da..3a9a6b0f 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page index 2d406f5c..d90e6643 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page index e18fcb8c..28795b24 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page index 3d734f6c..3eb0eb3b 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index dbcf898c..e0694e96 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page b/mappFramework/Logical/VC4/Visu/Pages/MpReport.page index cceb1298..dd4a25e2 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page b/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page index 34b2271b..ee42a9fe 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page index 62009ab7..c5facfd7 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page index 918e36d9..8b901832 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page index ce575a83..74882da4 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page index 61c71b80..1256d5ed 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index 5a7363bb..d5fdf246 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index bbe228fe..ae36d11e 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + @@ -162,7 +162,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -192,7 +192,7 @@ - + @@ -202,7 +202,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -312,7 +312,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -372,7 +372,7 @@ - + @@ -382,7 +382,7 @@ - + @@ -432,7 +432,7 @@ - + @@ -442,10 +442,40 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -653,6 +683,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Palette.vcr b/mappFramework/Logical/VC4/Visu/Palette.vcr index d8d2d534..08981107 100644 --- a/mappFramework/Logical/VC4/Visu/Palette.vcr +++ b/mappFramework/Logical/VC4/Visu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp index 9cb0f78a..8c428770 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp index ffbf3fd7..03ffebb1 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp index 3df19472..f705b250 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp index a24c81c3..83db9970 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre index 9f8e9378..ba4b19eb 100644 --- a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index c2013005..b8d23e28 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + @@ -2422,14 +2422,6 @@ - - - - - - - - @@ -2570,30 +2562,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -2666,4 +2634,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 2602c2e3..1b79c3c0 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 4b870a86..58db8155 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 80a7db74..3b67ca27 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index a5bf5e89..a9b736b9 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index 4251e8bd..b8c59321 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index 18ecf16e..564f899f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index 29af5fe8..79f8ceff 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index a4914556..28deba3f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index fd9fd267..89fc13c1 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index 3bab4dc5..c6d87afd 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index c9e49e11..fa5f8c61 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 091fe6de..5dd61035 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index a16e98a9..894e5633 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 2667cab7..90a743a9 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index a31ecc7c..5aeb43d6 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 17c6df0d..251ae4c6 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -16791,5 +16791,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 6291a5f3..575ebacc 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 48b229e3..ba74306f 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + @@ -105,6 +105,7 @@ + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index a9f2a806..964e7625 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index c04608ff..b7ec8f39 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index 879fadd1..3de19132 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index 3850269c..d4d725e2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index e6d2ec97..6b1e3b38 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 1449a1f3..56a3ed46 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index c667e41c..ab07cade 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index 1de874ed..adee9a03 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 87b8beb6..6e242d02 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index c0719fe6..575ee0a3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index c4ca5bb3..d262a1e6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 20a557ff..42b45026 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index bc98c4c5..65fb0681 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index 601d3afc..52a59260 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index eff8f332..e45e50b0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index a2ebec46..f4a3866c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index d79cd0c6..3e812b7a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index d8e3b9ed..c7974eb4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index 658a600a..17fed913 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 154a479b..23d22f60 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index 9cc970d8..5ad6a479 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index ee0322c8..dca04c44 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index a6b3ce90..fcffdb26 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index 487100ed..649f4709 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index db8f34bd..106886a9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index dae21557..c9f4b7c9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp new file mode 100644 index 00000000..48b293aa --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index c3bd3f01..3a60acfd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 42934d4e..9555f097 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index 26baab87..3e773470 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 55b4f7e3..92006277 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index 4b74bf12..80dc2727 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index 5ec9e3a6..eabe7212 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index bbfebcd8..326aab6b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp index bc066e4f..b4ee4143 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp index c9070fa4..cdea1084 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp index 417e2622..8420bb4d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp index b5e67162..84e798f6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index b4dd8597..d9eca763 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index be7bb2ec..8c7156e0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index 97a33fe9..2f9d24ae 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index b54b0cab..5725671d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index 6021ba64..28fc3cff 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index e5bfd4dc..782d3ec5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index 47fb1c3f..e50e287a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index dba63514..d4572444 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index 79f46747..1442fda8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index f046bc91..67c6c4c2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index 9c8475e8..30b4fb7f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index dc4ce9d0..5f33a485 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index 034c8b00..17af770e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index bd809c6f..49eabe22 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index 104e8a65..143ec6c3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index c895eeab..ab8a4a81 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index 6abce760..d4d37750 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index 1fc9be9a..b8c4d9f1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 1bb39903..5ad13687 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 875fff16..fbf8aff0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index 10ac29cf..49c3289a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index cb262c44..99683cbf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 47340e4d..bae638b4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index 950ad11e..92223a25 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index c067216c..a6aee33d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index 6c4265b7..cc3591ab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index fc49ab86..6bf158dc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 6e455924..e170c821 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 1e127e4b..7415383a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 1cb5d5f5..536be6e7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp index 972bc566..4895cf18 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp index facf1ffb..104b1249 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp index 31d96dc4..c2376b45 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp index b25096dc..a6050c52 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 27b2fbfc..7f033aa3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index a6aab6bb..659c0859 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index a1576894..28ec13c3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index 863c1c34..5b3fe7d7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index 18c3a5af..649c65f4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index eaab3c24..98a3f0b8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index cb516990..8558a1e7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index 1d4af627..fc2988c6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 468c8dfd..0417cbe2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 69e9aa1f..0680964b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index 0f451903..ca62d6b3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index 05fa1d8d..456e8562 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 5bc4fef2..c17f68b3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index c7436082..0461a8c4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 2c97560f..9de585e8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index 4a3f8273..b0815a8d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index 4ac5aa86..ea28201d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index 6ae173e5..5f621150 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 6b57c4a5..8d757898 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index 18f7ec2b..fe5ccfd0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index d50a4d0a..c6bb4ad8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index a495de81..2b3d1df9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 526efd53..b72accd0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 8e1040d6..e78cf40f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 16fa06df..bade7743 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index 7954eb02..5e9f0040 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index bd13d2e9..2b43dec3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index fcff784d..da49b4bd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index 6f36239b..7d7f6d60 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index c50e3d53..fa6652d7 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index de9e787d..88b6633f 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index b8da98f6..01303640 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index ad19d93c..798e3a02 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index eb30e49c..66e164e2 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index 7cb2a7a1..7dd3f30c 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index 5124e035..b07517ec 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content index 7f800fa4..56924b35 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content @@ -1,18 +1,6 @@  - - - - - - - - - - - - - + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg index 61738d1a..7483b1e5 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg +++ b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg @@ -3,7 +3,7 @@ Axis.content - AxisAuto.content AxisManual.content + AxisAuto.content \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg new file mode 100644 index 00000000..e56db615 --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg @@ -0,0 +1,7 @@ + + + + + Widget.compoundwidget + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget new file mode 100644 index 00000000..2c510c4d --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PositionUnit + + + + + + + Unit + + + + + + + + Label Text + + + + + + + Axis Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg index 5659aca4..e29353ff 100644 --- a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg @@ -5,6 +5,7 @@ Description.widgetlibrary Resources AxisControl + AutoControl AxisControlWidgetLib.png \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg index ffc1c679..e4bb245c 100644 --- a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg +++ b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg @@ -6,21 +6,47 @@ id="Ebene_1" x="0px" y="0px" - viewBox="0 0 35 35" + viewBox="0 0 30 30" xml:space="preserve" - width="35" - height="35" + width="30" + height="30" class="br-symbol-library" + sodipodi:docname="AlarmActive.svg" + inkscape:export-filename="AlarmActive.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/">image/svg+xml + - -
    + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg index 26eb6f9d..ee7ceebc 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg @@ -1,329 +1,586 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f4a35b101dce3a322bf015abeeb0441b3b8e3689 Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Thu, 27 Apr 2023 09:38:59 -0400 Subject: [PATCH 087/159] bugfix: Update recipe unit tests so they don't get stuck --- .../Set_RecipeMachineSettings.c | 1022 ++++++------ .../RecipeMgrUnitTest/Set_RecipeParameters.c | 1380 ++++++++--------- .../Recipe/RecipeMgrUnitTest/testSuite.c | 309 ++-- .../Recipe/RecipeMgrUnitTest/testSuite.h | 16 +- 4 files changed, 1364 insertions(+), 1363 deletions(-) diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c index e8243f7d..1b9abcca 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c @@ -1,511 +1,511 @@ -#include - -#ifdef _DEFAULT_INCLUDES -#include -#endif - -#include "UnitTest.h" -#include -#include -#include -#include "testSuite.h" - -#define TIMEOUT_TEST_CASE \ - if (cycleCount >= 254) \ - { \ - char abortMessage[80]; \ - char substate[10]; \ - memset(abortMessage, 0, sizeof(abortMessage)); \ - memset(substate, 0, sizeof(substate)); \ - itoa(ActSubState, substate, 10); \ - strcpy(abortMessage, "Timeout in ActSubState = "); \ - strcat(abortMessage, substate); \ - TEST_FAIL(abortMessage); \ - TEST_DONE; \ - } - -_SETUP_SET(void) -{ - return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", MACHINE_CONFIGURATION_CATEGORY); -} - -_TEARDOWN_SET(void) -{ - SetupState = 0; - TEST_DONE; -} - -_SETUP_TEST(void) -{ - ArrangeSubState = 0; - ActSubState = 0; - AssertSubState = 0; - return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", MACHINE_CONFIGURATION_CATEGORY); -} - -_TEARDOWN_TEST(void) -{ - memset(&HmiRecipe.Commands, 0, sizeof(HmiRecipe.Commands)); - MpRecipeUIConnect.Recipe.Load = false; - TEST_BUSY_CONDITION(!SelectRecipe("Machine.mcfg")); - - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - MpRecipeUIConnect.Recipe.Refresh = true; - } - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) - MpRecipeUIConnect.Recipe.Refresh = false; - - TEST_DONE; -} - -_CYCLIC_SET(void) -{ - cycleCount++; -} - -_TEST DefaultValues(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - // set MachineSettings through the pointer - memset(pMachineSettings, 0, sizeof(*pMachineSettings)); - TEST_BUSY_CONDITION(!SelectRecipe("Machine.mcfg")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - MpRecipeUIConnect.Recipe.Load = true; - HmiRecipe.Commands.LoadRecipe = true; - TEST_BUSY_CONDITION(HmiRecipe.Status.ConfigRecipeLoaded == true); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand == REC_HMI_WAIT); - HmiRecipe.Commands.LoadRecipe = false; - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 1; - break; - case 1: - TEST_BUSY_CONDITION(HmiRecipe.Status.ConfigRecipeLoaded == false); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_LOAD); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT_EQUAL_INT(11, MachineSettings.AddMachineSettingsHere1); - TEST_ASSERT_EQUAL_INT(22, MachineSettings.AddMachineSettingsHere2); - TEST_ASSERT_EQUAL_INT(true, MachineSettings.AddMachineSettingsHere3); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.2999999, MachineSettings.AddMachineSettingsHere4); - TEST_ASSERT_EQUAL_INT(44, MachineSettings.AddMachineSettingsHere5); - TEST_DONE; - break; - } - TEST_BUSY; - - - TEST_DONE; -} -_TEST CreateNew(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, "test"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(RecipeExists("test.mcfg")); - TEST_DONE; - break; - } - TEST_BUSY; - -} - -_TEST CreateExisting(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, "Machine"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - TestState = TEST_ASSERT; - break; - - case TEST_ASSERT: - HmiRecipe.Commands.CreateRecipe = false; - TEST_ASSERT(HmiRecipe.Status.FileDuplicate); - TEST_ASSERT(RecipeExists("Machine.mcfg")); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST CreateNonExisting(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, "test2"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - TestState = TEST_ASSERT; - break; - - case TEST_ASSERT: - HmiRecipe.Commands.CreateRecipe = false; - TEST_ASSERT(!HmiRecipe.Status.FileDuplicate); - TEST_ASSERT(!RecipeExists("test2.mcfg")); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST CreateActive(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, strtok(HmiRecipe.Status.LastLoadedConfigRecipe, ".")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - TestState = TEST_ASSERT; - break; - - case TEST_ASSERT: - HmiRecipe.Commands.CreateRecipe = false; - TEST_ASSERT(HmiRecipe.Status.FileDuplicate); - TEST_ASSERT(RecipeExists(HmiRecipe.Status.LastLoadedConfigRecipe)); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST Preview(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - MachineSettings.AddMachineSettingsHere1 = 157; - MachineSettings.AddMachineSettingsHere2 = 43956; - MachineSettings.AddMachineSettingsHere3 = true; - MachineSettings.AddMachineSettingsHere4 = 134.876; - MachineSettings.AddMachineSettingsHere5 = 4373; - strcpy(HmiRecipe.Parameters.FileName, "preview"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(!SelectRecipe("preview.mcfg")); - ActSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(!SelectRecipe("preview.mcfg")); - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 5; - break; - - case 5: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT_EQUAL_INT(11, MachineSettings.AddMachineSettingsHere1); - TEST_ASSERT_EQUAL_INT(22, MachineSettings.AddMachineSettingsHere2); - TEST_ASSERT_EQUAL_INT(true, MachineSettings.AddMachineSettingsHere3); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.2999999, MachineSettings.AddMachineSettingsHere4); - TEST_ASSERT_EQUAL_INT(44, MachineSettings.AddMachineSettingsHere5); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST Delete(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - switch (ArrangeSubState) - { - case 0: - strcpy(HmiRecipe.Parameters.FileName, "test"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - ArrangeSubState = 1; - break; - - case 1: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ArrangeSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ArrangeSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ArrangeSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - ArrangeSubState = 5; - break; - - case 5: - TEST_BUSY_CONDITION(!SelectRecipe("test.mcfg")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - } - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - MpRecipeUIConnect.Recipe.Delete = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus != 0); - MpRecipeUIConnect.Recipe.Delete = false; - MpRecipeUIConnect.MessageBox.Confirm = true; - ActSubState = 1; - break; - - case 1: - MpRecipeUIConnect.MessageBox.Confirm = false; - TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus == 0) - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(!RecipeExists("test.mcfg")); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST Invalid(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - switch (ArrangeSubState) { - case 0: - FileCopy_UT.enable = true; - FileCopy_UT.pSrcDev = "mappRecipeFiles"; - FileCopy_UT.pSrc = "CSVformat\\Machine.mcfg"; - FileCopy_UT.pDestDev = "mappRecipeFiles"; - FileCopy_UT.pDest = "MachineInvalid.mcfg"; - FileCopy_UT.option= fiOVERWRITE; - FileCopy(&FileCopy_UT); - TEST_BUSY_CONDITION(FileCopy_UT.status == 65535); - FileCopy_UT.enable = false; - FileCopy(&FileCopy_UT); - ArrangeSubState = 1; - break; - - case 1: - MpRecipeUIConnect.Recipe.Refresh = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); - MpRecipeUIConnect.Recipe.Refresh = false; - ArrangeSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ArrangeSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(!SelectRecipe("MachineInvalid.mcfg")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - } - break; - - case TEST_ACT: - switch (ActSubState) - { - case 0: - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_LOAD); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT_EQUAL_INT(mpRECIPE_UI_STATUS_ERROR, MpRecipeUIConnect.Status); - TEST_DONE; - break; - } - TEST_BUSY; -} - -/* -B+R UnitTest: This is generated code. -Do not edit! Do not move! -Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2022-11-03 15:12:53Z -By B+R UnitTest Helper Version: 2.0.1.59 -*/ -UNITTEST_FIXTURES(fixtures) -{ - new_TestFixture("DefaultValues", DefaultValues), - new_TestFixture("CreateNew", CreateNew), - new_TestFixture("CreateExisting", CreateExisting), - new_TestFixture("CreateNonExisting", CreateNonExisting), - new_TestFixture("CreateActive", CreateActive), - new_TestFixture("Preview", Preview), - new_TestFixture("Delete", Delete), - new_TestFixture("Invalid", Invalid), -}; - -UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_RecipeMachineSettings, "Set_RecipeMachineSettings", setupTest, teardownTest, fixtures, setupSet, teardownSet, cyclicSetCaller); - +#include + +#ifdef _DEFAULT_INCLUDES +#include +#endif + +#include "UnitTest.h" +#include +#include +#include +#include "testSuite.h" + +#define TIMEOUT_TEST_CASE \ + if (cycleCount >= 254) \ + { \ + char abortMessage[80]; \ + char substate[10]; \ + memset(abortMessage, 0, sizeof(abortMessage)); \ + memset(substate, 0, sizeof(substate)); \ + itoa(ActSubState, substate, 10); \ + strcpy(abortMessage, "Timeout in ActSubState = "); \ + strcat(abortMessage, substate); \ + TEST_FAIL(abortMessage); \ + TEST_DONE; \ + } + +_SETUP_SET(void) +{ + return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", 1, MACHINE_CONFIGURATION_CATEGORY); +} + +_TEARDOWN_SET(void) +{ + SetupState = 0; + TEST_DONE; +} + +_SETUP_TEST(void) +{ + ArrangeSubState = 0; + ActSubState = 0; + AssertSubState = 0; + return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", 1, MACHINE_CONFIGURATION_CATEGORY); +} + +_TEARDOWN_TEST(void) +{ + memset(&HmiRecipe.Commands, 0, sizeof(HmiRecipe.Commands)); + MpRecipeUIConnect.Recipe.Load = false; + TEST_BUSY_CONDITION(!SelectRecipe("Machine.mcfg")); + + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + MpRecipeUIConnect.Recipe.Refresh = true; + } + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) + MpRecipeUIConnect.Recipe.Refresh = false; + + TEST_DONE; +} + +_CYCLIC_SET(void) +{ + cycleCount++; +} + +_TEST DefaultValues(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + // set MachineSettings through the pointer + memset(pMachineSettings, 0, sizeof(*pMachineSettings)); + TEST_BUSY_CONDITION(!SelectRecipe("Machine.mcfg")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + MpRecipeUIConnect.Recipe.Load = true; + HmiRecipe.Commands.LoadRecipe = true; + TEST_BUSY_CONDITION(HmiRecipe.Status.ConfigRecipeLoaded == true); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand == REC_HMI_WAIT); + HmiRecipe.Commands.LoadRecipe = false; + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 1; + break; + case 1: + TEST_BUSY_CONDITION(HmiRecipe.Status.ConfigRecipeLoaded == false); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_LOAD); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT_EQUAL_INT(11, MachineSettings.AddMachineSettingsHere1); + TEST_ASSERT_EQUAL_INT(22, MachineSettings.AddMachineSettingsHere2); + TEST_ASSERT_EQUAL_INT(true, MachineSettings.AddMachineSettingsHere3); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.2999999, MachineSettings.AddMachineSettingsHere4); + TEST_ASSERT_EQUAL_INT(44, MachineSettings.AddMachineSettingsHere5); + TEST_DONE; + break; + } + TEST_BUSY; + + + TEST_DONE; +} +_TEST CreateNew(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, "test"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(RecipeExists("test.mcfg")); + TEST_DONE; + break; + } + TEST_BUSY; + +} + +_TEST CreateExisting(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, "Machine"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + TestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + HmiRecipe.Commands.CreateRecipe = false; + TEST_ASSERT(HmiRecipe.Status.FileDuplicate); + TEST_ASSERT(RecipeExists("Machine.mcfg")); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST CreateNonExisting(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, "test2"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + TestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + HmiRecipe.Commands.CreateRecipe = false; + TEST_ASSERT(!HmiRecipe.Status.FileDuplicate); + TEST_ASSERT(!RecipeExists("test2.mcfg")); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST CreateActive(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, strtok(HmiRecipe.Status.LastLoadedConfigRecipe, ".")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + TestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + HmiRecipe.Commands.CreateRecipe = false; + TEST_ASSERT(HmiRecipe.Status.FileDuplicate); + TEST_ASSERT(RecipeExists(HmiRecipe.Status.LastLoadedConfigRecipe)); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST Preview(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + MachineSettings.AddMachineSettingsHere1 = 157; + MachineSettings.AddMachineSettingsHere2 = 43956; + MachineSettings.AddMachineSettingsHere3 = true; + MachineSettings.AddMachineSettingsHere4 = 134.876; + MachineSettings.AddMachineSettingsHere5 = 4373; + strcpy(HmiRecipe.Parameters.FileName, "preview"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(!SelectRecipe("preview.mcfg")); + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(!SelectRecipe("preview.mcfg")); + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT_EQUAL_INT(11, MachineSettings.AddMachineSettingsHere1); + TEST_ASSERT_EQUAL_INT(22, MachineSettings.AddMachineSettingsHere2); + TEST_ASSERT_EQUAL_INT(true, MachineSettings.AddMachineSettingsHere3); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.2999999, MachineSettings.AddMachineSettingsHere4); + TEST_ASSERT_EQUAL_INT(44, MachineSettings.AddMachineSettingsHere5); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST Delete(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + switch (ArrangeSubState) + { + case 0: + strcpy(HmiRecipe.Parameters.FileName, "test"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + ArrangeSubState = 1; + break; + + case 1: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ArrangeSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ArrangeSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ArrangeSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + ArrangeSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(!SelectRecipe("test.mcfg")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + } + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + MpRecipeUIConnect.Recipe.Delete = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus != 0); + MpRecipeUIConnect.Recipe.Delete = false; + MpRecipeUIConnect.MessageBox.Confirm = true; + ActSubState = 1; + break; + + case 1: + MpRecipeUIConnect.MessageBox.Confirm = false; + TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus == 0) + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(!RecipeExists("test.mcfg")); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST Invalid(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + switch (ArrangeSubState) { + case 0: + FileCopy_UT.enable = true; + FileCopy_UT.pSrcDev = "mappRecipeFiles"; + FileCopy_UT.pSrc = "CSVformat\\Machine.mcfg"; + FileCopy_UT.pDestDev = "mappRecipeFiles"; + FileCopy_UT.pDest = "MachineInvalid.mcfg"; + FileCopy_UT.option= fiOVERWRITE; + FileCopy(&FileCopy_UT); + TEST_BUSY_CONDITION(FileCopy_UT.status == 65535); + FileCopy_UT.enable = false; + FileCopy(&FileCopy_UT); + ArrangeSubState = 1; + break; + + case 1: + MpRecipeUIConnect.Recipe.Refresh = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); + MpRecipeUIConnect.Recipe.Refresh = false; + ArrangeSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ArrangeSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(!SelectRecipe("MachineInvalid.mcfg")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + } + break; + + case TEST_ACT: + switch (ActSubState) + { + case 0: + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_LOAD); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT_EQUAL_INT(mpRECIPE_UI_STATUS_ERROR, MpRecipeUIConnect.Status); + TEST_DONE; + break; + } + TEST_BUSY; +} + +/* +B+R UnitTest: This is generated code. +Do not edit! Do not move! +Description: UnitTest Testprogramm infrastructure (TestSet). +LastUpdated: 2022-11-03 15:12:53Z +By B+R UnitTest Helper Version: 2.0.1.59 +*/ +UNITTEST_FIXTURES(fixtures) +{ + new_TestFixture("DefaultValues", DefaultValues), + new_TestFixture("CreateNew", CreateNew), + new_TestFixture("CreateExisting", CreateExisting), + new_TestFixture("CreateNonExisting", CreateNonExisting), + new_TestFixture("CreateActive", CreateActive), + new_TestFixture("Preview", Preview), + new_TestFixture("Delete", Delete), + new_TestFixture("Invalid", Invalid), +}; + +UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_RecipeMachineSettings, "Set_RecipeMachineSettings", setupTest, teardownTest, fixtures, setupSet, teardownSet, cyclicSetCaller); + diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c index 353b4308..b246fe8b 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c @@ -1,690 +1,690 @@ -#include - -#ifdef _DEFAULT_INCLUDES -#include -#endif - -#include "UnitTest.h" -#include -#include -#include -#include "testSuite.h" - -#define TIMEOUT_TEST_CASE \ - if (cycleCount >= 254) \ - { \ - char abortMessage[80]; \ - char substate[10]; \ - memset(abortMessage, 0, sizeof(abortMessage)); \ - memset(substate, 0, sizeof(substate)); \ - itoa(ActSubState, substate, 10); \ - strcpy(abortMessage, "Timeout in ActSubState = "); \ - strcat(abortMessage, substate); \ - TEST_FAIL(abortMessage); \ - TEST_DONE; \ - } - -_SETUP_SET(void) -{ - return RemoveNonDefaultFiles("*.par", "Default.par", PARAMETERS_CATEGORY); -} - -_TEARDOWN_SET(void) -{ - SetupState = 0; - TEST_DONE; -} - -_SETUP_TEST(void) -{ - ArrangeSubState = 0; - ActSubState = 0; - AssertSubState = 0; - return RemoveNonDefaultFiles("*.par", "Default.par", PARAMETERS_CATEGORY); -} - -_TEARDOWN_TEST(void) -{ - memset(&HmiRecipe.Commands, 0, sizeof(HmiRecipe.Commands)); - MpRecipeUIConnect.Recipe.Load = false; - TEST_BUSY_CONDITION(!SelectRecipe("Default.par")); - - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - MpRecipeUIConnect.Recipe.Refresh = true; - } - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) - MpRecipeUIConnect.Recipe.Refresh = false; - - TEST_DONE; -} - -_CYCLIC_SET(void) -{ - cycleCount++; -} - -_TEST DefaultValues(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - // set MachineSettings through the pointer - memset(pParameters, 0, sizeof(*pParameters)); - TEST_BUSY_CONDITION(!SelectRecipe("Default.par")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - switch (ActSubState) - { - case 0: - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - HmiRecipe.Commands.LoadRecipe = true; - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == true); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand == REC_HMI_WAIT); - HmiRecipe.Commands.LoadRecipe = false; - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(Parameters.AddParametersHere1); - TEST_ASSERT_EQUAL_STRING("two", Parameters.AddParametersHere2); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.3, Parameters.AddParametersHere3); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 4.4, Parameters.AddParametersHere4); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 5.5, Parameters.AddParametersHere5); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST CreateNew(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, "test"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - } - switch (ActSubState) - { - case 0: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(RecipeExists("test.par")); - TEST_DONE; - break; - } - - TEST_BUSY; -} - -_TEST CreateExisting(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, "Default"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - TestState = TEST_ASSERT; - break; - - case TEST_ASSERT: - HmiRecipe.Commands.CreateRecipe = false; - TEST_ASSERT(HmiRecipe.Status.FileDuplicate); - TEST_ASSERT(RecipeExists("Default.par")); - TEST_DONE; - break; - } - - TEST_BUSY; -} - -_TEST CreateNonExisting(void) -{ - TIMEOUT_TEST_CASE - - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, "test2"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - TestState = TEST_ASSERT; - break; - - case TEST_ASSERT: - HmiRecipe.Commands.CreateRecipe = false; - TEST_ASSERT(!HmiRecipe.Status.FileDuplicate); - TEST_ASSERT(!RecipeExists("test2.par")); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST CreateActive(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - strcpy(HmiRecipe.Parameters.FileName, strtok(HmiRecipe.Status.LastLoadedProductRecipe, ".")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - TestState = TEST_ASSERT; - break; - - case TEST_ASSERT: - HmiRecipe.Commands.CreateRecipe = false; - TEST_ASSERT(HmiRecipe.Status.FileDuplicate); - TEST_ASSERT(RecipeExists(HmiRecipe.Status.LastLoadedProductRecipe)); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST PreviewShouldNotAffectActive(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - ParametersEdit.AddParametersHere1 = false; - strcpy(ParametersEdit.AddParametersHere2, "testing preview"); - ParametersEdit.AddParametersHere3 = 12.56; - ParametersEdit.AddParametersHere4 = 134.876; - ParametersEdit.AddParametersHere5 = 87.4567; - strcpy(HmiRecipe.Parameters.FileName, "preview"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); - ActSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 5; - break; - - case 5: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - // check if preview affects the active parameters - TEST_ASSERT(Parameters.AddParametersHere1); - TEST_ASSERT_EQUAL_STRING("two", Parameters.AddParametersHere2); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.3, Parameters.AddParametersHere3); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 4.4, Parameters.AddParametersHere4); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 5.5, Parameters.AddParametersHere5); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST Preview(void) -{ - TIMEOUT_TEST_CASE - - switch (TestState) - { - case TEST_ARRANGE: - ParametersEdit.AddParametersHere1 = false; - strcpy(ParametersEdit.AddParametersHere2, "testing preview"); - ParametersEdit.AddParametersHere3 = 12.56; - ParametersEdit.AddParametersHere4 = 134.876; - ParametersEdit.AddParametersHere5 = 87.4567; - strcpy(HmiRecipe.Parameters.FileName, "preview"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); - ActSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 5; - break; - - case 5: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(!ParametersPreview.AddParametersHere1); - TEST_ASSERT_EQUAL_STRING("testing preview", ParametersPreview.AddParametersHere2); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 12.56, ParametersPreview.AddParametersHere3); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 134.876, ParametersPreview.AddParametersHere4); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 87.4567, ParametersPreview.AddParametersHere5); - - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST Delete(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - switch (ArrangeSubState) - { - case 0: - strcpy(HmiRecipe.Parameters.FileName, "test"); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - ArrangeSubState = 1; - break; - - case 1: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ArrangeSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ArrangeSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ArrangeSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - ArrangeSubState = 5; - break; - - case 5: - TEST_BUSY_CONDITION(!SelectRecipe("test.par")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - } - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) { - case 0: - MpRecipeUIConnect.Recipe.Delete = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus != 0); - MpRecipeUIConnect.Recipe.Delete = false; - MpRecipeUIConnect.MessageBox.Confirm = true; - ActSubState = 1; - break; - - case 1: - MpRecipeUIConnect.MessageBox.Confirm = false; - TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus == 0) - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 4; - break; - - case 4: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(!RecipeExists("test.par")); - TEST_DONE; - break; - } - TEST_BUSY; -} - -_TEST Invalid(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - switch (ArrangeSubState) { - case 0: - FileCopy_UT.enable = true; - FileCopy_UT.pSrcDev = "mappRecipeFiles"; - FileCopy_UT.pSrc = "CSVformat\\Default.par"; - FileCopy_UT.pDestDev = "mappRecipeFiles"; - FileCopy_UT.pDest = "Invalid.par"; - FileCopy_UT.option= fiOVERWRITE; - FileCopy(&FileCopy_UT); - TEST_BUSY_CONDITION(FileCopy_UT.status == 65535); - FileCopy_UT.enable = false; - FileCopy(&FileCopy_UT); - ArrangeSubState = 1; - break; - - case 1: - MpRecipeUIConnect.Recipe.Refresh = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); - MpRecipeUIConnect.Recipe.Refresh = false; - ArrangeSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ArrangeSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(!SelectRecipe("Invalid.par")); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TestState = TEST_ACT; - break; - } - break; - - case TEST_ACT: - switch (ActSubState) - { - case 0: - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_LOAD); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT_EQUAL_INT(mpRECIPE_UI_STATUS_ERROR, MpRecipeUIConnect.Status); - TEST_DONE; - break; - } - TEST_BUSY; -} - -SKIP_TEST EditActive(void) -{ - TIMEOUT_TEST_CASE - switch (TestState) - { - case TEST_ARRANGE: - TEST_BUSY_CONDITION(!SelectRecipe("Default.par")); - LastSelectedIndex++; - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - - ParametersEdit.AddParametersHere1 = false; - strcpy(ParametersEdit.AddParametersHere2, "testing editing active"); - ParametersEdit.AddParametersHere3 = 12.56; - ParametersEdit.AddParametersHere4 = 134.876; - ParametersEdit.AddParametersHere5 = 87.4567; - strcpy(HmiRecipe.Parameters.FileName, "editActive"); - TestState = TEST_ACT; - break; - - case TEST_ACT: - if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) - { - TEST_FAIL("MpRecipeUIConnect in error state"); - TEST_DONE; - } - switch (ActSubState) - { - case 0: - HmiRecipe.Commands.CreateRecipe = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); - HmiRecipe.Commands.CreateRecipe = false; - ActSubState = 1; - break; - - case 1: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - ActSubState = 2; - break; - - case 2: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); - ActSubState = 3; - break; - - case 3: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); - TEST_BUSY_CONDITION(!SelectRecipe("editActive.par")); - ActSubState = 4; - break; - - case 4: - MpRecipeUIConnect.Recipe.Load = true; - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); - MpRecipeUIConnect.Recipe.Load = false; - ActSubState = 5; - break; - - case 5: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - ParametersEdit.AddParametersHere1 = true; - strcpy(ParametersEdit.AddParametersHere2, "edited active"); - ParametersEdit.AddParametersHere3 = 52.56; - ParametersEdit.AddParametersHere4 = 184.876; - ParametersEdit.AddParametersHere5 = 587.4567; - ActSubState = 6; - break; - - case 6: - HmiRecipe.Commands.SaveSelectedRecipe = true; - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand == REC_HMI_WAIT); - HmiRecipe.Commands.SaveSelectedRecipe = false; - ActSubState = 7; - break; - - case 7: - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); - TestState = TEST_ASSERT; - break; - } - break; - - case TEST_ASSERT: - TEST_ASSERT(Parameters.AddParametersHere1); - TEST_ASSERT_EQUAL_STRING("edited active", Parameters.AddParametersHere2); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 52.56, Parameters.AddParametersHere3); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 184.876, Parameters.AddParametersHere4); - TEST_ASSERT_DOUBLE_WITHIN(0.0001, 587.4567, Parameters.AddParametersHere5); - - TEST_DONE; - break; - } - TEST_BUSY; -} - - -/* -B+R UnitTest: This is generated code. -Do not edit! Do not move! -Description: UnitTest Testprogramm infrastructure (TestSet). -LastUpdated: 2022-11-07 13:02:54Z -By B+R UnitTest Helper Version: 2.0.1.59 -*/ -UNITTEST_FIXTURES(fixtures) -{ - new_TestFixture("DefaultValues", DefaultValues), - new_TestFixture("CreateNew", CreateNew), - new_TestFixture("CreateExisting", CreateExisting), - new_TestFixture("CreateNonExisting", CreateNonExisting), - new_TestFixture("CreateActive", CreateActive), - new_TestFixture("PreviewShouldNotAffectActive", PreviewShouldNotAffectActive), - new_TestFixture("Preview", Preview), - new_TestFixture("Delete", Delete), - new_TestFixture("Invalid", Invalid), - skipTestFixture("EditActive", EditActive), -}; - -UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_RecipeParameters, "Set_RecipeParameters", setupTest, teardownTest, fixtures, setupSet, teardownSet, cyclicSetCaller); - +#include + +#ifdef _DEFAULT_INCLUDES +#include +#endif + +#include "UnitTest.h" +#include +#include +#include +#include "testSuite.h" + +#define TIMEOUT_TEST_CASE \ + if (cycleCount >= 254) \ + { \ + char abortMessage[80]; \ + char substate[10]; \ + memset(abortMessage, 0, sizeof(abortMessage)); \ + memset(substate, 0, sizeof(substate)); \ + itoa(ActSubState, substate, 10); \ + strcpy(abortMessage, "Timeout in ActSubState = "); \ + strcat(abortMessage, substate); \ + TEST_FAIL(abortMessage); \ + TEST_DONE; \ + } + +_SETUP_SET(void) +{ + return RemoveNonDefaultFiles("*.par", "Default.par", 0, PARAMETERS_CATEGORY); +} + +_TEARDOWN_SET(void) +{ + SetupState = 0; + TEST_DONE; +} + +_SETUP_TEST(void) +{ + ArrangeSubState = 0; + ActSubState = 0; + AssertSubState = 0; + return RemoveNonDefaultFiles("*.par", "Default.par", 0, PARAMETERS_CATEGORY); +} + +_TEARDOWN_TEST(void) +{ + memset(&HmiRecipe.Commands, 0, sizeof(HmiRecipe.Commands)); + MpRecipeUIConnect.Recipe.Load = false; + TEST_BUSY_CONDITION(!SelectRecipe("Default.par")); + + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + MpRecipeUIConnect.Recipe.Refresh = true; + } + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) + MpRecipeUIConnect.Recipe.Refresh = false; + + TEST_DONE; +} + +_CYCLIC_SET(void) +{ + cycleCount++; +} + +_TEST DefaultValues(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + // set MachineSettings through the pointer + memset(pParameters, 0, sizeof(*pParameters)); + TEST_BUSY_CONDITION(!SelectRecipe("Default.par")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + switch (ActSubState) + { + case 0: + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + HmiRecipe.Commands.LoadRecipe = true; + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == true); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand == REC_HMI_WAIT); + HmiRecipe.Commands.LoadRecipe = false; + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(Parameters.AddParametersHere1); + TEST_ASSERT_EQUAL_STRING("two", Parameters.AddParametersHere2); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.3, Parameters.AddParametersHere3); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 4.4, Parameters.AddParametersHere4); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 5.5, Parameters.AddParametersHere5); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST CreateNew(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, "test"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + } + switch (ActSubState) + { + case 0: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(RecipeExists("test.par")); + TEST_DONE; + break; + } + + TEST_BUSY; +} + +_TEST CreateExisting(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, "Default"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + TestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + HmiRecipe.Commands.CreateRecipe = false; + TEST_ASSERT(HmiRecipe.Status.FileDuplicate); + TEST_ASSERT(RecipeExists("Default.par")); + TEST_DONE; + break; + } + + TEST_BUSY; +} + +_TEST CreateNonExisting(void) +{ + TIMEOUT_TEST_CASE + + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, "test2"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + TestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + HmiRecipe.Commands.CreateRecipe = false; + TEST_ASSERT(!HmiRecipe.Status.FileDuplicate); + TEST_ASSERT(!RecipeExists("test2.par")); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST CreateActive(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + strcpy(HmiRecipe.Parameters.FileName, strtok(HmiRecipe.Status.LastLoadedProductRecipe, ".")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + TestState = TEST_ASSERT; + break; + + case TEST_ASSERT: + HmiRecipe.Commands.CreateRecipe = false; + TEST_ASSERT(HmiRecipe.Status.FileDuplicate); + TEST_ASSERT(RecipeExists(HmiRecipe.Status.LastLoadedProductRecipe)); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST PreviewShouldNotAffectActive(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + ParametersEdit.AddParametersHere1 = false; + strcpy(ParametersEdit.AddParametersHere2, "testing preview"); + ParametersEdit.AddParametersHere3 = 12.56; + ParametersEdit.AddParametersHere4 = 134.876; + ParametersEdit.AddParametersHere5 = 87.4567; + strcpy(HmiRecipe.Parameters.FileName, "preview"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + // check if preview affects the active parameters + TEST_ASSERT(Parameters.AddParametersHere1); + TEST_ASSERT_EQUAL_STRING("two", Parameters.AddParametersHere2); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.3, Parameters.AddParametersHere3); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 4.4, Parameters.AddParametersHere4); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 5.5, Parameters.AddParametersHere5); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST Preview(void) +{ + TIMEOUT_TEST_CASE + + switch (TestState) + { + case TEST_ARRANGE: + ParametersEdit.AddParametersHere1 = false; + strcpy(ParametersEdit.AddParametersHere2, "testing preview"); + ParametersEdit.AddParametersHere3 = 12.56; + ParametersEdit.AddParametersHere4 = 134.876; + ParametersEdit.AddParametersHere5 = 87.4567; + strcpy(HmiRecipe.Parameters.FileName, "preview"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(!SelectRecipe("preview.par")); + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(!ParametersPreview.AddParametersHere1); + TEST_ASSERT_EQUAL_STRING("testing preview", ParametersPreview.AddParametersHere2); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 12.56, ParametersPreview.AddParametersHere3); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 134.876, ParametersPreview.AddParametersHere4); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 87.4567, ParametersPreview.AddParametersHere5); + + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST Delete(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + switch (ArrangeSubState) + { + case 0: + strcpy(HmiRecipe.Parameters.FileName, "test"); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + ArrangeSubState = 1; + break; + + case 1: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ArrangeSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ArrangeSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ArrangeSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + ArrangeSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(!SelectRecipe("test.par")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + } + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) { + case 0: + MpRecipeUIConnect.Recipe.Delete = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus != 0); + MpRecipeUIConnect.Recipe.Delete = false; + MpRecipeUIConnect.MessageBox.Confirm = true; + ActSubState = 1; + break; + + case 1: + MpRecipeUIConnect.MessageBox.Confirm = false; + TEST_BUSY_CONDITION(MpRecipeUIConnect.MessageBox.LayerStatus == 0) + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 4; + break; + + case 4: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(!RecipeExists("test.par")); + TEST_DONE; + break; + } + TEST_BUSY; +} + +_TEST Invalid(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + switch (ArrangeSubState) { + case 0: + FileCopy_UT.enable = true; + FileCopy_UT.pSrcDev = "mappRecipeFiles"; + FileCopy_UT.pSrc = "CSVformat\\Default.par"; + FileCopy_UT.pDestDev = "mappRecipeFiles"; + FileCopy_UT.pDest = "Invalid.par"; + FileCopy_UT.option= fiOVERWRITE; + FileCopy(&FileCopy_UT); + TEST_BUSY_CONDITION(FileCopy_UT.status == 65535); + FileCopy_UT.enable = false; + FileCopy(&FileCopy_UT); + ArrangeSubState = 1; + break; + + case 1: + MpRecipeUIConnect.Recipe.Refresh = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_IDLE); + MpRecipeUIConnect.Recipe.Refresh = false; + ArrangeSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ArrangeSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(!SelectRecipe("Invalid.par")); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TestState = TEST_ACT; + break; + } + break; + + case TEST_ACT: + switch (ActSubState) + { + case 0: + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_LOAD); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT_EQUAL_INT(mpRECIPE_UI_STATUS_ERROR, MpRecipeUIConnect.Status); + TEST_DONE; + break; + } + TEST_BUSY; +} + +SKIP_TEST EditActive(void) +{ + TIMEOUT_TEST_CASE + switch (TestState) + { + case TEST_ARRANGE: + TEST_BUSY_CONDITION(!SelectRecipe("Default.par")); + LastSelectedIndex++; + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + + ParametersEdit.AddParametersHere1 = false; + strcpy(ParametersEdit.AddParametersHere2, "testing editing active"); + ParametersEdit.AddParametersHere3 = 12.56; + ParametersEdit.AddParametersHere4 = 134.876; + ParametersEdit.AddParametersHere5 = 87.4567; + strcpy(HmiRecipe.Parameters.FileName, "editActive"); + TestState = TEST_ACT; + break; + + case TEST_ACT: + if (MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_ERROR) + { + TEST_FAIL("MpRecipeUIConnect in error state"); + TEST_DONE; + } + switch (ActSubState) + { + case 0: + HmiRecipe.Commands.CreateRecipe = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_CREATE); + HmiRecipe.Commands.CreateRecipe = false; + ActSubState = 1; + break; + + case 1: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + ActSubState = 2; + break; + + case 2: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status == mpRECIPE_UI_STATUS_REFRESH); + ActSubState = 3; + break; + + case 3: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TEST_BUSY_CONDITION(HmiRecipe.Status.ProductRecipeLoaded == false); + TEST_BUSY_CONDITION(!SelectRecipe("editActive.par")); + ActSubState = 4; + break; + + case 4: + MpRecipeUIConnect.Recipe.Load = true; + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_LOAD); + MpRecipeUIConnect.Recipe.Load = false; + ActSubState = 5; + break; + + case 5: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + ParametersEdit.AddParametersHere1 = true; + strcpy(ParametersEdit.AddParametersHere2, "edited active"); + ParametersEdit.AddParametersHere3 = 52.56; + ParametersEdit.AddParametersHere4 = 184.876; + ParametersEdit.AddParametersHere5 = 587.4567; + ActSubState = 6; + break; + + case 6: + HmiRecipe.Commands.SaveSelectedRecipe = true; + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand == REC_HMI_WAIT); + HmiRecipe.Commands.SaveSelectedRecipe = false; + ActSubState = 7; + break; + + case 7: + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE); + TestState = TEST_ASSERT; + break; + } + break; + + case TEST_ASSERT: + TEST_ASSERT(Parameters.AddParametersHere1); + TEST_ASSERT_EQUAL_STRING("edited active", Parameters.AddParametersHere2); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 52.56, Parameters.AddParametersHere3); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 184.876, Parameters.AddParametersHere4); + TEST_ASSERT_DOUBLE_WITHIN(0.0001, 587.4567, Parameters.AddParametersHere5); + + TEST_DONE; + break; + } + TEST_BUSY; +} + + +/* +B+R UnitTest: This is generated code. +Do not edit! Do not move! +Description: UnitTest Testprogramm infrastructure (TestSet). +LastUpdated: 2022-11-07 13:02:54Z +By B+R UnitTest Helper Version: 2.0.1.59 +*/ +UNITTEST_FIXTURES(fixtures) +{ + new_TestFixture("DefaultValues", DefaultValues), + new_TestFixture("CreateNew", CreateNew), + new_TestFixture("CreateExisting", CreateExisting), + new_TestFixture("CreateNonExisting", CreateNonExisting), + new_TestFixture("CreateActive", CreateActive), + new_TestFixture("PreviewShouldNotAffectActive", PreviewShouldNotAffectActive), + new_TestFixture("Preview", Preview), + new_TestFixture("Delete", Delete), + new_TestFixture("Invalid", Invalid), + skipTestFixture("EditActive", EditActive), +}; + +UNITTEST_CALLER_COMPLETE_EXPLICIT(Set_RecipeParameters, "Set_RecipeParameters", setupTest, teardownTest, fixtures, setupSet, teardownSet, cyclicSetCaller); + diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c index b2cd1b6a..13619f4f 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c @@ -1,155 +1,156 @@ -/******************************************************************** - * COPYRIGHT -- - ******************************************************************** - * Program: - - * Author: - * Created: - ******************************************************************** - * Test registration and handshake - ********************************************************************/ - -#include - -#ifdef _DEFAULT_INCLUDES -#include -#endif - -#include "UnitTest.h" -#include -#include - -void _INIT initTestSuite(void) -{ - Testsuite.Enable = 1; - utInit(&Testsuite); - - CommonTestsuite.Enable = 1; - utInit(&CommonTestsuite); - - strcpy((char*)&FileDeviceName, "mappRecipeFiles"); - strcpy((char*)&TextNameSpace, "mappFramework/Recipe/Alarms"); - strcpy((char*)&TextID, "SaveFailed"); - strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); - - PV_xgetadr("RecipeMgr:MachineSettings", (void*)&pMachineSettings, &MachineSettingsSize); - PV_xgetadr("RecipeMgr:Parameters", (void*)&pParameters, &ParameterSize); - - LastSelectedIndex++; -} - -void _CYCLIC cyclicWithTest(void) -{ - utCyclic(&Testsuite); - if (Testsuite.Informational.LastKnownPassedLocation.TestCaseName != 0) - strcpy((char*)&LastTestCase, (char*)Testsuite.Informational.LastKnownPassedLocation.TestCaseName); - if (Testsuite.Informational.LastKnownPassedLocation.TestSetName != 0) - strcpy((char*)&LastTestSet, (char*)Testsuite.Informational.LastKnownPassedLocation.TestSetName); - if (Testsuite.Informational.LastKnownPassedLocation.File != 0) - strcpy((char*)&LastTestFile, (char*)Testsuite.Informational.LastKnownPassedLocation.File); -} - -void _EXIT exitTestSuite(void) -{ - utExit(&Testsuite); -} - -bool RecipeExists(char* recipeName) -{ - for (USINT i = 0; i<(sizeof(MpRecipeUIConnect.Recipe.List.Names)/sizeof(MpRecipeUIConnect.Recipe.List.Names[0])); i++) - { - if (strcmp(recipeName, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) - { - return true; - } - } - return false; -} - -bool SelectRecipe(char* wantedRecipe) -{ - if (((MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) && (MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_ERROR)) && - (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) != 0)) return false; - - for (USINT i=0; i <= MpRecipeUIConnect.Recipe.List.MaxSelection; i++) - { - if (strcmp(wantedRecipe, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) - MpRecipeUIConnect.Recipe.List.SelectedIndex = i; - } - - return (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) == 0); -} - -testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const char* category) -{ - switch (SetupState) - { - case 0: - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappRecipeFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - NumberOfFiles = DirInfo_UT.filenum; - CurrentFile = 0; - SetupState = (NumberOfFiles == 0) ? 100 : 1; - break; - - case 1: - DirRead_UT.enable = true; - DirRead_UT.pDevice = DirInfo_UT.pDevice; - DirRead_UT.entry = CurrentFile; - DirRead_UT.option = fiFILE; - DirRead_UT.pData = (UDINT)&fileInfo; - DirRead_UT.data_len = sizeof(fileInfo); - DirRead(&DirRead_UT); - TEST_BUSY_CONDITION(DirRead_UT.status == 65535); - TEST_ABORT_CONDITION(DirRead_UT.status != 0); - SetupState = 2; - break; - - case 2: - if ((strcmp("Default.par", (char*)fileInfo.Filename) == 0) || - (strcmp("Machine.mcfg", (char*)fileInfo.Filename) == 0)) - { - CurrentFile++; - SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; - break; - } - FileDelete_UT.enable = true; - FileDelete_UT.pDevice = DirInfo_UT.pDevice; - FileDelete_UT.pName = (UDINT)&fileInfo.Filename; - FileDelete(&FileDelete_UT); - TEST_BUSY_CONDITION(FileDelete_UT.status == 65535); - TEST_ABORT_CONDITION(FileDelete_UT.status != 0); - - NumberOfFiles--; - SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; - break; - - case 10: - strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); - strcpy((char*)&MpRecipeUIConnect.Recipe.Filter, filter); - MpRecipeUIConnect.Recipe.Refresh = true; - strcpy((char*)&HmiRecipe.Parameters.Category, category); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_REFRESH) - MpRecipeUIConnect.Recipe.Refresh = false; - SetupState = 11; - break; - - case 11: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) - TEST_BUSY_CONDITION(!RecipeExists(selectFile)); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT) - TEST_ABORT_CONDITION(pParameters == NULL); - SetupState = 100; - break; - - case 100: - cycleCount = 0; - TestState = TEST_ARRANGE; - SetupState = 0; - TEST_DONE; - } - TEST_BUSY; +/******************************************************************** + * COPYRIGHT -- + ******************************************************************** + * Program: - + * Author: + * Created: + ******************************************************************** + * Test registration and handshake + ********************************************************************/ + +#include + +#ifdef _DEFAULT_INCLUDES +#include +#endif + +#include "UnitTest.h" +#include +#include + +void _INIT initTestSuite(void) +{ + Testsuite.Enable = 1; + utInit(&Testsuite); + + CommonTestsuite.Enable = 1; + utInit(&CommonTestsuite); + + strcpy((char*)&FileDeviceName, "mappRecipeFiles"); + strcpy((char*)&TextNameSpace, "mappFramework/Recipe/Alarms"); + strcpy((char*)&TextID, "SaveFailed"); + strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); + + PV_xgetadr("RecipeMgr:MachineSettings", (void*)&pMachineSettings, &MachineSettingsSize); + PV_xgetadr("RecipeMgr:Parameters", (void*)&pParameters, &ParameterSize); + + LastSelectedIndex++; +} + +void _CYCLIC cyclicWithTest(void) +{ + utCyclic(&Testsuite); + if (Testsuite.Informational.LastKnownPassedLocation.TestCaseName != 0) + strcpy((char*)&LastTestCase, (char*)Testsuite.Informational.LastKnownPassedLocation.TestCaseName); + if (Testsuite.Informational.LastKnownPassedLocation.TestSetName != 0) + strcpy((char*)&LastTestSet, (char*)Testsuite.Informational.LastKnownPassedLocation.TestSetName); + if (Testsuite.Informational.LastKnownPassedLocation.File != 0) + strcpy((char*)&LastTestFile, (char*)Testsuite.Informational.LastKnownPassedLocation.File); +} + +void _EXIT exitTestSuite(void) +{ + utExit(&Testsuite); +} + +bool RecipeExists(char* recipeName) +{ + for (USINT i = 0; i<(sizeof(MpRecipeUIConnect.Recipe.List.Names)/sizeof(MpRecipeUIConnect.Recipe.List.Names[0])); i++) + { + if (strcmp(recipeName, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) + { + return true; + } + } + return false; +} + +bool SelectRecipe(char* wantedRecipe) +{ + if (((MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) && (MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_ERROR)) && + (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) != 0)) return false; + + for (USINT i=0; i <= MpRecipeUIConnect.Recipe.List.MaxSelection; i++) + { + if (strcmp(wantedRecipe, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) + MpRecipeUIConnect.Recipe.List.SelectedIndex = i; + } + + return (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) == 0); +} + +testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const USINT categoryIndex, const char* category) +{ + switch (SetupState) + { + case 0: + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappRecipeFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + NumberOfFiles = DirInfo_UT.filenum; + CurrentFile = 0; + SetupState = (NumberOfFiles == 0) ? 100 : 1; + break; + + case 1: + DirRead_UT.enable = true; + DirRead_UT.pDevice = DirInfo_UT.pDevice; + DirRead_UT.entry = CurrentFile; + DirRead_UT.option = fiFILE; + DirRead_UT.pData = (UDINT)&fileInfo; + DirRead_UT.data_len = sizeof(fileInfo); + DirRead(&DirRead_UT); + TEST_BUSY_CONDITION(DirRead_UT.status == 65535); + TEST_ABORT_CONDITION(DirRead_UT.status != 0); + SetupState = 2; + break; + + case 2: + if ((strcmp("Default.par", (char*)fileInfo.Filename) == 0) || + (strcmp("Machine.mcfg", (char*)fileInfo.Filename) == 0)) + { + CurrentFile++; + SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; + break; + } + FileDelete_UT.enable = true; + FileDelete_UT.pDevice = DirInfo_UT.pDevice; + FileDelete_UT.pName = (UDINT)&fileInfo.Filename; + FileDelete(&FileDelete_UT); + TEST_BUSY_CONDITION(FileDelete_UT.status == 65535); + TEST_ABORT_CONDITION(FileDelete_UT.status != 0); + + NumberOfFiles--; + SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; + break; + + case 10: + strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); + strcpy((char*)&MpRecipeUIConnect.Recipe.Filter, filter); + MpRecipeUIConnect.Recipe.Refresh = true; + HmiRecipe.Parameters.CategoryIndex = categoryIndex; + strcpy((char*)&HmiRecipe.Parameters.Category, category); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_REFRESH) + MpRecipeUIConnect.Recipe.Refresh = false; + SetupState = 11; + break; + + case 11: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) + TEST_BUSY_CONDITION(!RecipeExists(selectFile)); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT) + TEST_ABORT_CONDITION(pParameters == NULL); + SetupState = 100; + break; + + case 100: + cycleCount = 0; + TestState = TEST_ARRANGE; + SetupState = 0; + TEST_DONE; + } + TEST_BUSY; } \ No newline at end of file diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h index 83cb06c0..4a69a0a8 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h @@ -1,8 +1,8 @@ -#ifndef __TEST_SUITE_H__ -#define __TEST_SUITE_H__ - -bool RecipeExists(char* recipeName); -bool SelectRecipe(char* wantedRecipe); -testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const char* category); - -#endif +#ifndef __TEST_SUITE_H__ +#define __TEST_SUITE_H__ + +bool RecipeExists(char* recipeName); +bool SelectRecipe(char* wantedRecipe); +testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const USINT categoryIndex, const char* category); + +#endif From da23bbcf146a20120983d23b703ad2e2ba9bd39f Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Tue, 2 May 2023 12:12:24 -0500 Subject: [PATCH 088/159] AAZM-580 Fixed mpFile device invalid file device logger entry on restart --- .../Infrastructure/File/FileMgr/FileMgr.st | 30 +++++++------- .../Infrastructure/File/FileMgr/FileMgr.var | 4 ++ .../Infrastructure/File/FileMgr/HMIActions.st | 40 +++++++------------ mappFramework/Physical/Simulation/Hardware.hw | 4 +- 4 files changed, 36 insertions(+), 42 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st index 3b4460c4..75aa451c 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.st @@ -8,13 +8,14 @@ PROGRAM _INIT // Inititialize mapp function block - MpFileManagerUIConnect.DeviceList.DeviceNames[0] := 'mappRecipeFiles'; - MpFileManagerUIConnect.DeviceList.DeviceNames[1] := 'mappAuditFiles'; - MpFileManagerUIConnect.DeviceList.DeviceNames[2] := 'mappReportFiles'; - MpFileManagerUIConnect.DeviceList.DeviceNames[3] := 'mappDataFiles'; - MpFileManagerUIConnect.DeviceList.DeviceNames[4] := 'mappBackupFiles'; - MpFileManagerUIConnect.DeviceList.DeviceNames[5] := 'mappAlarmXFiles'; - MpFileManagerUIConnect.DeviceList.DeviceNames[6] := 'mappUserXFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[0] := 'USER'; + MpFileManagerUIConnect.DeviceList.DeviceNames[1] := 'mappRecipeFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[2] := 'mappAuditFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[3] := 'mappReportFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[4] := 'mappDataFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[5] := 'mappBackupFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[6] := 'mappAlarmXFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[7] := 'mappUserXFiles'; MpFileManagerUI_0.Enable := TRUE; MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); @@ -65,13 +66,14 @@ PROGRAM _INIT PathCheck.Folder[5] := 'AlarmX'; PathCheck.Folder[6] := 'UserX'; - HmiFile.Status.DeviceDataProvider[0] := '{"value":"mappRecipeFiles","text":"mappRecipeFiles"}'; - HmiFile.Status.DeviceDataProvider[1] := '{"value":"mappAuditFiles","text":"mappAuditFiles"}'; - HmiFile.Status.DeviceDataProvider[2] := '{"value":"mappReportFiles","text":"mappReportFiles"}'; - HmiFile.Status.DeviceDataProvider[3] := '{"value":"mappDataFiles","text":"mappDataFiles"}'; - HmiFile.Status.DeviceDataProvider[4] := '{"value":"mappBackupFiles","text":"mappBackupFiles"}'; - HmiFile.Status.DeviceDataProvider[5] := '{"value":"mappAlarmXFiles","text":"mappAlarmXFiles"}'; - HmiFile.Status.DeviceDataProvider[6] := '{"value":"mappUserXFiles","text":"mappUserXFiles"}'; + HmiFile.Status.DeviceDataProvider[0] := '{"value":"USER","text":"UserPath"}'; + HmiFile.Status.DeviceDataProvider[1] := '{"value":"mappRecipeFiles","text":"mappRecipeFiles"}'; + HmiFile.Status.DeviceDataProvider[2] := '{"value":"mappAuditFiles","text":"mappAuditFiles"}'; + HmiFile.Status.DeviceDataProvider[3] := '{"value":"mappReportFiles","text":"mappReportFiles"}'; + HmiFile.Status.DeviceDataProvider[4] := '{"value":"mappDataFiles","text":"mappDataFiles"}'; + HmiFile.Status.DeviceDataProvider[5] := '{"value":"mappBackupFiles","text":"mappBackupFiles"}'; + HmiFile.Status.DeviceDataProvider[6] := '{"value":"mappAlarmXFiles","text":"mappAlarmXFiles"}'; + HmiFile.Status.DeviceDataProvider[7] := '{"value":"mappUserXFiles","text":"mappUserXFiles"}'; // Calculate offset for potential additional USB devices FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var index 92bc9eca..e0d20b3c 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var @@ -39,3 +39,7 @@ END_VAR VAR RETAIN FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) END_VAR +VAR + NextOpenIndex : USINT; (*Index for the next open slot in mpFileManagerUICOnnect device list which populates table*) + index : USINT; (*Index for FOR loop cheking paths*) +END_VAR diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index fe6c2092..02e55ffa 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -21,33 +21,21 @@ ACTION FormatDeviceDataProvider: END_IF END_FOR - MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); //Check initilized folder for existance and remove any from the device list that don't exist - IF (IdentStatus = 0) THEN - // copy device name from source list into the actual device list - MpFileManagerUIConnect.DeviceList.DeviceNames[Index] := PathCheck.DeviceList.DeviceNames[DeviceListCount]; - Index := Index + 1; - DeviceListCount := DeviceListCount + 1; - - IF (DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1)) THEN - DeviceListCount := 0; - END_IF - IF (Index > MaxDeviceNameIndex) THEN - Index := 0; - END_IF - ELSIF (IdentStatus = 3324) THEN - DeviceListCount := DeviceListCount + 1; - IF DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1) THEN - //Delete entries past the actual number of devices found - FOR i:=Index TO MaxDeviceNameIndex DO - MpFileManagerUIConnect.DeviceList.DeviceNames[i] := ''; - END_FOR - DeviceListCount := 0; - Index := 0; - END_IF - END_IF - - IdentStatus := ST_ident(ADR(PathCheck.PrgName[DeviceListCount]),0,ADR(Ident)); + MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); + NextOpenIndex := 0; + FOR index := 0 TO MaxDeviceNameIndex DO + IdentStatus := ST_ident(ADR(PathCheck.PrgName[index]),0,ADR(Ident)); + //Assign device name to next available slot in table according to if the path is valid + IF (IdentStatus = 0) THEN //path is valid + MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[index + 1]; + NextOpenIndex := NextOpenIndex + 1; + END_IF; + //Clear the remaining index slots with invalid path checks + IF index > NextOpenIndex THEN + MpFileManagerUIConnect.DeviceList.DeviceNames[index] := ''; + END_IF + END_FOR; // Configure visible device list HmiFile.Status.TableConfig[0] := '{ "specRows": [{"from":'; diff --git a/mappFramework/Physical/Simulation/Hardware.hw b/mappFramework/Physical/Simulation/Hardware.hw index da17f3a8..ac8e7e08 100644 --- a/mappFramework/Physical/Simulation/Hardware.hw +++ b/mappFramework/Physical/Simulation/Hardware.hw @@ -1,5 +1,5 @@  - + @@ -10,7 +10,7 @@ - + From 19ca365f4306fddf001f7b9cc74835881d3af09f Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Thu, 4 May 2023 10:07:28 +0300 Subject: [PATCH 089/159] =?UTF-8?q?-=20MpAudit=20is=20finished,=C2=A0=20-?= =?UTF-8?q?=20MpReport=20has=20just=20pdf=20showing=20issue=C2=A0=20-=20Mp?= =?UTF-8?q?Backup=20is=20almost=20finished.=C2=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Infrastructure/Audit/AuditMgr/AuditMgr.st | 25 +- .../Audit/AuditMgr/AuditMgr.typ | 6 + .../Audit/AuditMgr/AuditMgr.var | 7 + .../Audit/AuditMgr/ExecuteQuery.st | 18 +- .../Backup/BackupMgr/BackupMgr.st | 29 +- .../Backup/BackupMgr/BackupMgr.typ | 19 + .../Backup/BackupMgr/HMIActions.st | 11 +- .../Report/ReportMgr/HMIActions.st | 26 +- .../Report/ReportMgr/ReportMgr.typ | 13 + .../Report/ReportMgr/ReportMgr.var | 9 + .../AppAxis_1/AppAxis_1/AxisMgr.typ | 6 +- .../AxisTemplate/AxisMgr/AxisMgr.typ | 2 - .../AxisTemplate/AxisMgr/AxisMgr.var | 2 +- .../AxisTemplate/AxisMgr/AxisStateMachine.st | 4 - .../Set_RecipeMachineSettings.c | 4 +- .../RecipeMgrUnitTest/Set_RecipeParameters.c | 4 +- .../Recipe/RecipeMgrUnitTest/testSuite.c | 223 +- .../Recipe/RecipeMgrUnitTest/testSuite.h | 2 +- .../MpAlarmAcknowledgeState.bmgrp | 2 +- .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 2 +- .../Visu/BitmapGroups/MpAlarmXStates.bmgrp | 2 +- .../Visu/BitmapGroups/MpAuditCheckbox.bmgrp | 2 +- .../Visu/BitmapGroups/MpAuditEventsID.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp | 15 - .../VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp | 15 - .../VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp | 25 - .../VC4/Visu/BitmapGroups/MpAxisPower.bmgrp | 15 - .../VC4/Visu/BitmapGroups/MpBorders.bmgrp | 2 +- .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 2 +- .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 2 +- .../BitmapGroups/MpDataLimitViolation.bmgrp | 2 +- .../Visu/BitmapGroups/MpFileFIFOIcons.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpFileIcons.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpIcons.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpIconsClick.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpListbox.bmgrp | 2 +- .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpPads.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp | 2 +- .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 2 +- .../VC4/Visu/BitmapGroups/MpUserIcons.bmgrp | 2 +- .../Visu/Bitmaps/MpAxis_AlarmActive.bminfo | 15 - .../VC4/Visu/Bitmaps/MpAxis_AlarmActive.png | Bin 959 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_GearDisabled.png | Bin 954 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_GearEnabled.png | Bin 768 -> 0 bytes .../Visu/Bitmaps/MpAxis_GearRotating.bminfo | 14 - .../VC4/Visu/Bitmaps/MpAxis_GearRotating.png | Bin 1228 -> 0 bytes .../Visu/Bitmaps/MpAxis_KnownPosition.bminfo | 15 - .../VC4/Visu/Bitmaps/MpAxis_KnownPosition.png | Bin 821 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_Off.bminfo | 15 - .../Logical/VC4/Visu/Bitmaps/MpAxis_Off.png | Bin 611 -> 0 bytes .../Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png | Bin 1025 -> 0 bytes .../Logical/VC4/Visu/Bitmaps/MpAxis_On.png | Bin 614 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_On1.bminfo | 15 - .../Logical/VC4/Visu/Bitmaps/MpAxis_On1.png | Bin 958 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_Reset.bminfo | 15 - .../Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png | Bin 620 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_Stop.bminfo | 15 - .../Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png | Bin 169 -> 0 bytes .../Bitmaps/MpAxis_UnknownPosition.bminfo | 15 - .../Visu/Bitmaps/MpAxis_UnknownPosition.png | Bin 1017 -> 0 bytes .../VC4/Visu/Bitmaps/MpAxis_Warning.png | Bin 1574 -> 1527 bytes ...is_Off1.bminfo => checkbox_checked.bminfo} | 8 +- .../VC4/Visu/Bitmaps/checkbox_checked.png | Bin 0 -> 1055 bytes ...s_On.bminfo => checkbox_checked_40.bminfo} | 8 +- .../VC4/Visu/Bitmaps/checkbox_checked_40.png | Bin 0 -> 1489 bytes ...d.bminfo => checkbox_small_checked.bminfo} | 8 +- .../Visu/Bitmaps/checkbox_small_checked.png | Bin 0 -> 422 bytes ...s_GearEnabled.bminfo => inprogress.bminfo} | 11 +- .../Logical/VC4/Visu/Bitmaps/inprogress.png | Bin 0 -> 922 bytes .../VC4/Visu/Borders/CheckBox_checked.bdr | 14 + .../Visu/Borders/CheckBox_small_checked.bdr | 14 + .../VC4/Visu/Borders/Mp_AttentionOff.bdr | 2 +- .../VC4/Visu/Borders/Mp_AttentionOn.bdr | 2 +- .../VC4/Visu/Borders/Mp_BitmapFrame.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_Button.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_Control.bdr | 2 +- .../Borders/Mp_Button_Control_pressed.bdr | 2 +- .../Borders/Mp_Button_Device_Select_Left.bdr | 2 +- .../Mp_Button_Device_Unselect_Left.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Down.bdr | 2 +- .../Mp_Button_Multi_Scroll_Dwn_press.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Up.bdr | 2 +- .../Mp_Button_Multi_Scroll_Up_press.bdr | 2 +- .../Visu/Borders/Mp_Button_Safety_ACK_off.bdr | 2 +- .../Visu/Borders/Mp_Button_Safety_ACK_on.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr | 2 +- .../Borders/Mp_Button_Scoll_Up_pressed.bdr | 2 +- .../Visu/Borders/Mp_Button_Scroll_Down.bdr | 2 +- .../Borders/Mp_Button_Scroll_Down_pressed.bdr | 2 +- .../Visu/Borders/Mp_Button_Scroll_Left.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_Multi.bdr | 2 +- .../Mp_Button_Scroll_Left_Multi_pres.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_pressed.bdr | 2 +- .../Visu/Borders/Mp_Button_Scroll_Right.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right_Multi.bdr | 2 +- .../Mp_Button_Scroll_Right_Multi_pr.bdr | 2 +- .../Mp_Button_Scroll_Right_pressed.bdr | 2 +- .../VC4/Visu/Borders/Mp_Button_pressed.bdr | 2 +- .../VC4/Visu/Borders/Mp_CheckBox_checked.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataDevBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataMaxBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataMeanBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataMinBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataNameFrame.bdr | 2 +- .../VC4/Visu/Borders/Mp_DataRangeBorder.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr | 2 +- .../VC4/Visu/Borders/Mp_FrameInvisible.bdr | 2 +- .../VC4/Visu/Borders/Mp_GroupControl.bdr | 2 +- .../VC4/Visu/Borders/Mp_InputBorder.bdr | 2 +- .../Visu/Borders/Mp_InputBorderInactive.bdr | 2 +- .../VC4/Visu/Borders/Mp_LabelBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_LabelBorderDown.bdr | 2 +- .../VC4/Visu/Borders/Mp_LabelBorderSlim.bdr | 2 +- .../Visu/Borders/Mp_LabelBorder_Orange.bdr | 2 +- .../VC4/Visu/Borders/Mp_ListBoxCenter.bdr | 2 +- .../VC4/Visu/Borders/Mp_ListBoxLeft.bdr | 2 +- .../VC4/Visu/Borders/Mp_ListBoxRight.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_MoveOff.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_MoveOn.bdr | 2 +- .../VC4/Visu/Borders/Mp_OutputBorder.bdr | 2 +- .../VC4/Visu/Borders/Mp_PackML_States.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_RangeBar.bdr | 2 +- .../VC4/Visu/Borders/Mp_SliderBorder09.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr | 2 +- .../VC4/Visu/Borders/Mp_SunkenNGgray.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_TabActive.bdr | 2 +- .../Logical/VC4/Visu/Borders/Mp_TabSelect.bdr | 2 +- .../VC4/Visu/Borders/Mp_TabUnSelect.bdr | 2 +- .../Visu/Borders/Mp_TeachPointSelected.bdr | 2 +- .../Borders/Mp_TeachPointUnselectedEven.bdr | 2 +- .../Borders/Mp_TeachPointUnselectedOdd.bdr | 2 +- .../VC4/Visu/ColorMaps/MpEnergyChartData.clm | 2 +- .../VC4/Visu/ColorMaps/MpPMLStateColors.clm | 2 +- .../Logical/VC4/Visu/Fonts/MpButton.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpDefault.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpHeader.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpHeader2.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpInfo.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpInput.fninfo | 2 +- .../VC4/Visu/Fonts/MpMenuButtons.fninfo | 2 +- .../VC4/Visu/Fonts/MpPackMLStateNames.fninfo | 2 +- .../Logical/VC4/Visu/Fonts/MpPads.fninfo | 2 +- .../VC4/Visu/Layers/LockedMessageLayer.layer | 2 +- .../VC4/Visu/Layers/MpBackground.layer | 2 +- .../VC4/Visu/Layers/MpOeeControl.layer | 2 +- .../VC4/Visu/Layers/MpPageControl.layer | 2 +- .../Logical/VC4/Visu/Layers/MpUserXSign.layer | 2 +- .../Visu/Layers/MpUserXSignMessageBox.layer | 2 +- mappFramework/Logical/VC4/Visu/Package.vcp | 28 +- .../VC4/Visu/Pages/MpAlarmXHistory.page | 2 +- .../Logical/VC4/Visu/Pages/MpAlarmXList.page | 2 +- .../Visu/Pages/MpAlarmXListUI_Backtrace.page | 2 +- .../Logical/VC4/Visu/Pages/MpAlarmXQuery.page | 2 +- .../VC4/Visu/Pages/MpAuditCustomEventsUI.page | 1603 +++++++++++++ .../VC4/Visu/Pages/MpAuditQueryUI.page | 1700 +++++++++++++ .../VC4/Visu/Pages/MpAuditTrailUI.page | 1151 ++++++--- .../Logical/VC4/Visu/Pages/MpAxisBasic.page | 1291 ---------- .../Logical/VC4/Visu/Pages/MpBackup.page | 2130 +++++++++++++++++ .../Logical/VC4/Visu/Pages/MpComLoggerUI.page | 2 +- .../VC4/Visu/Pages/MpDataStatisticsUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpDataTableUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpEnergyUI.page | 2 +- .../VC4/Visu/Pages/MpFileManagerUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpOeeCoreUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpOeeListUI.page | 2 +- .../VC4/Visu/Pages/MpOeeTimelineUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpOeeTrendUI.page | 2 +- .../VC4/Visu/Pages/MpPackMLBasicUI.page | 2 +- .../VC4/Visu/Pages/MpPackMLStatisticsUI.page | 2 +- .../Logical/VC4/Visu/Pages/MpRecipeUI.page | 4 +- .../Logical/VC4/Visu/Pages/MpReport.page | 459 +++- .../Logical/VC4/Visu/Pages/MpSetup.page | 2 +- .../VC4/Visu/Pages/MpSystemDiagnostics.page | 2 +- .../VC4/Visu/Pages/MpTweetCoreUI_Alarm.page | 2 +- .../Visu/Pages/MpTweetCoreUI_Receiver.page | 2 +- .../Visu/Pages/MpUserXManagerUI_Roles.page | 2 +- .../Visu/Pages/MpUserXManagerUI_Users.page | 2 +- .../VC4/Visu/Pages/mapp1StartPage.page | 145 +- mappFramework/Logical/VC4/Visu/Palette.vcr | 2 +- .../Logical/VC4/Visu/StyleSheets/Color.vcs | 27 +- .../Logical/VC4/Visu/StyleSheets/Default2.vcs | 25 + .../Logical/VC4/Visu/StyleSheets/mapp.vcs | 27 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 2 +- .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 2 +- .../VC4/Visu/TextGroups/ShiftGroup.txtgrp | 2 +- .../Logical/VC4/Visu/Trends/MpOeeTrendUI.tre | 2 +- .../Logical/VC4/Visu/VirtualKeys.vcvk | 422 +++- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../AlarmGroups/MpAuditTrailAlarms.algrp | 2 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 2 +- .../AlarmGroups/MpDataRecorderAlarms.algrp | 2 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 2 +- .../AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 2 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 981 +++++--- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 9 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 2 +- .../TextGroups/MpAlarmBasicUIText.txtgrp | 2 +- .../TextGroups/MpAlarmBypassState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 2 +- .../TextGroups/MpAlarmSeparator.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 2 +- .../TextGroups/MpAlarmXListCode.txtgrp | 2 +- .../TextGroups/MpAlarmXListEventID.txtgrp | 2 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 2 +- .../TextGroups/MpAlarmXListState.txtgrp | 2 +- .../TextGroups/MpAlarmXListStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIText.txtgrp | 2 +- .../MpAuditArchiveFileTypeDP.txtgrp | 22 + .../MpAuditArchiveSettingsDP.txtgrp | 22 + .../TextGroups/MpAuditEventsOutput.txtgrp | 2 +- .../TextGroups/MpAuditSignatureEvent.txtgrp | 2 +- .../TextGroups/MpAuditTrailUIText.txtgrp | 53 +- .../TextGroups/MpAuditTweetEvent.txtgrp | 2 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 2 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../TextGroups/MpAuditUserAction.txtgrp | 2 +- .../TextGroups/MpAuditUserIDText.txtgrp | 2 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 70 - .../TextGroups/MpBackupIntervalUITexts.txtgrp | 43 + .../TextGroups/MpBackupUITexts.txtgrp | 94 + .../TextGroups/MpComLoggerUIText.txtgrp | 2 +- .../MpDataStatisticsUIStatus.txtgrp | 2 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpDataTableHeader.txtgrp | 2 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 2 +- .../TextGroups/MpDataTableUIText.txtgrp | 2 +- .../TextGroups/MpDateTimeFormats.txtgrp | 2 +- .../TextGroups/MpEnergyCoreStatus.txtgrp | 2 +- .../TextGroups/MpEnergyCoreUIText.txtgrp | 2 +- .../TextGroups/MpEnergyForwardEnergy.txtgrp | 2 +- .../TextGroups/MpEnergyReverseEnergy.txtgrp | 2 +- .../TextGroups/MpFileManagerUIDevices.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 2 +- .../MpFileManagerUIMessageBox.txtgrp | 2 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 2 +- .../TextGroups/MpFileManagerUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpLanguages.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUIText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUITime.txtgrp | 2 +- .../TextGroups/MpOeeListUIText.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 2 +- .../MpOeeTimelineUIProductionState.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 2 +- .../TextGroups/MpOeeTrendUIText.txtgrp | 2 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 2 +- .../TextGroups/MpPackMLModesNames.txtgrp | 2 +- .../TextGroups/MpPackMLStateNames.txtgrp | 2 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 2 +- .../MpPackMLStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpRecipeAuditText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 2 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../TextGroups/MpReportUITexts.txtgrp | 6 +- .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 2 +- .../TextGroups/MpTweetCoreUITexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIType.txtgrp | 2 +- .../VCShared/TextGroups/MpUnits.txtgrp | 2 +- .../TextGroups/MpUserConfirmText.txtgrp | 2 +- .../TextGroups/MpUserDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 2 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 2 +- .../TextGroups/MpUserRightLevel.txtgrp | 2 +- .../TextGroups/MpUserUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUITexts.txtgrp | 2 +- .../TextGroups/MpUserXConfirmText.txtgrp | 2 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 2 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 2 +- .../TextGroups/MpUserXRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 2 +- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../TextGroups/MpUserXSignUIText.txtgrp | 2 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 2 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- .../VCShared/TextGroups/mappComponents.txtgrp | 5 +- .../VCShared/TextGroups/mappTopics.txtgrp | 2 +- .../Logical/VCShared/UnitGroups/Energy.vcug | 2 +- .../Logical/VCShared/UnitGroups/Length.vcug | 2 +- .../Logical/VCShared/UnitGroups/Mass.vcug | 2 +- .../Logical/VCShared/UnitGroups/Memory.vcug | 2 +- .../Logical/VCShared/UnitGroups/Power.vcug | 2 +- .../Logical/VCShared/UnitGroups/Pressure.vcug | 2 +- .../VCShared/UnitGroups/Temperatures.vcug | 2 +- .../Logical/VCShared/UnitGroups/Volume.vcug | 2 +- .../BackupCreate/BackupDialog_Create.content | 2 +- .../AxisContent/AxisAuto.content | 14 +- .../FrameworkPackage/AxisContent/Package.pkg | 2 +- .../AutoControl/Package.pkg | 7 - .../AutoControl/Widget.compoundwidget | 198 -- .../Widgets/AxisControlWidgetLib/Package.pkg | 1 - .../Media/AxisControl/AlarmActive.svg | 36 +- .../Media/AxisControl/GearDisabled.svg | 74 +- .../Media/AxisControl/GearEnabled.svg | 74 +- .../Media/AxisControl/GearRotating_1.png | Bin 815 -> 0 bytes .../Media/AxisControl/GearRotating_2.png | Bin 760 -> 0 bytes .../Media/AxisControl/GearRotating_3.png | Bin 808 -> 0 bytes .../Media/AxisControl/KnownPosition.svg | 35 +- .../Resources/Media/AxisControl/Off.svg | 52 +- .../Resources/Media/AxisControl/Off1.svg | 34 +- .../Resources/Media/AxisControl/On.svg | 52 +- .../Resources/Media/AxisControl/On1.svg | 34 +- .../Resources/Media/AxisControl/Stop.svg | 50 +- .../Media/AxisControl/UnknownPosition.svg | 35 +- .../PC/mappView/Axis/AxisAuto_content.binding | 20 + mappFramework/mappFramework.apj | 2 +- 343 files changed, 8849 insertions(+), 3344 deletions(-) delete mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp delete mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp delete mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp delete mode 100644 mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearDisabled.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo delete mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.png rename mappFramework/Logical/VC4/Visu/Bitmaps/{MpAxis_Off1.bminfo => checkbox_checked.bminfo} (68%) create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.png rename mappFramework/Logical/VC4/Visu/Bitmaps/{MpAxis_On.bminfo => checkbox_checked_40.bminfo} (67%) create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.png rename mappFramework/Logical/VC4/Visu/Bitmaps/{MpAxis_GearDisabled.bminfo => checkbox_small_checked.bminfo} (66%) create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.png rename mappFramework/Logical/VC4/Visu/Bitmaps/{MpAxis_GearEnabled.bminfo => inprogress.bminfo} (57%) create mode 100644 mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.png create mode 100644 mappFramework/Logical/VC4/Visu/Borders/CheckBox_checked.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Borders/CheckBox_small_checked.bdr create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page delete mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page create mode 100644 mappFramework/Logical/VC4/Visu/Pages/MpBackup.page create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp delete mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg delete mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget delete mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/GearRotating_1.png delete mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/GearRotating_2.png delete mode 100644 mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/GearRotating_3.png diff --git a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st index c5f72f98..71111ef9 100644 --- a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st +++ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.st @@ -39,6 +39,14 @@ PROGRAM _INIT MpAuditTrailUI_0.Enable := TRUE; MpAuditTrailUI_0(); + MpAuditTrail_CEvents_UI_0.MpLink := ADR(gMpLinkCustomEvents); + MpAuditTrail_CEvents_UI_0.UIConnect := ADR(MpAuditTrail_CEvents_UIConnect); + MpAuditTrail_CEvents_UI_0.UISetup.EventListSize := SIZEOF(MpAuditTrail_CEvents_UIConnect.Output.EventID) / SIZEOF(MpAuditTrail_CEvents_UIConnect.Output.EventID[0]); + MpAuditTrail_CEvents_UI_0.UISetup.ScrollWindow := 1; + MpAuditTrail_CEvents_UI_0.Enable := TRUE; + MpAuditTrail_CEvents_UI_0(); + + // Initialize custom events CustomEvent[0].Type := "Custom Event Type"; CustomEvent[0].Msg := "Custom Event Message"; @@ -62,12 +70,22 @@ PROGRAM _INIT IF (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[0]), 0, ADR(ident)) = 0) AND (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[1]), 0, ADR(ident)) = 0) THEN HmiAudit.Status.DeviceDataProvider[0] := '{"value":"UserEvents","text":"User Events Query"}'; HmiAudit.Status.DeviceDataProvider[1] := '{"value":"RecipeEvents","text":"Recipe Events Query"}'; + + HmiAudit.Status.DeviceDataProviderVC4[0] := 'User Events Query'; + HmiAudit.Status.DeviceDataProviderVC4[1] := 'Recipe Events Query'; + ELSIF (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[0]), 0, ADR(ident)) <> 0) AND (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[1]), 0, ADR(ident)) = 0) THEN HmiAudit.Status.DeviceDataProvider[0] := '{"value":"RecipeEvents","text":"Recipe Events Query"}'; + + HmiAudit.Status.DeviceDataProviderVC4[0] := 'Recipe Events Query'; + ELSIF (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[0]), 0, ADR(ident)) = 0) AND (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[1]), 0, ADR(ident)) <> 0) THEN HmiAudit.Status.DeviceDataProvider[0] := '{"value":"UserEvents","text":"User Events Query"}'; + + HmiAudit.Status.DeviceDataProviderVC4[0] := 'User Events Query'; END_IF + // Restored the retained values to the archive settings HmiAudit.Parameters.ArchiveSettings := ArchiveSettingsRetain; @@ -111,7 +129,12 @@ PROGRAM _CYCLIC MpAuditTrailConfig_0(); MpAuditTrail_CEvents(); MpAuditTrailUI_0(); - + + MpAuditTrail_CEvents_UI_0(); + MpAuditTrail_CEvents(); + MpAuditTrail_CEvents_UI_0(); + + END_PROGRAM PROGRAM _EXIT diff --git a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.typ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.typ index 0d8bdf5c..5fc1840d 100644 --- a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.typ +++ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.typ @@ -2,12 +2,14 @@ TYPE AuditQueryHMIType : STRUCT (*Datatype for the structure which rearranges the query data from AuditQuery into a structure of arrays for easy connection to the Table widget in mapp View*) EvTime : ARRAY[0..MAX_QUERY_RESULTS]OF DATE_AND_TIME; (*ActiveAudits query, Event-Time column*) + EvTimeString : ARRAY[0..MAX_QUERY_RESULTS]OF STRING[80]; (*ActiveAudits query, Event-Time column*) Text : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[100]; (*ActiveAudits query, Text column*) DText : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[100]; (*ActiveAudits query, Display Text column*) Op : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[100]; (*ActiveAudits query, Operator-Name column*) QueryCount : USINT; (*Count of query results for building the query table configuration string*) Name : STRING[80]; (*Name of the query to be executed*) Option : USINT; (*Index value of the selected query type in the dropdown on the query tab*) + DPSelectedIndex : USINT; END_STRUCT; ActiveAuditStateEnum : ( (*Enumeration for the state for the query state machine*) @@ -49,6 +51,10 @@ TYPE ArchiveAvailable : BOOL; (*At least 1 archive is available for export*) NumberOfArchives : UINT; (*How many archives are available for export*) DeviceDataProvider : ARRAY[0..1]OF STRING[100]; (*Data provider for the file device selector*) + DeviceDataProviderVC4 : ARRAY[0..1]OF STRING[100]; (*Data provider for the file device selector*) + ArchiveSetupLayer : USINT; + ArchiveSetupTimeOfDayVisibility : USINT; + ArchiveSetupVisibility : USINT; END_STRUCT; AuditParType : STRUCT (*Structure to hold parameter data for the HMI*) ArchiveSettings : AuditArchiveParType; (*Parameter for archive configuration*) diff --git a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var index 98d4a771..2eb5ab26 100644 --- a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var +++ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/AuditMgr.var @@ -6,6 +6,7 @@ VAR MpAuditTrail_CEvents : MpAuditTrail; (*AuditTrail for custom events*) QueryUserEvents_0 : {REDUND_UNREPLICABLE} MpAuditQuery; (*MpAlarmXQuery instance*) MpAuditTrailUI_0 : MpAuditTrailUI; (*AuditTrail UI interface*) + MpAuditTrail_CEvents_UI_0 : MpAuditTrailUI; (*AuditTrail UI interface*) END_VAR (*Constants*) VAR CONSTANT @@ -21,6 +22,7 @@ VAR AuditTrailConfig : MpAuditTrailConfigType; (*Configuration structure for changing archiving setup*) MpAuditTrailUIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) MpAuditTrailUISetup : MpAuditTrailUISetupType; (*MpAuditUI setup connection to the HMI*) + MpAuditTrail_CEvents_UIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) END_VAR (*Variables*) VAR @@ -31,3 +33,8 @@ END_VAR VAR RETAIN ArchiveSettingsRetain : AuditArchiveParType; (*Store settings in retain memory to be applied after boot*) END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/ExecuteQuery.st index 8834ce95..8caf46ce 100644 --- a/mappFramework/Logical/Infrastructure/Audit/AuditMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/Audit/AuditMgr/ExecuteQuery.st @@ -61,7 +61,23 @@ ACTION ExecuteQuery: HmiAudit.Status.Query.EvTime[i] := AuditQuery.Audits[i].EvTime; HmiAudit.Status.Query.Op[i] := AuditQuery.Audits[i].Op; HmiAudit.Status.Query.Text[i] := AuditQuery.Audits[i].Text; - HmiAudit.Status.Query.DText[i] := AuditQuery.Audits[i].DText; + HmiAudit.Status.Query.DText[i] := AuditQuery.Audits[i].DText; + HmiAudit.Status.Query.EvTimeString[i] := DT_TO_STRING(HmiAudit.Status.Query.EvTime[i]); + IF HmiAudit.Status.Query.Text[i] <> "" THEN + HmiAudit.Status.Query.EvTimeString[i] := RIGHT(HmiAudit.Status.Query.EvTimeString[i], 19); + ELSE + HmiAudit.Status.Query.EvTimeString[i] := ''; + END_IF; END_FOR + + //VC4 + IF HmiAudit.Status.Query.DPSelectedIndex = 0 THEN + HmiAudit.Status.Query.Name := 'UserEvents'; + ELSIF HmiAudit.Status.Query.DPSelectedIndex = 1 THEN + HmiAudit.Status.Query.Name := 'RecipeEvents'; + END_IF; + HmiAudit.Status.ArchiveSetupVisibility := NOT HmiAudit.Status.ArchiveAvailable; + HmiAudit.Status.ArchiveSetupTimeOfDayVisibility := (HmiAudit.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_BATCH); + END_ACTION diff --git a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st index f070e990..913b81d0 100644 --- a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.st @@ -34,6 +34,7 @@ PROGRAM _INIT MpBackupCoreConfig_0(); HmiBackup.Status.DeviceDataProvider[0] := '{"value":"mappBackupFiles","text":"CF/PLC"}'; + HmiBackup.Status.DeviceDataProviderVC4[0] := 'CF/PLC'; // Restored the retained values to the backup settings HmiBackup.Parameters.AutomaticBackup := AutomaticBackupRetain; @@ -213,7 +214,33 @@ PROGRAM _CYCLIC END_IF FormatDeviceDataProvider; - + + + //vc4 + IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN + HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 1 THEN + HmiBackup.Parameters.AutomaticBackup.Device := 'USB'; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 2 THEN + HmiBackup.Parameters.AutomaticBackup.Device := ''; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 3 THEN + HmiBackup.Parameters.AutomaticBackup.Device := ''; + END_IF; + + HmiBackup.Status.Layer.Creating := (BackupState <> BACKUP_CREATING); + HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := NOT HmiBackup.Status.FileOverMax; + HmiBackup.Status.ButtonOperation.OperationCreate := HmiBackup.Status.CreateAllowed; + HmiBackup.Status.ButtonOperation.OperationRestore := HmiBackup.Status.RestoreAllowed; + // HmiBackup.Status.ButtonOperation.OperationDelete := HmiBackup.Status. + // HmiBackup.Status.ButtonOperation.OperationSettings := HmiBackup.Status. + HmiBackup.Status.ButtonOperation.OperationDelete := 1; + HmiBackup.Status.ButtonOperation.OperationSettings := 1; + + + // Assign MpLinks MpBackupCore_0.MpLink := ADR(gMpLinkBackupCore); MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIBackup); diff --git a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.typ b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.typ index 8f1f676e..47c3d505 100644 --- a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.typ +++ b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/BackupMgr.typ @@ -28,9 +28,12 @@ TYPE BackupCtrlEnabled : BOOL; (*Disable control panel for Backup with in Sim*) FileNames : ARRAY[0..49]OF STRING[80]; (*Existing backup file names*) TimeStamps : ARRAY[0..49]OF DATE_AND_TIME; (*Time stamps for existing backups*) + TimeStampsString : ARRAY[0..49]OF STRING[80]; (*Time stamps for existing backups*) Size : {REDUND_UNREPLICABLE} ARRAY[0..49]OF UDINT; (*Sizes of existing backup files*) Info : MpBackupProjectInfoRequestType; (*Project information (name, configuration ID, configuration version)*) DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for file device dropdown on automatic backup configuration pop-up*) + DeviceDataProviderVC4 : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for file device dropdown on automatic backup configuration pop-up*) + DeviceDataProviderSelectedIndex : USINT; TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available backups*) SimulationActive : BOOL; (*Flag for if simulation is active*) SelectedIndex : USINT; (*Index of the selected backup file*) @@ -38,6 +41,22 @@ TYPE LastSelectedDeviceIndex : UINT; (*Index of the last selected file device. Compared with MpFileManagerUIConnect.DeviceList.SelectedIndex*) FileOverMax : BOOL; (*Active when more than 50 items detected*) Update : MpBackupAutoUpdateInfoType; + Layer : BackupHmiStatusLayerType; + ButtonOperation : BackupHmiStatusButtonOperatiType; + END_STRUCT; + BackupHmiStatusButtonOperatiType : STRUCT + VisibilityPageUpDown : USINT; + OperationCreate : USINT; + OperationDelete : USINT; + OperationRestore : USINT; + OperationSettings : USINT; + END_STRUCT; + BackupHmiStatusLayerType : STRUCT + Creating : USINT; + Create : USINT; + Delete : USINT; + Restore : USINT; + Settings : USINT; END_STRUCT; AutomaticBackupType : STRUCT (*Automatic backup settings*) Enable : BOOL; (*Enable automatic backup feature*) diff --git a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/HMIActions.st index 58583cc4..bad11ef4 100644 --- a/mappFramework/Logical/Infrastructure/Backup/BackupMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Backup/BackupMgr/HMIActions.st @@ -10,12 +10,14 @@ ACTION FormatDeviceDataProvider: brsstrcat(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), ADR('"}')); MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1] := 'USB'; brsitoa(i + 1, ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]) + brsstrlen(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]))); + HmiBackup.Status.DeviceDataProviderVC4[i + 1] := 'USB'; ELSE brsmemset(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), 0, SIZEOF(HmiBackup.Status.DeviceDataProvider[i + 1])); + brsmemset(ADR(HmiBackup.Status.DeviceDataProviderVC4[i + 1]), 0, SIZEOF(HmiBackup.Status.DeviceDataProviderVC4[i + 1])); brsmemset(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]), 0, SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1])); END_IF END_FOR - + // Configure visible device list HmiBackup.Status.TableConfig[0] := '{ "specRows": [{"from":'; FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO @@ -114,6 +116,13 @@ ACTION FileManager: HmiBackup.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; HmiBackup.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; HmiBackup.Status.Size[i] := MpFileManagerUIConnect.File.List.Items[i].Size; + + HmiBackup.Status.TimeStampsString[i] := DT_TO_STRING(HmiBackup.Status.TimeStamps[i]); + IF HmiBackup.Status.FileNames[i] <> '' THEN + HmiBackup.Status.TimeStampsString[i] := RIGHT(HmiBackup.Status.TimeStampsString[i], 19); + ELSE + HmiBackup.Status.TimeStampsString[i] := ''; + END_IF; END_FOR IF ((MpFileManagerUIConnect.DeviceList.SelectedIndex <> HmiBackup.Status.LastSelectedDeviceIndex) AND (MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_IDLE)) THEN diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st index 94b1cabf..4bdfebfd 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st @@ -41,7 +41,15 @@ ACTION ReportFileExplorer: // For every file, record its name, timestamp, size, and path FOR i := 0 TO ((SIZEOF(HmiReport.Status.FileNames)/SIZEOF(HmiReport.Status.FileNames[0])) - 1) DO HmiReport.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; - HmiReport.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; + HmiReport.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; + + IF MpFileManagerUIConnect.File.List.Items[i].Size <> 0 THEN + HmiReport.Status.TimeStampsText[i] := DT_TO_STRING(MpFileManagerUIConnect.File.List.Items[i].LastModified); + HmiReport.Status.TimeStampsText[i] := RIGHT(HmiReport.Status.TimeStampsText[i], 19); + ELSE + HmiReport.Status.TimeStampsText[i] := ''; + END_IF; + HmiReport.Status.Size[i] := MpFileManagerUIConnect.File.List.Items[i].Size; // Concatonate strings to form the file path HmiReport.Status.TempFilePath[i] := '/FileDevice:'; @@ -92,4 +100,20 @@ ACTION ReportFileExplorer: // Set file device to selected MpReportCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); + + + + + + + //VC4 + IF HmiReport.Status.Error THEN + HmiReport.Status.Layer.ReportCreate := HIDE; + END_IF; + HmiReport.Status.PageUpDownVisibility := NOT HmiReport.Status.FileOverMax; + HtmlView; + + + + END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ index 5ba1d201..0d65a518 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.typ @@ -28,6 +28,7 @@ TYPE TempFilePath : ARRAY[0..49]OF STRING[255]; (*A temporary variable used to concatonate and build the full file path of the selected file*) FilePath : ARRAY[0..49]OF STRING[255]; (*The full file path of the selcted file*) TimeStamps : ARRAY[0..49]OF DATE_AND_TIME; (*Time stamps for existing reports*) + TimeStampsText : ARRAY[0..49]OF STRING[80]; (*Time stamps for existing reports*) Size : {REDUND_UNREPLICABLE} ARRAY[0..49]OF UDINT; (*Sizes of existing report files*) SelectedIndex : USINT; (*Index of the selected file*) LastSelectedIndex : USINT := 255; (*Index of the last selected report file*) @@ -35,6 +36,7 @@ TYPE TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available reports*) FilterString : STRING[1000]; (*String used to filter out any file that is not a PDF*) Layer : ReportStatusLayerType; + PageUpDownVisibility : USINT; END_STRUCT; ReportExampleType : STRUCT (*Structure for the example data used by the two types of reports*) SimpleReport : SimpleReportDataType; (*Structure for the simple report's example data*) @@ -81,3 +83,14 @@ TYPE ReportView : USINT; END_STRUCT; END_TYPE + +(**) +(**) + +TYPE + HtmlViewType : STRUCT + HTMLStream : STRING[255]; + ChangeURLDatapoint : STRING[255]; + CurrentURLDatapoint : STRING[255]; + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var index 4dc4d392..171f3680 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/ReportMgr.var @@ -23,3 +23,12 @@ VAR DeviceCount : USINT; (*Counter for available file devices*) ItemCount : UDINT; (*Counter for available files*) END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR +(**) +VAR + HtmlView : HtmlViewType; +END_VAR diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ index 3dfd7fdd..e2450457 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ @@ -40,7 +40,7 @@ TYPE ProductNumber : {REDUND_UNREPLICABLE} INT := 0; (*Product Number*) ProductLength : {REDUND_UNREPLICABLE} REAL := 70; (*Real Product Length*) END_STRUCT; - AxisControlStatusType : STRUCT + AxisControlStatusType : {REDUND_UNREPLICABLE} STRUCT TaskName : {REDUND_UNREPLICABLE} STRING[80]; (*Current task name for configuration changes*) MachineSettingsName : {REDUND_UNREPLICABLE} STRING[255]; (*Category name for machine settings*) ProductSettingsName : {REDUND_UNREPLICABLE} STRING[255]; (*Category name for product settings*) @@ -56,9 +56,7 @@ TYPE MotorTemperature : {REDUND_UNREPLICABLE} REAL; (*Motor temperature*) IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) - PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) - ModeManual : BOOL; (*Axis may be moved manually*) - StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) + PLCopenState : McAxisPLCopenStateEnum; (*Axis PLCopenState*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ index 8d9eaf1d..b23c2be8 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ @@ -55,8 +55,6 @@ TYPE IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) - ModeManual : {REDUND_UNREPLICABLE} BOOL; (*Axis may be moved manually*) - StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var index 7f8ca640..6b5c1628 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var @@ -5,7 +5,7 @@ VAR State : {REDUND_UNREPLICABLE} StateEnum; (*OMAC based state machine*) AutomaticState : {REDUND_UNREPLICABLE} AutomaticStateEnum; (*Automatic handling state*) ManualState : {REDUND_UNREPLICABLE} ManualStateEnum; (*Manual handling state*) - AxisControl : {REDUND_UNREPLICABLE} AxisControlType := (Status:=(StatusPointControl:=[0,1])); (*Single axis control type*) + AxisControl : {REDUND_UNREPLICABLE} AxisControlType; (*Single axis control type*) AxisSettings : {REDUND_UNREPLICABLE} AxisSettingsType; (*Single axis settings *) END_VAR (*Function Blocks*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st index e8aebb76..632d9258 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st @@ -202,10 +202,6 @@ ACTION AxisStateMachine: AxisControl.Status.PLCopenState := MpAxisBasic_0.Info.PLCopenState; AxisControl.Status.Position := MpAxisBasic_0.Position; AxisControl.Status.Velocity := MpAxisBasic_0.Velocity; - AxisControl.Status.ModeManual := (State <> STATE_AUTOMATIC_OPERATION); - //VC4 related code - AxisControl.Status.StatusPointControl[0].0 := NOT AxisControl.Status.StatusPointControl[1].0; - AxisControl.Status.StatusPointControl[0].1 := NOT AxisControl.Status.ModeManual; END_ACTION diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c index 1b9abcca..d472ca45 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeMachineSettings.c @@ -26,7 +26,7 @@ _SETUP_SET(void) { - return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", 1, MACHINE_CONFIGURATION_CATEGORY); + return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", MACHINE_CONFIGURATION_CATEGORY); } _TEARDOWN_SET(void) @@ -40,7 +40,7 @@ _SETUP_TEST(void) ArrangeSubState = 0; ActSubState = 0; AssertSubState = 0; - return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", 1, MACHINE_CONFIGURATION_CATEGORY); + return RemoveNonDefaultFiles("*.mcfg", "Machine.mcfg", MACHINE_CONFIGURATION_CATEGORY); } _TEARDOWN_TEST(void) diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c index b246fe8b..51691751 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/Set_RecipeParameters.c @@ -26,7 +26,7 @@ _SETUP_SET(void) { - return RemoveNonDefaultFiles("*.par", "Default.par", 0, PARAMETERS_CATEGORY); + return RemoveNonDefaultFiles("*.par", "Default.par", PARAMETERS_CATEGORY); } _TEARDOWN_SET(void) @@ -40,7 +40,7 @@ _SETUP_TEST(void) ArrangeSubState = 0; ActSubState = 0; AssertSubState = 0; - return RemoveNonDefaultFiles("*.par", "Default.par", 0, PARAMETERS_CATEGORY); + return RemoveNonDefaultFiles("*.par", "Default.par", PARAMETERS_CATEGORY); } _TEARDOWN_TEST(void) diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c index 13619f4f..1113729b 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.c @@ -20,137 +20,136 @@ void _INIT initTestSuite(void) { - Testsuite.Enable = 1; - utInit(&Testsuite); - - CommonTestsuite.Enable = 1; - utInit(&CommonTestsuite); - - strcpy((char*)&FileDeviceName, "mappRecipeFiles"); - strcpy((char*)&TextNameSpace, "mappFramework/Recipe/Alarms"); - strcpy((char*)&TextID, "SaveFailed"); - strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); - - PV_xgetadr("RecipeMgr:MachineSettings", (void*)&pMachineSettings, &MachineSettingsSize); - PV_xgetadr("RecipeMgr:Parameters", (void*)&pParameters, &ParameterSize); - - LastSelectedIndex++; + Testsuite.Enable = 1; + utInit(&Testsuite); + + CommonTestsuite.Enable = 1; + utInit(&CommonTestsuite); + + strcpy((char*)&FileDeviceName, "mappRecipeFiles"); + strcpy((char*)&TextNameSpace, "mappFramework/Recipe/Alarms"); + strcpy((char*)&TextID, "SaveFailed"); + strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); + + PV_xgetadr("RecipeMgr:MachineSettings", (void*)&pMachineSettings, &MachineSettingsSize); + PV_xgetadr("RecipeMgr:Parameters", (void*)&pParameters, &ParameterSize); + + LastSelectedIndex++; } void _CYCLIC cyclicWithTest(void) { - utCyclic(&Testsuite); - if (Testsuite.Informational.LastKnownPassedLocation.TestCaseName != 0) - strcpy((char*)&LastTestCase, (char*)Testsuite.Informational.LastKnownPassedLocation.TestCaseName); - if (Testsuite.Informational.LastKnownPassedLocation.TestSetName != 0) - strcpy((char*)&LastTestSet, (char*)Testsuite.Informational.LastKnownPassedLocation.TestSetName); - if (Testsuite.Informational.LastKnownPassedLocation.File != 0) - strcpy((char*)&LastTestFile, (char*)Testsuite.Informational.LastKnownPassedLocation.File); + utCyclic(&Testsuite); + if (Testsuite.Informational.LastKnownPassedLocation.TestCaseName != 0) + strcpy((char*)&LastTestCase, (char*)Testsuite.Informational.LastKnownPassedLocation.TestCaseName); + if (Testsuite.Informational.LastKnownPassedLocation.TestSetName != 0) + strcpy((char*)&LastTestSet, (char*)Testsuite.Informational.LastKnownPassedLocation.TestSetName); + if (Testsuite.Informational.LastKnownPassedLocation.File != 0) + strcpy((char*)&LastTestFile, (char*)Testsuite.Informational.LastKnownPassedLocation.File); } void _EXIT exitTestSuite(void) { - utExit(&Testsuite); + utExit(&Testsuite); } bool RecipeExists(char* recipeName) { - for (USINT i = 0; i<(sizeof(MpRecipeUIConnect.Recipe.List.Names)/sizeof(MpRecipeUIConnect.Recipe.List.Names[0])); i++) - { - if (strcmp(recipeName, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) - { - return true; - } - } - return false; + for (USINT i = 0; i<(sizeof(MpRecipeUIConnect.Recipe.List.Names)/sizeof(MpRecipeUIConnect.Recipe.List.Names[0])); i++) + { + if (strcmp(recipeName, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) + { + return true; + } + } + return false; } bool SelectRecipe(char* wantedRecipe) { - if (((MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) && (MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_ERROR)) && - (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) != 0)) return false; + if (((MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) && (MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_ERROR)) && + (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) != 0)) return false; - for (USINT i=0; i <= MpRecipeUIConnect.Recipe.List.MaxSelection; i++) - { - if (strcmp(wantedRecipe, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) - MpRecipeUIConnect.Recipe.List.SelectedIndex = i; - } + for (USINT i=0; i <= MpRecipeUIConnect.Recipe.List.MaxSelection; i++) + { + if (strcmp(wantedRecipe, MpRecipeUIConnect.Recipe.List.Names[i]) == 0) + MpRecipeUIConnect.Recipe.List.SelectedIndex = i; + } - return (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) == 0); + return (strcmp(wantedRecipe, HmiRecipe.Status.SelectedRecipe) == 0); } -testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const USINT categoryIndex, const char* category) +testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const char* category) { - switch (SetupState) - { - case 0: - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappRecipeFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - NumberOfFiles = DirInfo_UT.filenum; - CurrentFile = 0; - SetupState = (NumberOfFiles == 0) ? 100 : 1; - break; - - case 1: - DirRead_UT.enable = true; - DirRead_UT.pDevice = DirInfo_UT.pDevice; - DirRead_UT.entry = CurrentFile; - DirRead_UT.option = fiFILE; - DirRead_UT.pData = (UDINT)&fileInfo; - DirRead_UT.data_len = sizeof(fileInfo); - DirRead(&DirRead_UT); - TEST_BUSY_CONDITION(DirRead_UT.status == 65535); - TEST_ABORT_CONDITION(DirRead_UT.status != 0); - SetupState = 2; - break; - - case 2: - if ((strcmp("Default.par", (char*)fileInfo.Filename) == 0) || - (strcmp("Machine.mcfg", (char*)fileInfo.Filename) == 0)) - { - CurrentFile++; - SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; - break; - } - FileDelete_UT.enable = true; - FileDelete_UT.pDevice = DirInfo_UT.pDevice; - FileDelete_UT.pName = (UDINT)&fileInfo.Filename; - FileDelete(&FileDelete_UT); - TEST_BUSY_CONDITION(FileDelete_UT.status == 65535); - TEST_ABORT_CONDITION(FileDelete_UT.status != 0); - - NumberOfFiles--; - SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; - break; - - case 10: - strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); - strcpy((char*)&MpRecipeUIConnect.Recipe.Filter, filter); - MpRecipeUIConnect.Recipe.Refresh = true; - HmiRecipe.Parameters.CategoryIndex = categoryIndex; - strcpy((char*)&HmiRecipe.Parameters.Category, category); - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_REFRESH) - MpRecipeUIConnect.Recipe.Refresh = false; - SetupState = 11; - break; - - case 11: - TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) - TEST_BUSY_CONDITION(!RecipeExists(selectFile)); - TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT) - TEST_ABORT_CONDITION(pParameters == NULL); - SetupState = 100; - break; - - case 100: - cycleCount = 0; - TestState = TEST_ARRANGE; - SetupState = 0; - TEST_DONE; - } - TEST_BUSY; + switch (SetupState) + { + case 0: + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappRecipeFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + NumberOfFiles = DirInfo_UT.filenum; + CurrentFile = 0; + SetupState = (NumberOfFiles == 0) ? 100 : 1; + break; + + case 1: + DirRead_UT.enable = true; + DirRead_UT.pDevice = DirInfo_UT.pDevice; + DirRead_UT.entry = CurrentFile; + DirRead_UT.option = fiFILE; + DirRead_UT.pData = (UDINT)&fileInfo; + DirRead_UT.data_len = sizeof(fileInfo); + DirRead(&DirRead_UT); + TEST_BUSY_CONDITION(DirRead_UT.status == 65535); + TEST_ABORT_CONDITION(DirRead_UT.status != 0); + SetupState = 2; + break; + + case 2: + if ((strcmp("Default.par", (char*)fileInfo.Filename) == 0) || + (strcmp("Machine.mcfg", (char*)fileInfo.Filename) == 0)) + { + CurrentFile++; + SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; + break; + } + FileDelete_UT.enable = true; + FileDelete_UT.pDevice = DirInfo_UT.pDevice; + FileDelete_UT.pName = (UDINT)&fileInfo.Filename; + FileDelete(&FileDelete_UT); + TEST_BUSY_CONDITION(FileDelete_UT.status == 65535); + TEST_ABORT_CONDITION(FileDelete_UT.status != 0); + + NumberOfFiles--; + SetupState = (CurrentFile >= NumberOfFiles) ? 10 : 1; + break; + + case 10: + strcpy((char*)&HmiRecipe.Parameters.DeviceName, "mappRecipeFiles"); + strcpy((char*)&MpRecipeUIConnect.Recipe.Filter, filter); + MpRecipeUIConnect.Recipe.Refresh = true; + strcpy((char*)&HmiRecipe.Parameters.Category, category); + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_REFRESH) + MpRecipeUIConnect.Recipe.Refresh = false; + SetupState = 11; + break; + + case 11: + TEST_BUSY_CONDITION(MpRecipeUIConnect.Status != mpRECIPE_UI_STATUS_IDLE) + TEST_BUSY_CONDITION(!RecipeExists(selectFile)); + TEST_BUSY_CONDITION(HmiRecipe.Status.HMIcommand != REC_HMI_WAIT) + TEST_ABORT_CONDITION(pParameters == NULL); + SetupState = 100; + break; + + case 100: + cycleCount = 0; + TestState = TEST_ARRANGE; + SetupState = 0; + TEST_DONE; + } + TEST_BUSY; } \ No newline at end of file diff --git a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h index 4a69a0a8..a2c392aa 100644 --- a/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h +++ b/mappFramework/Logical/UnitTest/Recipe/RecipeMgrUnitTest/testSuite.h @@ -3,6 +3,6 @@ bool RecipeExists(char* recipeName); bool SelectRecipe(char* wantedRecipe); -testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const USINT categoryIndex, const char* category); +testStatusEnum RemoveNonDefaultFiles(char* filter, char* selectFile, const char* category); #endif diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp index e45dc079..2c76da2e 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp index 797fbbd6..9275673d 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp index 720e726e..7c092b71 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp index d85e8b31..fdadfd8c 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp index a18fbb01..6a8acaa4 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp deleted file mode 100644 index 58085c45..00000000 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisAlarm.bmgrp +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp deleted file mode 100644 index 6a3505d6..00000000 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisHomed.bmgrp +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp deleted file mode 100644 index 9ea0a8da..00000000 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisMoving.bmgrp +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp deleted file mode 100644 index a726323e..00000000 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAxisPower.bmgrp +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp index 68845d95..e0430d00 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp index d28df2c8..afbf100c 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp index 646c8ac1..c5e655ce 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp index 1eb9e6ad..70bcf4b1 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp index 461f23b5..6be2b648 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp index f2b8bbb5..9383b7c5 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp index 5bf941b7..a8006a02 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp index 33d0656e..0b94b76d 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp index 0a6ead4d..980a87f3 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp index 7e7edba7..9130b02a 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp index 4811aa7a..3347ee45 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp index 3ef2ba5b..7f753a73 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp index c5670294..e465685c 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp index afebd054..5ad94c3f 100644 --- a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp +++ b/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo deleted file mode 100644 index 8e1fd413..00000000 --- a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.bminfo +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_AlarmActive.png deleted file mode 100644 index 9cd4a62c4a6e522180f2899b8ebd9410b113886f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 959 zcmV;w13>(VP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15`;wK~zXf#a3NQ zltC0evu>^_6%vI}f`t02S%P`dm0(cNg?9x>5MA|wUPxs`R?=nB7gCaX5fpe)KOqPU zFBQ^c-F1T^yXZ@eLT%OE={YlJ{n~fk57Ztwd!94%zVp0uX6DQ)tu_4*c*JiwG8b0L zV=O~tlhy z6QHuw!c#_Css5l!wniu`0J_VzEa1D3!cLL?_)FrXNNdIry#*H&eJ#e=875zw@RX49 zj4|5^2)_f}1dG6`vDWiT+UBtY)n$6*J$O>2JYxtvfMWqtq&plP7%J8wKX@m%0bcNj z!jmE;;h-uz0e93!G=U?;DK|ihZ^Hew5go>}$Azzoq{3fR;byoyHZo{MI>&|6emyh^ z$Ko;EA5v9$!V@B?@D$};gDbKT4LTI;#;lrQnr&1$ZD{M_KKlq2VuxQ9o)D`Fhm^Ay z?y`-Duz8wE>j>6zn>2A-zO*%&(4qy^twgvhRuztt;?0s{BYJ@p_cFm6&zTmBF#nY5 zU?1E|=70|s?VfN~BosypkHOX3h^8atZ4u7+B%U!U9y{MWGi@WPmoZ%7D(qL4*+?ND z9|NTEc7-1PEFs4OLYemqC4L6+(v8@T^Y0VB46ednn!5<+*oemd(3ZQx4X~L)aKB-H z(dRdff?S$rVUrPjd@;^{GxL>*6GnP=m5u%SIoWxb?;8y!#gwffF&a=|F zuE3Op0Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15ZgrK~zXf#gVL_yGlP(-j^L_tsl3yOk*UPL^3 zkZSP*Po+(on$RLDL8K*#V2BD$O;ESSz-T! zN`$3gFt`oALz1Lwuh)A|l-Gu-a5NgNPN&mn5gvoJ$VC8gH^kpjS}`{Ay3Ehd?}xhx zD~ob4;e!-v5)Ox*6l!8B3|^7{o1s7;a1vfM#^mJWU_PJ!3O|Z_Hc(lCX{*P^#@1C; zRpk&$qN3sxYy_?UP%IX+@Vk-oE|qwXN$m9bd@0IhOocJyJs9jcrEBF)CX?y*`~5#C zH*R$(6xs;UTa;R%y{4w7n_?MV;qmeDO=#TKITd0D=uLoK>=h~hG`Fc#8nxHylESXfw~NDYowiZr=`^Pq!b8N~sDi+eGNhX@^_ zqGV=fMpwY;bh6IQPRcal?_vVuKf=f5reYuW_4SRyofny!hK2@;)EHeO>@Xi5^b$`L z!W^8dcj3N^Oo_|oVs&-utzBPV&zhT?DKmwi?b>HGS{_78G*>#mKb1!&oEmS79$< zPjk84V}3!^Y8;=Z;P|<1l>|f&U&CnMC{i_wR@-bg z{_~a;nI(=JiES}_5> zDB5BCBR&LQzHxebx;C55o_wB&|XHZhi&g1cXL;V86 z8=|6O2YFpIpLn%k2W*G?bJg+>%^iosF^tLOMM)b=!hruW9mN>c=uW7=zyB?2s~XU% c@ET$47yU3y`4^sn2><{907*qoM6N<$f;*hDJOBUy diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.png deleted file mode 100644 index 3013a4094c34389873eee9bed930807d77d3dfff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 zcmV+b1ONPqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0+mTbK~zXf#n(+p z6;T+*@uQZO8}ox8qQHX4FcPVSLQpNDKr>N-2&q*qB54swNI?rBa3QYRM&&*bS_$SN z3Nfq#+maH-V?jE%@~_}k9xBy10c zu@UJ;VEf)Rmh0DpCA`5wTtfwN%{UGt<;;1pdvF$;mB$Dit;o0iH`(c`Nv4vf^J}N6 z8LM%0Om~?1<$1eQ&2Bpl#5>jRAg5!+ETk4p-FTfDO^n(WH&xrK%t-Z!Db6ppErHBp z7n07Ljd#TR?R3TT{_Kr(Dw#-5nC>6lb}o_;vD4dqh>L^Xsc+7@``MwrW~&!dv`+`ypFx}%Q2vdmw@WJB7#G678=nw(`>W&*K;#0%8BWiafT>HF1Z24)9LB9$_vF{zVPGp9^c(Er(DIfTk6rSaTT6pr!(hf7z2=(@d2E|HfULf zER!KNKH*bfRYE>jBr=FQJD8ya_Yn8+u6UY-+GrJ^Hq;i@11%Szt?yGC*Wf5J^98rD y725i~xaT - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearRotating.png deleted file mode 100644 index bf1f49fe2091a2e57c06c6b6fd8978fafea03624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 zcmV;-1T*`IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TH>yyrdY%pBL*HRw0|IL~>`d*(UkydUR; z`FuY5KX{VDVK4{245Q$;@af^gXBY)PgUj$Fc~Gl;NNOenyb87W0&2Bay`YghQZpG~ z2Gqh0--kLFc+LmV3kP6=%=sBgA4k9gvh6<#nIv6p*Sf&Kc8xA zYsC{e!K?6RC47A0w7I!CYhPcV!Rz%>X=y2ymzPs`c(^?54_^c>l14^GM4XkCMGXxN z6c)y_kiLSSaG;_V=A$+I~jz<0z&D=RCJKAVk=4eIXhCY(=ob#+u& zSU89DOVBGCNOW>*f*-<<;P6=l@I zX1Nt`!KtY!5t~dV^>GRIz5CR<+DZlY3xqf9H^|{}$fF9mxw#Y{A5Yuc+cZBvpC{9P zsE?XQ9X}3%)oP{5$w|>qjg5^miy`TCk#WvQwmqB7C}cmAO?UI|l3u5m8KTkAQ5qW? zqk@8h1GCxuEK>XJ?d|#4z6D#=JAP4a1u-!(q}S`Iq@+Y<6mI=_E2t{st~9A(7E&q?VQzN=;3b8HKTb#$*)C z!o3BWot>qwt}e3KY=p%`bP>;em&^5KbaeC}nq@%l!>`rCA49&xI_Ts?z#J5~eQp^A z^C;sH6%`eU6|KL&UvwAuGk2xMVoAg(H=_7Kb93`xTU(n`EvzyCKUczFt|VNMQ84uv z>#4fBT1+9H>(kTIw6n7#jx8=Ol1`_irlzJS%n~u5wH6Q_2;5P}BSqrH&-}ZY26yJ2RYk?cylRTIJNvYiYZ6{oLVxgXq1%7mChOl; z+Vk#FZ9*+wyLb&N(D9UGcuMy6_LALh=aEeq+42Z|2jBL4Rh{q$cy6$E`>=@ku!PEt zpdOyOR?omoN_Z{~;4u6H@+T9I&Ntwp*4$JuZcJ}>qZc(t)Yo?-^bud8UNg$MF6<*VQ{0v~}i9sUZL z4k#}0gz>N)dY~4Meax(8QW_2~1>^#~3AJc|TJ4Y2Og@3Hz>_S&Phlj~YJcQu^Egy^ qxq1iktM3 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_KnownPosition.png deleted file mode 100644 index b5de465be937a57d98729176aea918c3b8af938a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 zcmV-51Iqk~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0?J85K~zXf#nwwm zRACs#@uOxp%%~_KA`2}dXi<<9q8k?mU7$s@s)f9@WNDxYl?uzL2f6kn5_~!V|nIi-}@Z-!p-1g`mY?bjM)#D zV<>|)-&XvDav#<_IcDiufbUSw!}U|ph>e&Xb+R2U8gu;wX6bQTt1X!eby`qATy)&E z67DxIpd@a!S$ZBrxeM3bP|@1onrZ26$qbDS>FWU8_+Ay{52nKPdCbz&1LX{IUDvO! zOwb;L+6LM*KIV;YQW2#ZuFq5KI(FkTqN(z(c6x14S5X&Kl~)B#l}+ltg(KO_jHXIi zG@Tf0Z9Mm&yoT%M;Rjr_wOioE!(BjhUX;T1dCbyt5H9`+RE|A3ibYW;I`O_hc?j1} zV3wZ6&=x5lpv%jePjr3XhKp`2)_ftejCl%|K5RgIo)vfk7afWU#OKQ~%NX4V;?WA+ z!F6|3TD7J3MDVWA2#4!!8Th5xWfOq!ExCEB2c>BMQq0k~YjAiB|ui&%%`#CL&5uQ#Wm zyHY!v;qOkJXoHyVb*pd!HwlH%g9bBz0lJrK3;=uvCg>!Wf!dR#9iG79lzOF zsv;Kc)?3++d6@;>GIi_J;jv?_jb}67V+7}*2Zr^+u02wZBlwJ$(0g}$zMM2?wf4$d zG@=33D2IMH5>3bO5zp}qI>Qq)*~{r4B?$fkutp7)w2Yc~00000NkvXXu0mjfC*pc~ diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo deleted file mode 100644 index 23398482..00000000 --- a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.bminfo +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off.png deleted file mode 100644 index 630155938a96f022184fb67b48f1a0867aeb05b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)Px#1ZP1_K>z@;j|==^1poj61yD>>MWa3-uvkCLl!V~Fwdv8y%#?$yQa9kev;O`4 z|NsBryt1rOHn?h2_wVi9xUJBgj?tcv-MOy!?(DZ{QLC(&n`ueCnl!ZC28ulhB=wxocF`shs}({HsqisY@@`sG8%% zyYuJc@7>tq!nx(i!1Lzf?%USo$iLaJr2YH*sY))VMk@RF_SmkWy>wo?aa-E5roD7u z$&P*Q+tsvUO5eP(vRy>_^z-f5(zRtx`}g&_ZdbT#RQvYzwPQ=Zc47MU^xe0tzIS4; zSU%^?#o)fQuv$Q*KqA9|ZS2_6?AOu4ergUA_AdYc010qNS#tmY4#NNd4#NS*Z>VGd z008GnL_t(IPtDL)h%GL0@`+o3wVYU4)n{^zqbHSyy`K50OxDK6rWrj> z4*4y%D%jX|*kT7LGPM%0%M@ko?K8DX9#y6|z#+>x!ZAyn;FM+5P-lrVoL?}t%LcBP z;u^^6qv^Ug`nUy}W}b2G&}b>u2HHy9chKcN^Uy>3QLg(I21CxC(UX3yxqe3Pg`>~w x+gPsM+=NrmyIcqVr=L9SS0A5WQ|4b&>Kltw6_*}&Dn$SQ002ovPDHLkV1l^~L%IL} diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.png deleted file mode 100644 index d5999f80dd43e58a25a2ec0f95553bc3f82f81b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1025 zcmV+c1pfPpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1C~idK~zXf#g?FEqSx^x|jdWGj zhkAuXn$RG`W2G{oMAFXqoqJEenQvykPCJNSa&!LYeBZt2-t*nLcl_~q-1k2iapJD7 zt|^0qgEfA?e+BMz+Enwv=lei=%Q(%!VDLt1Y3WBB9-gd;TU%R;^78TylW-?)&_+Fp z@!n-7c%ZVf^0US=GHl}Z_VzUl)PM}z$cXtyzfEOjWjEDN!!vP5N5@{wDO$h;68xk+ zU|=b+kN#5f#k2zPlZf$bUqwa5IrUv+Ox)SoSxfvX(r+V%ceEq@{r%Ufs;c^J$kNi% zGAl9{n;%9ZhiAST+9oT2qHIrXUHRh{pa3$siDUtJC`3#3fveHzltE+#p%021|0Y1Sx z)rQnkuT(3%r);-Wj~af*_b@%yGmBcK(%>ZKpcsppYdu3mZO%}!+bV^5kw|2W>O^98 z?PQe(I`yjj6JDwn{Dp;ulT;@XvzsTVG*FtT%A8>_UsM|S?nNqHiCu>RD|SsJ7f3Ww zrGdqKSD8qhpP&B;rq`^Wq(q!W0ga<*FUznk0UgOXRV(NOyO)tE2+)3d|hi0An|+G`JE|-bR%M{4@G9 zbKq_+CB76{qHWp0z`!DTHUxe0Fz2mjkWVPrtAi^srFe|FYdyoPP$+Z(>%7NzODjJU zNxsEoznsP_w4Qn1%whCgT|?R+lw>!?IVSNpQMQXcJv|`}dD7I>6y!=hi`-=+h99)# z+^|#jvHXuWz+#Pl}6+m*~WYz>RNDy%L4A!~)41D9?Um^3Q9$N>50V ze22&BbC9uI`(}uYi3MhPnvQFcU&WWHi_OB&JMy1vGh>`kKMl{s0v)em=FyIG3f(us zVPI}gFekYJ7tr^TjbTmpa@cDiNb_h>cSQr%@00000NkvXXu0mjf&2Z+o diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.png deleted file mode 100644 index f28e1b4186e3a0c92b0146c7396638f31483db1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)Px#1ZP1_K>z@;j|==^1poj63s6i{MF4;RR;yOZ<;u(D%UG;frqibX|NjDk0w$9t z!{Ni4&6=v!s=eO5B9S6ar%v_y^`Ow8uh*~h`SVJpN;8==^!oJa^yxaCIzXU6@AvP{ z=g#o>@F$ZeFqkmb>(&H<1V*DqXtZcZq)3^}nL?pLb-Hy;rcIX1mI{Rm5r`4{{ri>5 zmABis&*#tH@7~eq(cZ8%4f4_gE z(xmJ4>o=P>rP8JR{`?n<7jU?6snn^c)TnQ_Zy}H&3z*~500009a7bBm000id000id z0mpBsWB>pF&F(7&bQL z98Vw;Q+m zt&B64sKBZ+m0BI=OmP8RGL - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On1.png deleted file mode 100644 index ae6b0d24aea4e10887425e02e9c89af260f88923..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmV;v13~Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15-&vK~zXf#aGQs zR8bVa@6C*3IVF)Kp=4#tP@=#-Ac!^<>7qs8Dk+c_Lj40llu@f_+bVZOn~JC)Du@as zD*~x72r4lblcO)oa^A=7ciuho=Ds)6n-2qj@O$T+d(S=Re%~2GN-35DCd*pTHRH@o zWu2@=%sIK)oSQq&b=8ALTnnf3(<6NoeNv1HpUq>S?)&Lm*~h|woCAj#Q83a@*$KKW&3bg#=&MuScB2u zN6~h+LnxOxBSqp42;(H{gdc`54?=!dW>xr!=iefc7HZ{ z(#eC8=t}3hR#z8YXUYbZ}g z{K_#AxipA>q+Hw@^$i(CI!Dkzn{uN45#>iw-%#o=lc?*((u{}O&=flZ5nrD%Kj^(v zaJdX6v;hISlb@s27f26}0lhkVz_p+biIZ^_&CjtNMzkkk(kL7&I*KZ|fVTbRV=9&{ zjIagkb_u~2Bf-m&mggqgY>LDvVJ-ii)?;Sz7eeBZmz}s`=)%V`$Vup*F|7|^($5@v g3M*on{ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Reset.png deleted file mode 100644 index 52a92f21fc7d87eae584baf91880ced5eba56ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)Px#1ZP1_K>z@;j|==^1poj62vAH^MgOG$|Hxwhs0jb20{^%*|IBXx)P?`jfB&!_ z|LDK}?acqB0sqKj|MT4c|NsB#!vDHF|M=|x>A?U0{{Pd1|Ni~|>cs!to&VjR|L@ZO z){OuA_5Zjw|MJ=Y!cqUUEB~t!|MA%Wrv?A{?*F+s|Gh>3_vioSx&PLR|HWMYwJ!hd z%m3Gn|F$sytrq{;l>g$b|K+v+<+T6Xn*XmI|HWJXtr-9O_W#FU|GYx~&2azWtN;7- z|Ley8&vyT&1plfI|KFqkvL^re?f>)L|I~#4#$Nx~lK=SY|LVj4rw9M{=>Mz~|E?PU z;HUrk^8e9(|FI+g&v*ahum9`C|LDH|-Jt)g5jHJW+W-In32;bRa{vGi!TOY&k%TD&xXFZn%NXtuamU0dJSDi%vP1lI@v0000 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Stop.png deleted file mode 100644 index c9cfed2ddb20cb7580041ab117bdefc8fccb8c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^azHG_!VDyX`aiY8q{chvkN^MwUn)yP7bweF;1OBOz`%DHgc*!Z5i2 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo deleted file mode 100644 index f5465c1d..00000000 --- a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.bminfo +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_UnknownPosition.png deleted file mode 100644 index 31af09068532bc65119242d85497fb58f747436b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1CB{VK~zXf#gFEldZ7*U@-9waV7$9aycM>>uwMD5l9G}iDz*i|hzi$qc6QEE zaT-p-^2^Auebh5|bSod|@9)o5aT-p-sppx>JHkh1sZe9Z`&5{QtuT#rif8zOdVxEN zl^^7n>Q!+Xw!(aIs|uH~!ow=IBp#2?#qBUMeUXhDVLDDdzKzpgrq>Pfdr53YBogtB zjEr0*oF_T;Z;7|UR+!)8Gp@zRv;rD?!A6nVp(g3*=vbVaoBM=ti&3Ke9vd6GuVPai zcP@HaNu7r(O(Apl3LC}>vE`Tt)1m%F=J%jVO>uQdup^1c3L|qQ!3kCn4u`*}+!WiP zp29ih9bsKGI*AIdgqiDmG$_4xVuZOprD9v$_ILu}qbjz9X}jd6w}M+?jlEh{?K2}Y z2tKTUF8$~8}s;opJ z@tSmjQL683Wr0ATtEi~xmr>-5qi{4DE%bW5HH7Oh5!;K&W}$D13~>W?hJC$>G=Vi^ z_52Ajd2WTJa7#-|hTrd(yVgGJCE_PpV6wRMy_-$tDQ+c#OSsm4lQKqRDeWD`+Q{G5gos*NZ-FT9Y zr7#Wm;6!Nd@bK_Ly>JQ$bhC<6*PKZh3Aq>+5GL@l7EH07V@{$?4Dki(qyRK;A-J%4s00000NkvXXu0mjfzh~e* diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png b/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png index 00ff8920c118a68df627a30eefa9a1e89473f92d..728814b1a7e6b12d6de56a9e5a89879c46d97bde 100644 GIT binary patch delta 1488 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 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.bminfo similarity index 68% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo rename to mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.bminfo index 0eb844ba..83efa0a4 100644 --- a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Off1.bminfo +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.bminfo @@ -1,8 +1,8 @@ - - + + - + @@ -10,6 +10,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..0579aeddcab64cda6e3804a46f39ac7d83325867 GIT binary patch literal 1055 zcmV+)1mOFLP)F%_0Ec zbUJ?|lgWm3I!%xVK~WS-)AUcH(bz~_F4tcxD=Wn(Cnvn8rzfy13qo?^Or=twX&RN4 zmC)<;357!Oz`4J_mmVJf3RIkT;-IDn)5&DbMHgNjU<60I^sM zTCEmlvl)ejg^0)FIXOX=WkFFCcsw4$;V`^jFE~P>5QGqjL?ZBbJP<-46bf^mhb+tf zosa2s8UVmB3|_zUA>M$<(|9e^yam3soIk+-B9LJioSmKF?(PoBWHP^iu~-bdySwP_ z?#9H#1pI#gyBEW^0v{e8u)e+yo6Uyv^KNJhZJ!$V9@Pa_(Q z!eB6mtjzNYrXIY&IJt5($=< zm$ARUk5DLt+S*#|?Cjw2@evx02E)U{Xl-qUNF@4H7s#s3C=?1o5SVhCEDBDF*!L2rBeB! zHuR-H04OObfx%#aOeTZZ>qSpbPga%sr8kLKEQU^}gGQtIbiRGrYlg$&d8;j*~ zIgb#MGbkYhEXyJmi{a+x27y2z!RPZI2mq|EuKq|Q5)BN)kk_G2E`!72uv{+pXJ21m Z<1e_q?o002ovPDHLkV1nZ_*X{rS literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.bminfo similarity index 67% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo rename to mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.bminfo index b0d4a291..041155c3 100644 --- a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_On.bminfo +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.bminfo @@ -1,8 +1,8 @@ - - + + - + @@ -10,6 +10,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.png b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.png new file mode 100644 index 0000000000000000000000000000000000000000..c17478e5abe22ddca70b0cd0ba8472eae10121c4 GIT binary patch literal 1489 zcmV;?1upuDP)gHn=bxfZsst}Ee-25 zi$x?!!tHkB^?K1X&AGU^XfKsYLNQI#Vi*RsT8&^Z$noRHNhA_jt=48Y4)gQ#ym|9R zUS3{Cwpy(yih?Z5G=Q4P3ZJu(X`0Bgj4aDCk|ZHX5<&TMVK0Z!1n?=`ky1TnMcI+5^eSK`(whfEL!skkh z|I8vQD=TC&8OFxO7#|-em&>85D!skEoIQJ%{{DVkF4sp3t91eS+{(P`HXnOeuh&^x zTH@~AyNr&GlF4Lv{`@&xwrnApOfoPqKv!4Sdk|kDWi4)DnkJP>g>t!!VHn7=jMM4F zFp^n3$MgVq$`HI?bzBuV`&;<>=9)oH})iojZ4~9FFU93Vo65t}BSeV!`9_uzB-l9zJ|XKA)#hD4=N?%gf6olSx9M z&}w{0r_)@&ew|b*#p2>3EiEm?<8ektM%c4w&wEGfS{oi~0Qw4h}LjG(>A_ zE3z!JUaco(t--9J?c28#4u^?GqlCj@rl+ULX0zPBeH%qlaJgJ~y`Lnv5Z^r-{eC|O4jjO0wGs#fxOVLtv$L}phCv_@AdyILurg3OHtnSaaopWYinb8c$h - - + + - + @@ -10,6 +10,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.png b/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..15948d081356e1687dbc858d6be93dfa909d2d9e GIT binary patch literal 422 zcmV;X0a^ZuP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-EJ;K`RCwC#mOYNbFc3zcBP&ggkT%>S4VIEipl}5`gA!4MlqrG&b&h}p0vc|> z1)$^<{K#AFR%pqxamOcp)r{tiJtND)7(JKUatXwF{V==4hMk1aa|Xia>f}Q1(V4Hr4-xk zwp+k#HbZMozu$ja{9k~gC>W2&D5co%_wNmPI2YJ$aocO QNdN!<07*qoM6N<$f>{BoHvj+t literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo b/mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.bminfo similarity index 57% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo rename to mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.bminfo index 9b975313..d2024c23 100644 --- a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_GearEnabled.bminfo +++ b/mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.bminfo @@ -1,8 +1,8 @@ - - + + - + @@ -10,6 +10,7 @@ - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.png b/mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea7f3386b6c383f5361ebb5cca64f22012416bd GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0vp^4?&oN8Ax*GDtQ2@gaDrq*Z=?j1DVsOPoF(|_N!N~ zzI^#|_3G8{-@m_p{rc(Cr#pAO%-G7b(7MMXuy!NDHu@&p(dn7(?tIEGZrd3!sz ze3OF2fx=kRwE(K?tE!eDLdoTRE>KUdTs=OuohA+2h>pTH1!M?X~uheX#-i53Z zdU#GQQ+8`u;RN)3czKg`_)859f zzogh5;S0N#G0~DSCPYX0d{4n5y||v5gZCz?**+;;GX-Ml?| zUcCPW^*(y{CqBu#J7M0w()CswO-@-DTx*%VX_vU@wUmeN-?pFsy<^gls&oSeWfJ)%3j6r ziRsTDRsV~zuY4!{=}qXg&8y>oT~+qEd{_L5<)iIaR}@cPYs-J@-RDQ!GBu?3ZOCoP zKFd&&ZMW&j+sQEkw_Dk4Hk|uAD>{2&^xg{v&N0`tZ=2lJ_CKW)&Hc5NV}6mA)6c&F z|01|1F0r59Rlj}0zdDV-vh{yXzc1RZqmZ2>sw2? ze`fptkFz(Kt-hx1@s(c-|Cm0IU-$U+%6msk|NOtvE%-C<&Cw5&c5LcX$+z!yeKc={ z*2mwsp1k+HGP&X1Os4PCyY4IN)X(4kWACrE&vjSrz2aE^^i0o_V*gL)*HwNxFMmsA rp5od`@(cfLzVqq)V^D^|3hY1g9@mlCnGjx74U+eC^>bP0l+XkK0N}w~ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/Visu/Borders/CheckBox_checked.bdr b/mappFramework/Logical/VC4/Visu/Borders/CheckBox_checked.bdr new file mode 100644 index 00000000..7592c19b --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/CheckBox_checked.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/CheckBox_small_checked.bdr b/mappFramework/Logical/VC4/Visu/Borders/CheckBox_small_checked.bdr new file mode 100644 index 00000000..33680ab9 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Borders/CheckBox_small_checked.bdr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr index 3364459f..619b9a9b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr index 81b01c5f..4d4731d1 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr index 7678681f..f68624e1 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr index daa034ab..3a06a71e 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr index 7924a897..b1168cc6 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr index ed446c2c..ab1d23a2 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr index d06c55f6..f2774dfe 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr index 40a2be33..738127ff 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr index 7f08c71f..f2273614 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr index 0ccc8c84..ab382780 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr index 29303810..c591fd13 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr index 84977485..a8f40f22 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr index 76b59db1..84474499 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr index 5a28f03f..cd05f67c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr index 32da758d..aed26ff7 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr index 5b5726c4..dd6d7f55 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr index 0c7a7703..bc8f4162 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr index 2ee12a33..794f12ab 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr index a7e1bbad..43d17b80 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr index 7ca1ec12..e3a41f4a 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr index bdece365..6b4c45ac 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr index 6f458f89..cec2835e 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr index be6dd5db..c584eb9a 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr index 50e3706f..bb7632d6 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr index 528ffb2c..cadb57e8 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr index aad77720..fad588eb 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr index 12d3c25a..4a66802b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr index 617786ff..37a863c9 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr index b5f4c27d..ebbe19fb 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr index dcc2f205..cb5bcdcf 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr index f09490c5..a9d80516 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr index 3fce10b3..bd5aff57 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr index 41c43054..6673fbe5 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr index a3d02c0c..576bc3e6 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr index 16a16701..66b2fd67 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr index 2c90fa0c..5c58a1b4 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr index da4d224c..155197b0 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr index ba89734f..67903832 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr index d8153748..9b73f4a4 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr index 20e4df3b..85b81a05 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr index abfa90d8..b253b85c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr index 8d3a1961..6f91edec 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr index 4a63d258..74c03be6 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr index 4706ef0b..b6f9b030 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr index f743062b..771ebc66 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr index 0ed59b8d..ce3c0726 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr index e47443bc..6cf1e8e1 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr index a8b0c405..29169210 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr index e7aa05c3..4db49d73 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr index 5d4d3949..11ea810c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr index ac55a465..8dffa2b5 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr index 9852a12e..7177f71c 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr index 26268ea5..5a937ebc 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr index fa400860..d94c3c6f 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr index 193596e5..686e2f7d 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr index 937e079d..17365678 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr index a3217c90..05c57ac2 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr index dfbea32b..2b96dadc 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr index 51a19583..33453874 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr index f0ccd0b0..901ec1bd 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr index b594ab05..bef3f97a 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr index 3605b2c3..5e39b22b 100644 --- a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr +++ b/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm index 2af80923..7dd49e69 100644 --- a/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm +++ b/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm index db8a3d60..e53026de 100644 --- a/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm +++ b/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo index a1c1f14a..6869e9ae 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo index 6b475256..83d1917b 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo index 954b0139..764b9541 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo index 97343d9e..b2a902c5 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo index dcb22252..962c5086 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo index 17c6cffc..f08d1727 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo index 36f1d34c..cf68c914 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo index 287cdeb5..0426fc60 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo index 055c52d0..f692f2fc 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo index 16de94a8..978d2c25 100644 --- a/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer index 32eb84bf..971396dc 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer index 631dc8e2..337c1304 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer index 931ba074..eac10e60 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer index 5af50832..a8dba7ee 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer index c25545be..b560ccee 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer index e37fd118..86729dc1 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/Visu/Package.vcp index d3b15ae3..9e955c27 100644 --- a/mappFramework/Logical/VC4/Visu/Package.vcp +++ b/mappFramework/Logical/VC4/Visu/Package.vcp @@ -1,5 +1,5 @@ - + @@ -358,18 +358,10 @@ - - - - - - - - - - - - + + + + @@ -389,10 +381,6 @@ - - - - @@ -418,7 +406,9 @@ - + + + @@ -490,6 +480,8 @@ + + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page index fb8206b7..199a88a3 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page index 63feae78..776bf0db 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page index b4c1d69b..ff872317 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page index e41028dc..82226ffe 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page new file mode 100644 index 00000000..b66cf8ca --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page @@ -0,0 +1,1603 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page new file mode 100644 index 00000000..e4ff7a59 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page @@ -0,0 +1,1700 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page index 0141bc8e..6a1a2966 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page @@ -1,5 +1,5 @@ - + @@ -82,7 +82,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -137,7 +137,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -216,7 +216,7 @@ - + @@ -231,7 +231,7 @@ - + @@ -245,7 +245,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -273,7 +273,7 @@ - + @@ -282,7 +282,7 @@ - + @@ -300,7 +300,7 @@ - + @@ -385,186 +385,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -580,7 +400,7 @@ - + @@ -598,79 +418,19 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -682,7 +442,7 @@ - + @@ -696,7 +456,7 @@ - + @@ -714,7 +474,7 @@ - + @@ -732,7 +492,7 @@ - + @@ -747,7 +507,7 @@ - + @@ -763,7 +523,7 @@ - + @@ -773,21 +533,132 @@ - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -877,7 +748,48 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2019,98 +1931,677 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + - + - - - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2134,5 +2625,11 @@ + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page deleted file mode 100644 index afcf3ea2..00000000 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAxisBasic.page +++ /dev/null @@ -1,1291 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpBackup.page b/mappFramework/Logical/VC4/Visu/Pages/MpBackup.page new file mode 100644 index 00000000..442e5ea8 --- /dev/null +++ b/mappFramework/Logical/VC4/Visu/Pages/MpBackup.page @@ -0,0 +1,2130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page index 57182ad8..40ccd867 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page index 9135f2cf..45b0cc33 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page index e3bdc1b1..9227bde2 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page index 83c6de76..b09056b3 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page index ed34c3dc..d9a0e966 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page index 697e7bc2..6c7ea18f 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page index 3bdfa44e..a99c913a 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page index 3a9a6b0f..fc3a18da 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page index d90e6643..2d406f5c 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page index 28795b24..e18fcb8c 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page index 3eb0eb3b..3d734f6c 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page index e0694e96..296d54dd 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page @@ -1,5 +1,5 @@ - + @@ -920,7 +920,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page b/mappFramework/Logical/VC4/Visu/Pages/MpReport.page index dd4a25e2..5e56930d 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + @@ -121,7 +121,7 @@ - + @@ -291,6 +291,7 @@ + @@ -314,6 +315,7 @@ + @@ -366,6 +368,15 @@ + + + + + + + + + @@ -403,6 +414,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -414,7 +492,7 @@ - + @@ -430,44 +508,77 @@ - + - - - - - - - - - + + + - - + + - - + + - + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + + + + + + + + + + + + + + + @@ -483,41 +594,96 @@ - + - - - - - - - - - + + + - - + + - - + + + + - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -536,7 +702,7 @@ - + @@ -551,7 +717,7 @@ - + @@ -570,8 +736,8 @@ - - + + @@ -582,7 +748,7 @@ - + @@ -592,28 +758,28 @@ - + - - + + - - + + - + @@ -621,20 +787,21 @@ - + + - + - + @@ -649,7 +816,7 @@ - + @@ -664,31 +831,92 @@ - + - + + - - + + - + + + + + - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -699,11 +927,11 @@ - + - + @@ -714,46 +942,100 @@ - + + + + + + + + + + + + + + + + + + + - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - + + + + - - + + - + + + + + + + @@ -761,5 +1043,6 @@ + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page b/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page index ee42a9fe..34b2271b 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page index c5facfd7..62009ab7 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page index 8b901832..918e36d9 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page index 74882da4..ce575a83 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page index 1256d5ed..61c71b80 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page index d5fdf246..5a7363bb 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page index ae36d11e..d6b4685e 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + @@ -72,7 +72,7 @@ - + @@ -82,7 +82,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -112,7 +112,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -162,7 +162,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -192,7 +192,7 @@ - + @@ -202,8 +202,8 @@ - - + + @@ -222,7 +222,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -252,7 +252,7 @@ - + @@ -262,7 +262,7 @@ - + @@ -282,7 +282,7 @@ - + @@ -292,7 +292,7 @@ - + @@ -312,7 +312,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -342,7 +342,7 @@ - + @@ -352,7 +352,7 @@ - + @@ -372,7 +372,7 @@ - + @@ -382,7 +382,7 @@ - + @@ -402,7 +402,7 @@ - + @@ -412,7 +412,7 @@ - + @@ -432,7 +432,7 @@ - + @@ -442,16 +442,16 @@ - + - + - + @@ -462,36 +462,72 @@ - + - + - - + + - + - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -499,12 +535,12 @@ - + - + @@ -512,12 +548,12 @@ - + - + @@ -525,12 +561,12 @@ - + - + @@ -538,12 +574,12 @@ - + - + @@ -551,7 +587,7 @@ - + @@ -683,15 +719,24 @@ - + - + + + - + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/Palette.vcr b/mappFramework/Logical/VC4/Visu/Palette.vcr index 08981107..d8d2d534 100644 --- a/mappFramework/Logical/VC4/Visu/Palette.vcr +++ b/mappFramework/Logical/VC4/Visu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs b/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs index 0505caa6..4e215967 100644 --- a/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs +++ b/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs @@ -1,5 +1,5 @@ - + @@ -748,6 +748,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs b/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs index 7f243c93..14845f35 100644 --- a/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs +++ b/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs @@ -748,6 +748,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs b/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs index 1c2947ad..8fc0a506 100644 --- a/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs +++ b/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs @@ -1,5 +1,5 @@ - + @@ -748,6 +748,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp index 8c428770..9cb0f78a 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp index 03ffebb1..ffbf3fd7 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp index f705b250..3df19472 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp index 83db9970..a24c81c3 100644 --- a/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre index ba4b19eb..9f8e9378 100644 --- a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk index b8d23e28..9d270aad 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + @@ -1713,16 +1713,36 @@ + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -2238,10 +2258,6 @@ - - - - @@ -2278,34 +2294,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2422,6 +2410,14 @@ + + + + + + + + @@ -2534,7 +2530,7 @@ - + @@ -2562,6 +2558,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -2630,31 +2650,91 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -2670,15 +2750,19 @@ - + - + - + + + + + @@ -2686,15 +2770,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 1b79c3c0..2602c2e3 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 58db8155..4b870a86 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 3b67ca27..80a7db74 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index a9b736b9..a5bf5e89 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index b8c59321..4251e8bd 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index 564f899f..18ecf16e 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index 79f8ceff..29af5fe8 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index 28deba3f..a4914556 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index 89fc13c1..fd9fd267 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index c6d87afd..3bab4dc5 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index fa5f8c61..c9e49e11 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 5dd61035..091fe6de 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index 894e5633..a16e98a9 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 90a743a9..2667cab7 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index 5aeb43d6..a31ecc7c 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index d9e74c1a..64dc96b3 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -15807,88 +15807,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -16597,15 +16518,6 @@ - - - - - - - - - @@ -16646,66 +16558,50 @@ - - - - - - - - - + - + - + - - + + - + - + - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -16714,55 +16610,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + - + - + - + - + - + + + + + + + + + + + + + + - + - + + - + - + - + + - + - + + + + + + + + + + + @@ -16772,104 +16716,167 @@ - - - - - + - - + + - + - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - - - + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + - + - - - + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -16878,7 +16885,7 @@ - + @@ -16887,7 +16894,11 @@ - + + + + + @@ -16896,7 +16907,7 @@ - + @@ -16906,83 +16917,97 @@ - + + + + + - + - - - - + + - + - + - - - - + - + - - - - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - - - - + - + - + + + + + - - - - + + - + - + @@ -16991,7 +17016,11 @@ - + + + + + @@ -17000,40 +17029,410 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 575ebacc..6291a5f3 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index ba74306f..d718cf5a 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + @@ -105,7 +105,10 @@ - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index 964e7625..a9f2a806 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index b7ec8f39..c04608ff 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index 3de19132..879fadd1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index d4d725e2..3850269c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index 6b1e3b38..e6d2ec97 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 56a3ed46..1449a1f3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index ab07cade..c667e41c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index adee9a03..1de874ed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 6e242d02..87b8beb6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index 575ee0a3..c0719fe6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index d262a1e6..c4ca5bb3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 42b45026..20a557ff 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index 65fb0681..bc98c4c5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index 52a59260..601d3afc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index e45e50b0..eff8f332 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index f4a3866c..a2ebec46 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index 3e812b7a..d79cd0c6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index c7974eb4..d8e3b9ed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp new file mode 100644 index 00000000..f5a4280e --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp new file mode 100644 index 00000000..16a488fd --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index 17fed913..658a600a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 23d22f60..154a479b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index 5ad6a479..bbd135b5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -17,6 +17,23 @@ + + + + + + + + + + + + + + + + + @@ -31,6 +48,23 @@ + + + + + + + + + + + + + + + + + @@ -45,5 +79,22 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index dca04c44..ee0322c8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index fcffdb26..a6b3ce90 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index 649f4709..487100ed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index 106886a9..db8f34bd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index c9f4b7c9..dae21557 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp deleted file mode 100644 index 48b293aa..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp new file mode 100644 index 00000000..1757d926 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp new file mode 100644 index 00000000..6ef00e7d --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index 3a60acfd..c3bd3f01 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 9555f097..42934d4e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index 3e773470..26baab87 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 92006277..55b4f7e3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index 80dc2727..4b74bf12 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index eabe7212..5ec9e3a6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index 326aab6b..bbfebcd8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp index b4ee4143..bc066e4f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp index cdea1084..c9070fa4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp index 8420bb4d..417e2622 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp index 84e798f6..b5e67162 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index d9eca763..b4dd8597 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 8c7156e0..be7bb2ec 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index 2f9d24ae..97a33fe9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index 5725671d..b54b0cab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index 28fc3cff..6021ba64 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index 782d3ec5..e5bfd4dc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index e50e287a..47fb1c3f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index d4572444..dba63514 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index 1442fda8..79f46747 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index 67c6c4c2..f046bc91 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index 30b4fb7f..9c8475e8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index 5f33a485..dc4ce9d0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index 17af770e..034c8b00 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index 49eabe22..bd809c6f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index 143ec6c3..104e8a65 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index ab8a4a81..c895eeab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index d4d37750..6abce760 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index b8c4d9f1..1fc9be9a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 5ad13687..1bb39903 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index fbf8aff0..875fff16 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index 49c3289a..10ac29cf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index 99683cbf..cb262c44 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index bae638b4..47340e4d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index 92223a25..950ad11e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index a6aee33d..c067216c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index cc3591ab..6c4265b7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index 6bf158dc..fc49ab86 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index e170c821..6e455924 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 7415383a..1e127e4b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 536be6e7..8c591cb0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -1,5 +1,5 @@ - + @@ -32,7 +32,7 @@ - + @@ -83,7 +83,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp index 4895cf18..972bc566 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp index 104b1249..facf1ffb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp index c2376b45..31d96dc4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp index a6050c52..b25096dc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 7f033aa3..27b2fbfc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index 659c0859..a6aab6bb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index 28ec13c3..a1576894 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index 5b3fe7d7..863c1c34 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index 649c65f4..18c3a5af 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index 98a3f0b8..eaab3c24 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index 8558a1e7..cb516990 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index fc2988c6..1d4af627 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 0417cbe2..468c8dfd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 0680964b..69e9aa1f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index ca62d6b3..0f451903 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index 456e8562..05fa1d8d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index c17f68b3..5bc4fef2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index 0461a8c4..c7436082 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 9de585e8..2c97560f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index b0815a8d..4a3f8273 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index ea28201d..4ac5aa86 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index 5f621150..6ae173e5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 8d757898..6b57c4a5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index fe5ccfd0..18f7ec2b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index c6bb4ad8..d50a4d0a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index 2b3d1df9..a495de81 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index b72accd0..526efd53 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index e78cf40f..8e1040d6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index bade7743..16fa06df 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index 5e9f0040..7954eb02 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index 2b43dec3..4b3cfb36 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + @@ -43,6 +43,7 @@ + @@ -83,6 +84,7 @@ + @@ -123,5 +125,6 @@ + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index da49b4bd..fcff784d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index 7d7f6d60..6f36239b 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index fa6652d7..c50e3d53 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index 88b6633f..de9e787d 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index 01303640..b8da98f6 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index 798e3a02..ad19d93c 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index 66e164e2..eb30e49c 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index 7dd3f30c..7cb2a7a1 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index b07517ec..5124e035 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/mappView/Visualization/Dialogs/BackupDialogs/BackupCreate/BackupDialog_Create.content b/mappFramework/Logical/mappView/Visualization/Dialogs/BackupDialogs/BackupCreate/BackupDialog_Create.content index c04caf76..027c5a72 100644 --- a/mappFramework/Logical/mappView/Visualization/Dialogs/BackupDialogs/BackupCreate/BackupDialog_Create.content +++ b/mappFramework/Logical/mappView/Visualization/Dialogs/BackupDialogs/BackupCreate/BackupDialog_Create.content @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content index 56924b35..7f800fa4 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/AxisAuto.content @@ -1,6 +1,18 @@  - + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg index 7483b1e5..61738d1a 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg +++ b/mappFramework/Logical/mappView/Visualization/Pages/FrameworkPackage/AxisContent/Package.pkg @@ -3,7 +3,7 @@ Axis.content - AxisManual.content AxisAuto.content + AxisManual.content \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg deleted file mode 100644 index e56db615..00000000 --- a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Package.pkg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - Widget.compoundwidget - - \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget deleted file mode 100644 index 2c510c4d..00000000 --- a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/AutoControl/Widget.compoundwidget +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PositionUnit - - - - - - - Unit - - - - - - - - Label Text - - - - - - - Axis Control - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg index e29353ff..5659aca4 100644 --- a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Package.pkg @@ -5,7 +5,6 @@ Description.widgetlibrary Resources AxisControl - AutoControl AxisControlWidgetLib.png \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg index e4bb245c..ffc1c679 100644 --- a/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg +++ b/mappFramework/Logical/mappView/Widgets/AxisControlWidgetLib/Resources/Media/AxisControl/AlarmActive.svg @@ -6,47 +6,21 @@ id="Ebene_1" x="0px" y="0px" - viewBox="0 0 30 30" + viewBox="0 0 35 35" xml:space="preserve" - width="30" - height="30" + width="35" + height="35" class="br-symbol-library" - sodipodi:docname="AlarmActive.svg" - inkscape:export-filename="AlarmActive.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/">image/svg+xml + - - - + + + Not-Halt-Taster 1 wurde gedr�ckt + + + 急停按钮已按下 + + + Emergency stop button 1 has been pressed + + + + + Not-Halt-Taster 2 wurde gedr�ckt + + + 急停按钮已按下 + + + Emergency stop button 2 has been pressed + + + + + Not-Halt-Taster 3 wurde gedr�ckt + + + 急停按钮已按下 + + + Emergency stop button 3 has been pressed + + + + + Schutzt�r 1 ist offen + + + 安全门未关闭 + + + Safety door 1 is open + + + + + Schutzt�r 2 ist ge�ffnet + + + 安全门未关闭 + + + Safety door 2 is open + + + + + Schutzt�r 3 ist offen + + + 安全门未关闭 + + + Safety door 3 is open + + + + + Schutzt�r 4 ist offen + + + 安全门未关闭 + + + Safety door 4 is open + + + + + Schutzt�r 5 ist offen + + + 安全门未关闭 + + + Safety door 5 is open + + + + + Schutzt�r 6 ist ge�ffnet + + + 安全门未关闭 + + + Safety door 6 is open + + + + + Beispiel f�r F�llstands�berwachung + + + 水位监控示例 + + + Level Monitoring Example + + + + + Niedriger Fehler + + + 过低错误 + + + Low Error + + + + + Niedrige Warnung + + + 过低报警 + + + Low Warning + + + + + Hohe Warnung + + + 过高报警 + + + High Warning + + + + + Hoher Fehler + + + 过高错误 + + + High Error + + + + + Beispiel f�r Abweichungs�berwachung + + + 偏差监控示例 + + + Deviation Monitoring Example + + + + + Beispiel f�r die �nderungsrate + + + 变化率示例 + + + Rate Of Change Example + + + + + {&snippet1} + + + {&snippet1} + + + {&snippet1} + + + + + Beispiel f�r den Funktionsblock MpAlarmXControl + + + MpAlarmXControl功能块示例 + + + MpAlarmXControl Function Block Example + + + + + Alarm 0 + + + 报警 0 + + + Alarm 0 + + + Mon unité + + + + + Alarm 1 + + + 报警 1 + + + Alarm 1 + + + Mon unité + + + + + Alarm 2 + + + 报警 2 + + + Alarm 2 + + + Mon unité + + + + + Alarm 3 + + + 报警 3 + + + Alarm 3 + + + Mon unité + + + + + Alarm 4 + + + 报警 4 + + + Alarm 4 + + + Mon unité + + + + + Alarm 5 + + + 报警 5 + + + Alarm 5 + + + Mon unité + + + + + Alarm 6 + + + 报警 6 + + + Alarm 6 + + + Mon unité + + + + + Alarm 7 + + + 报警 7 + + + Alarm 7 + + + Mon unité + + + + + Alarm 8 + + + 报警 8 + + + Alarm 8 + + + Mon unité + + + + + Alarm 9 + + + 报警 9 + + + Alarm 9 + + + Mon unité + + + + + Alarm 10 + + + 报警 10 + + + Alarm 10 + + + Mon unité + + + + + Alarm 11 + + + 报警 11 + + + Alarm 11 + + + Mon unité + + + + + Alarm 12 + + + 报警 12 + + + Alarm 12 + + + Mon unité + + + + + Alarm 13 + + + 报警 13 + + + Alarm 13 + + + Mon unité + + + + + Alarm 14 + + + 报警 14 + + + Alarm 14 + + + Mon unité + + + + + Alarm 15 + + + 报警 15 + + + Alarm 15 + + + Mon unité + + + + + Alarm 16 + + + 报警 16 + + + Alarm 16 + + + Mon unité + + + + + Alarm 17 + + + 报警 17 + + + Alarm 17 + + + Mon unité + + + + + Alarm 18 + + + 报警 18 + + + Alarm 18 + + + Mon unité + + + + + Alarm 19 + + + 报警 19 + + + Alarm 19 + + + Mon unité + + + + + Alarm 20 + + + 报警 20 + + + Alarm 20 + + + Mon unité + + + + + Alarm 21 + + + 报警 21 + + + Alarm 21 + + + Mon unité + + + + + Alarm 22 + + + 报警 22 + + + Alarm 22 + + + Mon unité + + + + + Alarm 23 + + + 报警 23 + + + Alarm 23 + + + Mon unité + + + + + Alarm 24 + + + 报警 24 + + + Alarm 24 + + + Mon unité + + + + + Alarm 25 + + + 报警 25 + + + Alarm 25 + + + Mon unité + + + + + Alarm 26 + + + 报警 26 + + + Alarm 26 + + + Mon unité + + + + + Alarm 27 + + + 报警 27 + + + Alarm 27 + + + Mon unité + + + + + Alarm 28 + + + 报警 28 + + + Alarm 28 + + + Mon unité + + + + + Alarm 29 + + + 报警 29 + + + Alarm 29 + + + Mon unité + + + + + Alarm 30 + + + 报警 30 + + + Alarm 30 + + + Mon unité + + + + + Alarm 31 + + + 报警 31 + + + Alarm 31 + + + Mon unité + + + + + Alarm 32 + + + 报警 32 + + + Alarm 32 + + + Mon unité + + + + + Alarm 33 + + + 报警 33 + + + Alarm 33 + + + Mon unité + + + + + Alarm 34 + + + 报警 34 + + + Alarm 34 + + + Mon unité + + + + + Alarm 35 + + + 报警 35 + + + Alarm 35 + + + Mon unité + + + + + Alarm 36 + + + 报警 36 + + + Alarm 36 + + + Mon unité + + + + + Alarm 37 + + + 报警 37 + + + Alarm 37 + + + Mon unité + + + + + Alarm 38 + + + 报警 38 + + + Alarm 38 + + + Mon unité + + + + + Alarm 39 + + + 报警 39 + + + Alarm 39 + + + Mon unité + + + + + Alarm 40 + + + 报警 40 + + + Alarm 40 + + + Mon unité + + + + + Alarm 41 + + + 报警 41 + + + Alarm 41 + + + Mon unité + + + + + Alarm 42 + + + 报警 42 + + + Alarm 42 + + + Mon unité + + + + + Alarm 43 + + + 报警 43 + + + Alarm 43 + + + Mon unité + + + + + Alarm 44 + + + 报警 44 + + + Alarm 44 + + + Mon unité + + + + + Alarm 45 + + + 报警 45 + + + Alarm 45 + + + Mon unité + + + + + Alarm 46 + + + 报警 46 + + + Alarm 46 + + + Mon unité + + + + + Alarm 47 + + + 报警 47 + + + Alarm 47 + + + Mon unité + + + + + Alarm 48 + + + 报警 48 + + + Alarm 48 + + + Mon unité + + + + + Alarm 49 + + + 报警 49 + + + Alarm 49 + + + Mon unité + + + + + Alarm 50 + + + 报警 50 + + + Alarm 50 + + + Mon unité + + + + + Alarm 51 + + + 报警 51 + + + Alarm 51 + + + Mon unité + + + + + Alarm 52 + + + 报警 52 + + + Alarm 52 + + + Mon unité + + + + + Alarm 53 + + + 报警 53 + + + Alarm 53 + + + Mon unité + + + + + Alarm 54 + + + 报警 54 + + + Alarm 54 + + + Mon unité + + + + + Alarm 55 + + + 报警 55 + + + Alarm 55 + + + Mon unité + + + + + Alarm 56 + + + 报警 56 + + + Alarm 56 + + + Mon unité + + + + + Alarm 57 + + + 报警 57 + + + Alarm 57 + + + Mon unité + + + + + Alarm 58 + + + 报警 58 + + + Alarm 58 + + + Mon unité + + + + + Alarm 59 + + + 报警 59 + + + Alarm 59 + + + Mon unité + + + + + Alarm 60 + + + 报警 60 + + + Alarm 60 + + + Mon unité + + + + + Alarm 61 + + + 报警 61 + + + Alarm 61 + + + Mon unité + + + + + Alarm 62 + + + 报警 62 + + + Alarm 62 + + + Mon unité + + + + + Alarm 63 + + + 报警 63 + + + Alarm 63 + + + Mon unité + + + + + Alarm 64 + + + 报警 64 + + + Alarm 64 + + + Mon unité + + + + + Alarm 65 + + + 报警 65 + + + Alarm 65 + + + Mon unité + + + + + Alarm 66 + + + 报警 66 + + + Alarm 66 + + + Mon unité + + + + + Alarm 67 + + + 报警 67 + + + Alarm 67 + + + Mon unité + + + + + Alarm 68 + + + 报警 68 + + + Alarm 68 + + + Mon unité + + + + + Alarm 69 + + + 报警 69 + + + Alarm 69 + + + Mon unité + + + + + Alarm 70 + + + 报警 70 + + + Alarm 70 + + + Mon unité + + + + + Alarm 71 + + + 报警 71 + + + Alarm 71 + + + Mon unité + + + + + Alarm 72 + + + 报警 72 + + + Alarm 72 + + + Mon unité + + + + + Alarm 73 + + + 报警 73 + + + Alarm 73 + + + Mon unité + + + + + Alarm 74 + + + 报警 74 + + + Alarm 74 + + + Mon unité + + + + + Alarm 75 + + + 报警 75 + + + Alarm 75 + + + Mon unité + + + + + Alarm 76 + + + 报警 76 + + + Alarm 76 + + + Mon unité + + + + + Alarm 77 + + + 报警 77 + + + Alarm 77 + + + Mon unité + + + + + Alarm 78 + + + 报警 78 + + + Alarm 78 + + + Mon unité + + + + + Alarm 79 + + + 报警 79 + + + Alarm 79 + + + Mon unité + + + + + Alarm 80 + + + 报警 80 + + + Alarm 80 + + + Mon unité + + + + + Alarm 81 + + + 报警 81 + + + Alarm 81 + + + Mon unité + + + + + Alarm 82 + + + 报警 82 + + + Alarm 82 + + + Mon unité + + + + + Alarm 83 + + + 报警 83 + + + Alarm 83 + + + Mon unité + + + + + Alarm 84 + + + 报警 84 + + + Alarm 84 + + + Mon unité + + + + + Alarm 85 + + + 报警 85 + + + Alarm 85 + + + Mon unité + + + + + Alarm 86 + + + 报警 86 + + + Alarm 86 + + + Mon unité + + + + + Alarm 87 + + + 报警 87 + + + Alarm 87 + + + Mon unité + + + + + Alarm 88 + + + 报警 88 + + + Alarm 88 + + + Mon unité + + + + + Alarm 89 + + + 报警 89 + + + Alarm 89 + + + Mon unité + + + + + Alarm 90 + + + 报警 90 + + + Alarm 90 + + + Mon unité + + + + + Alarm 91 + + + 报警 91 + + + Alarm 91 + + + Mon unité + + + + + Alarm 92 + + + 报警 92 + + + Alarm 92 + + + Mon unité + + + + + Alarm 93 + + + 报警 93 + + + Alarm 93 + + + Mon unité + + + + + Alarm 94 + + + 报警 94 + + + Alarm 94 + + + Mon unité + + + + + Alarm 95 + + + 报警 95 + + + Alarm 95 + + + Mon unité + + + + + Alarm 96 + + + 报警 96 + + + Alarm 96 + + + Mon unité + + + + + Alarm 97 + + + 报警 97 + + + Alarm 97 + + + Mon unité + + + + + Alarm 98 + + + 报警 98 + + + Alarm 98 + + + Mon unité + + + + + Alarm 99 + + + 报警 99 + + + Alarm 99 + + + Mon unité + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/AlarmX/Package.pkg new file mode 100644 index 00000000..012a3d15 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/Package.pkg @@ -0,0 +1,9 @@ + + + + + AlarmMgr + Alarms.tmx + AlarmImportExport.py + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditAlarms.tmx new file mode 100644 index 00000000..03220368 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditAlarms.tmx @@ -0,0 +1,34 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/Audit/Alarms +
    + + + + Archiv zum Export bereit + + + 存档准备导出 + + + Archive ready for export + + + Bonjour tout le monde! + + + + + Die maximale Anzahl an Archiven wurde erreicht. Zusätzliche Archive sind nicht möglich. + + + 已达到最大存档数。 无法进行其他存档。 + + + The maximum number of archives has been reached. Additional archives are not possible. + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st new file mode 100644 index 00000000..71111ef9 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st @@ -0,0 +1,155 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: Sept 1, 2022 +// Description: Task for audit management. +//*********************************************************************** + +PROGRAM _INIT + + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappAuditFiles'), pName := ADR('/')); + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + DirCreate_0(enable := FALSE); + END_IF + + // Initialize mapp function blocks + MpAuditTrail_0.Enable := TRUE; + MpAuditTrail_0.MpLink := ADR(gMpLinkAuditTrail); + MpAuditTrail_0.Language := ADR('en'); + MpAuditTrail_0.DeviceName := ADR('mappAuditFiles'); + MpAuditTrail_0(); + + MpAuditTrailConfig_0.Enable := TRUE; + MpAuditTrailConfig_0.MpLink := ADR(gMpLinkAuditTrail); + MpAuditTrailConfig_0.Configuration := ADR(AuditTrailConfig); + MpAuditTrailConfig_0.Load := TRUE; + MpAuditTrailConfig_0(); + + MpAuditTrail_CEvents.Enable := TRUE; + MpAuditTrail_CEvents.MpLink := ADR(gMpLinkCustomEvents); + MpAuditTrail_CEvents(); + + MpAuditTrailUI_0.MpLink := ADR(gMpLinkAuditTrail); + MpAuditTrailUI_0.UIConnect := ADR(MpAuditTrailUIConnect); + MpAuditTrailUI_0.UISetup.EventListSize := SIZEOF(MpAuditTrailUIConnect.Output.EventID) / SIZEOF(MpAuditTrailUIConnect.Output.EventID[0]); + MpAuditTrailUI_0.UISetup.ScrollWindow := 1; + MpAuditTrailUI_0.Enable := TRUE; + MpAuditTrailUI_0(); + + MpAuditTrail_CEvents_UI_0.MpLink := ADR(gMpLinkCustomEvents); + MpAuditTrail_CEvents_UI_0.UIConnect := ADR(MpAuditTrail_CEvents_UIConnect); + MpAuditTrail_CEvents_UI_0.UISetup.EventListSize := SIZEOF(MpAuditTrail_CEvents_UIConnect.Output.EventID) / SIZEOF(MpAuditTrail_CEvents_UIConnect.Output.EventID[0]); + MpAuditTrail_CEvents_UI_0.UISetup.ScrollWindow := 1; + MpAuditTrail_CEvents_UI_0.Enable := TRUE; + MpAuditTrail_CEvents_UI_0(); + + + // Initialize custom events + CustomEvent[0].Type := "Custom Event Type"; + CustomEvent[0].Msg := "Custom Event Message"; + CustomEvent[0].Comment := "Custom Event Comment"; + + CustomEvent[1].Type := "Audit Test"; + CustomEvent[1].Msg := "This is a custom event test msg"; + CustomEvent[1].Comment := "If you see this it was a success!"; + + CustomEvent[2].Type := "Cmd Exe"; + CustomEvent[2].Msg := "The run query command was pressed on the HMI"; + CustomEvent[2].Comment := "Result can be seen in the Query tab"; + + HmiAudit.Status.Query.Name := 'UserEvents'; + HmiAudit.Status.Query.Option := 1; + + // Configuring the query selection, reading the available components + HmiAudit.Parameters.QuerySelection[0] := 'UserXMgr'; + HmiAudit.Parameters.QuerySelection[1] := 'RecipeMgr'; + + IF (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[0]), 0, ADR(ident)) = 0) AND (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[1]), 0, ADR(ident)) = 0) THEN + HmiAudit.Status.DeviceDataProvider[0] := '{"value":"UserEvents","text":"User Events Query"}'; + HmiAudit.Status.DeviceDataProvider[1] := '{"value":"RecipeEvents","text":"Recipe Events Query"}'; + + HmiAudit.Status.DeviceDataProviderVC4[0] := 'User Events Query'; + HmiAudit.Status.DeviceDataProviderVC4[1] := 'Recipe Events Query'; + + ELSIF (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[0]), 0, ADR(ident)) <> 0) AND (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[1]), 0, ADR(ident)) = 0) THEN + HmiAudit.Status.DeviceDataProvider[0] := '{"value":"RecipeEvents","text":"Recipe Events Query"}'; + + HmiAudit.Status.DeviceDataProviderVC4[0] := 'Recipe Events Query'; + + ELSIF (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[0]), 0, ADR(ident)) = 0) AND (ST_ident(ADR(HmiAudit.Parameters.QuerySelection[1]), 0, ADR(ident)) <> 0) THEN + HmiAudit.Status.DeviceDataProvider[0] := '{"value":"UserEvents","text":"User Events Query"}'; + + HmiAudit.Status.DeviceDataProviderVC4[0] := 'User Events Query'; + END_IF + + + // Restored the retained values to the archive settings + HmiAudit.Parameters.ArchiveSettings := ArchiveSettingsRetain; + +END_PROGRAM + +PROGRAM _CYCLIC + + // Call all cyclic actions + ExecuteQuery; + QueryTableConfig; + ArchiveExport; + ArchiveSettings; + ChangeConfiguration; + + // Sample code for how custom events can be triggered. Use custom events as needed around the application for debugging purposes. + IF EDGEPOS(CustomEvent[0].Set) THEN + MpAuditCustomEvent(gMpLinkCustomEvents,CustomEvent[0].Type,CustomEvent[0].Msg,CustomEvent[0].Comment); + END_IF + IF EDGENEG(CustomEvent[1].Set) THEN + MpAuditCustomEvent(gMpLinkCustomEvents,CustomEvent[1].Type,CustomEvent[1].Msg,CustomEvent[1].Comment); + END_IF + + // Change sample variable randomly to trigger a value change event + IF VariableMonitorExample = 0 THEN + VariableMonitorExample := 10.5; + END_IF + + // Error reset + IF NOT MpAuditTrail_0.Error THEN + MpAuditTrail_0.ErrorReset := FALSE; + END_IF + + // Assign MpLinks and HMI connections + MpAuditTrail_0.MpLink := ADR(gMpLinkAuditTrail); + MpAuditTrailConfig_0.MpLink := ADR(gMpLinkAuditTrail); + MpAuditTrail_CEvents.MpLink := ADR(gMpLinkCustomEvents); + MpAuditTrailUI_0.MpLink := ADR(gMpLinkAuditTrail); + + // Call function blocks + MpAuditTrail_0(); + MpAuditTrailConfig_0(); + MpAuditTrail_CEvents(); + MpAuditTrailUI_0(); + + MpAuditTrail_CEvents_UI_0(); + MpAuditTrail_CEvents(); + MpAuditTrail_CEvents_UI_0(); + + +END_PROGRAM + +PROGRAM _EXIT + + // Disable the function blocks to unlink the MpLinks + MpAuditTrail_0.Enable := FALSE; + MpAuditTrailConfig_0.Enable := FALSE; + MpAuditTrail_CEvents.Enable := FALSE; + MpAuditTrailUI_0.Enable := FALSE; + + // Call function blocks + MpAuditTrail_0(); + MpAuditTrailConfig_0(); + MpAuditTrail_CEvents(); + MpAuditTrailUI_0(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ new file mode 100644 index 00000000..5fc1840d --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ @@ -0,0 +1,79 @@ + +TYPE + AuditQueryHMIType : STRUCT (*Datatype for the structure which rearranges the query data from AuditQuery into a structure of arrays for easy connection to the Table widget in mapp View*) + EvTime : ARRAY[0..MAX_QUERY_RESULTS]OF DATE_AND_TIME; (*ActiveAudits query, Event-Time column*) + EvTimeString : ARRAY[0..MAX_QUERY_RESULTS]OF STRING[80]; (*ActiveAudits query, Event-Time column*) + Text : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[100]; (*ActiveAudits query, Text column*) + DText : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[100]; (*ActiveAudits query, Display Text column*) + Op : ARRAY[0..MAX_QUERY_RESULTS]OF WSTRING[100]; (*ActiveAudits query, Operator-Name column*) + QueryCount : USINT; (*Count of query results for building the query table configuration string*) + Name : STRING[80]; (*Name of the query to be executed*) + Option : USINT; (*Index value of the selected query type in the dropdown on the query tab*) + DPSelectedIndex : USINT; + END_STRUCT; + ActiveAuditStateEnum : + ( (*Enumeration for the state for the query state machine*) + ACTIVE_AUDIT_WAIT, (*Wait state*) + ACTIVE_AUDIT_QUERY, (*State to query the Audit data*) + ACTIVE_AUDIT_NEXT (*State to check if more Audits meet the query criteria and need to be queried*) + ); + AuditCustomEventType : STRUCT (*Structure for custom events handling*) + Set : BOOL; (*Trigger the assigned function*) + Type : WSTRING[100]; (*Entered when creating the entry under %typ*) + Msg : WSTRING[100]; (*Entered when creating the entry under %msg *) + Comment : WSTRING[100]; (*Entered when creating the entry under %cmt *) + END_STRUCT; + AuditQueryType : STRUCT (*Structure for query results and status*) + State : ActiveAuditStateEnum; (*State variable for the query state machine*) + LastUpdateCount : UDINT; (*Previous count of query results. Used to check for new query data. *) + UpdateCountRecipe : UDINT; (*Count of query results. Increases each time new results are availble. *) + UpdateCount : UDINT; (*Count of query results. Increases each time new results are availble. *) + Audits : ARRAY[0..MAX_QUERY_RESULTS]OF AuditType; (*Query data*) + Next : BOOL; (*Trigger to query the next data, if there are more results than MAX_QUERY_RESULTS*) + END_STRUCT; + AuditHmiInterfaceType : STRUCT (*Structure to hold commands and status from the HMI*) + Commands : AuditCommandsType; (*HMI commands*) + Parameters : AuditParType; (*HMI parameters*) + Status : {REDUND_UNREPLICABLE} AuditStatusType; (*HMI status*) + END_STRUCT; + AuditCommandsType : STRUCT (*Structure to hold the commands from the HMI*) + ExportArchives : BOOL; (*Triggers an Audit export of the Audit history. Connected to a button on the HMI. *) + RunQuery : BOOL; (*Triggers the query to run. Connected to a button on the HMI. *) + SaveConfig : BOOL; (*Starts the configuration for archives*) + END_STRUCT; + AuditStatusType : STRUCT (*Structure to hold status information from the mapp View HMI. (This structure is not compatible/relevant if you are using a VC4 visualization)*) + AuditSortCfg : STRING[1000]; (*Sort configuration for the AuditList widget*) + AuditFilterCfg : STRING[1000]; (*Filter configuration for the AuditList widget*) + TableConfig : ARRAY[0..1]OF STRING[255]; (*Table configuration for the Audit query Table*) + Query : AuditQueryHMIType; (*Structure which rearranges the query data from AuditQuery into a structure of arrays for easy connection to the Table widget*) + CustomEventSortCfg : STRING[1000]; (*Sort configuration for the AuditList Custom Events widget*) + CustomEventsFilterCfg : STRING[1000]; (*Filter configuration for the AuditList Custom Events widget*) + ArchiveAvailable : BOOL; (*At least 1 archive is available for export*) + NumberOfArchives : UINT; (*How many archives are available for export*) + DeviceDataProvider : ARRAY[0..1]OF STRING[100]; (*Data provider for the file device selector*) + DeviceDataProviderVC4 : ARRAY[0..1]OF STRING[100]; (*Data provider for the file device selector*) + ArchiveSetupLayer : USINT; + ArchiveSetupTimeOfDayVisibility : USINT; + ArchiveSetupVisibility : USINT; + END_STRUCT; + AuditParType : STRUCT (*Structure to hold parameter data for the HMI*) + ArchiveSettings : AuditArchiveParType; (*Parameter for archive configuration*) + QuerySelection : ARRAY[0..MAX_QUERIES]OF STRING[10]; (*The selection in the query dropdown on the query tab of the Audit content*) + END_STRUCT; + AuditArchiveParType : STRUCT (*Automatic archive settings*) + Enable : BOOL; (*Enable automatic archive feature*) + MaxSize : UDINT; (*Name prefix for each automatic backup file*) + Mode : MpAuditArchiveModeEnum; (*Mode (daily, Mo-Fr or by batch)*) + Hour : USINT; (*Time (hour)*) + Minute : USINT; (*Time (minutes)*) + FileType : MpAuditFileTypeEnum := mpAUDIT_FILE_TYPE_XML; (*File type selection (XML, TXT, PDF)*) + END_STRUCT; + AuditType : STRUCT (*Structure to hold the Audit data for the query results*) + EvTime : DATE_AND_TIME; (*ActiveAudits query, Event-Time column*) + Text : WSTRING[100]; (*ActiveAudits query, Text column*) + DText : WSTRING[100]; (*ActiveAudits query, Display Text column*) + Op : WSTRING[100]; (*ActiveAudits query, Operator-Name column*) + END_STRUCT; +END_TYPE + +(*Enumerations*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var new file mode 100644 index 00000000..2eb5ab26 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var @@ -0,0 +1,40 @@ +(*Function Blocks*) +VAR + DirCreate_0 : DirCreate; (*DirCreate instance*) + MpAuditTrail_0 : MpAuditTrail; (*AuditTrail for regular mapp events*) + MpAuditTrailConfig_0 : MpAuditTrailConfig; (*AuditTrail configuration*) + MpAuditTrail_CEvents : MpAuditTrail; (*AuditTrail for custom events*) + QueryUserEvents_0 : {REDUND_UNREPLICABLE} MpAuditQuery; (*MpAlarmXQuery instance*) + MpAuditTrailUI_0 : MpAuditTrailUI; (*AuditTrail UI interface*) + MpAuditTrail_CEvents_UI_0 : MpAuditTrailUI; (*AuditTrail UI interface*) +END_VAR +(*Constants*) +VAR CONSTANT + MAX_QUERY_RESULTS : USINT := 19; (*Maximum number of query results (Value+1)*) + MAX_CUSTOM_EVENTS : USINT := 9; (*Maximum number of custom events*) + MAX_QUERIES : USINT := 2; (*Maximum number of configured queries*) +END_VAR +(*Structure Types*) +VAR + HmiAudit : AuditHmiInterfaceType; (*HMI interface structure*) + CustomEvent : ARRAY[0..MAX_CUSTOM_EVENTS] OF AuditCustomEventType; (*Custom events*) + AuditQuery : {REDUND_UNREPLICABLE} AuditQueryType; (*Query results and status*) + AuditTrailConfig : MpAuditTrailConfigType; (*Configuration structure for changing archiving setup*) + MpAuditTrailUIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) + MpAuditTrailUISetup : MpAuditTrailUISetupType; (*MpAuditUI setup connection to the HMI*) + MpAuditTrail_CEvents_UIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) +END_VAR +(*Variables*) +VAR + i : USINT; (*Index for loops*) + ident : UDINT; (*Identifier for task deployment*) + VariableMonitorExample : REAL; (*Used for the variable monitor example*) +END_VAR +VAR RETAIN + ArchiveSettingsRetain : AuditArchiveParType; (*Store settings in retain memory to be applied after boot*) +END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st new file mode 100644 index 00000000..346df19a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st @@ -0,0 +1,30 @@ +ACTION ChangeConfiguration: + + MpAuditTrailConfig_0.MpLink := ADR(gMpLinkAuditTrail); + MpAuditTrailConfig_0.Configuration := ADR(AuditTrailConfig); + + IF (MpAuditTrailConfig_0.Error = TRUE) THEN + IF (MpAuditTrailConfig_0.StatusID = mpAUDIT_ERR_CONFIG_LOAD) THEN + LoadAuditConfiguration; + END_IF + MpAuditTrailConfig_0.Load := FALSE; + MpAuditTrailConfig_0.Save := FALSE; + MpAuditTrailConfig_0.ErrorReset := TRUE; + END_IF + + MpAuditTrailConfig_0(); + MpAuditTrailConfig_0.ErrorReset := FALSE; + + IF (MpAuditTrailConfig_0.CommandDone = TRUE) THEN + IF (MpAuditTrailConfig_0.Load = TRUE) THEN + LoadAuditConfiguration; + END_IF + // after save the AuditTrail needs to restart + IF (MpAuditTrailConfig_0.Save = TRUE) THEN + MpAuditTrail_0.Enable := FALSE; + END_IF + MpAuditTrailConfig_0.Load := FALSE; + MpAuditTrailConfig_0.Save := FALSE; + END_IF + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st new file mode 100644 index 00000000..8caf46ce --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st @@ -0,0 +1,83 @@ +ACTION ExecuteQuery: + + // Initialize mapp function block + QueryUserEvents_0.MpLink := ADR(gMpLinkAuditTrail); + QueryUserEvents_0.Enable := TRUE; + QueryUserEvents_0.Name := ADR(HmiAudit.Status.Query.Name); + QueryUserEvents_0.Language := ADR('en'); + QueryUserEvents_0(); + + CASE (AuditQuery.State) OF + ACTIVE_AUDIT_WAIT: + // Wait until the RunQuery command is triggered from the HMI. + // If you prefer that the query runs anytime new data is available, then uncomment line 15 and comment out line 16 and delete + // the "Run query" button from the HMI. + //IF (AuditQuery.LastUpdateCount <> AuditQuery.UpdateCount) THEN + IF (HmiAudit.Commands.RunQuery = TRUE) THEN + // Call the custom event function when the query execution is triggered + MpAuditCustomEvent(gMpLinkCustomEvents,CustomEvent[2].Type,CustomEvent[2].Msg,CustomEvent[2].Comment); + brsmemset(ADR(AuditQuery.Audits[0]), 0, SIZEOF(AuditQuery.Audits)); + AuditQuery.LastUpdateCount := AuditQuery.UpdateCount; + QueryUserEvents_0.Execute := TRUE; + HmiAudit.Commands.RunQuery := FALSE; + IF (HmiAudit.Status.Query.Name = 'UserEvents') THEN + HmiAudit.Status.Query.Option := 0; + ELSIF (HmiAudit.Status.Query.Name = 'RecipeEvents') THEN + HmiAudit.Status.Query.Option := 1; + END_IF + + AuditQuery.State := ACTIVE_AUDIT_QUERY; + END_IF + + ACTIVE_AUDIT_QUERY: + // If the number of query results is less than MAX_QUERY_RESULTS, return to the wait state + IF ((QueryUserEvents_0.CommandDone = TRUE) AND (QueryUserEvents_0.Info.HasMoreRows = FALSE)) THEN + // Call the custom event function when the query execution is done + MpAuditCustomEvent(gMpLinkCustomEvents,"Cmd Done","Executing the query command has finished","For additional information check the logger."); + QueryUserEvents_0.Execute := FALSE; + QueryUserEvents_0.Next := FALSE; + AuditQuery.State := ACTIVE_AUDIT_WAIT; + // If the number of query results is more than MAX_QUERY_RESULTS, then query the next set of results + ELSIF ((QueryUserEvents_0.CommandDone = TRUE) AND (QueryUserEvents_0.Info.HasMoreRows = TRUE)) THEN + QueryUserEvents_0.Next := FALSE; + AuditQuery.State := ACTIVE_AUDIT_NEXT; + END_IF + + ACTIVE_AUDIT_NEXT: + IF (AuditQuery.Next = TRUE) THEN + // By default, AuditQuery.Alarms has 20 elements, so it can hold 20 query results at a time (MAX_QUERY_RESULTS = 19). + // If AuditQuery.Next is true, this means the query result is more than 20 alarms. + // If you want to save the data for the first 20 alarms, add code here to copy AuditQuery.Alarms to another location. + // Otherwise, the older alarms in the query will get overwritten with the newest entries here. + brsmemset(ADR(AuditQuery.Audits[0]), 0, SIZEOF(AuditQuery.Audits)); + AuditQuery.Next := FALSE; + QueryUserEvents_0.Next := TRUE; + AuditQuery.State := ACTIVE_AUDIT_QUERY; + END_IF + END_CASE + + // Convert the query results into arrays that can easily be bound to the Table widget in mapp View + FOR i := 0 TO MAX_QUERY_RESULTS DO + HmiAudit.Status.Query.EvTime[i] := AuditQuery.Audits[i].EvTime; + HmiAudit.Status.Query.Op[i] := AuditQuery.Audits[i].Op; + HmiAudit.Status.Query.Text[i] := AuditQuery.Audits[i].Text; + HmiAudit.Status.Query.DText[i] := AuditQuery.Audits[i].DText; + HmiAudit.Status.Query.EvTimeString[i] := DT_TO_STRING(HmiAudit.Status.Query.EvTime[i]); + IF HmiAudit.Status.Query.Text[i] <> "" THEN + HmiAudit.Status.Query.EvTimeString[i] := RIGHT(HmiAudit.Status.Query.EvTimeString[i], 19); + ELSE + HmiAudit.Status.Query.EvTimeString[i] := ''; + END_IF; + END_FOR + + + //VC4 + IF HmiAudit.Status.Query.DPSelectedIndex = 0 THEN + HmiAudit.Status.Query.Name := 'UserEvents'; + ELSIF HmiAudit.Status.Query.DPSelectedIndex = 1 THEN + HmiAudit.Status.Query.Name := 'RecipeEvents'; + END_IF; + HmiAudit.Status.ArchiveSetupVisibility := NOT HmiAudit.Status.ArchiveAvailable; + HmiAudit.Status.ArchiveSetupTimeOfDayVisibility := (HmiAudit.Parameters.ArchiveSettings.Mode = mpAUDIT_ARCHIVE_BATCH); + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st new file mode 100644 index 00000000..cb2e239c --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st @@ -0,0 +1,80 @@ +ACTION ArchiveExport: + + // Assign variables to exchange with the HMI + MpAuditTrail_0.ExportArchive := HmiAudit.Commands.ExportArchives; + HmiAudit.Status.ArchiveAvailable := MpAuditTrail_0.ArchiveAvailable; + HmiAudit.Status.NumberOfArchives := MpAuditTrail_0.Info.NumberArchives; + + IF (HmiAudit.Commands.ExportArchives AND MpAuditTrail_0.CommandDone) THEN + HmiAudit.Commands.ExportArchives := FALSE; + END_IF + +END_ACTION + +ACTION ArchiveSettings: + + // Audit Trail Config implementation + IF (HmiAudit.Commands.SaveConfig = TRUE) THEN + HmiAudit.Commands.SaveConfig := FALSE; + SaveAuditConfiguration; + MpAuditTrailConfig_0.Save := TRUE; + END_IF + + // After the configuration has been changed the AuditTrail is reset (disabled). This re-enables the component + IF MpAuditTrail_0.Active = FALSE THEN + MpAuditTrail_0.Enable := TRUE; + END_IF + +END_ACTION + +ACTION SaveAuditConfiguration: + + // Assign current parameters from the HMI structure to AuditTrail configuration before saving it + AuditTrailConfig.Archive.Time := UDINT_TO_TOD((((USINT_TO_UDINT(HmiAudit.Parameters.ArchiveSettings.Hour) * 60) + + HmiAudit.Parameters.ArchiveSettings.Minute) * 60) * 1000); + AuditTrailConfig.Archive.Enable := HmiAudit.Parameters.ArchiveSettings.Enable; + AuditTrailConfig.Archive.MaxSize := HmiAudit.Parameters.ArchiveSettings.MaxSize; + AuditTrailConfig.Archive.Mode := HmiAudit.Parameters.ArchiveSettings.Mode; + AuditTrailConfig.Export.FileType := HmiAudit.Parameters.ArchiveSettings.FileType; + + // Save current archive setings to retain variable + ArchiveSettingsRetain := HmiAudit.Parameters.ArchiveSettings; + + END_ACTION + +ACTION LoadAuditConfiguration: + + // Assign current parameters from the configuration to the HMI structure + HmiAudit.Parameters.ArchiveSettings.Hour := UDINT_TO_USINT(TOD_TO_UDINT(AuditTrailConfig.Archive.Time) / 1000 / 60 / 60); + HmiAudit.Parameters.ArchiveSettings.Minute := UDINT_TO_USINT(TOD_TO_UDINT(AuditTrailConfig.Archive.Time) / 1000 / 60) - + (HmiAudit.Parameters.ArchiveSettings.Hour * 60); + HmiAudit.Parameters.ArchiveSettings.Enable := AuditTrailConfig.Archive.Enable; + HmiAudit.Parameters.ArchiveSettings.MaxSize := AuditTrailConfig.Archive.MaxSize; + HmiAudit.Parameters.ArchiveSettings.Mode := AuditTrailConfig.Archive.Mode; + HmiAudit.Parameters.ArchiveSettings.FileType := AuditTrailConfig.Export.FileType; + +END_ACTION + +ACTION QueryTableConfig: + + // Configure visible list + HmiAudit.Status.TableConfig[0] := '{ "specRows": [{"from":'; + HmiAudit.Status.Query.QueryCount := 0; + FOR i := 0 TO 9 DO + IF HmiAudit.Status.Query.Text[i] <> "" THEN + HmiAudit.Status.Query.QueryCount := i + 1; + END_IF + END_FOR + brsitoa((HmiAudit.Status.Query.QueryCount), ADR(HmiAudit.Status.TableConfig[0]) + brsstrlen(ADR(HmiAudit.Status.TableConfig[0]))); + brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR(',"to":19, "visible":false}]')); + + // Hide operator column for the recipe query + IF (HmiAudit.Status.Query.Option = 0) THEN + brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR(', "specColumns": [ {"from":1, "to":1, "visible":true}]')); + ELSIF (HmiAudit.Status.Query.Option = 1) THEN + brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR(', "specColumns": [ {"from":1, "to":1, "visible":false}]')); + END_IF + + brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR('}')); + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/IEC.prg new file mode 100644 index 00000000..a19ea54b --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/IEC.prg @@ -0,0 +1,12 @@ + + + + + AuditMgr.st + AuditMgr.typ + AuditMgr.var + HMIActions.st + ExecuteQuery.st + ChangeConfiguration.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/Package.pkg new file mode 100644 index 00000000..fb45fd84 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/Package.pkg @@ -0,0 +1,10 @@ + + + + + TxtUserF.tmx + TxtRecipeF.tmx + TxtFileF.tmx + TxtBackupF.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtBackupF.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtBackupF.tmx new file mode 100644 index 00000000..5a1a7f0a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtBackupF.tmx @@ -0,0 +1,45 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/SysF/Backup +
    + + + + Sicherungserstellung gestartet {&dev}:{&file} + + + 备份创建开始 {&dev}:{&file} + + + Backup creation started {&dev}:{&file} + + + Bonjour tout le monde! + + + + + Sicherungserstellung abgeschlossen {&dev}:{&file} + + + 备份创建完成 {&dev}:{&file} + + + Backup creation completed {&dev}:{&file} + + + + + Sicherungsinstallation {&dev}:{&file} + + + 备份安装 {&dev}:{&file} + + + Backup installing {&dev}:{&file} + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtFileF.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtFileF.tmx new file mode 100644 index 00000000..a71d003f --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtFileF.tmx @@ -0,0 +1,144 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/SysF/File +
    + + + + Ein Ordner/eine Datei wurde erstellt: {&file} + + + 创建了一个文件夹/文件:{&file} + + + A folder/file was created: {&file} + + + Bonjour tout le monde! + + + + + Ein Ordner/Datei wurde überschrieben: {&file} + + + 文件夹/文件被覆盖:{&file} + + + A folder/file was overwritten: {&file} + + + + + Ein Ordner/Datei wurde hinzugefügt: {&file} + + + 添加了一个文件夹/文件:{&file} + + + A folder/file was added: {&file} + + + + + Ein Ordner/Datei wurde gelöscht: {&file} + + + 文件夹/文件已删除:{&file} + + + A folder/file was deleted: {&file} + + + + + Ein Ordner/Datei wurde umbenannt: {&file} + + + 文件夹/文件已重命名:{&file} + + + A folder/file was renamed: {&file} + + + + + Ein Ordner/Datei wurde gelesen: {&file} + + + 已读取文件夹/文件:{&file} + + + A folder/file was read: {&file} + + + + + Ein Ordner/Datei wurde kopiert: {&file} + + + 复制了一个文件夹/文件:{&file} + + + A folder/file was copied: {&file} + + + + + Ein Ordner/Datei wurde ausgeschnitten: {&file} + + + 文件夹/文件被剪切:{&file} + + + A folder/file was cut: {&file} + + + + + Ein Ordner/Datei wurde zuerst kopiert und dann eingefügt. Ein neuer Ordner/eine neue Datei wurde erstellt. + + + 文件夹/文件首先被复制然后粘贴。 创建了一个新文件夹/文件。 + + + A folder/file was first copied and then pasted. A new folder/file was created. + + + + + Ein Ordner/Datei wurde zuerst kopiert und dann eingefügt. Der vorhandene Ordner/Datei wurde überschrieben. + + + 文件夹/文件首先被复制然后粘贴。 现有文件夹/文件被覆盖。 + + + A folder/file was first copied and then pasted. The existing folder/file was overwritten. + + + + + Ein Ordner/Datei wurde gesperrt: {&file} + + + 文件夹/文件被锁定:{&file} + + + A folder/file was locked: {&file} + + + + + Ein Ordner/Datei wurde entsperrt: {&file} + + + 文件夹/文件已解锁:{&file} + + + A folder/file was unlocked: {&file} + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtRecipeF.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtRecipeF.tmx new file mode 100644 index 00000000..037c9159 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtRecipeF.tmx @@ -0,0 +1,64 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/SysF/Recipe +
    + + + + Start Laden von Rezept {&dev}:{&file} + + + 开始加载配方 {&dev}:{&file} + + + Start Loading Recipe {&dev}:{&file} + + + + + Ende Laden von Rezept + + + 结束加载配方 + + + End Loading Recipe + + + + + Rezept {&dev}:{&file} gespeichert + + + 保存的配方 {&dev}:{&file} + + + Saved Recipe {&dev}:{&file} + + + + + Rezept {&dev}:{&old} umbenannt auf {&new} + + + 将配方 {dev}:{old} 重命名为 {new} + + + Renamed Recipe {&dev}:{&old} to {&new} + + + + + Rezept {&dev}:{&file} gelöscht + + + 已删除配方 {&dev}:{&file} + + + Deleted Recipe {&dev}:{&file} + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtUserF.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtUserF.tmx new file mode 100644 index 00000000..deab74c2 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/CommonText/TxtUserF.tmx @@ -0,0 +1,163 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/SysF/User +
    + + + + Angemeldet + + + 登录 + + + logged in + + + + + Abgemeldet + + + 登出 + + + logged out + + + + + Abgemeldet (Timeout) + + + 已注销(超时) + + + was logged out (timeout) + + + + + Anwender {&usr} zugefügt + + + 添加用户 {&usr} + + + added user {&usr} + + + + + Anwender {&usr} gelöscht + + + 已删除用户 {&usr} + + + deleted user {&usr} + + + + + Anwender {&usr} gesperrt + + + 锁定用户 {&usr} + + + locked user {&usr} + + + + + Anwender {&usr} entsperrt + + + 解锁用户 {&usr} + + + unlocked user {&usr} + + + + + Gesperrt (inkorrektes Passwort) + + + 被锁定(密码错误) + + + got locked (incorrect password) + + + + + Passwort geändert + + + 已更改密码 + + + has changed password + + + + + Falscher Name eingegeben + + + 输入了错误的名称 + + + Incorrect name was entered + + + + + Falsches Passwort eingegeben + + + 输入了错误的密码 + + + Incorrect password was entered + + + + + Neue Rolle {&usr} zugefügt + + + 添加了新角色 {&usr} + + + added new role {&usr} + + + + + Rolle {&usr} gelöscht + + + 已删除角色 {&usr} + + + deleted role {&usr} + + + + + Ungültige Anmeldeinformationen wurden eingegeben + + + 输入的凭据无效 + + + Invalid credentials entered + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/Package.pkg new file mode 100644 index 00000000..a21c82cc --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/Package.pkg @@ -0,0 +1,8 @@ + + + + + TxtEventF.tmx + TxtDatapoints.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/TxtDatapoints.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/TxtDatapoints.tmx new file mode 100644 index 00000000..364a0d30 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/TxtDatapoints.tmx @@ -0,0 +1,20 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/Display/DP +
    + + + + Beispieltemperature + + + 样品温度 + + + Sample Temperature + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/TxtEventF.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/TxtEventF.tmx new file mode 100644 index 00000000..da981758 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/DisplayText/TxtEventF.tmx @@ -0,0 +1,152 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/Display/SysF/Event +
    + + + + {&op} {=$MpAudit/Display/SysF/Event/{&ev}} + + + {&op} {=$MpAudit/Display/SysF/Event/{&ev}} + + + {&op} {=$MpAudit/Display/SysF/Event/{&ev}} + + + + + {=$MpAudit/SysF/User/{&act}} + + + {=$MpAudit/SysF/User/{&act}} + + + {=$MpAudit/SysF/User/{&act}} + + + + + {=$MpAudit/Display/DP/{&dpid}} Wert von {&old|.2f}{&old[UNIT=%s]} auf {&new|.2f}{&new[UNIT=%s]} geändert + + + {=$MpAudit/Display/DP/{&dpid}} 从改变值 {&old|.2f}{&old[UNIT=%s]} 至 {&new|.2f}{&new[UNIT=%s]} + + + {=$MpAudit/Display/DP/{&dpid}} changed value from {&old|.2f}{&old[UNIT=%s]} to {&new|.2f}{&new[UNIT=%s]} + + + + + hat Wert (UserID: {&dpid}) von {&old} auf {&new} geändert + + + 从改变值 (UserID: {&dpid}) 从 {&old} 至 {&new} + + + changed value of (UserID: {&dpid}) from {&old} to {&new} + + + + + {=$MpAudit/Custom/{&typ}} + + + {=$MpAudit/Custom/{&typ}} + + + {=$MpAudit/Custom/{&typ}} + + + + + hat Wert {=$MpAudit/DP/{&dpid}} von {&old|.2f}{&old[UNIT=%s]} auf {&new|.2f}{&new[UNIT=%s]} geändert + + + 从改变值 {=$MpAudit/DP/{&dpid}} 从 {&old|.2f}{&old[UNIT=%s]} 至 {&new|.2f}{&new[UNIT=%s]} + + + changed value of {=$MpAudit/DP/{&dpid}} from {&old|.2f}{&old[UNIT=%s]} to {&new|.2f}{&new[UNIT=%s]} + + + + + Alarm {&name} Status geändert: {&stold} -> {&stnew} + + + 警报 {&name} 改变状态: {&stold} 至 {&stnew} + + + Alarm {&name} changed state: {&stold} to {&stnew} + + + + + {=$MpAudit/SysF/Recipe/{&act}} + + + {=$MpAudit/SysF/Recipe/{&act}} + + + {=$MpAudit/SysF/Recipe/{&act}} + + + + + PackML Zustandsänderung: von {&old} zu {&new} + + + PackML 状态变化: {&old} 至 {&new} + + + PackML State-Change: {&old} to {&new} + + + + + PackML Modusänderung: von {&old} zu {&new} + + + PackML 模式改变: {&old} 至 {&new} + + + PackML Mode-Change: {&old} to {&new} + + + + + PackML Substatus-Änderung: von {&old} zu {&new} + + + PackML 子状态变化: {&old} 至 {&new} + + + PackML Substate-Change: {&old} to {&new} + + + + + mapp File + + + {=$MpAudit/SysF/File/{&act}} + + + {=$MpAudit/SysF/File/{&act}} + + + + + mapp Backup + + + {=$MpAudit/SysF/Backup/{&act}} + + + {=$MpAudit/SysF/Backup/{&act}} + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/Package.pkg new file mode 100644 index 00000000..a21c82cc --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/Package.pkg @@ -0,0 +1,8 @@ + + + + + TxtEventF.tmx + TxtDatapoints.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/TxtDatapoints.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/TxtDatapoints.tmx new file mode 100644 index 00000000..33afcf95 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/TxtDatapoints.tmx @@ -0,0 +1,20 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/DP +
    + + + + Beispieltemperature + + + 样品温度 + + + Sample Temperature + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/TxtEventF.tmx b/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/TxtEventF.tmx new file mode 100644 index 00000000..35083b54 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/ExportedText/TxtEventF.tmx @@ -0,0 +1,152 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + MpAudit/SysF/Event +
    + + + + {&evtime[TIME=%u%R]} {&op} {=$MpAudit/SysF/Event/{&ev}} + + + {&evtime[TIME=%u%R]} {&op} {=$MpAudit/SysF/Event/{&ev}} + + + {&evtime[TIME=%u%R]} {&op} {=$MpAudit/SysF/Event/{&ev}} + + + + + {=$MpAudit/SysF/User/{&act}} + + + {=$MpAudit/SysF/User/{&act}} + + + {=$MpAudit/SysF/User/{&act}} + + + + + hat Wert {=$MpAudit/DP/{&dpid}} von {&old|.2f}{&old[UNIT=%s]} auf {&new|.2f}{&new[UNIT=%s]} geändert + + + 改变的值 {=$MpAudit/DP/{&dpid}} 从 {&old|.2f}{&old[UNIT=%s]} 至 {&new|.2f}{&new[UNIT=%s]} + + + changed value of {=$MpAudit/DP/{&dpid}} from {&old|.2f}{&old[UNIT=%s]} to {&new|.2f}{&new[UNIT=%s]} + + + + + hat Wert (UserID: {&dpid}) von {&old} auf {&new} geändert + + + 改变的值 (UserID: {&dpid}) 从 {&old} 至 {&new} + + + changed value of (UserID: {&dpid}) from {&old} to {&new} + + + + + {=$MpAudit/Custom/{&typ}} + + + {=$MpAudit/Custom/{&typ}} + + + {=$MpAudit/Custom/{&typ}} + + + + + hat Wert {=$MpAudit/DP/{&dpid}} von {&old|.2f}{&old[UNIT=%s]} auf {&new|.2f}{&new[UNIT=%s]} geändert + + + 改变的值 {=$MpAudit/DP/{&dpid}} 从 {&old|.2f}{&old[UNIT=%s]} 至 {&new|.2f}{&new[UNIT=%s]} + + + changed value of {=$MpAudit/DP/{&dpid}} from {&old|.2f}{&old[UNIT=%s]} to {&new|.2f}{&new[UNIT=%s]} + + + + + Alarm {&name} Status geändert: {&stold} -> {&stnew} + + + 警报 {&name} 改变状态: {&stold} 至 {&stnew} + + + Alarm {&name} changed state: {&stold} to {&stnew} + + + + + {=$MpAudit/SysF/Recipe/{&act}} + + + {=$MpAudit/SysF/Recipe/{&act}} + + + {=$MpAudit/SysF/Recipe/{&act}} + + + + + PackML Zustandsänderung: von {&old} zu {&new} + + + PackML 状态变化: {&old} 至 {&new} + + + PackML State-Change: {&old} to {&new} + + + + + PackML Modusänderung: von {&old} zu {&new} + + + PackML 模式改变: {&old} 至 {&new} + + + PackML Mode-Change: {&old} to {&new} + + + + + PackML Substatus-Änderung: von {&old} zu {&new} + + + PackML 子状态变化: {&old} 至 {&new} + + + PackML Substate-Change: {&old} to {&new} + + + + + mapp File + + + {=$MpAudit/SysF/File/{&act}} + + + {=$MpAudit/SysF/File/{&act}} + + + + + mapp Backup + + + {=$MpAudit/SysF/Backup/{&act}} + + + {=$MpAudit/SysF/Backup/{&act}} + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Audit/Package.pkg new file mode 100644 index 00000000..d362bd88 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/Package.pkg @@ -0,0 +1,11 @@ + + + + + AuditMgr + AuditAlarms.tmx + ExportedText + DisplayText + CommonText + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupAlarms.tmx new file mode 100644 index 00000000..7fce0dfd --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupAlarms.tmx @@ -0,0 +1,45 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/Backup/Alarms +
    + + + + Die Sicherung konnte nicht erstellt werden. + + + 无法创建备份。 + + + The backup could not be created. + + + Bonjour tout le monde! + + + + + Das gewünschte Backup konnte nicht installiert werden. + + + 无法安装所需的备份。 + + + The desired backup could not be installed. + + + + + Die automatische Suche nach neuen Updates ist fehlgeschlagen. + + + 自动检查新更新失败。 + + + The automatic check for new updates has failed. + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st new file mode 100644 index 00000000..913b81d0 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st @@ -0,0 +1,268 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: April 12, 2022 +// Description: Task for backup management. +//*********************************************************************** + +PROGRAM _INIT + + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappBackupFiles'), pName := ADR('/')); + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + DirCreate_0(enable := FALSE); + END_IF + + // Initialize mapp function blocks + MpBackupCore_0.MpLink := ADR(gMpLinkBackupCore); + MpBackupCore_0.Enable := TRUE; + MpBackupCore_0(); + + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIBackup); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0.Enable := TRUE; + MpFileManagerUI_0(); + + MpBackupCoreConfig_0.Enable := TRUE; + MpBackupCoreConfig_0.MpLink := ADR(gMpLinkBackupCore); + MpBackupCoreConfig_0.Configuration := ADR(MpBackupConfiguration); + + MpBackupCoreConfig_0.Load := NOT(DiagCpuIsARsim() OR DiagCpuIsSimulated()); + + MpBackupCoreConfig_0(); + + HmiBackup.Status.DeviceDataProvider[0] := '{"value":"mappBackupFiles","text":"CF/PLC"}'; + HmiBackup.Status.DeviceDataProviderVC4[0] := 'CF/PLC'; + + // Restored the retained values to the backup settings + HmiBackup.Parameters.AutomaticBackup := AutomaticBackupRetain; + +END_PROGRAM + +PROGRAM _CYCLIC + CASE BackupState OF + BACKUP_IDLE: + HmiBackup.Status.CreateAllowed := NOT(MpBackupCore_0.Info.Automatic.Backup.InProgress) AND NOT HmiBackup.Status.SimulationActive; + HmiBackup.Status.Busy := FALSE; + IF (MpBackupCore_0.Error = TRUE) THEN + MpBackupCore_0.ErrorReset := FALSE; + BackupState := BACKUP_ERROR; + ELSIF DiagCpuIsARsim() OR DiagCpuIsSimulated() THEN + HmiBackup.Status.CreateAllowed := FALSE; + HmiBackup.Status.RestoreAllowed := FALSE; + BackupState := BACKUP_SIM; + ELSIF (HmiBackup.Commands.Create = TRUE) THEN + HmiBackup.Commands.Create := FALSE; + MpBackupCore_0.Create := TRUE; + HmiBackup.Status.Busy := TRUE; + HmiBackup.Status.CreateAllowed := FALSE; + HmiBackup.Status.RestoreAllowed := FALSE; + MpBackupCore_0.Name := ADR(HmiBackup.Parameters.Name); + BackupState := BACKUP_CREATING; + ELSIF MpBackupCore_0.Info.Automatic.Backup.InProgress THEN + HmiBackup.Status.Busy := TRUE; + HmiBackup.Status.CreateAllowed := FALSE; + HmiBackup.Status.RestoreAllowed := FALSE; + BackupState := BACKUP_AUTOCREATE; + ELSIF (HmiBackup.Commands.Restore = TRUE) THEN + HmiBackup.Commands.Restore := FALSE; + MpBackupCore_0.Install := TRUE; + HmiBackup.Status.Busy := TRUE; + HmiBackup.Status.CreateAllowed := FALSE; + HmiBackup.Status.RestoreAllowed := FALSE; + MpBackupCore_0.Name := ADR(MpFileManagerUIConnect.File.List.Items[HmiBackup.Status.SelectedIndex].Name); + BackupState := BACKUP_RESTORING; + ELSIF (HmiBackup.Commands.Update = TRUE) THEN + HmiBackup.Commands.Update := FALSE; + MpBackupCore_0.Install := TRUE; + HmiBackup.Status.Busy := TRUE; + HmiBackup.Status.CreateAllowed := FALSE; + HmiBackup.Status.RestoreAllowed := FALSE; + MpBackupCore_0.Name := ADR(MpBackupCore_0.Info.Automatic.Update.Name); + BackupState := BACKUP_UPDATING; + ELSIF (HmiBackup.Commands.Delete = TRUE) THEN + MpFileManagerUIConnect.File.List.Items[HmiBackup.Status.SelectedIndex].IsSelected := TRUE; + HmiBackup.Commands.Delete := FALSE; + MpFileManagerUIConnect.File.Delete := TRUE; + BackupState := BACKUP_DELETING; + ELSIF (HmiBackup.Commands.SaveConfig = TRUE) THEN + HmiBackup.Commands.SaveConfig := FALSE; + SaveBackupConfiguration; + MpBackupCoreConfig_0.Save := TRUE; + ELSIF ((HmiBackup.Status.SelectedIndex <> HmiBackup.Status.LastSelectedIndex) AND (MpBackupCore_0.CommandBusy <> TRUE)) THEN + HmiBackup.Status.LastSelectedIndex := HmiBackup.Status.SelectedIndex; + MpBackupCore_0.Name := ADR(MpFileManagerUIConnect.File.List.Items[HmiBackup.Status.SelectedIndex].Name); + MpBackupCore_0.RequestInfo := TRUE; + END_IF + + BACKUP_CREATING: + IF (MpBackupCore_0.CommandDone = TRUE) THEN + MpBackupCore_0.Create := FALSE; + MpBackupCore_0.Install := FALSE; + MpBackupCore_0.RequestInfo := FALSE; + MpFileManagerUIConnect.File.Refresh := TRUE; + BackupState := BACKUP_REFRESHING_LIST; + ELSIF (MpBackupCore_0.Error = TRUE) THEN + BackupState := BACKUP_ERROR; + END_IF + + BACKUP_AUTOCREATE: + IF ( MpBackupCore_0.Info.Automatic.Backup.InProgress = FALSE) THEN + MpBackupCore_0.Install := FALSE; + MpBackupCore_0.RequestInfo := FALSE; + MpFileManagerUIConnect.File.Refresh := TRUE; + BackupState := BACKUP_REFRESHING_LIST; + ELSIF (MpBackupCore_0.Error = TRUE) THEN + BackupState := BACKUP_ERROR; + END_IF + + BACKUP_REFRESHING_LIST: + IF MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_REFRESH THEN + // Wait for the list to be refreshed with the newly created backup file + ELSIF MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_IDLE THEN + HmiBackup.Status.LastSelectedIndex := HmiBackup.Status.LastSelectedIndex + 1; + BackupState := BACKUP_IDLE; + ELSIF (MpBackupCore_0.Error = TRUE) THEN + BackupState := BACKUP_ERROR; + END_IF + + BACKUP_RESTORING: + IF (MpBackupCore_0.CommandDone = TRUE) THEN + MpBackupCore_0.Create := FALSE; + MpBackupCore_0.Install := FALSE; + MpBackupCore_0.RequestInfo := FALSE; + MpFileManagerUIConnect.File.Refresh := TRUE; + BackupState := BACKUP_IDLE; + ELSIF (MpBackupCore_0.Error = TRUE) THEN + BackupState := BACKUP_ERROR; + END_IF + + BACKUP_UPDATING: + IF (MpBackupCore_0.CommandDone = TRUE) THEN + MpBackupCore_0.Create := FALSE; + MpBackupCore_0.Install := FALSE; + MpBackupCore_0.RequestInfo := FALSE; + BackupState := BACKUP_IDLE; + ELSIF (MpBackupCore_0.Error = TRUE) THEN + BackupState := BACKUP_ERROR; + END_IF + + BACKUP_DELETING: + CASE (MpFileManagerUIConnect.MessageBox.Type) OF + mpFILE_MSG_CONFIRM_DELETE: + MpFileManagerUIConnect.MessageBox.Confirm := TRUE; + mpFILE_MSG_OK: + IF (MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_IDLE) THEN + HmiBackup.Status.LastSelectedIndex := HmiBackup.Status.LastSelectedIndex + 1; + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.File.List.Items[i])/SIZEOF(MpFileManagerUIConnect.File.List.Items[0])) - 1) DO + MpFileManagerUIConnect.File.List.Items[i].IsSelected := FALSE; + END_FOR + HmiBackup.Status.SelectedIndex := 0; + MpFileManagerUIConnect.MessageBox.Confirm := FALSE; + BackupState := BACKUP_IDLE; + END_IF + END_CASE + + BACKUP_SIM: + HmiBackup.Status.SimulationActive := TRUE; + + BACKUP_ERROR: + MpBackupCore_0.Create := FALSE; + MpBackupCore_0.Install := FALSE; + IF MpBackupCore_0.Info.Diag.StatusID.ID <> 0 THEN //-1064159486 + HmiBackup.Status.Error := TRUE; + END_IF + IF HmiBackup.Commands.Reset OR (MpBackupCore_0.Info.Diag.StatusID.ID = -1064159486) THEN + HmiBackup.Commands.Reset := FALSE; + MpBackupCore_0.ErrorReset := TRUE; + BackupState := BACKUP_IDLE; + ELSIF ((MpBackupCore_0.Info.Diag.StatusID.ID = 0) AND (MpBackupCore_0.Error = FALSE)) THEN + BackupState := BACKUP_IDLE; + END_IF + END_CASE + + // Reset any errors caused by requesting information + IF EDGEPOS((MpBackupCore_0.Error = TRUE) AND (MpBackupCore_0.RequestInfo = TRUE)) THEN + MpBackupCore_0.ErrorReset := TRUE; + MpBackupCore_0.RequestInfo := FALSE; + brsmemset(ADR(HmiBackup.Status.Info), 0, SIZEOF(HmiBackup.Status.Info)); + END_IF + + MpBackupCore_0.MpLink := ADR(gMpLinkBackupCore); + MpBackupCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); + MpBackupCore_0(); + + IF (MpBackupCore_0.CommandDone = TRUE) AND (MpBackupCore_0.RequestInfo = TRUE) THEN + MpBackupCore_0.RequestInfo := FALSE; + HmiBackup.Status.Info := MpBackupCore_0.Info.Project.Requested; + END_IF + IF EDGEPOS(MpBackupCore_0.Error = FALSE) THEN + MpBackupCore_0.ErrorReset := FALSE; + HmiBackup.Status.Error := FALSE; + END_IF + + HmiBackup.Status.RestoreAllowed := (MpFileManagerUIConnect.File.PathInfo.FolderCount > 0) AND NOT(MpBackupCore_0.Info.Automatic.Backup.InProgress) AND NOT HmiBackup.Status.SimulationActive; + HmiBackup.Status.Update := MpBackupCore_0.Info.Automatic.Update; + HmiBackup.Status.BackupCtrlEnabled := (NOT HmiBackup.Status.SimulationActive); + + // Call all actions + FileManager; + IF NOT DiagCpuIsARsim() THEN + ChangeConfiguration; + END_IF + + FormatDeviceDataProvider; + + + //vc4 + IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN + HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 1 THEN + HmiBackup.Parameters.AutomaticBackup.Device := 'USB'; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 2 THEN + HmiBackup.Parameters.AutomaticBackup.Device := ''; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 3 THEN + HmiBackup.Parameters.AutomaticBackup.Device := ''; + END_IF; + + HmiBackup.Status.Layer.Creating := (BackupState <> BACKUP_CREATING); + HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := NOT HmiBackup.Status.FileOverMax; + HmiBackup.Status.ButtonOperation.OperationCreate := HmiBackup.Status.CreateAllowed; + HmiBackup.Status.ButtonOperation.OperationRestore := HmiBackup.Status.RestoreAllowed; + // HmiBackup.Status.ButtonOperation.OperationDelete := HmiBackup.Status. + // HmiBackup.Status.ButtonOperation.OperationSettings := HmiBackup.Status. + HmiBackup.Status.ButtonOperation.OperationDelete := 1; + HmiBackup.Status.ButtonOperation.OperationSettings := 1; + + + + // Assign MpLinks + MpBackupCore_0.MpLink := ADR(gMpLinkBackupCore); + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIBackup); + MpBackupCoreConfig_0.MpLink := ADR(gMpLinkBackupCore); + + // Call function blocks + MpBackupCore_0(); + MpFileManagerUI_0(); + MpBackupCoreConfig_0(); +END_PROGRAM + +PROGRAM _EXIT + + // Disable the function blocks to unlink the MpLinks + MpBackupCore_0.Enable := FALSE; + MpFileManagerUI_0.Enable := FALSE; + MpBackupCoreConfig_0.Enable := FALSE; + + // Call function blocks + MpBackupCore_0(); + MpFileManagerUI_0(); + MpBackupCoreConfig_0(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ new file mode 100644 index 00000000..47c3d505 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ @@ -0,0 +1,101 @@ +(*Structure types*) + +TYPE + BackupHmiInterfaceType : STRUCT (*HMI interface structure*) + Commands : BackupHmiCommandsType; (*Structure to hold the commands from the HMI*) + Parameters : BackupHmiParametersType; (*Structure to hold the parameters for the HMI*) + Status : BackupHmiStatusType; (*Structure to hold the status information from the HMI*) + END_STRUCT; + BackupHmiCommandsType : STRUCT (*Structure to hold the commands from the HMI*) + Create : BOOL; (*Create a backup*) + Restore : BOOL; (*Restore a backup*) + Update : BOOL; (*Install an update*) + Delete : BOOL; (*Delete a backup*) + SaveConfig : BOOL; (*Save automatic backup configuration settings*) + Reset : BOOL; (*Error reset*) + PageDown : BOOL; (*Page Down*) + PageUp : BOOL; (*Page Up*) + END_STRUCT; + BackupHmiParametersType : STRUCT (*Structure to hold the parameters for the HMI*) + Name : STRING[80] := 'myBackup'; (*Name of the backup*) + AutomaticBackup : AutomaticBackupType; (*Automatic backup settings*) + END_STRUCT; + BackupHmiStatusType : STRUCT (*Structure to hold the status information from the HMI*) + Busy : BOOL; (*Backup is busy executing an action*) + Error : BOOL; (*Error flag*) + CreateAllowed : BOOL; (*Bit to indicate it is allowable to create a backup right now*) + RestoreAllowed : BOOL; (*Bit to indicate it is allowable to restore a backup right now*) + BackupCtrlEnabled : BOOL; (*Disable control panel for Backup with in Sim*) + FileNames : ARRAY[0..49]OF STRING[80]; (*Existing backup file names*) + TimeStamps : ARRAY[0..49]OF DATE_AND_TIME; (*Time stamps for existing backups*) + TimeStampsString : ARRAY[0..49]OF STRING[80]; (*Time stamps for existing backups*) + Size : {REDUND_UNREPLICABLE} ARRAY[0..49]OF UDINT; (*Sizes of existing backup files*) + Info : MpBackupProjectInfoRequestType; (*Project information (name, configuration ID, configuration version)*) + DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for file device dropdown on automatic backup configuration pop-up*) + DeviceDataProviderVC4 : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for file device dropdown on automatic backup configuration pop-up*) + DeviceDataProviderSelectedIndex : USINT; + TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available backups*) + SimulationActive : BOOL; (*Flag for if simulation is active*) + SelectedIndex : USINT; (*Index of the selected backup file*) + LastSelectedIndex : USINT := 255; (*Index of the last selected backup file*) + LastSelectedDeviceIndex : UINT; (*Index of the last selected file device. Compared with MpFileManagerUIConnect.DeviceList.SelectedIndex*) + FileOverMax : BOOL; (*Active when more than 50 items detected*) + Update : MpBackupAutoUpdateInfoType; + Layer : BackupHmiStatusLayerType; + ButtonOperation : BackupHmiStatusButtonOperatiType; + END_STRUCT; + BackupHmiStatusButtonOperatiType : STRUCT + VisibilityPageUpDown : USINT; + OperationCreate : USINT; + OperationDelete : USINT; + OperationRestore : USINT; + OperationSettings : USINT; + END_STRUCT; + BackupHmiStatusLayerType : STRUCT + Creating : USINT; + Create : USINT; + Delete : USINT; + Restore : USINT; + Settings : USINT; + END_STRUCT; + AutomaticBackupType : STRUCT (*Automatic backup settings*) + Enable : BOOL; (*Enable automatic backup feature*) + Prefix : STRING[50]; (*Name prefix for each automatic backup file*) + Device : STRING[255]; (*File device to store the automatic backup*) + Mode : AutomaticBackupModeType; (*Automatic backup time interval*) + OverwriteOldest : MpBackupOverwriteOldestType; (*Defines whether older backups should be deleted or not*) + END_STRUCT; + AutomaticBackupModeType : STRUCT (*Automatic backup time interval*) + Interval : AutomaticBackupIntervalEnum; (*Day interval (daily, or a specfiic day of the week)*) + Hour : USINT; (*Time (hour)*) + Minute : USINT; (*Time (minutes)*) + END_STRUCT; +END_TYPE + +(*Enumerations*) + +TYPE + AutomaticBackupIntervalEnum : + ( (*Selection for how often to automatically create a backup*) + BACKUP_EVERYDAY, (*Every day*) + BACKUP_MONDAY, (*Every Monday*) + BACKUP_TUESDAY, (*Every Tuesday*) + BACKUP_WEDNESDAY, (*Every Wednesday*) + BACKUP_THURSDAY, (*Every Thursday*) + BACKUP_FRIDAY, (*Every Friday*) + BACKUP_SATURDAY, (*Every Saturday*) + BACKUP_SUNDAY (*Every Sunday*) + ); + BackupStateEnum : + ( (*States for backup state machine*) + BACKUP_IDLE, (*Wait state*) + BACKUP_CREATING, (*Creating a backup*) + BACKUP_AUTOCREATE, (*Autobackup in progress*) + BACKUP_REFRESHING_LIST, (*Refreshing backup list*) + BACKUP_RESTORING, (*Restoring a backup*) + BACKUP_UPDATING, (*Installing a new version*) + BACKUP_DELETING, (*Deleting a backup*) + BACKUP_SIM, (*CPU in simulation mode, don't do anything*) + BACKUP_ERROR (*Error state*) + ); +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var new file mode 100644 index 00000000..87b283f5 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var @@ -0,0 +1,30 @@ +(*Function Blocks*) +VAR + MpBackupCore_0 : MpBackupCore; (*MpBackupCore instance*) + MpBackupCoreConfig_0 : MpBackupCoreConfig; (*MpBackupCoreConfig instance*) + MpFileManagerUI_0 : MpFileManagerUI := (UISetup:=(FileListSize:=50)); (*MpFileManagerUI instance*) + DirCreate_0 : DirCreate; (*DirCreate instance*) +END_VAR +(*Constants*) +VAR CONSTANT + MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 1; (*Maximum number of file devices *) +END_VAR +(*Structure Types*) +VAR + MpBackupConfiguration : MpBackupCoreConfigType; (*MpBackup configuration*) + MpFileManagerUIConnect : MpFileManagerUIConnectType := (DeviceList:=(DeviceNames:=['mappBackupFiles','USB1',8('')])); (*MpFile connection to the HMI*) + HmiBackup : BackupHmiInterfaceType; (*HMI interface structure*) +END_VAR +(*Enumerations*) +VAR + BackupState : BackupStateEnum; (*States for backup state machine*) +END_VAR +(*Variables*) +VAR + i : USINT; (*Index for loops*) + DeviceCount : USINT; (*Counter for available file devices*) + ItemCount : UDINT; +END_VAR +VAR RETAIN + AutomaticBackupRetain : AutomaticBackupType; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st new file mode 100644 index 00000000..e6fd70f5 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st @@ -0,0 +1,25 @@ +ACTION ChangeConfiguration: + + MpBackupCoreConfig_0.MpLink := ADR(gMpLinkBackupCore); + MpBackupCoreConfig_0.Configuration := ADR(MpBackupConfiguration); + IF (MpBackupCoreConfig_0.Error = TRUE) THEN + // Loading currently always throws an error about failed to write Auditing.Type + IF (MpBackupCoreConfig_0.StatusID = mpBACKUP_ERR_CONFIG_LOAD) THEN + LoadBackupConfiguration; + END_IF + + MpBackupCoreConfig_0.Load := FALSE; + MpBackupCoreConfig_0.Save := FALSE; + MpBackupCoreConfig_0.ErrorReset := TRUE; + END_IF + MpBackupCoreConfig_0(); + MpBackupCoreConfig_0.ErrorReset := FALSE; + IF (MpBackupCoreConfig_0.CommandDone = TRUE) THEN + IF (MpBackupCoreConfig_0.Load = TRUE) THEN + LoadBackupConfiguration; + END_IF + MpBackupCoreConfig_0.Load := FALSE; + MpBackupCoreConfig_0.Save := FALSE; + END_IF + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st new file mode 100644 index 00000000..bad11ef4 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st @@ -0,0 +1,137 @@ +ACTION FormatDeviceDataProvider: + + // Select CF device if USB device is not available + FOR i := 0 TO ((SIZEOF(gUSBAvailable) / SIZEOF(gUSBAvailable[0])) - 1) DO + IF gUSBAvailable[i] THEN + HmiBackup.Status.DeviceDataProvider[i + 1] := '{"value":"USB'; + brsitoa(i + 1, ADR(HmiBackup.Status.DeviceDataProvider[i + 1]) + brsstrlen(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]))); + brsstrcat(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), ADR('","text":"USB')); + brsitoa(i + 1, ADR(HmiBackup.Status.DeviceDataProvider[i + 1]) + brsstrlen(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]))); + brsstrcat(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), ADR('"}')); + MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1] := 'USB'; + brsitoa(i + 1, ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]) + brsstrlen(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]))); + HmiBackup.Status.DeviceDataProviderVC4[i + 1] := 'USB'; + ELSE + brsmemset(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), 0, SIZEOF(HmiBackup.Status.DeviceDataProvider[i + 1])); + brsmemset(ADR(HmiBackup.Status.DeviceDataProviderVC4[i + 1]), 0, SIZEOF(HmiBackup.Status.DeviceDataProviderVC4[i + 1])); + brsmemset(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]), 0, SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1])); + END_IF + END_FOR + + // Configure visible device list + HmiBackup.Status.TableConfig[0] := '{ "specRows": [{"from":'; + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO + IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN + DeviceCount := i + 1; + END_IF + END_FOR + brsitoa((DeviceCount), ADR(HmiBackup.Status.TableConfig[0]) + brsstrlen(ADR(HmiBackup.Status.TableConfig[0]))); + brsstrcat(ADR(HmiBackup.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); + + // Configure visible file list + ItemCount := MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount; + HmiBackup.Status.TableConfig[1] := '{ "specRows": [{"from":'; + brsitoa((ItemCount), ADR(HmiBackup.Status.TableConfig[1]) + brsstrlen(ADR(HmiBackup.Status.TableConfig[1]))); + brsstrcat(ADR(HmiBackup.Status.TableConfig[1]), ADR(',"to":50, "visible":false}]}')); + + HmiBackup.Status.FileOverMax := ItemCount > (SIZEOF(MpFileManagerUIConnect.File.List.Items)/SIZEOF(MpFileManagerUIConnect.File.List.Items[0])); + +END_ACTION + +ACTION SaveBackupConfiguration: + + MpBackupConfiguration.AutomaticBackup.Enabled := HmiBackup.Parameters.AutomaticBackup.Enable; + MpBackupConfiguration.AutomaticBackup.NamePrefix := HmiBackup.Parameters.AutomaticBackup.Prefix; + MpBackupConfiguration.AutomaticBackup.DeviceName := HmiBackup.Parameters.AutomaticBackup.Device; + MpBackupConfiguration.AutomaticBackup.OverwriteOldest := HmiBackup.Parameters.AutomaticBackup.OverwriteOldest; + MpBackupConfiguration.AutomaticBackup.Mode.Time := UDINT_TO_TOD((((USINT_TO_UDINT(HmiBackup.Parameters.AutomaticBackup.Mode.Hour) * 60) + HmiBackup.Parameters.AutomaticBackup.Mode.Minute) * 60) * 1000); + CASE HmiBackup.Parameters.AutomaticBackup.Mode.Interval OF + BACKUP_EVERYDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_DAILY; + BACKUP_MONDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_MONDAY; + BACKUP_TUESDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_TUESDAY; + BACKUP_WEDNESDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_WEDNESDAY; + BACKUP_THURSDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_THURSDAY; + BACKUP_FRIDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_FRIDAY; + BACKUP_SATURDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_SATURDAY; + BACKUP_SUNDAY: + MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_WEEKLY; + MpBackupConfiguration.AutomaticBackup.Mode.Day := mpBACKUP_DAY_SUNDAY; + END_CASE + + // Save current backup setings to retain variable + AutomaticBackupRetain := HmiBackup.Parameters.AutomaticBackup; + + END_ACTION + +ACTION LoadBackupConfiguration: + + HmiBackup.Parameters.AutomaticBackup.Enable := MpBackupConfiguration.AutomaticBackup.Enabled; + HmiBackup.Parameters.AutomaticBackup.Prefix := MpBackupConfiguration.AutomaticBackup.NamePrefix; + HmiBackup.Parameters.AutomaticBackup.Device := MpBackupConfiguration.AutomaticBackup.DeviceName; + HmiBackup.Parameters.AutomaticBackup.OverwriteOldest := MpBackupConfiguration.AutomaticBackup.OverwriteOldest; + HmiBackup.Parameters.AutomaticBackup.Mode.Hour := UDINT_TO_USINT(TOD_TO_UDINT(MpBackupConfiguration.AutomaticBackup.Mode.Time) / 1000 / 60 / 60); + HmiBackup.Parameters.AutomaticBackup.Mode.Minute := UDINT_TO_USINT(TOD_TO_UDINT(MpBackupConfiguration.AutomaticBackup.Mode.Time) / 1000 / 60) - (HmiBackup.Parameters.AutomaticBackup.Mode.Hour * 60); + CASE MpBackupConfiguration.AutomaticBackup.Mode.Interval OF + mpBACKUP_INTERVAL_DAILY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_EVERYDAY; + mpBACKUP_INTERVAL_WEEKLY: + CASE MpBackupConfiguration.AutomaticBackup.Mode.Day OF + mpBACKUP_DAY_MONDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_MONDAY; + mpBACKUP_DAY_TUESDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_TUESDAY; + mpBACKUP_DAY_WEDNESDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_WEDNESDAY; + mpBACKUP_DAY_THURSDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_THURSDAY; + mpBACKUP_DAY_FRIDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_FRIDAY; + mpBACKUP_DAY_SATURDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_SATURDAY; + mpBACKUP_DAY_SUNDAY: + HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_SUNDAY; + END_CASE + END_CASE +END_ACTION + +ACTION FileManager: + + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIBackup); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0(); + FOR i := 0 TO ((SIZEOF(HmiBackup.Status.FileNames)/SIZEOF(HmiBackup.Status.FileNames[0])) - 1) DO + HmiBackup.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; + HmiBackup.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; + HmiBackup.Status.Size[i] := MpFileManagerUIConnect.File.List.Items[i].Size; + + HmiBackup.Status.TimeStampsString[i] := DT_TO_STRING(HmiBackup.Status.TimeStamps[i]); + IF HmiBackup.Status.FileNames[i] <> '' THEN + HmiBackup.Status.TimeStampsString[i] := RIGHT(HmiBackup.Status.TimeStampsString[i], 19); + ELSE + HmiBackup.Status.TimeStampsString[i] := ''; + END_IF; + END_FOR + + IF ((MpFileManagerUIConnect.DeviceList.SelectedIndex <> HmiBackup.Status.LastSelectedDeviceIndex) AND (MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_IDLE)) THEN + HmiBackup.Status.LastSelectedDeviceIndex := MpFileManagerUIConnect.DeviceList.SelectedIndex; + IF HmiBackup.Status.LastSelectedIndex >= MpFileManagerUIConnect.File.PathInfo.FolderCount THEN + HmiBackup.Status.SelectedIndex := 0; + ELSE + HmiBackup.Status.LastSelectedIndex := HmiBackup.Status.LastSelectedIndex + 1; + END_IF + END_IF + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/IEC.prg new file mode 100644 index 00000000..33f882c6 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/IEC.prg @@ -0,0 +1,11 @@ + + + + + BackupMgr.st + BackupMgr.typ + BackupMgr.var + HMIActions.st + ChangeConfiguration.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Backup/Package.pkg new file mode 100644 index 00000000..6c7427ba --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/Package.pkg @@ -0,0 +1,8 @@ + + + + + BackupMgr + BackupAlarms.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/File/FileAlarms.tmx new file mode 100644 index 00000000..8095fd8c --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileAlarms.tmx @@ -0,0 +1,42 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/File/Alarms +
    + + + + FileDevice wurde nicht gefunden + + + 未找到文件设备 + + + FileDevice not found + + + + + Datei/Ordner existiert bereits + + + 该文件夹/文件已存在 + + + File/Folder already exists + + + + + Genereller Fehler des Dateisystems + + + 文件系统错误 + + + General error in file system + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st new file mode 100644 index 00000000..718a25a0 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st @@ -0,0 +1,305 @@ +ACTION FIFOOperation: + + R_TRIG_CheckStatus(CLK := (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CHANGE_DIR) OR + (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CHANGE_DEVICE) OR + (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_CREATE)); + + IF R_TRIG_CheckStatus.Q OR TON_ScanFolder.Q THEN + HmiFile.Commands.CheckFolder := HmiFile.Parameters.Fifo.Enable; + END_IF + + // FIFO dropdown device should be same selected device + IF EDGEPOS(HmiFile.Status.FIFOLayerStatus = DISPLAY) THEN + HmiFile.Parameters.Fifo.SelectedDevice := MpFileManagerUIConnect.DeviceList.SelectedIndex; + END_IF; + + //device name declare + HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Parameters.Fifo.SelectedDevice]; + + + IF HmiFile.Status.FIFOLayerStatus = DISPLAY THEN + brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO + IF (HmiFile.Parameters.Fifo.DeviceName = MpFileManagerUIConnect.DeviceList.DeviceNames[i]) AND HmiFile.Parameters.Fifo.Enable THEN + HmiFile.Status.FifoSelect[i] := 1; + EXIT; + END_IF + END_FOR + END_IF + + + // Autodelete oldest files based on scanning option + CASE HmiFile.Status.DeleteStep OF + FILE_DISABLED: + IF (HmiFile.Parameters.Fifo.Enable = TRUE) THEN + MpFileManagerUI_FIFO.Enable := TRUE; + HmiFile.Status.DeleteStep := FILE_DELETE_WAIT; + ELSE + brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); + END_IF + + FILE_DELETE_WAIT: + IF (HmiFile.Parameters.Fifo.Enable = TRUE) THEN + // Wait for check the correct device selection + TON_ScanFolder.IN := TRUE; + HmiFile.Status.FifoConfigEnable := TRUE; + IF TON_ScanFolder.Q THEN + TON_ScanFolder.IN := FALSE; + HmiFile.Status.FifoConfigEnable := FALSE; + Fifo_Count := 0; + HmiFile.Status.DeleteStep := FILE_SCAN_FOLDER_WAIT; + END_IF + ELSE + HmiFile.Status.DeleteStep := FILE_DISABLED; + END_IF + + FILE_SCAN_FOLDER_WAIT: + // Wait for check for old files command + IF (HmiFile.Commands.CheckFolder = TRUE) AND ((MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) OR (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_ERROR)) THEN + HmiFile.Commands.CheckFolder := FALSE; + HmiFile.Status.DeleteStep := FILE_SELECT_DEVICE; + HmiFile.Parameters.OldSortOrder := MpFileManagerUIConnect_FIFO.File.SortOrder; + END_IF + + FILE_SELECT_DEVICE: + // + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames[0])) - 1) DO + IF HmiFile.Parameters.Fifo.DeviceName = MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames[i] THEN + MpFileManagerUIConnect_FIFO.DeviceList.SelectedIndex := i; + EXIT; + END_IF + END_FOR + IF (HmiFile.Parameters.Fifo.DeviceName <> MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames[MpFileManagerUIConnect_FIFO.DeviceList.SelectedIndex]) THEN + // file device not found + HmiFile.Status.DeleteStep := FILE_DELETE_WAIT; + ELSIF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + MpFileManagerUIConnect_FIFO.File.Refresh := TRUE; + HmiFile.Status.DeleteStep := FILE_REFRESH; + END_IF + + FILE_REFRESH: + IF ((MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) AND (MpFileManagerUIConnect_FIFO.File.Refresh = FALSE)) THEN + HmiFile.Status.DeleteStep := FILE_SORT_BY_DATE; + END_IF + + FILE_SORT_BY_DATE: + // Sort by date so the oldest files are at the end + IF (MpFileManagerUIConnect_FIFO.File.SortOrder <> mpFILE_SORT_BY_MOD_TIME_DESC) THEN + MpFileManagerUIConnect_FIFO.File.SortOrder := mpFILE_SORT_BY_MOD_TIME_DESC; + ELSIF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + MpFileManagerUIConnect_FIFO.File.Refresh := TRUE; + MpFileManagerUI_FIFO(); + END_IF + + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_REFRESH) AND (MpFileManagerUIConnect_FIFO.File.Refresh = FALSE) THEN + HmiFile.Status.DeleteStep := FILE_SORT_BY_DATE_WAIT; + END_IF + + FILE_SORT_BY_DATE_WAIT: + // Wait for the file manager to complete sorting change + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + HmiFile.Status.DeleteStep := FILE_GO_TO_END; + END_IF + + FILE_GO_TO_END: + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items)/SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0])) - 1) DO + MpFileManagerUIConnect_FIFO.File.List.Items[i].IsSelected := FALSE; + END_FOR + IF (MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount >= (SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items)/SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0]))) THEN + // Page down until we get to the end, then start deleting + IF (MpFileManagerUIConnect_FIFO.File.List.RangeStart <> 0) THEN + MpFileManagerUIConnect_FIFO.File.List.PageDown := TRUE; + HmiFile.Status.DeleteStep := FILE_GO_TO_END_1; + ELSE + Fifo_Count := 0; + HmiFile.Status.DeleteStep := FILE_CHECK_FOR_FILTER; + END_IF + ELSE + Fifo_Count := 0; + HmiFile.Status.DeleteStep := FILE_CHECK_FOR_FILTER; + END_IF + END_IF + + FILE_GO_TO_END_1: + TON_Wait.IN := (MpFileManagerUIConnect_FIFO.File.List.PageDown = FALSE); + TON_Wait.PT := T#200ms; + IF (TON_Wait.Q = TRUE) THEN + TON_Wait.IN := FALSE; + Fifo_Count := Fifo_Count + 1; + // in case we are stuck trying to get to the last page + HmiFile.Status.DeleteStep := SEL(Fifo_Count > 10, FILE_GO_TO_END, FILE_DELETE_WAIT); + END_IF + TON_Wait(); + + FILE_CHECK_FOR_FILTER: + // Check which delete filter is active + CASE HmiFile.Parameters.Fifo.FifoType OF + FILE_FIFO_NUM_OF_FILES: + HmiFile.Status.DeleteStep := SEL(MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount <= HmiFile.Parameters.Fifo.MaxNumberOfFiles, FILE_SELECT_OLDEST_FILES_0, FILE_DELETE_WAIT); + + FILE_FIFO_SIZE_OF_FOLDER: + CurrentIndex := 0; + HmiFile.Status.DeleteStep := FILE_CALC_FOLDER_SIZE; + END_CASE + + FILE_SELECT_OLDEST_FILES_0: + // Scan and select all file over the filter setting + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + IF MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount > 1 THEN + MpFileManagerUIConnect_FIFO.File.MultiSelect := TRUE; + END_IF + HmiFile.Status.AutoDeleteSelected := 0; + // start from the first file to delete and select everything after + // e.g. if there are 100 files and we want to keep 60 files around then we'd start at 60 + 0 MOD 50 = 10 and go to index 49 + FileNameArraySize := SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items)/SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0]); + IF (HmiFile.Parameters.Fifo.MaxNumberOfFiles >= FileNameArraySize) THEN + StartIndex := FileNameArraySize - (UDINT_TO_USINT(MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount - HmiFile.Parameters.Fifo.MaxNumberOfFiles + MpFileManagerUIConnect_FIFO.File.PathInfo.FolderCount) MOD FileNameArraySize); + ELSE + StartIndex := UDINT_TO_USINT(HmiFile.Parameters.Fifo.MaxNumberOfFiles + MpFileManagerUIConnect_FIFO.File.PathInfo.FolderCount) MOD FileNameArraySize; + END_IF + IF (StartIndex = FileNameArraySize) THEN + StartIndex := 0; + END_IF + + IF (StartIndex > 0) THEN + FOR i := 0 TO (StartIndex - 1) DO + MpFileManagerUIConnect_FIFO.File.List.Items[i].IsSelected := FALSE; + END_FOR + END_IF + + FOR i := StartIndex TO (FileNameArraySize - 1) DO + MpFileManagerUIConnect_FIFO.File.List.Items[i].IsSelected := FALSE; + IF (MpFileManagerUIConnect_FIFO.File.List.Items[i].ItemType <> mpFILE_ITEM_TYPE_NONE) AND NOT MpFileManagerUIConnect_FIFO.File.List.Items[i].IsFolder THEN + MpFileManagerUIConnect_FIFO.File.List.Items[i].IsSelected := TRUE; + HmiFile.Status.AutoDeleteSelected := HmiFile.Status.AutoDeleteSelected + 1; + END_IF + END_FOR + + IF (HmiFile.Status.AutoDeleteSelected > 0) THEN + HmiFile.Status.DeleteStep := FILE_DELETE_FILES; + ELSE + MpFileManagerUIConnect_FIFO.File.MultiSelect := FALSE; + HmiFile.Status.DeleteStep := FILE_RESET_SORT_BY; + END_IF + END_IF + + FILE_CALC_FOLDER_SIZE: + IF (CurrentIndex = 0) THEN + HmiFile.Status.FolderSize := 0; + END_IF + DirRead_FolderSize.enable := TRUE; + DirRead_FolderSize.pDevice := ADR(HmiFile.Parameters.Fifo.DeviceName); + DirRead_FolderSize.pPath := 0; + DirRead_FolderSize.entry := CurrentIndex; + DirRead_FolderSize.option := fiFILE; + DirRead_FolderSize.pData := ADR(DirectoryData); + DirRead_FolderSize.data_len := SIZEOF(DirectoryData); + DirRead_FolderSize(); + IF ((DirRead_FolderSize.status = ERR_OK) OR (DirRead_FolderSize.status = fiERR_NO_MORE_ENTRIES)) THEN + HmiFile.Status.FolderSize := HmiFile.Status.FolderSize + UDINT_TO_REAL(DirectoryData.Filelength); + CurrentIndex := CurrentIndex + 1; + IF (CurrentIndex >= MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount) THEN + HmiFile.Status.DeleteStep := SEL(HmiFile.Status.FolderSize > HmiFile.Parameters.Fifo.MaxFolderSize*1024, FILE_RESET_SORT_BY, FILE_SELECT_OLDEST_FILES_1); + END_IF + END_IF + + FILE_SELECT_OLDEST_FILES_1: + // Scan and select all file over the filter setting + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + FOR i:=0 TO ((SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items)/SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0])) - 1) DO + MpFileManagerUIConnect_FIFO.File.List.Items[i].IsSelected := FALSE; + END_FOR + FOR i:=0 TO ((SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items)/SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0])) - 1) DO + IF ((MpFileManagerUIConnect_FIFO.File.List.Items[i].Size = 0) OR + ((HmiFile.Parameters.Fifo.MaxFolderSize*1024) > (HmiFile.Status.FolderSize - UDINT_TO_REAL(MpFileManagerUIConnect_FIFO.File.List.Items[i].Size)))) THEN + EXIT; + END_IF + MpFileManagerUIConnect_FIFO.File.List.Items[i].IsSelected := TRUE; + HmiFile.Status.FolderSize := HmiFile.Status.FolderSize - UDINT_TO_REAL(MpFileManagerUIConnect_FIFO.File.List.Items[i].Size); + END_FOR + MpFileManagerUIConnect_FIFO.File.MultiSelect := (i > 1); + HmiFile.Status.DeleteStep := FILE_DELETE_FILES; + END_IF + + FILE_DELETE_FILES: + // Set command to delete the selected oldest files + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + MpFileManagerUIConnect_FIFO.File.Delete := TRUE; + END_IF + + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_DELETE) THEN + HmiFile.Status.DeleteStep := FILE_CONFIRM_DELETE; + END_IF + + FILE_CONFIRM_DELETE: + // Confirm the file delete + IF (MpFileManagerUIConnect_FIFO.MessageBox.Type = mpFILE_MSG_CONFIRM_DELETE) THEN + MpFileManagerUIConnect_FIFO.MessageBox.Confirm := TRUE; + ELSIF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) AND (MpFileManagerUIConnect_FIFO.MessageBox.LayerStatus = 1) THEN + HmiFile.Status.DeleteStep := FILE_CONFIRM_DELETE_WAIT; + END_IF + + FILE_CONFIRM_DELETE_WAIT: + IF ((MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_REFRESH) OR (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE)) THEN + MpFileManagerUIConnect_FIFO.File.MultiSelect := FALSE; + IF (HmiFile.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER) THEN + HmiFile.Status.DeleteStep := SEL((HmiFile.Status.FolderSize > (HmiFile.Parameters.Fifo.MaxFolderSize*1024)), FILE_RESET_SORT_BY, FILE_GO_TO_END); + ELSE + // if more files need to be deleted then go back to select the oldest files + HmiFile.Status.DeleteStep := SEL((MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount > HmiFile.Parameters.Fifo.MaxNumberOfFiles), FILE_RESET_SORT_BY, FILE_GO_TO_END); + END_IF + END_IF + + FILE_RESET_SORT_BY: + // Restore old sort order + IF (MpFileManagerUIConnect_FIFO.File.SortOrder <> HmiFile.Parameters.OldSortOrder) THEN + MpFileManagerUIConnect_FIFO.File.SortOrder := HmiFile.Parameters.OldSortOrder; + ELSIF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + MpFileManagerUIConnect_FIFO.File.Refresh := TRUE; + HmiFile.Status.DeleteStep := FILE_RESET_SORT_BY_WAIT; + END_IF + + FILE_RESET_SORT_BY_WAIT: + // Wait for file manager to complete restoring previous sorting mode + IF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_REFRESH) OR (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN + HmiFile.Status.DeleteStep := FILE_DELETE_WAIT; + IF (MpFileManagerUIConnect_FIFO.MessageBox.Type = mpFILE_MSG_BUSY) THEN + MpFileManagerUIConnect_FIFO.MessageBox.Confirm := TRUE; + END_IF + END_IF + END_CASE + + + + // FIFO objects manage + IF HmiFile.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES THEN + HmiFile.Status.FIFOLayerObjects.MaxFolderSizeVisiblity := HIDE; + HmiFile.Status.FIFOLayerObjects.MaxNumberOfFilesVisiblity := DISPLAY; + + ELSIF HmiFile.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER THEN + HmiFile.Status.FIFOLayerObjects.MaxFolderSizeVisiblity := DISPLAY; + HmiFile.Status.FIFOLayerObjects.MaxNumberOfFilesVisiblity := HIDE; + + ELSE + HmiFile.Status.FIFOLayerObjects.MaxFolderSizeVisiblity := HIDE; + HmiFile.Status.FIFOLayerObjects.MaxNumberOfFilesVisiblity := HIDE; + END_IF + + + // Save current archive setings to retain variable + FifoSettingsRetain := HmiFile.Parameters.Fifo; + + // Timer to scan file device in intervals + TON_ScanFolder(PT := DINT_TO_TIME(HmiFile.Parameters.Fifo.ScanInterval * 60000)); + + MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames[0] := HmiFile.Parameters.Fifo.DeviceName; + MpFileManagerUI_FIFO.UIConnect := ADR(MpFileManagerUIConnect_FIFO); + // Assign MpLink + MpFileManagerUI_FIFO.MpLink := ADR(gMpLinkFileManagerUIFile_FIFO); + + MpFileManagerUI_FIFO.UISetup.FileListSize := SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items) / SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0]); + // Call function block + MpFileManagerUI_FIFO(); + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st new file mode 100644 index 00000000..c6b8ce36 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st @@ -0,0 +1,125 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: April 12, 2022 +// Description: Task for file management +//*********************************************************************** + +PROGRAM _INIT + + // Inititialize mapp function block + MpFileManagerUIConnect.DeviceList.DeviceNames[0] := 'mappRecipeFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[1] := 'mappAuditFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[2] := 'mappReportFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[3] := 'mappDataFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[4] := 'mappBackupFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[5] := 'mappAlarmXFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[6] := 'mappUserXFiles'; + MpFileManagerUI_0.Enable := TRUE; + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0.UISetup.FileListSize := SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]); + MpFileManagerUI_0(); + + HmiFile.Status.DeleteStep := FILE_DISABLED; + + // Initialize FIFO feature + HmiFile.Status.FifoConfigEnable := TRUE; + IF HmiFile.Parameters.Fifo.DeviceName = '' THEN + HmiFile.Parameters.Fifo.DeviceName := 'mappDataFiles'; + END_IF + + // MaxFolderSize is in kB + IF HmiFile.Parameters.Fifo.MaxFolderSize = 0 THEN + HmiFile.Parameters.Fifo.MaxFolderSize := 1000; + END_IF + + IF HmiFile.Parameters.Fifo.MaxNumberOfFiles = 0 THEN + HmiFile.Parameters.Fifo.MaxNumberOfFiles := 20; + END_IF + + // ScanInterval is in minutes + IF HmiFile.Parameters.Fifo.ScanInterval = 0 THEN + HmiFile.Parameters.Fifo.ScanInterval := 60; + END_IF + + + // Initialize which folders should exist + PathCheck.DeviceList := MpFileManagerUIConnect.DeviceList; + + PathCheck.PrgName[0] := 'RecipeMgr'; + PathCheck.PrgName[1] := 'AuditMgr'; + PathCheck.PrgName[2] := 'ReportMgr'; + PathCheck.PrgName[3] := 'DataMgr'; + PathCheck.PrgName[4] := 'BackupMgr'; + PathCheck.PrgName[5] := 'AlarmMgr'; + PathCheck.PrgName[6] := 'UserXMgr'; + PathCheck.PrgName[7] := 'UsbMgr'; + PathCheck.PrgName[8] := 'UsbMgr'; + + PathCheck.Folder[0] := 'Recipe'; + PathCheck.Folder[1] := 'Audit'; + PathCheck.Folder[2] := 'Report'; + PathCheck.Folder[3] := 'Data'; + PathCheck.Folder[4] := 'Backup'; + PathCheck.Folder[5] := 'AlarmX'; + PathCheck.Folder[6] := 'UserX'; + + HmiFile.Status.DeviceDataProvider[0] := 'mappRecipeFiles'; + HmiFile.Status.DeviceDataProvider[1] := 'mappAuditFiles'; + HmiFile.Status.DeviceDataProvider[2] := 'mappReportFiles'; + HmiFile.Status.DeviceDataProvider[3] := 'mappDataFiles'; + HmiFile.Status.DeviceDataProvider[4] := 'mappBackupFiles'; + HmiFile.Status.DeviceDataProvider[5] := 'mappAlarmXFiles'; + HmiFile.Status.DeviceDataProvider[6] := 'mappUserXFiles'; + + // Calculate offset for potential additional USB devices + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO + IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN + USBOffset := USBOffset + 1; + END_IF + END_FOR + + // Restored the retained values to the FIFO settings + HmiFile.Parameters.Fifo := FifoSettingsRetain; + + // if the system has been opened just now + HMIActions_Init; + +END_PROGRAM + +PROGRAM _CYCLIC + + // Call all actions + FormatDeviceDataProvider; + FileManager; + FIFOOperation; + + // Error reset + IF NOT MpFileManagerUI_0.Error THEN + MpFileManagerUI_0.ErrorReset := FALSE; + END_IF + + // Assign MpLinks and address references + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_FIFO.MpLink := ADR(gMpLinkFileManagerUIFile_FIFO); + + // Call function block + MpFileManagerUI_0(); + MpFileManagerUI_FIFO(); + +END_PROGRAM + +PROGRAM _EXIT + + // Disable the function blocls to unlink the MpLink + MpFileManagerUI_0.Enable := FALSE; + MpFileManagerUI_FIFO.Enable := FALSE; + + // Call function block + MpFileManagerUI_0(); + MpFileManagerUI_FIFO(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ new file mode 100644 index 00000000..2e91b00d --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ @@ -0,0 +1,115 @@ +(*Structure types*) + +TYPE + FileHmiInterfaceType : STRUCT (*Structure to hold commands, parameters and status from the HMI*) + Commands : FileHmiCommandsType; (*Structure to hold the commands from the HMI*) + Parameters : FileHmiParametersType; (*Structure to hold parameters for the mapp View HMI*) + Status : FileHmiStatusType; (*Structure to hold status information from the mapp View HMI*) + END_STRUCT; + FileHmiCommandsType : STRUCT (*Structure to hold the commands from the HMI*) + Delete : BOOL; (*Delete file*) + FolderUp : BOOL; (*Move back/up a folder*) + EnterFolder : BOOL; (*Move forward/down a folder*) + CheckFolder : BOOL; (*Run the FIFO check to determine if old files should be deleted*) + FileList : FileHmiCommandsFileListType; + END_STRUCT; + FileHmiCommandsFileListType : STRUCT + PageDown : BOOL; + PageUp : BOOL; + StepDown : BOOL; + StepUp : BOOL; + Clicked : BOOL; + END_STRUCT; +END_TYPE + +(**) + +TYPE + FileHmiParametersType : STRUCT (*Structure to hold parameters for the mapp View HMI*) + OldSortOrder : MpFileManagerUISortOrderEnum; (*Previous sord order*) + Fifo : FileHmiParaFifoType; (*Parameters for the FIFO feature (first-in-first-out)*) + END_STRUCT; + FileHmiStatusType : STRUCT (*Structure to hold status information from the mapp View HMI*) + FileNames : ARRAY[0..49]OF STRING[80]; (*List of file names*) + TimeStamps : ARRAY[0..49]OF STRING[80]; (*List of time stamps for file names*) + InfoFile : FileHmiStatusInfoFileType; + Type : ARRAY[0..49]OF DINT; (*List of file types*) + Size : ARRAY[0..49]OF STRING[80]; (*List of file sizes*) + DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for the file device selector*) + FifoSelect : ARRAY[0..MAX_IDX_FILE_DEV]OF DINT; (*Indicate FIFO selected file device*) + DeviceName : STRING[50]; (*File device name*) + FileName : STRING[255]; (*Fille name*) + TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the file explorer (table widget) on the mapp View HMI*) + IsFolder : BOOL; (*Flag for whether the item is a folder (versus a file)*) + BackButton : BOOL; (*Flag for whether the back button should be shown*) + DeleteStep : FileDeleteStepEnum; (*Enumeration for automatic file deletion steps*) + AutoDeleteSelected : USINT; (*Number of selected items*) + FolderSize : REAL; (*Size of currently selected folder*) + SelectedIndex : USINT; (*Selected index in the file list*) + FifoConfigEnable : BOOL; (*Disable FIFO access or change confirmation when FIFO is active*) + FIFOLayerStatus : USINT; + FIFOLayerObjects : FileHmiStatusFIFOLayerObjType; + DefaultFileSelected : BOOL; (*The default recipe is selected*) + END_STRUCT; + FileHmiStatusFIFOLayerObjType : STRUCT + MaxNumberOfFilesVisiblity : USINT; + MaxFolderSizeVisiblity : USINT; + END_STRUCT; + FileHmiStatusInfoFileType : STRUCT + isSelected : ARRAY[0..49]OF STRING[1]; + Type : ARRAY[0..49]OF STRING[80]; + END_STRUCT; + FileHmiParaFifoType : STRUCT (*Parameters for the FIFO feature (first-in-first-out)*) + Enable : BOOL; (*FIFO enable*) + DeviceName : STRING[50]; (*File device that the FIFO is active on*) + FifoType : FileFifoTypeEnum; (*Defines the delete behavior of the FIFO*) + ScanInterval : DINT := 60; (*[minutes]*) + MaxFileAge : UINT := 365; (*[days] Files older than 1 year will be deleted*) + MaxFolderSize : REAL := 1000; (*[kB] - Max size of files inside the active folder*) + MaxNumberOfFiles : UINT := 20; (*Max number of files inside active folder*) + SelectedDevice : UINT; + END_STRUCT; + FilePathCheckType : STRUCT (*Setup for checking available folders / file devices for FIleManager*) + Folder : ARRAY[0..9]OF STRING[20]; (*Folder name in user partition*) + PrgName : ARRAY[0..9]OF STRING[12]; (*Program name for mapp framework components*) + DeviceList : MpFileManagerUIDeviceListType; (*Device name*) + END_STRUCT; +END_TYPE + +(*Enumerations*) + +TYPE + FileDeleteStepEnum : + ( (*Enumeration for file deletion steps*) + FILE_DISABLED, (*Disabled*) + FILE_DELETE_WAIT, (*Wait state*) + FILE_SCAN_FOLDER_WAIT, (*Wait for check for old files command*) + FILE_SELECT_DEVICE, (*Switch file device to the configured one *) + FILE_REFRESH, (*Refreshing the data*) + FILE_SORT_BY_DATE, (*Sort by date so the oldest files are at the end*) + FILE_SORT_BY_DATE_WAIT, (*Wait step switching sorting mode*) + FILE_GO_TO_END, (*Pages down until at the end of the file list*) + FILE_GO_TO_END_1, + FILE_CHECK_FOR_FILTER, (*Check which delete filter is active*) + FILE_SELECT_OLDEST_FILES_0, (*Scan and select all file over the filter setting*) + FILE_CALC_FOLDER_SIZE, (*Calculate the overall file size in the open folder*) + FILE_CALC_FOLDER_SCROLL, + FILE_SELECT_OLDEST_FILES_1, (*Scan and select all file over the filter setting*) + FILE_DELETE_FILES, (*Set command to delete the selected oldest files*) + FILE_CONFIRM_DELETE, (*Confirm the file delete*) + FILE_CONFIRM_DELETE_WAIT, (*Wait for the automatic refresh after file deletion*) + FILE_RESET_SORT_BY, (*Restore old sort order*) + FILE_RESET_SORT_BY_WAIT (*Waiting for restore previous sort order*) + ); + FileFifoTypeEnum : + ( (*Defines the delete behavior of the FIFO*) + FILE_FIFO_NUM_OF_FILES := 0, (*Delete according to total number of files*) + FILE_FIFO_SIZE_OF_FOLDER (*Delete according to maximum folder size*) + ); + FileTypeEnum : + ( (*Defines the type of file in order to update the displayed icon*) + FOLDER := 0, (*Folder*) + FILE := 1, (*File*) + FILE_SELECTED := 2 (*The selected file*) + ); +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var new file mode 100644 index 00000000..2fa54be4 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var @@ -0,0 +1,49 @@ +(*Function Blocks*) +VAR + MpFileManagerUI_0 : MpFileManagerUI; (*MpFileManagerUI instance*) + MpFileManagerUI_FIFO : MpFileManagerUI; (*MpFileManagerUI instance*) + R_TRIG_CheckStatus : R_TRIG; (*Trigger function block*) + TON_Wait : TON; (*FIFO handling support*) + TON_ScanFolder : TON; (*Timer to scan for folder*) + TON_EnterFolder : TON; (*Time to delay EnterFolder command so file list can refresh*) + CurrentIndex : UDINT; (*FIFO handling support deleting more then 50 files*) + DirRead_FolderSize : DirRead; (*FIFO handling support reading current folder size*) +END_VAR +(*Constants*) +VAR CONSTANT + MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 7; (*Maximum number of file devices *) +END_VAR +(*Structure Types*) +VAR + MpFileManagerUIConnect : MpFileManagerUIConnectType; (*File manager connection to the HMI*) + MpFileManagerUIConnect_FIFO : {REDUND_UNREPLICABLE} MpFileManagerUIConnectType; (*File manager connection to the HMI*) + HmiFile : FileHmiInterfaceType; (*HMI interface structure*) + PathCheck : FilePathCheckType; (*Parameter structure controlling the visible file device based on available folders*) + DirectoryData : fiDIR_READ_DATA; (*FIFO handling support reading current folder size*) +END_VAR +(*Variables*) +VAR + i : USINT; (*Index for FOR loops*) + DeviceListCount : USINT; (*Counter for accessible file devices*) + DeviceCount : USINT; (*Counter for available file devices*) + Ident : UDINT; (*Ident of a program on target*) + IdentStatus : UINT; (*Status variable if a program exists on target*) + Index : USINT; (*Index for avaliable devices*) + FolderDepthCount : USINT; (*Keeps track of the folder depth location to determine whether or not the back button should be shown*) + USBOffset : USINT := 0; (*Device list offset where to add USB device*) + MaxDeviceNameIndex : USINT; (*How many devices are configured*) + tempIdx : USINT; (*FIFO handling support index variable*) + FileNameArraySize : USINT; (*FIFO handling support size of the array*) + StartIndex : USINT; (*FIFO handling support *) + Fifo_Count : USINT; (*FIFO handling support current file count*) +END_VAR +VAR RETAIN + FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) +END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR +(**) +(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st new file mode 100644 index 00000000..3e4eafa2 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st @@ -0,0 +1,200 @@ +ACTION HMIActions_Init: + + brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); + IF HmiFile.Parameters.Fifo.Enable THEN + HmiFile.Status.FifoSelect[HmiFile.Parameters.Fifo.SelectedDevice] := 1; + END_IF; + + HmiFile.Status.FIFOLayerStatus := HIDE; +END_ACTION + + +ACTION FormatDeviceDataProvider: + + // Select CF device if USB device is not available + FOR i := 0 TO IDX_USB_DEV_LIST DO + tempIdx := (i + USBOffset); + + IF gUSBAvailable[i] THEN + PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; + brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); + ELSE + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[tempIdx])); + brsmemset(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[tempIdx])); + END_IF + END_FOR + + MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); + //Check initilized folder for existance and remove any from the device list that don't exist + IF (IdentStatus = 0) THEN + // copy device name from source list into the actual device list + MpFileManagerUIConnect.DeviceList.DeviceNames[Index] := PathCheck.DeviceList.DeviceNames[DeviceListCount]; + Index := Index + 1; + DeviceListCount := DeviceListCount + 1; + + IF (DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1)) THEN + DeviceListCount := 0; + END_IF + IF (Index > MaxDeviceNameIndex) THEN + Index := 0; + END_IF + ELSIF (IdentStatus = 3324) THEN + DeviceListCount := DeviceListCount + 1; + IF DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1) THEN + //Delete entries past the actual number of devices found + FOR i:=Index TO MaxDeviceNameIndex DO + MpFileManagerUIConnect.DeviceList.DeviceNames[i] := ''; + END_FOR + DeviceListCount := 0; + Index := 0; + END_IF + END_IF + + IdentStatus := ST_ident(ADR(PathCheck.PrgName[DeviceListCount]),0,ADR(Ident)); + + // Configure visible device list + HmiFile.Status.TableConfig[0] := '{ "specRows": [{"from":'; + FOR i := 0 TO MaxDeviceNameIndex DO + IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN + DeviceCount := i + 1; + END_IF + END_FOR + brsitoa((DeviceCount), ADR(HmiFile.Status.TableConfig[0]) + brsstrlen(ADR(HmiFile.Status.TableConfig[0]))); + brsstrcat(ADR(HmiFile.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); + + // Configure visible file list + HmiFile.Status.TableConfig[1] := '{ "specRows": [{"from":'; + brsitoa((MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount), ADR(HmiFile.Status.TableConfig[1]) + brsstrlen(ADR(HmiFile.Status.TableConfig[1]))); + brsstrcat(ADR(HmiFile.Status.TableConfig[1]), ADR(',"to":49, "visible":false}]}')); + + + // Create device data provider for FIFO drop down + FOR i := 0 TO MaxDeviceNameIndex DO + IF (MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '') THEN + HmiFile.Status.DeviceDataProvider[i] := MpFileManagerUIConnect.DeviceList.DeviceNames[i]; + ELSE + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[i]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[i])); + END_IF + END_FOR + +END_ACTION + +ACTION FileManager: + + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0(); + + FOR i := 0 TO ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1) DO + HmiFile.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; + + // Time Stamp + HmiFile.Status.TimeStamps[i] := DT_TO_STRING(MpFileManagerUIConnect.File.List.Items[i].LastModified); + HmiFile.Status.TimeStamps[i] := RIGHT(HmiFile.Status.TimeStamps[i], 19); + + // file size + HmiFile.Status.Size[i] := REAL_TO_STRING(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); + + // Set image array based on item type + IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN + HmiFile.Status.Type[i] := FOLDER; + ELSIF NOT MpFileManagerUIConnect.File.List.Items[i].IsFolder AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + HmiFile.Status.Type[i] := FILE_SELECTED; + ELSE + HmiFile.Status.Type[i] := FILE; + END_IF + + + + // Fill file info string arrays + IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN + HmiFile.Status.InfoFile.Type[i] := 'FOLDER'; + ELSE (* file *) + HmiFile.Status.InfoFile.Type[i] := 'FILE'; + END_IF + IF MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + HmiFile.Status.InfoFile.isSelected[i] := '+'; + ELSE + HmiFile.Status.InfoFile.isSelected[i] := '-'; + END_IF + + + // if file not exist clear objects + IF HmiFile.Status.FileNames[i] = '' THEN + HmiFile.Status.TimeStamps[i] := ''; + HmiFile.Status.Size[i] := ''; + HmiFile.Status.InfoFile.isSelected[i] := ''; + HmiFile.Status.InfoFile.Type[i] := ''; + END_IF; + + + END_FOR + + + // Mutli selection + IF (MpFileManagerUIConnect.File.MultiSelect = FALSE) THEN + MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected := TRUE; + ELSIF (MpFileManagerUIConnect.File.MultiSelect = TRUE) AND HmiFile.Commands.FileList.Clicked THEN + MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected := NOT MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected; + END_IF + HmiFile.Commands.FileList.Clicked := FALSE; + + + // Read currently selected device name for HMI + IF (MpFileManagerUIConnect.DeviceList.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0]))) THEN + MpFileManagerUIConnect.DeviceList.SelectedIndex := 0; + END_IF + HmiFile.Status.DeviceName := MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]; + + // Read if current selected object is folder + IF (HmiFile.Status.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]))) THEN + HmiFile.Status.SelectedIndex := 0; + END_IF + HmiFile.Status.IsFolder := MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsFolder; + + // Control the folder structure when entering and leaving folders + IF (HmiFile.Commands.EnterFolder) AND MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsFolder THEN + HmiFile.Commands.EnterFolder := FALSE; + MpFileManagerUIConnect.File.EnterFolder := TRUE; + FolderDepthCount := FolderDepthCount + 1; + ELSE + HmiFile.Commands.EnterFolder := FALSE; + END_IF + + IF EDGEPOS(HmiFile.Commands.FolderUp) AND (HmiFile.Status.BackButton > 0) THEN + HmiFile.Commands.FolderUp := FALSE; + MpFileManagerUIConnect.File.FolderUp := TRUE; + FolderDepthCount := FolderDepthCount - 1; + END_IF + + HmiFile.Status.BackButton := (FolderDepthCount > 0); + + + // File SelectedIndex manager + IF HmiFile.Commands.FileList.PageUp THEN + HmiFile.Commands.FileList.PageUp := FALSE; + HmiFile.Status.SelectedIndex := 0; + + ELSIF HmiFile.Commands.FileList.PageDown THEN + HmiFile.Commands.FileList.PageDown := FALSE; + HmiFile.Status.SelectedIndex := ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1); + + ELSIF HmiFile.Commands.FileList.StepUp THEN + HmiFile.Commands.FileList.StepUp := FALSE; + IF HmiFile.Status.SelectedIndex <> 0 THEN + HmiFile.Status.SelectedIndex := HmiFile.Status.SelectedIndex - 1; + END_IF + + ELSIF HmiFile.Commands.FileList.StepDown THEN + HmiFile.Commands.FileList.StepDown := FALSE; + IF HmiFile.Status.SelectedIndex <> ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1) THEN + HmiFile.Status.SelectedIndex := HmiFile.Status.SelectedIndex + 1; + END_IF + END_IF + + HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Default.par') OR + (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Machine.mcfg')) AND + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + + +END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/IEC.prg new file mode 100644 index 00000000..4e03e4a2 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/IEC.prg @@ -0,0 +1,11 @@ + + + + + FileMgr.st + FileMgr.typ + FileMgr.var + HMIActions.st + FIFOOperations.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg new file mode 100644 index 00000000..2d4e65f1 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg @@ -0,0 +1,8 @@ + + + + + FileAlarms.tmx + FileMgr + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Package.pkg new file mode 100644 index 00000000..c316fe61 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Package.pkg @@ -0,0 +1,14 @@ + + + + + AlarmX + Backup + File + Usb + Recipe + UserX + Audit + Report + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Recipe/Package.pkg new file mode 100644 index 00000000..772b8e2f --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/Package.pkg @@ -0,0 +1,8 @@ + + + + + RecipeMgr + RecipeAlarms.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeAlarms.tmx new file mode 100644 index 00000000..8c246aa9 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeAlarms.tmx @@ -0,0 +1,53 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/Recipe/Alarms +
    + + + + Speichern des Rezepts ist fehlgeschlagen + + + 配方数据保存失败 + + + Recipe save failed + + + + + Speichern des Rezepts teilweise fehlgeschlagen + + + 部分配方数据未保存 + + + Recipe save partially failed + + + + + Laden des Rezepts ist fehlgeschlagen + + + 配方数据加载失败 + + + Recipe load failed + + + + + Laden des Rezepts teilweise fehlgeschlagen + + + 配方数据加载失败 + + + Recipe load failed + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st new file mode 100644 index 00000000..a939118b --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -0,0 +1,324 @@ +ACTION HMIActions_Init: + + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; + HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; + HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DuplicateLayer := HIDE; + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; + +END_ACTION + + +ACTION LoadStatus: + // Configure visible recipe list + IF MpRecipeUIConnect.Recipe.List.Names[0] = '' THEN + HmiRecipe.Status.TableConfig := '{ "specRows": [{"from":0,"to":19, "visible":false}]}'; + ELSE + HmiRecipe.Status.TableConfig := '{ "specRows": [{"from":'; + brsitoa(MpRecipeUIConnect.Recipe.List.MaxSelection + 1, ADR(HmiRecipe.Status.TableConfig) + brsstrlen(ADR(HmiRecipe.Status.TableConfig))); + brsstrcat(ADR(HmiRecipe.Status.TableConfig), ADR(',"to":19, "visible":false}]}')); + END_IF + + HmiRecipe.Status.FilesAvailable := (MpRecipeUIConnect.Recipe.List.Names[0] <> ''); + HmiRecipe.Status.LoadAllowed := HmiRecipe.Status.FilesAvailable AND NOT HmiRecipe.Status.InvalidRecipe; + HmiRecipe.Status.DeviceValid := (MpFileManagerUI_0.StatusID <> mpFILE_ERR_INVALID_FILE_DEV); + +END_ACTION + +ACTION LoadPreview: + + // Category name genarate + IF HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX THEN + MpRecipeUIConnect.Recipe.Filter := '*par'; + HmiRecipe.Parameters.Category := PARAMETERS_CATEGORY; + ELSIF HmiRecipe.Parameters.CategoryIndex = MACH_CONFIG_CATEGORY_INDEX THEN + MpRecipeUIConnect.Recipe.Filter := '*mcfg'; + HmiRecipe.Parameters.Category := MACHINE_CONFIGURATION_CATEGORY; + END_IF; + IF EDGEPOS(HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX) OR + EDGEPOS(HmiRecipe.Parameters.CategoryIndex = MACH_CONFIG_CATEGORY_INDEX) THEN + MpRecipeUIConnect.Recipe.Refresh := TRUE; + END_IF; + + + // Default recipe create Layer manager + IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = HIDE AND HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = HIDE AND + ((HmiRecipe.Status.ParameterRecipeMissing AND HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY) OR + (HmiRecipe.Status.MachineSettingsRecipeMissing AND HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY)) THEN + HmiRecipe.Status.DefaultRecipeLayer.Status := DISPLAY; + ELSE + HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; + END_IF; + + // Create Recipe Layer manager + IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN + IF HmiRecipe.Status.CreateDialogOpened THEN + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := DISPLAY; + END_IF; + IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = DISPLAY AND + (MpRecipeUIConnect.MessageBox.Cancel OR HmiRecipe.Commands.CreateRecipe) THEN + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; + END_IF; + + ELSIF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN + IF HmiRecipe.Status.CreateDialogOpened THEN + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := DISPLAY; + END_IF; + IF HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = DISPLAY AND + (MpRecipeUIConnect.MessageBox.Cancel OR HmiRecipe.Commands.CreateRecipe) THEN + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; + END_IF; + END_IF; + + // Lock File name input in create layer + IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = DISPLAY AND + HmiRecipe.Status.ParameterRecipeMissing THEN + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; + ELSIF HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = DISPLAY AND + HmiRecipe.Status.MachineSettingsRecipeMissing THEN + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; + ELSE + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; + END_IF; + + // File Duplicate manager + IF HmiRecipe.Commands.CreateRecipe AND + HmiRecipe.Status.FileDuplicate AND + HmiRecipe.Status.DuplicateLayer = HIDE THEN + + HmiRecipe.Commands.CreateRecipe := FALSE; + HmiRecipe.Status.DuplicateLayer := DISPLAY; + + ELSIF HmiRecipe.Commands.CreateRecipe THEN + HmiRecipe.Status.DuplicateLayer := HIDE; + END_IF; + + // Preview Recipe Layer manager + IF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN + HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := DISPLAY; + + ELSIF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN + HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := DISPLAY; + END_IF; + + // Active Recipe declare + IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN + HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedProductRecipe; + + ELSIF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN + HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedConfigRecipe; + END_IF; + + // Recipe Edit manager + IF HmiRecipe.Status.EditRecipeLayer.Save THEN + HmiRecipe.Status.EditRecipeLayer.Save := FALSE; + HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; + + HmiRecipe.Commands.SaveSelectedRecipe := TRUE; + HmiRecipe.Commands.LoadRecipe := TRUE; + END_IF; + + // Load preview when a recipe is selected + IF (MpRecipeUIConnect.Recipe.List.SelectedIndex <> HmiRecipe.Status.LastSelectedIndex) OR (HmiRecipe.Status.LastMaxSelection <> MpRecipeUIConnect.Recipe.List.MaxSelection) THEN + // Check selected recipe name is not empty + IF (brsstrlen(ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex])) > 0) THEN + MpRecipe_0.FileName := ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]); + MpRecipe_0.Category := ADR(HmiRecipe.Parameters.Category); + MpRecipe_0.Load := TRUE; + HmiRecipe.Status.LastSelectedIndex := MpRecipeUIConnect.Recipe.List.SelectedIndex; + HmiRecipe.Status.LastMaxSelection := MpRecipeUIConnect.Recipe.List.MaxSelection; + HmiRecipe.Status.InvalidRecipe := FALSE; + END_IF + END_IF + + // Reset load command on MpRecipe_0 FUB + IF MpRecipe_0.StatusID <> 0 THEN + HmiRecipe.Status.InvalidRecipe := TRUE; + HmiRecipe.Commands.ResetPreview := TRUE; + END_IF; + + IF ((MpRecipe_0.CommandDone = TRUE) OR (MpRecipe_0.Error = TRUE)) THEN + MpRecipe_0.Load := FALSE; + END_IF + +END_ACTION + +ACTION RecipeHMIcommands: + + CASE HmiRecipe.Status.HMIcommand OF + REC_HMI_WAIT: + // The following commands are triggered directly from the HMI. If you imported the mapp View front end of + // the Framework, then this is already taken care of. If you did not, then your visualization must + // trigger each one of these command variables (CreateRecipe, SaveSelectedRecipe, LoadRecipe). + IF (MpRecipeUIConnect.Status <> mpRECIPE_UI_STATUS_IDLE) THEN + // MpRecipe is active so don't issue a new command + ELSIF HmiRecipe.Commands.CreateRecipe THEN + HmiRecipe.Status.HMIcommand := REC_HMI_CREATE; + HmiRecipe.Commands.CreateRecipe := FALSE; + ELSIF HmiRecipe.Commands.SaveSelectedRecipe THEN + HmiRecipe.Status.HMIcommand := REC_HMI_SAVE; + HmiRecipe.Commands.SaveSelectedRecipe := FALSE; + ELSIF HmiRecipe.Commands.LoadRecipe THEN + HmiRecipe.Status.HMIcommand := REC_HMI_LOAD; + HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; + HmiRecipe.Commands.LoadRecipe := FALSE; + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + HmiRecipe.Status.ProductRecipeLoaded := FALSE; + ELSE + HmiRecipe.Status.ConfigRecipeLoaded := FALSE; + END_IF + ELSIF HmiRecipe.Commands.ResetPreview THEN + HmiRecipe.Status.HMIcommand := REC_HMI_RESET_PREVIEW; + HmiRecipe.Commands.ResetPreview := FALSE; + END_IF + + REC_HMI_CREATE: + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + ParametersPreview := ParametersEdit; + brsstrcpy(ADR(MpRecipeUIConnect.New.FileName), ADR(HmiRecipe.Parameters.FileName)); + brsstrcat(ADR(MpRecipeUIConnect.New.FileName), ADR('.par')); + // If the default recipe was initially missing and just now created, immediately load it + IF HmiRecipe.Status.ParameterRecipeMissing THEN + HmiRecipe.Commands.LoadRecipe := TRUE; + END_IF + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN + MachineSettingsPreview := MachineSettingsEdit; + brsstrcpy(ADR(MpRecipeUIConnect.New.FileName), ADR(HmiRecipe.Parameters.FileName)); + brsstrcat(ADR(MpRecipeUIConnect.New.FileName), ADR('.mcfg')); + // If the default recipe was initially missing and just now created, immediately load it + IF HmiRecipe.Status.MachineSettingsRecipeMissing THEN + HmiRecipe.Commands.LoadRecipe := TRUE; + END_IF + END_IF + + Header.Name := MpRecipeUIConnect.New.FileName; + DTGetTime_0.enable := TRUE; + REPEAT + DTGetTime_0(); + UNTIL (DTGetTime_0.status = 0) + END_REPEAT; + Header.DateTime := DTGetTime_0.DT1; + DTGetTime_0.enable := FALSE; + DTGetTime_0(); + MpRecipeUIConnect.New.Create := TRUE; + + HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; + + REC_HMI_LOAD: + IF (MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_IDLE) THEN + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + Parameters := ParametersPreview; + HmiRecipe.Status.ProductRecipeLoaded := TRUE; + // If the default recipe was initially missing and just now created, then it is the last loaded recipe + IF HmiRecipe.Status.ParameterRecipeMissing THEN + HmiRecipe.Status.LastLoadedProductRecipe := DEFAULT_PARAMETERS; + brsstrcat(ADR(HmiRecipe.Status.LastLoadedProductRecipe), ADR(PARAMETERS_FILE_EXTENSION)); + HmiRecipe.Status.ParameterRecipeMissing := FALSE; + // Otherwise, the last loaded recipe is the selected recipe + ELSE + HmiRecipe.Status.LastLoadedProductRecipe := MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]; + END_IF + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN + MachineSettings := MachineSettingsPreview; + HmiRecipe.Status.ConfigRecipeLoaded := TRUE; + // If the default recipe was initially missing and just now created, then it is the last loaded recipe + IF HmiRecipe.Status.MachineSettingsRecipeMissing THEN + HmiRecipe.Status.LastLoadedConfigRecipe := DEFAULT_MACHINE_CONFIGURATION; + brsstrcat(ADR(HmiRecipe.Status.LastLoadedConfigRecipe), ADR(MACHINE_CONFIG_FILE_EXTENSION)); + HmiRecipe.Status.MachineSettingsRecipeMissing := FALSE; + // Otherwise, the last loaded recipe is the selected recipe + ELSE + HmiRecipe.Status.LastLoadedConfigRecipe := MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]; + END_IF + END_IF + HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; + END_IF + + REC_HMI_SAVE: + IF (MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_IDLE) THEN + + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + ParametersPreview := ParametersEdit; + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN + MachineSettingsPreview := MachineSettingsEdit; + END_IF + + IF (brsstrlen(ADR(HmiRecipe.Status.SelectedRecipe)) > 0) THEN + MpRecipe_0.FileName := ADR(HmiRecipe.Status.SelectedRecipe); + MpRecipe_0.Save := TRUE; + END_IF + + HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; + END_IF + + REC_HMI_RESET_PREVIEW: + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + brsmemset(ADR(ParametersPreview), 0, SIZEOF(ParametersPreview)); + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN + brsmemset(ADR(MachineSettingsPreview), 0, SIZEOF(MachineSettingsPreview)); + END_IF + HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; + + END_CASE + + // If the Edit or Create dialog boxes open, copy the Preview structure into the Edit structure. + IF HmiRecipe.Status.EditDialogOpened OR HmiRecipe.Status.CreateDialogOpened THEN + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + ParametersEdit := ParametersPreview; + IF HmiRecipe.Status.ParameterRecipeMissing THEN + HmiRecipe.Parameters.FileName := DEFAULT_PARAMETERS; + ELSE + HmiRecipe.Parameters.FileName:= 'newParameters'; + END_IF + + // Open parameter dialog + IF HmiRecipe.Status.EditDialogOpened THEN + HmiRecipe.Status.EditRecipeLayer.ParsStatus := DISPLAY; + ELSIF HmiRecipe.Status.CreateDialogOpened THEN + END_IF; + + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN + MachineSettingsEdit := MachineSettingsPreview; + IF HmiRecipe.Status.MachineSettingsRecipeMissing THEN + HmiRecipe.Parameters.FileName := DEFAULT_MACHINE_CONFIGURATION; + ELSE + HmiRecipe.Parameters.FileName := 'newMachineConfig'; + END_IF + + // Open machine dialog + IF HmiRecipe.Status.EditDialogOpened THEN + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := DISPLAY; + ELSIF HmiRecipe.Status.CreateDialogOpened THEN + END_IF; + + END_IF + + HmiRecipe.Status.EditDialogOpened := FALSE; + HmiRecipe.Status.CreateDialogOpened := FALSE; + END_IF + + // Check if the file name has already been used + HmiRecipe.Status.FileDuplicate := FALSE; + FOR i:=0 TO ((SIZEOF(MpRecipeUIConnect.Recipe.List.Names) / SIZEOF(MpRecipeUIConnect.Recipe.List.Names[0])) - 1) DO + temp := HmiRecipe.Parameters.FileName; + IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN + brsstrcat(ADR(temp),ADR(PARAMETERS_FILE_EXTENSION)); + ELSIF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_RECIPE)) = 0) THEN + brsstrcat(ADR(temp),ADR(MACHINE_CONFIG_FILE_EXTENSION)); + END_IF + IF temp = MpRecipeUIConnect.Recipe.List.Names[i] THEN + HmiRecipe.Status.FileDuplicate := TRUE; + END_IF + END_FOR + + // Update status information + HmiRecipe.Status.LastStatus := MpRecipeUIConnect.Status; + HmiRecipe.Status.SelectedRecipe := MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]; + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/IEC.prg new file mode 100644 index 00000000..58b33091 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/IEC.prg @@ -0,0 +1,10 @@ + + + + + RecipeMgr.st + RecipeMgr.typ + RecipeMgr.var + HMIActions.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st new file mode 100644 index 00000000..c84b8fd9 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st @@ -0,0 +1,219 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: Jan 1, 2022 +// Description: Tasks for recipe control. +//*********************************************************************** + +PROGRAM _INIT + + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappRecipeFiles'), pName := ADR('/')); + + // Wait for DirCreate_0 to complete. + WHILE (DirCreate_0.status = ERR_FUB_BUSY) DO + DirCreate_0(); + END_WHILE + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST OR (DirCreate_0.status = ERR_OK) THEN + DirCreate_0(enable := FALSE); + END_IF + + // Initialize mapp function blocks + // By default, the Framework sets up an XML recipe system. To swtich to the CSV format, refer to the "Change Recipe Format" + // page in the AS Help (GUID 2052b3a5-f59b-45f9-9fcd-3289c93401af) + MpRecipeUISetup.Confirmation.RecipeDelete := TRUE; + MpRecipeUISetup.RecipeListSize := 9; + MpRecipeUISetup.RecipeListScrollWindow := 0; + MpRecipeUISetup.AutoLoadHeader := TRUE; + MpRecipeUIConnect.New.FileName := 'newRecipe'; + MpRecipeUIConnect.Recipe.Filter := '*par'; + MpRecipeUI_0.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeUI_0.Enable := TRUE; + MpRecipeUI_0.UIConnect := ADR(MpRecipeUIConnect); + MpRecipeUI_0.UISetup := MpRecipeUISetup; + MpRecipeUI_0(); + + HmiRecipe.Parameters.Category := PARAMETERS_CATEGORY; + HmiRecipe.Parameters.DeviceName := 'mappRecipeFiles'; + MpRecipe_0.MpLink := ADR(gMpLinkRecipeXml); + MpRecipe_0.Enable := TRUE; + MpRecipe_0.Category := ADR(HmiRecipe.Parameters.Category); + MpRecipe_0.DeviceName := ADR(HmiRecipe.Parameters.DeviceName); + MpRecipe_0.FileName := ADR(HmiRecipe.Parameters.FileName); + MpRecipe_0.Header := ADR(Header); + + // Wait for MpRecipe_0 to activate. This must be active before you can call the RegPar function blocks, which is below. + WHILE NOT(MpRecipe_0.Active OR MpRecipe_0.Error) DO + MpRecipe_0(); + END_WHILE + + // Register the preview variables to the recipe. These preview variables are a buffer between the recipe system and the + // variables used at runtime on the machine (Parameters, MachineSettings). By using these preview variables, you can + // preview and edit a recipe on the HMI without actually loading it to the machine. For more details, refer to the + // "Recipe System Design" page in the AS Help (GUID 3ccd7409-0b52-4bbc-a93a-4010f6db414c). + + MpRecipeRegPar_PreviewPar.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_PreviewPar.Enable := TRUE; + MpRecipeRegPar_PreviewPar.PVName := ADR('RecipeMgr:ParametersPreview'); + MpRecipeRegPar_PreviewPar.Category := ADR(PARAMETERS_CATEGORY); + MpRecipeRegPar_PreviewPar(); + + MpRecipeRegPar_PreviewCfg.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_PreviewCfg.Enable := TRUE; + MpRecipeRegPar_PreviewCfg.PVName := ADR('RecipeMgr:MachineSettingsPreview'); + MpRecipeRegPar_PreviewCfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); + MpRecipeRegPar_PreviewCfg(); + + // Wait for RegPar function blocks to activate. These must be active before you can load a recipe, + // which is further down in the Initialization program. + WHILE NOT(MpRecipeRegPar_PreviewPar.Active OR MpRecipeRegPar_PreviewPar.Error) DO + MpRecipeRegPar_PreviewPar(); + END_WHILE + WHILE NOT(MpRecipeRegPar_PreviewCfg.Active OR MpRecipeRegPar_PreviewCfg.Error) DO + MpRecipeRegPar_PreviewCfg(); + END_WHILE + + // Load default Machine Settings recipe + HmiRecipe.Parameters.Category := MACHINE_CONFIGURATION_CATEGORY; + HmiRecipe.Parameters.FileName := DEFAULT_MACHINE_CONFIGURATION; + brsstrcat(ADR(HmiRecipe.Parameters.FileName),ADR(MACHINE_CONFIG_FILE_EXTENSION)); + MpRecipe_0.Load := TRUE; + WHILE NOT(MpRecipe_0.CommandDone OR MpRecipe_0.Error) DO + MpRecipe_0(); + END_WHILE + MachineSettings := MachineSettingsPreview; + HmiRecipe.Status.LastLoadedConfigRecipe := DEFAULT_MACHINE_CONFIGURATION; + brsstrcat(ADR(HmiRecipe.Status.LastLoadedConfigRecipe),ADR(MACHINE_CONFIG_FILE_EXTENSION)); + HmiRecipe.Status.ConfigRecipeLoaded := TRUE; + + // Check if the default machine settings recipe is missing + IF MpRecipe_0.Info.Diag.StatusID.ID = mpRECIPE_ERR_LOAD_DATA THEN + HmiRecipe.Status.MachineSettingsRecipeMissing := TRUE; + HmiRecipe.Status.LastLoadedConfigRecipe := ''; + HmiRecipe.Status.ConfigRecipeLoaded := FALSE; + END_IF + + MpRecipe_0.ErrorReset := MpRecipe_0.Error; + MpRecipe_0.Load := FALSE; + MpRecipe_0(); + + // Load default Parameter recipe + HmiRecipe.Parameters.Category := PARAMETERS_CATEGORY; + HmiRecipe.Parameters.FileName := DEFAULT_PARAMETERS; + brsstrcat(ADR(HmiRecipe.Parameters.FileName),ADR(PARAMETERS_FILE_EXTENSION)); + HmiRecipe.Status.PreviousRecipe := DEFAULT_PARAMETERS; + MpRecipe_0.Load := TRUE; + WHILE NOT(MpRecipe_0.CommandDone OR MpRecipe_0.Error) DO + MpRecipe_0(); + END_WHILE + Parameters := ParametersPreview; + HmiRecipe.Status.LastLoadedProductRecipe := DEFAULT_PARAMETERS; + brsstrcat(ADR(HmiRecipe.Status.LastLoadedProductRecipe),ADR(PARAMETERS_FILE_EXTENSION)); + HmiRecipe.Status.ProductRecipeLoaded := TRUE; + + // Check if the default parameters recipe is missing + IF MpRecipe_0.Info.Diag.StatusID.ID = mpRECIPE_ERR_LOAD_DATA THEN + HmiRecipe.Status.ParameterRecipeMissing := TRUE; + HmiRecipe.Status.LastLoadedProductRecipe := ''; + HmiRecipe.Status.ProductRecipeLoaded := FALSE; + END_IF + + + + MpRecipe_0.ErrorReset := MpRecipe_0.Error; + MpRecipe_0.Load := FALSE; + MpRecipe_0(); + + // Trigger update notification so that the initial parameters are copied to the process + MpRecipe_0.UpdateNotification := TRUE; + + // Init Filemanager for exporting/importing files + MpFileManagerUI_0.Enable := TRUE; + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIRecipe); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0.UISetup.FileListSize := SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]); + MpFileManagerUIConnect.DeviceList.DeviceNames[0] := 'mappRecipeFiles'; + MpFileManagerUIConnect.DeviceList.DeviceNames[1] := ''; + MpFileManagerUI_0(); + + HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; + + HMIActions_Init; + + + +END_PROGRAM + +PROGRAM _CYCLIC + + // Call actions + LoadPreview; + RecipeHMIcommands; + LoadStatus; + + // Reset commands on MpRecipe FUB + IF MpRecipe_0.CommandDone THEN + MpRecipe_0.Load := FALSE; + MpRecipe_0.Save := FALSE; + // Set update notification for machine category + IF ((brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(MACHINE_CONFIGURATION_CATEGORY)) = 0) AND (MpRecipe_0.Save = TRUE)) THEN + MpRecipe_0.UpdateNotification := TRUE; + ELSE + MpRecipe_0.UpdateNotification := FALSE; + END_IF + END_IF + + + // Error reset + IF NOT MpRecipe_0.Error THEN + MpRecipe_0.ErrorReset := FALSE; + END_IF + + IF NOT MpRecipeUI_0.Error THEN + MpRecipeUI_0.ErrorReset := FALSE; + END_IF + + // Assign MpLinks & address references + MpRecipe_0.MpLink := ADR(gMpLinkRecipeXml); + MpRecipe_0.DeviceName := ADR(HmiRecipe.Parameters.DeviceName); + MpRecipe_0.Header := ADR(Header); + MpRecipeUI_0.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeUI_0.UIConnect := ADR(MpRecipeUIConnect); + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIRecipe); + MpRecipeRegPar_PreviewPar.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_PreviewPar.PVName := ADR('RecipeMgr:ParametersPreview'); + MpRecipeRegPar_PreviewPar.Category := ADR(PARAMETERS_CATEGORY); + MpRecipeRegPar_PreviewCfg.MpLink := ADR(gMpLinkRecipeXml); + MpRecipeRegPar_PreviewCfg.PVName := ADR('RecipeMgr:MachineSettingsPreview'); + MpRecipeRegPar_PreviewCfg.Category := ADR(MACHINE_CONFIGURATION_CATEGORY); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + + // Call function blocks + MpRecipe_0(); + MpRecipeUI_0(); + MpFileManagerUI_0(); + MpRecipeRegPar_PreviewPar(); + MpRecipeRegPar_PreviewCfg(); + +END_PROGRAM + +PROGRAM _EXIT + + // Disable the function blocls to unlink the MpLinks + MpRecipe_0.Enable := FALSE; + MpRecipeUI_0.Enable := FALSE; + MpRecipeRegPar_PreviewPar.Enable := FALSE; + MpRecipeRegPar_PreviewCfg.Enable := FALSE; + MpFileManagerUI_0.Enable := FALSE; + + // Call function blocks + MpRecipe_0(); + MpRecipeUI_0(); + MpRecipeRegPar_PreviewPar(); + MpRecipeRegPar_PreviewCfg(); + MpFileManagerUI_0(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ new file mode 100644 index 00000000..f46c99e1 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ @@ -0,0 +1,108 @@ +(*Structure types*) + +TYPE + RecipeHmiInterfaceType : STRUCT (*Structure to hold commands, parameters and status from the HMI*) + Commands : RecipeCommandsType; (*Structure to hold the commands from the HMI*) + Parameters : RecipeParametersType; (*Structure to hold the parameters for the HMI*) + Status : RecipeStatusType; (*Structure to hold status information from the mapp View HMI*) + END_STRUCT; + RecipeCommandsType : STRUCT (*Structure to hold the commands from the HMI*) + LoadRecipe : BOOL; (*Load recipe*) + SaveSelectedRecipe : BOOL; (*Save the selected recipe (which is not necessarily the active recipe)*) + CreateRecipe : BOOL; (*Create recipe*) + ImportFromUSB : BOOL; (*Import from USB device*) + ExportToUSB : BOOL; (*Export to USB device*) + ResetPreview : BOOL; (*Reset the preview to empty/zeros in the event of an invalid recipe*) + END_STRUCT; + RecipeParametersType : STRUCT (*Structure to hold the parameters for the HMI*) + Category : STRING[30]; (*Current category*) + CategoryIndex : USINT; (*Current category*) + DeviceName : STRING[50]; (*Selected file device name*) + FileName : STRING[255]; (*Recipe file name*) + END_STRUCT; + RecipeStatusType : STRUCT (*Structure to hold status information from the mapp View HMI*) + HMIcommand : RecipeHmiStepEnum; (*State machine step for HMI commands*) + LastLoadedConfigRecipe : STRING[255]; (*Last loaded configuration recipe*) + LastLoadedProductRecipe : STRING[255]; (*Last loaded product recipe*) + ProductRecipeLoaded : BOOL; (*Product recipe was loaded*) + ConfigRecipeLoaded : BOOL; (*Config recipe was loaded*) + LastMaxSelection : UINT; (*The previous maximum number of recipes*) + LastSelectedIndex : UINT; (*The previous selected index*) + LastStatus : MpRecipeUIStatusEnum; (*The previous UI status*) + EditDialogOpened : BOOL; (*Flag that the edit dialog box was opened*) + CreateDialogOpened : BOOL; (*Flag that the create dialog box was opened*) + PreviousRecipe : STRING[80]; (*Name of the previous recipe*) + FileDuplicate : BOOL; (*Recipe file already exists, warn the user.*) + FilesAvailable : BOOL; (*Control access to widget when no files are available*) + InvalidRecipe : BOOL; (*The selected recipe cannot be previewed*) + LoadingRecipeList : BOOL; (*The recipe list is loading*) + MachineSettingsRecipeMissing : BOOL; (*Flag for if the default machine settings recipe is not present*) + ParameterRecipeMissing : BOOL; (*Flag for if the default parameters recipe is not present*) + LoadAllowed : BOOL; (*Flag for whether you can load a recipe. Recipe must exist and be valid. *) + DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*File device data provider*) + TableConfig : STRING[120]; (*Table configuration *) + SelectedRecipe : STRING[255]; (*The name of the selected recipe*) + ActiveRecipe : STRING[255]; + DefaultRecipeLayer : RecipeStatusDefRecLayerType; + CreateRecipeLayer : RecipeStatusCteateRecLayerType; + PreviewRecipeLayer : RecipeStatusPreviewRecLayerType; + RecipeLoadLayer : RecipeStatusRecipeLoadLayerType; + EditRecipeLayer : RecipeStatusEditRecLayerType; + DuplicateLayer : USINT; + DeviceValid : BOOL; (*Flag for whether FileDevice is valid. Prevents user from being prompted to load default recipe.*) + END_STRUCT; + RecipeStatusDefRecLayerType : STRUCT + Status : USINT; + END_STRUCT; + RecipeStatusCteateRecLayerType : STRUCT + ParsStatus : USINT; + MachConfigStatus : USINT; + FileNameInputActive : USINT; + END_STRUCT; + RecipeStatusPreviewRecLayerType : STRUCT + ParsStatus : USINT; + MachConfigStatus : USINT; + END_STRUCT; + RecipeStatusRecipeLoadLayerType : STRUCT + Status : USINT; + END_STRUCT; + RecipeStatusEditRecLayerType : STRUCT + ParsStatus : USINT; + MachConfigStatus : USINT; + Save : BOOL; + END_STRUCT; +END_TYPE + +(**) + +TYPE + ParametersType : STRUCT (*Demo / starter structure for machine parameters*) + AddParametersHere1 : BOOL; (*Add your parameteres here *) + AddParametersHere2 : STRING[80]; (*Add your parameteres here *) + AddParametersHere3 : REAL; (*Add your parameteres here *) + AddParametersHere4 : REAL; (*Add your parameteres here *) + AddParametersHere5 : REAL; (*Add your parameteres here *) + END_STRUCT; + MachineSettingsType : STRUCT (*Demo / starter structure for machine configuration settings*) + AddMachineSettingsHere1 : USINT; (*Add your settings here*) + AddMachineSettingsHere2 : DINT; (*Add your settings here*) + AddMachineSettingsHere3 : BOOL; (*Add your settings here*) + AddMachineSettingsHere4 : REAL; (*Add your settings here*) + AddMachineSettingsHere5 : UINT; (*Add your settings here*) + END_STRUCT; +END_TYPE + +(*Enumerations*) + +TYPE + RecipeHmiStepEnum : + ( (*State machine step for HMI commands*) + REC_HMI_WAIT, (*Wait*) + REC_HMI_LOAD, (*Load recipe*) + REC_HMI_SAVE, (*Save recipe*) + REC_HMI_CREATE, (*Create recipe*) + REC_HMI_RESET_PREVIEW (*Reset the preview values to 0 / empty*) + ); +END_TYPE + +(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var new file mode 100644 index 00000000..ec8c9a4a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var @@ -0,0 +1,51 @@ +(*Function Blocks*) +VAR + MpRecipe_0 : MpRecipeXml; (*MpRecipe instance*) + MpRecipeRegPar_PreviewPar : MpRecipeRegPar; (*MpRecipeRegPar instance for ParametersPreview variable*) + MpRecipeRegPar_PreviewCfg : MpRecipeRegPar; (*MpRecipeRegPar instance for MachineSettingsPreview*) + MpRecipeUI_0 : MpRecipeUI; (*MpRecupeUI instance*) + MpFileManagerUI_0 : MpFileManagerUI; (*MpFileManagerUI instance*) + DTGetTime_0 : DTGetTime; (*DTGetTime instance*) + DirCreate_0 : DirCreate; (*DirCreate instance*) +END_VAR +(*Constants*) +VAR CONSTANT + MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 1; (*Maximum number of file devices *) + DEFAULT_PARAMETERS : STRING[20] := 'Default'; (*Default parameters recipe file name*) + PARAMETERS_FILE_EXTENSION : STRING[10] := '.par'; (*File extension for parameter recipe files*) + DEFAULT_MACHINE_CONFIGURATION : STRING[20] := 'Machine'; (*Default machine configuration recipe file name*) + MACHINE_CONFIG_FILE_EXTENSION : STRING[10] := '.mcfg'; (*File extension for machine configuration recipe files*) +END_VAR +VAR + PARAMETERS_RECIPE : STRING[50] := 'Parameters'; (*Value of the DropDownBox selection for the Parameters category*) + MACHINE_CONFIGURATION_RECIPE : STRING[50] := 'Machine Configuration'; (*Value of the DropDownBox selection for the Machine Configuration category*) +END_VAR +(*Structure Types*) +VAR + HmiRecipe : RecipeHmiInterfaceType; (*HMI interface structure*) + Parameters : ParametersType; (*Machine parameters. Used by the machine at runtime*) + ParametersEdit : {REDUND_UNREPLICABLE} ParametersType; (*Machine parameters edit structure. Enables you to edit a recipe that is not currently active*) + ParametersPreview : ParametersType; (*Machine parameters preview structure. Registered to the recipe. Enables you to preview a recipe that is not currently active.*) + MachineSettings : MachineSettingsType; (*Machine settings. Used by the machine at runtime.*) + MachineSettingsEdit : MachineSettingsType; (*Machine settings edit structure. Enables you to edit a recipe that is not currently active*) + MachineSettingsPreview : MachineSettingsType; (*Machine settings preview structure. Registered to the recipe. Enables you to preview a recipe that is not currently active. *) + MpRecipeUIConnect : MpRecipeUIConnectType; (*MpRecipeUI connection to the HMI*) (*ParameterFileStep : INT;*) + MpRecipeUISetup : MpRecipeUISetupType; (*MpRecipeUI setup connection to the HMI*) (*ParameterFileStep : INT;*) + MpFileManagerUIConnect : MpFileManagerUIConnectType; (*File manager connection to the HMI*) + Header : MpRecipeXmlHeaderType; (*Header information*) +END_VAR +(*Variables*) +VAR + i : USINT; (*Index to loop through file devices*) + temp : STRING[260]; (*Temporary recipe name, used to check for duplicates when creating a new recipe*) +END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR +(**) +VAR CONSTANT + LOCK : USINT := 0; + UNLOCK : USINT := 1; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Report/Package.pkg new file mode 100644 index 00000000..05536b64 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/Package.pkg @@ -0,0 +1,9 @@ + + + + + ReportMgr + ReportAlarms.tmx + ReportText.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/Report/ReportAlarms.tmx new file mode 100644 index 00000000..cf463ca5 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportAlarms.tmx @@ -0,0 +1,20 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/Report/Alarms +
    + + + + Der Bericht konnte nicht erstellt werden + + + 报告生成失败 + + + The report failed to generate + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st new file mode 100644 index 00000000..4bdfebfd --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -0,0 +1,119 @@ +ACTION ReportFormat: + + // If the current format and the selected format do not match, disable the function block for a cycle and make the change + IF HmiReport.Parameters.UseAdvancedFormat AND (HmiReport.Status.CurrentFormat = FORMAT_SIMPLE) THEN + MpReportCore_0.Enable := FALSE; + MpReportCore_0.MpLink := ADR(gMpLinkAdvancedReport); + HmiReport.Parameters.Name := 'AdvancedReport'; + HmiReport.Status.CurrentFormat := FORMAT_ADVANCED; + ELSIF NOT HmiReport.Parameters.UseAdvancedFormat AND (HmiReport.Status.CurrentFormat = FORMAT_ADVANCED) THEN + MpReportCore_0.Enable := FALSE; + MpReportCore_0.MpLink := ADR(gMpLinkSimpleReport); + HmiReport.Parameters.Name := 'SimpleReport'; + HmiReport.Status.CurrentFormat := FORMAT_SIMPLE; + ELSE + MpReportCore_0.Enable := TRUE; + END_IF + +END_ACTION + +ACTION ReportFileExplorer: + + // Connections between the HMI structure and the report function block + HmiReport.Status.Busy := MpReportCore_0.CommandBusy; + HmiReport.Status.Error := MpReportCore_0.Error; + MpReportCore_0.Language := ADR(HmiReport.Parameters.SelectedLanguage); + + // Set or reset bits based on when a report can be created, deleted, and/or viewed. + HmiReport.Status.CreateAllowed := NOT(MpReportCore_0.CommandBusy); + HmiReport.Status.ViewAllowed := (MpFileManagerUIConnect.File.List.Items[HmiReport.Status.SelectedIndex].ItemType = mpFILE_ITEM_TYPE_USER1); + HmiReport.Status.DeleteAllowed := (MpFileManagerUIConnect.File.List.Items[HmiReport.Status.SelectedIndex].ItemType = mpFILE_ITEM_TYPE_USER1); + + // If the selected index on screen matches the index of a given file, mark that file as selected in the UIConnect structure + FOR i := 0 TO ((SIZEOF(HmiReport.Status.FileNames)/SIZEOF(HmiReport.Status.FileNames[0])) - 1) DO + IF (i = HmiReport.Status.SelectedIndex) AND NOT MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + MpFileManagerUIConnect.File.List.Items[i].IsSelected := TRUE; + ELSIF (i <> HmiReport.Status.SelectedIndex) AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + MpFileManagerUIConnect.File.List.Items[i].IsSelected := FALSE; + END_IF + END_FOR + + // For every file, record its name, timestamp, size, and path + FOR i := 0 TO ((SIZEOF(HmiReport.Status.FileNames)/SIZEOF(HmiReport.Status.FileNames[0])) - 1) DO + HmiReport.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; + HmiReport.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; + + IF MpFileManagerUIConnect.File.List.Items[i].Size <> 0 THEN + HmiReport.Status.TimeStampsText[i] := DT_TO_STRING(MpFileManagerUIConnect.File.List.Items[i].LastModified); + HmiReport.Status.TimeStampsText[i] := RIGHT(HmiReport.Status.TimeStampsText[i], 19); + ELSE + HmiReport.Status.TimeStampsText[i] := ''; + END_IF; + + HmiReport.Status.Size[i] := MpFileManagerUIConnect.File.List.Items[i].Size; + // Concatonate strings to form the file path + HmiReport.Status.TempFilePath[i] := '/FileDevice:'; + brsstrcat(ADR(HmiReport.Status.TempFilePath[i]),ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex])); + brsstrcat(ADR(HmiReport.Status.TempFilePath[i]),ADR('/')); + brsstrcat(ADR(HmiReport.Status.TempFilePath[i]),ADR(HmiReport.Status.FileNames[i])); + HmiReport.Status.FilePath[i] := HmiReport.Status.TempFilePath[i]; + END_FOR + + // Create a file path to be linked to the pdf viewer + HmiReport.Parameters.PathOfReportToView := HmiReport.Status.FilePath[HmiReport.Status.SelectedIndex]; + + // Add USB devices if available + FOR i := 0 TO IDX_USB_DEV_LIST DO + tempDeviceIndex := i + 1; + IF gUSBAvailable[i] THEN + MpFileManagerUIConnect.DeviceList.DeviceNames[tempDeviceIndex] := 'USB'; + brsitoa(i + 1, ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[tempDeviceIndex]) + brsstrlen(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[tempDeviceIndex]))); + ELSE + MpFileManagerUIConnect.DeviceList.DeviceNames[tempDeviceIndex] := ''; + END_IF + END_FOR + + // Create array for the file device table + IF ((MpFileManagerUIConnect.DeviceList.SelectedIndex <> HmiReport.Status.LastSelectedDeviceIndex) AND (MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_IDLE)) THEN + HmiReport.Status.LastSelectedDeviceIndex := MpFileManagerUIConnect.DeviceList.SelectedIndex; + HmiReport.Status.LastSelectedIndex := HmiReport.Status.LastSelectedIndex + 1; + END_IF + + // Configure device list so that only the rows with entries will show + HmiReport.Status.TableConfig[0] := '{ "specRows": [{"from":'; + FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO + IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN + DeviceCount := i + 1; + END_IF + END_FOR + brsitoa((DeviceCount), ADR(HmiReport.Status.TableConfig[0]) + brsstrlen(ADR(HmiReport.Status.TableConfig[0]))); + brsstrcat(ADR(HmiReport.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); + + // Configure file list so that only the rows with entries will show + ItemCount := MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount; + HmiReport.Status.TableConfig[1] := '{ "specRows": [{"from":'; + brsitoa((ItemCount), ADR(HmiReport.Status.TableConfig[1]) + brsstrlen(ADR(HmiReport.Status.TableConfig[1]))); + brsstrcat(ADR(HmiReport.Status.TableConfig[1]), ADR(',"to":50, "visible":false}]}')); + + // If more than 50 items exist, set the File OverMax flag (used for page up/down buttons) + HmiReport.Status.FileOverMax := ItemCount > 50; + + // Set file device to selected + MpReportCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); + + + + + + + //VC4 + IF HmiReport.Status.Error THEN + HmiReport.Status.Layer.ReportCreate := HIDE; + END_IF; + HmiReport.Status.PageUpDownVisibility := NOT HmiReport.Status.FileOverMax; + HtmlView; + + + + +END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/IEC.prg new file mode 100644 index 00000000..43c2637e --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/IEC.prg @@ -0,0 +1,10 @@ + + + + + ReportMgr.st + ReportMgr.typ + ReportMgr.var + HMIActions.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st new file mode 100644 index 00000000..c318e9ad --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st @@ -0,0 +1,80 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: Dec 1, 2022 +// Description: Task for generating reports. +//*********************************************************************** + +PROGRAM _INIT + + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappReportFiles'), pName := ADR('/')); + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + DirCreate_0(enable := FALSE); + END_IF + + //Parameterize the report function block with the simple report + MpReportCore_0.Language := ADR('en'); + MpReportCore_0.DeviceName := ADR('mappReportFiles'); + MpReportCore_0.MpLink := ADR(gMpLinkSimpleReport); + MpReportCore_0.Name := ADR(HmiReport.Parameters.Name); + HmiReport.Parameters.Name := 'SimpleReport'; + MpReportCore_0(); + + //Parameterize the file mangement function block + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIReport); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0.UISetup.FileListSize := SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]); + MpFileManagerUI_0.Enable := TRUE; + MpFileManagerUI_0(); + + //Fill an array to create example data for the example report + TimeIndex := 0; + FOR i:=0 TO ((SIZEOF(ReportExample.SimpleReport.OeeLine[0].TemperatureSample.TimeStamp)/SIZEOF(ReportExample.SimpleReport.OeeLine[0].TemperatureSample.TimeStamp[0])) - 1) DO + ReportExample.SimpleReport.OeeLine[0].TemperatureSample.TimeStamp[i] := TimeIndex; + ReportExample.SimpleReport.OeeLine[1].TemperatureSample.TimeStamp[i] := TimeIndex; + ReportExample.SimpleReport.OeeLine[2].TemperatureSample.TimeStamp[i] := TimeIndex; + ReportExample.AdvancedReport.OeeLine[0].TemperatureSample.TimeStamp[i] := TimeIndex; + ReportExample.AdvancedReport.OeeLine[1].TemperatureSample.TimeStamp[i] := TimeIndex; + ReportExample.AdvancedReport.OeeLine[2].TemperatureSample.TimeStamp[i] := TimeIndex; + TimeIndex := TimeIndex + 15; + END_FOR + + // Ficticious number to serve as an example in the report + ReportExample.AdvancedReport.BatchNumber := 325454685; + +END_PROGRAM + +PROGRAM _CYCLIC + + // Once a report has been generated, clear the generate command + IF MpReportCore_0.CommandDone THEN + MpFileManagerUIConnect.File.Refresh := TRUE; + HmiReport.Commands.Generate := FALSE; + END_IF + + // Call all cyclic actions + ReportFormat; + ReportFileExplorer; + + // Generate command + MpReportCore_0.Generate := HmiReport.Commands.Generate; + MpReportCore_0.Name := ADR(HmiReport.Parameters.Name); + + // Call function blocks + MpReportCore_0(); + MpFileManagerUI_0(); + +END_PROGRAM + +PROGRAM _EXIT + + MpReportCore_0.Enable := FALSE; + MpFileManagerUI_0.Enable := FALSE; + MpReportCore_0(); + MpFileManagerUI_0(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ new file mode 100644 index 00000000..0d65a518 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ @@ -0,0 +1,96 @@ +(*Structure types*) + +TYPE + ReportHmiInterfaceType : STRUCT + Commands : ReportCommandsType; (*Structure to hold the commands from the HMI*) + Parameters : ReportParametersType; (*Structure to hold the parameters from the HMI*) + Status : ReportStatusType; (*Structure to hold the status information from the HMI*) + END_STRUCT; + ReportCommandsType : STRUCT (*Structure to hold the commands from the HMI*) + Generate : BOOL; (*Generate a report*) + Reset : BOOL; (*Reset the report function block*) + END_STRUCT; + ReportParametersType : STRUCT (*Structure to hold the parameters from the HMI*) + Name : STRING[50]; (*Name of the report*) + UseAdvancedFormat : BOOL; (*Whether or not the report should use the advanced format*) + PathOfReportToView : STRING[255]; (*The file path of the selected report*) + SelectedLanguage : STRING[10] := 'en'; (*Selected language*) + END_STRUCT; + ReportStatusType : STRUCT (*Structure to hold the status information from the HMI*) + ViewAllowed : BOOL; (*Bit to indicate it is allowable to view a report right now*) + DeleteAllowed : BOOL; (*Bit to indicate it is allowable to delete a report right now*) + CreateAllowed : BOOL; (*Bit to indicate it is allowable to create a report right now*) + Busy : BOOL; (*Report is busy executing an action*) + Error : BOOL; (*Error flag*) + CurrentFormat : ReportFormatEnum; (*Current report format*) + FileOverMax : BOOL; (*Active when more than 50 items detected*) + FileNames : ARRAY[0..49]OF STRING[50]; (*Existing report file names*) + TempFilePath : ARRAY[0..49]OF STRING[255]; (*A temporary variable used to concatonate and build the full file path of the selected file*) + FilePath : ARRAY[0..49]OF STRING[255]; (*The full file path of the selcted file*) + TimeStamps : ARRAY[0..49]OF DATE_AND_TIME; (*Time stamps for existing reports*) + TimeStampsText : ARRAY[0..49]OF STRING[80]; (*Time stamps for existing reports*) + Size : {REDUND_UNREPLICABLE} ARRAY[0..49]OF UDINT; (*Sizes of existing report files*) + SelectedIndex : USINT; (*Index of the selected file*) + LastSelectedIndex : USINT := 255; (*Index of the last selected report file*) + LastSelectedDeviceIndex : UINT; (*Index of the last selected file device. Compared with MpFileManagerUIConnect.DeviceList.SelectedIndex*) + TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available reports*) + FilterString : STRING[1000]; (*String used to filter out any file that is not a PDF*) + Layer : ReportStatusLayerType; + PageUpDownVisibility : USINT; + END_STRUCT; + ReportExampleType : STRUCT (*Structure for the example data used by the two types of reports*) + SimpleReport : SimpleReportDataType; (*Structure for the simple report's example data*) + AdvancedReport : AdvReportDataType; (*Structure for the advanced report's example data*) + END_STRUCT; + AdvReportDataType : STRUCT (*Structure to hold a report's advanced example data*) + OeeLine : ARRAY[0..NUM_LINES]OF ReportDataOeeType := [(RunTime:=T#24h00m00s00ms,UpTime:=T#23h13m34s98ms,DownTime:=T#00h47m25s02ms,PartsMade:=67268,PPM:=46.7138,NumRejects:=1256,TemperatureSample:=(Value:=[99,97,103,101,100,102,95,2(105),100,102,101,96,105,3(20),97,100,96,99,105,101,97,2(103),98,100,99,104,100,105,104,99,104,103,104,102,100,101,102,96,105,99,97,100,103,105,102,101,97,105,95,101,2(103),2(101),100,101,99,105,101,102,96,95,100,98,103,105,99,104,96,97,96,101,103,100,103,95,102,97,105,103,99,96,98,105,95,103,100,103,100,2(105),101])),(RunTime:=T#24h00m00s00ms,UpTime:=T#23h54m09s00ms,DownTime:=T#00h05m51s00ms,PartsMade:=75061,PPM:=52.1256,NumRejects:=805,TemperatureSample:=(Value:=[98,104,103,97,98,95,101,97,104,96,100,101,103,105,95,103,2(96),98,104,97,102,100,2(96),102,101,95,104,99,104,96,99,104,96,101,105,98,101,99,105,100,97,2(101),96,101,2(100),99,96,101,100,105,97,100,101,99,97,99,104,105,102,97,105,104,98,102,103,102,98,105,103,100,99,104,101,99,105,100,105,102,99,2(95),103,96,97,95,100,99,96,102,105,95,96])),(RunTime:=T#24h00m00s00ms,UpTime:=T#15h57m16s13ms,DownTime:=T#08h02m43s87ms,PartsMade:=40235,PPM:=27.9409,NumRejects:=742,TemperatureSample:=(Value:=[2(97),100,105,104,101,105,97,103,16(20),96,103,100,101,99,102,95,99,102,99,103,95,102,99,96,2(102),103,2(99),102,3(97),101,105,103,2(101),104,101,104,105,97,100,2(99),100,103,101,103,95,103,96,100,99,20(20),99,96,95,96,98]))]; (*Structure to hold example data of a line's OEE statistics*) + BatchNumber : UDINT := 23561458; (*An example of a batch number used for an advanced report*) + END_STRUCT; + SimpleReportDataType : STRUCT (*Structure to hold a report's example data*) + OeeLine : ARRAY[0..NUM_LINES]OF ReportDataOeeType := [(RunTime:=T#24h00m00s00ms,UpTime:=T#23h13m34s98ms,DownTime:=T#00h47m25s02ms,PartsMade:=67268,PPM:=46.7138,NumRejects:=1256,TemperatureSample:=(Value:=[99,97,103,101,100,102,95,2(105),100,102,101,96,105,3(20),97,100,96,99,105,101,97,2(103),98,100,99,104,100,105,104,99,104,103,104,102,100,101,102,96,105,99,97,100,103,105,102,101,97,105,95,101,2(103),2(101),100,101,99,105,101,102,96,95,100,98,103,105,99,104,96,97,96,101,103,100,103,95,102,97,105,103,99,96,98,105,95,103,100,103,100,2(105),101])),(RunTime:=T#24h00m00s00ms,UpTime:=T#23h54m09s00ms,DownTime:=T#00h05m51s00ms,PartsMade:=75061,PPM:=52.1256,NumRejects:=805,TemperatureSample:=(Value:=[98,104,103,97,98,95,101,97,104,96,100,101,103,105,95,103,2(96),98,104,97,102,100,2(96),102,101,95,104,99,104,96,99,104,96,101,105,98,101,99,105,100,97,2(101),96,101,2(100),99,96,101,100,105,97,100,101,99,97,99,104,105,102,97,105,104,98,102,103,102,98,105,103,100,99,104,101,99,105,100,105,102,99,2(95),103,96,97,95,100,99,96,102,105,95,96])),(RunTime:=T#24h00m00s00ms,UpTime:=T#15h57m16s13ms,DownTime:=T#08h02m43s87ms,PartsMade:=40235,PPM:=27.9409,NumRejects:=742,TemperatureSample:=(Value:=[2(97),100,105,104,101,105,97,103,16(20),96,103,100,101,99,102,95,99,102,99,103,95,102,99,96,2(102),103,2(99),102,3(97),101,105,103,2(101),104,101,104,105,97,100,2(99),100,103,101,103,95,103,96,100,99,20(20),99,96,95,96,98]))]; (*Structure to hold example data of a line's OEE statistics*) + END_STRUCT; + ReportDataOeeType : STRUCT (*Structure to hold example data of a line's OEE statistics*) + RunTime : TIME; (*How long the line has been running*) + UpTime : TIME; (*How long the line has been up*) + DownTime : TIME; (*How long the line has been down*) + PartsMade : UDINT; (*How many parts the line has made*) + PPM : REAL; (*The average parts per minute made by the line*) + NumRejects : UDINT; (*The number of rejected parts made by the line*) + TemperatureSample : ReportDataTempSampleType; (*Temperature samples from the line*) + END_STRUCT; + ReportDataTempSampleType : STRUCT (*Temperature samples from the line*) + TimeStamp : ARRAY[0..NUM_TEMP_SAMPLES]OF INT; (*The time the temperature sample was taken*) + Value : ARRAY[0..NUM_TEMP_SAMPLES]OF REAL; (*The actual temperature reading*) + END_STRUCT; +END_TYPE + +(*Enumerations*) + +TYPE + ReportFormatEnum : + ( (*An enumeration of the format selected by the user for the report*) + FORMAT_SIMPLE, (*A simple report to showcase some features of mapp Report*) + FORMAT_ADVANCED (*An advanced report to showcase some features of mapp Report*) + ); +END_TYPE + +(**) + +TYPE + ReportStatusLayerType : STRUCT + ReportCreate : USINT; + ReportDelete : USINT; + ReportView : USINT; + END_STRUCT; +END_TYPE + +(**) +(**) + +TYPE + HtmlViewType : STRUCT + HTMLStream : STRING[255]; + ChangeURLDatapoint : STRING[255]; + CurrentURLDatapoint : STRING[255]; + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var new file mode 100644 index 00000000..171f3680 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var @@ -0,0 +1,34 @@ +(*Function Blocks*) +VAR + MpReportCore_0 : MpReportCore; (*MpReport instance*) + MpFileManagerUI_0 : MpFileManagerUI; (*MpFileManagerUI instance*) + DirCreate_0 : DirCreate; (*DirCreate instance*) +END_VAR +(*Constants*) +VAR CONSTANT + NUM_LINES : INT := 2; (*The number lines on the machine*) + NUM_TEMP_SAMPLES : INT := 95; (*The number of temperature samples in the example data*) +END_VAR +(*Structure Types*) +VAR + HmiReport : ReportHmiInterfaceType; (*HMI interface structure*) + ReportExample : ReportExampleType; (*Structure for the example data used by the two types of reports*) + MpFileManagerUIConnect : MpFileManagerUIConnectType := (DeviceList:=(DeviceNames:=['mappReportFiles',9('')])); (*MpFile connection to the HMI*) +END_VAR +(*Variables*) +VAR + i : USINT; (*Index*) + TimeIndex : INT; (*Index to loop through file devices*) + tempDeviceIndex : USINT; (*Temporary index for identifying USB devices*) + DeviceCount : USINT; (*Counter for available file devices*) + ItemCount : UDINT; (*Counter for available files*) +END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; +END_VAR +(**) +VAR + HtmlView : HtmlViewType; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportText.tmx b/mappFramework/Logical/Infrastructure/VC4/Report/ReportText.tmx new file mode 100644 index 00000000..8bf6bd4b --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportText.tmx @@ -0,0 +1,493 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/Report/Texts +
    + + + + Anerkannt + + + 已确认 + + + Acknowledged + + + + + Aktiviert + + + 活性 + + + Activated + + + + + Erweiterter Bericht + + + 高级报告 + + + Advanced Report + + + + + Alarmverlauf + + + 报警历史 + + + Alarm History + + + + + Buchungskontrolle + + + 审计追踪 + + + Audit Trail + + + + + Chargennummer: {#::ReportMgr:ReportExample.AdvancedReport.BatchNumber} + + + 批号:{#::ReportMgr:ReportExample.AdvancedReport.BatchNumber} + + + Batch Number: {#::ReportMgr:ReportExample.AdvancedReport.BatchNumber} + + + + + Schlusselwort + + + 代码 + + + Code + + + + + Tagliche Zusammenfassung + + + 每日总结 + + + Daily Summary + + + + + Produktionsstatistik der Zeilen 1-3 der Maschine 5000 + + + Machine 5000 1-3 线的生产统计 + + + Production statistics from lines 1-3 of the Machine 5000 + + + + + Deaktiviert + + + 停用 + + + Deactivated + + + + + Ausfallzeit + + + 停机时间 + + + Down Time + + + + + Keine Alarmverlaufsdaten verfugbar. + + + 没有可用的警报历史数据。 + + + No alarm history data available. + + + + + Keine Uberwachungsereignisse verfugbar. + + + 没有可用的审计事件。 + + + No audit events available. + + + + + Seite {&PageNr} von {&TotalPageNr} + + + 第 {&PageNr} 页,共 {&TotalPageNr} + + + Page {&PageNr} of {&TotalPageNr} + + + + + Uten ist der Bericht fur den heutigen Lauf der Machine5000. + + + 以下是今天机器 5000 的运行报告。 + + + Below is the report for today's run of the Machine 5000. + + + + + Linie 1 + + + 1号线 + + + Line 1 + + + + + Abgleich von Teilen und Ausschuss auf Linie 1 + + + 在第 1 行比较零件和不合格品 + + + Comparing parts and rejects on line 1 + + + + + Linie 2 + + + 2号线 + + + Line 2 + + + + + Abgleich von Teilen und Ausschuss auf Linie 2 + + + 在第 2 行比较零件和不合格品 + + + Comparing parts and rejects on line 2 + + + + + Linie 3 + + + 3号线 + + + Line 3 + + + + + Abgleich von Teilen und Ausschuss auf Linie 3 + + + 在第 3 行比较零件和不合格品 + + + Comparing parts and rejects on line 3 + + + + + Meldung + + + 信息 + + + Message + + + + + Name + + + 姓名 + + + Name + + + + + Neuer Wert + + + 新价值 + + + New Value + + + + + Anzahl der Ablehnungen + + + 拒绝次数 + + + Number of Rejects + + + + + Alter Wert + + + 旧值 + + + Old Value + + + + + Unterschrift des Bedieners: ___________________________________________________ + + + 操作员签名:___________________________________________________ + + + Operator Signature: ___________________________________________________ + + + + + Teile- und Ausschussstatistik + + + 零件和拒绝统计 + + + Parts and Reject Statistics + + + + + Teile Gemacht + + + 零件制造 + + + Parts Made + + + + + TPM + + + PPM + + + PPM + + + + + Vergleich der Anzahl der hergestellten Teile uber die drei Linien + + + 跨三线制造的零件数量比较 + + + Comparison of the number of parts made across the three lines + + + + + Vergleich der Anzahl der Ausschleusungen uber die drei Linien hinweg + + + 三行拒收数量对比 + + + Comparison of the number of rejects made across the three lines + + + + + Laufzeit + + + 运行 + + + Run Time + + + + + Einfacher Bericht + + + 简单报告 + + + Simple Report + + + + + Statusänderung + + + 状态变化 + + + State change + + + + + Alle 15 Minuten werden Temperaturproben von der Maschine genommen + + + 每 15 分钟从机器采集温度样本 + + + Temperature samples from the machine taken every 15 minutes + + + + + Temperatur (C) + + + 温度 (C) + + + Temp (C) + + + + + Temperaturwerte den Ganzen Tag + + + 全天的温度读数 + + + Temperature Readings Throughout the Day + + + + + Temperaturproben + + + 温度样本 + + + Temperature Samples + + + + + Text + + + 文本 + + + Text + + + + + Zeitstempel + + + 时间戳 + + + Time Stamp + + + + + Unbestätigt + + + 未确认 + + + Unacknowledged + + + + + Aktualisiert + + + 更新 + + + Updated + + + + + Betriebszeit + + + 正常运行时间 + + + Up Time + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Usb/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Usb/Package.pkg new file mode 100644 index 00000000..5db5caca --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Usb/Package.pkg @@ -0,0 +1,7 @@ + + + + + UsbMgr + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/IEC.prg new file mode 100644 index 00000000..770085b7 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/IEC.prg @@ -0,0 +1,9 @@ + + + + + UsbMgr.st + UsbMgr.typ + UsbMgr.var + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.st b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.st new file mode 100644 index 00000000..a5de7ad2 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.st @@ -0,0 +1,288 @@ +//********************************************************************************* +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: April 12, 2022 +// Description: This task automatically detects and (un)links USB storage devices +//********************************************************************************* + +PROGRAM _INIT +END_PROGRAM + +PROGRAM _CYCLIC + + CASE StateMachine OF + // ----------------------------------------------------------------------------------------------------------- + // Wait state + // ----------------------------------------------------------------------------------------------------------- + USB_WAIT: + // Refresh USB data every X seconds when enabled + Node := 1; + USB.Status := ERR_OK; + IF USB.Cmd.AutoScan = TRUE THEN + TON_01(IN := 1, PT := USB.Par.RefreshInterval); + // Get new USB data + IF(TON_01.Q) THEN + TON_01(IN := 0); + USB.Status := ERR_FUB_BUSY; + brsmemset(ADR(Usb_data), 0, SIZEOF(Usb_data)); + StateMachine := USB_CREATE_NODE_ID_LIST; + END_IF + ELSE + TON_01(IN := 0); + END_IF + // Refresh USB data every X seconds when enabled + IF USB.Cmd.ErrorReset = TRUE THEN + StateMachine := USB_ERROR; + END_IF + + FOR i := 0 TO IDX_USB_DEV_LIST DO + gUSBAvailable[i] := USB.Par.IsConnected[i+1]; + END_FOR + + // ----------------------------------------------------------------------------------------------------------- + // Get USB device list + // ----------------------------------------------------------------------------------------------------------- + USB_CREATE_NODE_ID_LIST: + UsbNodeListGet_0.enable := 1; + UsbNodeListGet_0.pBuffer := ADR(Node_id_buffer); + UsbNodeListGet_0.bufferSize := SIZEOF(Node_id_buffer); + UsbNodeListGet_0.filterInterfaceClass := asusb_CLASS_MASS_STORAGE; + UsbNodeListGet_0.filterInterfaceSubClass := 0; + UsbNodeListGet_0; + + // -------------------------------------------------------------------------------------------------------------------- + // Success + IF UsbNodeListGet_0.status = 0 THEN + StateMachine := USB_READ_DEVICE_DATA; + Node := 1; + // No USB devices found + ELSIF UsbNodeListGet_0.status = asusbERR_USB_NOTFOUND THEN + // Unlink old device if it is gone now otherwise wait for next round + FOR i:=1 TO MAX_IDX_USB_DEV_LIST DO + IF(USB.Par.IsConnected[i] = TRUE) THEN + Node := 1; + StateMachine := USB_CHECK_LINKED; + RETURN; + END_IF + END_FOR; + StateMachine := USB_WAIT; + // Error + ELSIF UsbNodeListGet_0.status <> ERR_FUB_BUSY THEN + USB.Status := UsbNodeListGet_0.status; + USB.Err.State := StateMachine; + IF UsbNodeListGet_0.status = asusbERR_BUFSIZE THEN + USB.Err.Text := 'maximum number of devices reached'; + ELSE + USB.Err.Text := 'error getting device list'; + END_IF; + StateMachine := USB_ERROR; + END_IF; + // ----------------------------------------------------------------------------------------------------------- + // Get device information + // ----------------------------------------------------------------------------------------------------------- + USB_READ_DEVICE_DATA: + UsbNodeGet_0.enable := 1; + UsbNodeGet_0.nodeId := Node_id_buffer[Node]; + UsbNodeGet_0.pBuffer := ADR(Usb_data[Node]); + UsbNodeGet_0.bufferSize := SIZEOF (Usb_data[Node]); + UsbNodeGet_0; + + // -------------------------------------------------------------------------------------------------------------------- + // Success + IF UsbNodeGet_0.status = 0 THEN + // Make sure we have enough space to store USB data, proceed with next StateMachine when all devices are detetced + IF (Node = UsbNodeListGet_0.listNodes) OR (Node = MAX_IDX_USB_DEV_LIST) THEN + Node := 1; + StateMachine := USB_CHECK_LINKED; + // Get next USB device + ELSE + Node := Node + 1; + END_IF; + // Error + ELSIF UsbNodeGet_0.status <> ERR_FUB_BUSY THEN + USB.Status := UsbNodeGet_0.status; + USB.Err.State := StateMachine; + USB.Err.Text := 'error getting device data'; + StateMachine := USB_ERROR; + END_IF; + // ----------------------------------------------------------------------------------------------------------- + // Check if linked device are still present + // ----------------------------------------------------------------------------------------------------------- + USB_CHECK_LINKED: + // Proceed to new devices when last device was checked + IF(Node > MAX_IDX_USB_DEV_LIST) THEN + Node := 1; + StateMachine := USB_LINK_NEW; + RETURN; + END_IF + + // ----------------------------------------------------------------------------------------------------------- + // Check if device is still active + Is_linked := FALSE; + FOR i:=1 TO MAX_IDX_USB_DEV_LIST DO + // Compare old and new data + IF(brsmemcmp(ADR(Usb_data_old[Node]), ADR(Usb_data[i]), SIZEOF(Usb_data[i])) = 0) AND + (USB.Par.IgnoreDongle = FALSE OR (USB.Par.IgnoreDongle = TRUE AND Usb_data[i].productId <> BRproductId AND Usb_data[i].vendorId <> BRvendorId)) THEN + // Clear data, mark as linked and EXIT loop + brsmemset(ADR(Usb_data[i]), 0, SIZEOF(Usb_data[i])); + Is_linked := TRUE; + EXIT; + END_IF + END_FOR; + + // ----------------------------------------------------------------------------------------------------------- + // Find next linked device + IF(Is_linked OR Usb_data_old[Node].interfaceClass = 0) THEN + IF(Node < MAX_IDX_USB_DEV_LIST) THEN + Node := Node + 1; + WHILE(Node < MAX_IDX_USB_DEV_LIST AND Usb_data_old[Node].interfaceClass = 0) DO + Node := Node + 1; + END_WHILE; + IF(Node = MAX_IDX_USB_DEV_LIST AND Usb_data_old[Node].interfaceClass = 0) THEN + Node := Node + 1; + END_IF + ELSE + Node := Node + 1; + END_IF + // Unlink device if it is missing + ELSE + StateMachine := USB_UNLINK_DEVICE; + END_IF + // ----------------------------------------------------------------------------------------------------------- + // Link new devices + // ----------------------------------------------------------------------------------------------------------- + USB_LINK_NEW: + // Return to wait state when last device was checked + IF(Node > MAX_IDX_USB_DEV_LIST) THEN + StateMachine := USB_WAIT; + RETURN; + END_IF + + // ----------------------------------------------------------------------------------------------------------- + // Find next new device + IF(Usb_data[Node].interfaceClass <> 0) THEN + IF(USB.Par.IgnoreDongle = FALSE OR (Usb_data[Node].productId <> BRproductId AND Usb_data[Node].vendorId <> BRvendorId)) THEN + StateMachine := USB_LINK_DEVICE; + RETURN; + END_IF + END_IF + Node := Node + 1; + // ----------------------------------------------------------------------------------------------------------- + // Link device + // ----------------------------------------------------------------------------------------------------------- + USB_LINK_DEVICE: + // Find empty slot + FOR i:=1 TO MAX_IDX_USB_DEV_LIST DO + IF(Usb_data_old[i].interfaceClass = 0) THEN + EXIT; + END_IF + END_FOR; + // No more slot available + IF(i = MAX_IDX_USB_DEV_LIST AND Usb_data_old[i].interfaceClass <> 0) THEN + USB.Status := ERR_MAX_DEVICE; + USB.Err.State := StateMachine; + USB.Err.Text := 'maximum number of device reached'; + StateMachine := USB_ERROR; + RETURN; + END_IF + // Create device string + brsstrcpy(ADR(Device_param), ADR('/DEVICE=')); + brsstrcat(ADR(Device_param), ADR(Usb_data[Node].ifName)); + brsstrcpy(ADR(Device_name), ADR('USB')); + brsitoa(i, ADR(tmpSTR)); + brsstrcat(ADR(Device_name), ADR(tmpSTR)); + // Link device + DevLink_0.enable := 1; + DevLink_0.pDevice := ADR(Device_name); + DevLink_0.pParam := ADR(Device_param); + DevLink_0; + + // -------------------------------------------------------------------------------------------------------------------- + // Success + IF DevLink_0.status = 0 THEN + // Store data for new device + brsmemcpy(ADR(Usb_data_old[i]), ADR(Usb_data[Node]), SIZEOF(Usb_data[Node])); + USB.Par.IsConnected[i] := TRUE; + Link_handle[i] := DevLink_0.handle; + Node := Node + 1; + StateMachine := USB_LINK_NEW; + // Error + ELSIF DevLink_0.status <> ERR_FUB_BUSY THEN + USB.Status := DevLink_0.status; + USB.Err.State := StateMachine; + USB.Err.Text := 'error linking device'; + StateMachine := USB_ERROR; + END_IF; + // ----------------------------------------------------------------------------------------------------------- + // UnLink device + // ----------------------------------------------------------------------------------------------------------- + USB_UNLINK_DEVICE: + DevUnlink_0.enable := 1; + DevUnlink_0.handle := Link_handle[Node]; + DevUnlink_0; + + // -------------------------------------------------------------------------------------------------------------------- + // Success + IF DevUnlink_0.status = 0 THEN + // Clear data + brsmemset(ADR(Usb_data_old[Node]), 0, SIZEOF(Usb_data_old[Node])); + USB.Par.IsConnected[Node] := FALSE; + Link_handle[Node] := 0; + // Find next linked device + WHILE(Node < MAX_IDX_USB_DEV_LIST AND Usb_data_old[Node].interfaceClass = 0) DO + Node := Node + 1; + END_WHILE; + IF(Node = MAX_IDX_USB_DEV_LIST AND Usb_data_old[Node].interfaceClass = 0) THEN + Node := Node + 1; + END_IF + StateMachine := USB_CHECK_LINKED; + // Error + ELSIF DevUnlink_0.status <> ERR_FUB_BUSY THEN + // Clear data + brsmemset(ADR(Usb_data_old[Node]), 0, SIZEOF(Usb_data_old[Node])); + USB.Par.IsConnected[Node] := FALSE; + Link_handle[Node] := 0; + + brsitoa(Node, ADR(tmpSTR)); + USB.Status := DevUnlink_0.status; + USB.Err.State := StateMachine; + USB.Err.Text := 'error unlinking device no '; + brsstrcat(ADR(USB.Err.Text), ADR(tmpSTR)); + StateMachine := USB_ERROR; + END_IF; + // ----------------------------------------------------------------------------------------------------------- + // Error state + // ----------------------------------------------------------------------------------------------------------- + USB_ERROR: + // Get more error information + IF(USB.Status = 0) THEN + USB.Status := FileIoGetSysError(); + END_IF + + // Unlink device + IF(USB.Err.State = USB_LINK_DEVICE) THEN + DevUnlink_0.enable := 1; + DevUnlink_0.handle := DevLink_0.handle; + DevUnlink_0; + END_IF + + // Reset error + IF(USB.Cmd.ErrorReset AND DevUnlink_0.status <> ERR_FUB_BUSY) THEN + USB.Cmd.ErrorReset := FALSE; + brsmemset(ADR(USB.Err), 0, SIZEOF(USB.Err)); + StateMachine := USB_WAIT; + END_IF + END_CASE; + +END_PROGRAM + +PROGRAM _EXIT + FOR i:=1 TO MAX_IDX_USB_DEV_LIST DO + REPEAT + DevUnlink_0.enable := 1; + DevUnlink_0.handle := Link_handle[i]; + DevUnlink_0; + UNTIL DevUnlink_0.status <> ERR_FUB_BUSY + END_REPEAT; + END_FOR; +END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.typ new file mode 100644 index 00000000..7c491d8a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.typ @@ -0,0 +1,33 @@ + +TYPE + UsbStateEnum : + ( + USB_WAIT, (*Wait for starting the Function chain*) + USB_CREATE_NODE_ID_LIST, (*Create a list of Node-IDs from all active USB devices*) + USB_READ_DEVICE_DATA, (*Read out the specific data from the Node-IDs*) + USB_CHECK_LINKED, (*Check if device is still connected*) + USB_LINK_NEW, + USB_LINK_DEVICE, (*Link file device*) + USB_UNLINK_DEVICE, (*Unlink the File Device from specific path*) + USB_ERROR (*Jump to this step in every case of Error occuring in the Function chain*) + ); + UsbCmdType : STRUCT + AutoScan : BOOL := TRUE; (*Scan USB ports automatically*) + ErrorReset : BOOL; (*Reset error*) + END_STRUCT; + UsbParType : STRUCT + IgnoreDongle : BOOL := TRUE; (*Ignoe B&R license dongle*) + RefreshInterval : TIME := T#3s; (*Intervall timer for USB device refresh*) + IsConnected : ARRAY[0..MAX_IDX_USB_DEV_LIST]OF BOOL; (*Shows if a USB stick is connected*) + END_STRUCT; + UsbErrType : STRUCT + State : UsbStateEnum; (*State where the error occured*) + Text : STRING[80]; (*Error text*) + END_STRUCT; + UsbMainType : STRUCT + Cmd : UsbCmdType; (*Command structure*) + Par : UsbParType; (*Parameter structure*) + Err : UsbErrType; (*Error structure*) + Status : UINT; (*Current status*) + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.var b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.var new file mode 100644 index 00000000..f5c54709 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/Usb/UsbMgr/UsbMgr.var @@ -0,0 +1,32 @@ +(*Function Blocks*) +VAR + TON_01 : TON; + UsbNodeListGet_0 : UsbNodeListGet; (*Type of FUB UsbNodeListGet*) + UsbNodeGet_0 : UsbNodeGet; (*Type of FUB UsbNodeGet*) + DevLink_0 : DevLink; (*Type of FUB DevLink*) + DevUnlink_0 : DevUnlink; (*Type of FUB DevUnlink*) +END_VAR +(*Constants*) +VAR CONSTANT + BRvendorId : UINT := 1615; (*B&R vendor id*) + BRproductId : UINT := 1001; (*B&R dongle product id*) +END_VAR +(*Structure Types*) +VAR + USB : UsbMainType; + StateMachine : UsbStateEnum; (*State machine*) + Usb_data : ARRAY[1..MAX_IDX_USB_DEV_LIST] OF usbNode_typ; (*Data of all available USB devices*) + Usb_data_old : ARRAY[1..MAX_IDX_USB_DEV_LIST] OF usbNode_typ; (*Old data of all available USB devices*) +END_VAR +(*Variables*) +VAR + Device_param : STRING[80]; (*Connection path of USB device*) + Device_name : STRING[40]; (*Connection path of USB device*) + Link_handle : ARRAY[1..MAX_IDX_USB_DEV_LIST] OF UDINT; (*Link handle for USB device*) + Node_id_buffer : ARRAY[1..MAX_IDX_USB_DEV_LIST] OF UDINT; (*Different nodeIDs saved in array-elements*) + Is_linked : BOOL; (*Helper variable that indicates that a USB stick is linked*) + Node : USINT; (*Node number*) + i : USINT; + tmpSTR : STRING[10]; + ERR_MAX_DEVICE : UINT := 50000; (*Maximum number of dongles reached*) +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/UserX/Package.pkg new file mode 100644 index 00000000..e92e1f9a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/Package.pkg @@ -0,0 +1,8 @@ + + + + + UserXMgr + UserXAlarms.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXAlarms.tmx new file mode 100644 index 00000000..bd92ec78 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXAlarms.tmx @@ -0,0 +1,20 @@ + + +
    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/UserX/Alarms +
    + + + + Benutzer wurde aufgrund zu vieler fehlerhafter Loginversuche gesperrt + + + 登录失败次数过多,该用户已锁定 + + + User blocked due to too many failed login attempts + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st new file mode 100644 index 00000000..cf456bb2 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st @@ -0,0 +1,141 @@ +ACTION HMIAction_Init: + + HmiUserX.FileDuplicateLayerStatus := HIDE; + HmiUserX.ButtonLockedMessageLayer := HIDE; + UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := HIDE; + +END_ACTION + + +ACTION HMIAction: + + CASE UserXCheckState OF + USERX_START: + IF NOT UserXMgrUIConnect.Import.ShowDialog THEN + UserXMgrUIConnect.Import.ShowDialog := TRUE; + ELSE + UserXCheckState := USERX_WAIT_FOR_DIALOG; + END_IF + USERX_WAIT_FOR_DIALOG: + UserXMgrUIConnect.Import.ShowDialog := FALSE; + UserXCheckState := USERX_SET_RESPONSE; + USERX_SET_RESPONSE: + IF NOT(UserXMgrUIConnect.Status = mpUSERX_UI_STATUS_IDLE) THEN + UserXMgrUIConnect.Import.Dialog.Cancel := TRUE; + ELSE + UserXMgrUIConnect.Import.Dialog.Cancel := FALSE; + UserXCheckState := USERX_CONFIRM_RESPONSE; + END_IF + USERX_CONFIRM_RESPONSE: + IF UserXMgrUIConnect.Status = mpUSERX_UI_STATUS_WAIT_DLG THEN + UserXCheckState := USERX_START; + ELSE + UserXCheckState := USERX_FINISH; + END_IF + USERX_NEW_EXPORT: + IF NOT UserXMgrUIConnect.Export.ShowDialog AND UserXMgrUIConnect.Status = mpUSERX_UI_STATUS_IDLE THEN + UserXCheckState := USERX_START; + END_IF + USERX_FINISH: + + END_CASE + // If new updates are made via export execute a check + IF UserXMgrUIConnect.Export.ShowDialog THEN + UserXCheckState := USERX_NEW_EXPORT; + END_IF + + + //check User is Admin + IF UserXLoginUIConnect.UserLevel = USER_ADMIN_LEVEL THEN + HmiUserX.ButtonLockingLayer := HIDE; + ELSE + HmiUserX.ButtonLockingLayer := DISPLAY; + END_IF; + + + + //Duplicate file checks + HmiUserX.FileDuplicate := FALSE; + FOR i := 0 TO ((SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames) / SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames[0])) - 1) DO + temp := UserXMgrUIConnect.Export.Dialog.FileName; + brsstrcat(ADR(temp),ADR('.usr')); + IF (temp = UserXMgrUIConnect.Import.Dialog.List.FileNames[i]) AND HmiUserX.Export THEN + HmiUserX.FileDuplicate := TRUE; + END_IF + END_FOR + + IF HmiUserX.FileDuplicate AND (HmiUserX.ConfirmOverwrite) THEN + UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; + HmiUserX.Export := FALSE; + HmiUserX.FileDuplicate := FALSE; + + ELSIF HmiUserX.FileDuplicate AND (HmiUserX.CancelOverwrite) THEN + UserXMgrUIConnect.Export.Dialog.Cancel := TRUE; + HmiUserX.Export := FALSE; + HmiUserX.FileDuplicate := FALSE; + + ELSIF NOT HmiUserX.FileDuplicate AND HmiUserX.Export THEN + UserXMgrUIConnect.Export.Dialog.Confirm := TRUE; + HmiUserX.Export := FALSE; + + ELSIF NOT HmiUserX.FileDuplicate AND UserXMgrUIConnect.Export.Dialog.Cancel THEN + UserXMgrUIConnect.Export.Dialog.Cancel := TRUE; + HmiUserX.Export := FALSE; + END_IF + + + + // Manage FileExport Layer + (*Close*) + IF UserXMgrUIConnect.Export.Dialog.Cancel OR HmiUserX.Export THEN + UserXMgrUIConnect.Export.Dialog.LayerStatus := HIDE; + END_IF + + + // Manage FileDupliacte Layer + (*Close*) + IF HmiUserX.CancelOverwrite OR HmiUserX.ConfirmOverwrite THEN + HmiUserX.CancelOverwrite := FALSE; + HmiUserX.ConfirmOverwrite := FALSE; + HmiUserX.FileDuplicateLayerStatus := HIDE; + END_IF + (*Open*) + IF HmiUserX.Export AND HmiUserX.FileDuplicate THEN + HmiUserX.FileDuplicateLayerStatus := DISPLAY; + END_IF; + + //Password change require manage + IF EDGENEG(UserXLoginUIConnect.MessageBox.ErrorNumber = 28690) THEN + IF UserXLoginUIConnect.MessageBox.Confirm THEN + + UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := DISPLAY; + UserXLoginUIConnect.ChangePassword.ShowDialog := TRUE; + END_IF + END_IF + +END_ACTION + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/IEC.prg new file mode 100644 index 00000000..3565409a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/IEC.prg @@ -0,0 +1,10 @@ + + + + + UserXMgr.st + UserXMgr.typ + UserXMgr.var + HMIAction.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st new file mode 100644 index 00000000..0177a2da --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st @@ -0,0 +1,91 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: April 12, 2022 +// Description: Tasks for user management. +//*********************************************************************** + +PROGRAM _INIT + + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappUserXFiles'), pName := ADR('/')); + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + DirCreate_0(enable := FALSE); + END_IF + + // if the system has been opened just now + HMIAction_Init; + + // Initialize mapp function blocks + UserXMgrUIConnect.User.Create.Lock := FALSE; + UserXMgrUIConnect.User.Lock := FALSE; + UserXMgrUIConnect.User.Edit.Lock := FALSE; + UserXMgrUIConnect.User.Create.Dialog.UserName := ""; + UserXMgrUIConnect.User.Create.Dialog.NewPassword := ""; + UserXMgrUIConnect.User.Create.Dialog.ConfirmPassword := ""; + UserXMgrUIConnect.User.List.MaxSelection := USER_LIST_MAX_SELECTION; + UserXMgrUIConnect.User.List.RangeStart := USER_LIST_RANGE_START; + UserXMgrUIConnect.User.List.RangeEnd := USER_LIST_RANGE_END; + MpUserXManagerUI_0.MpLink := ADR(gMpLinkUserXLogin); + MpUserXManagerUI_0.Enable := TRUE; + MpUserXManagerUI_0.UIConnect := ADR(UserXMgrUIConnect); + MpUserXManagerUI_0(); + + MpUserXLoginUI_0.MpLink := ADR(gMpLinkUserXLogin); + MpUserXLoginUI_0.Enable := TRUE; + MpUserXLoginUI_0.UIConnect := ADR(UserXLoginUIConnect); + MpUserXLoginUI_0(); + + MpUserXLogin_0.MpLink := ADR(gMpLinkUserXLogin); + MpUserXLogin_0.Enable := TRUE; + MpUserXLogin_0(); + + +END_PROGRAM + +PROGRAM _CYCLIC + + // Error reset + IF NOT MpUserXManagerUI_0.Error THEN + MpUserXManagerUI_0.ErrorReset := FALSE; + END_IF + + IF NOT MpUserXLoginUI_0.Error THEN + MpUserXLoginUI_0.ErrorReset := FALSE; + END_IF + + IF NOT MpUserXLogin_0.Error THEN + MpUserXLogin_0.ErrorReset := FALSE; + END_IF + + HMIAction; + + // Assign MpLinks + MpUserXManagerUI_0.MpLink := ADR(gMpLinkUserXLogin); + MpUserXLoginUI_0.MpLink := ADR(gMpLinkUserXLogin); + MpUserXLogin_0.MpLink := ADR(gMpLinkUserXLogin); + + // Call function blocks + MpUserXManagerUI_0(); + MpUserXLoginUI_0(); + MpUserXLogin_0(); + + +END_PROGRAM + +PROGRAM _EXIT + + // Disable the function blocls to unlink the MpLinks + MpUserXManagerUI_0.Enable := FALSE; + MpUserXLoginUI_0.Enable := FALSE; + MpUserXLogin_0.Enable := FALSE; + + // Call function blocks + MpUserXManagerUI_0(); + MpUserXLoginUI_0(); + MpUserXLogin_0(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ new file mode 100644 index 00000000..cb90100a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ @@ -0,0 +1,22 @@ + +TYPE + enumCheckState : + ( + USERX_START := 0, + USERX_WAIT_FOR_DIALOG := 1, + USERX_SET_RESPONSE := 2, + USERX_CONFIRM_RESPONSE := 3, + USERX_NEW_EXPORT := 4, + USERX_FINISH := 5 + ); + HMIUser_Typ : STRUCT + NewFileName : STRING[255]; + Export : BOOL; + ConfirmOverwrite : BOOL; + CancelOverwrite : BOOL; + FileDuplicate : BOOL; + FileDuplicateLayerStatus : USINT; + ButtonLockedMessageLayer : USINT; + ButtonLockingLayer : USINT; + END_STRUCT; +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var new file mode 100644 index 00000000..866a3043 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var @@ -0,0 +1,32 @@ +(*Function Blocks*) +VAR + MpUserXLogin_0 : MpUserXLogin; (*MpUserXLogin instance*) + MpUserXManagerUI_0 : MpUserXManagerUI := (UISetup:=(FileDevice:='mappUserXFiles')); (*MpUserXManagerUI instance*) + MpUserXLoginUI_0 : MpUserXLoginUI; (*MpUserXLoginUI instance*) + DirCreate_0 : DirCreate; (*DirCreate instance*) +END_VAR +(*Constants*) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; + USER_ADMIN_LEVEL : USINT := 100; +END_VAR +(**) +VAR CONSTANT + USER_LIST_MAX_SELECTION : USINT := 20; (*Maxiumum selections on the User List *) + USER_LIST_RANGE_START : USINT := 0; (*Range start (used for UserXMgrUIConnect)*) + USER_LIST_RANGE_END : USINT := 20; (*Range end (used for UserXMgrUIConnect)*) +END_VAR +(*Structure Types*) +VAR + UserXMgrUIConnect : MpUserXMgrUIConnectType; (*UserX manager connection to the HMI*) + UserXLoginUIConnect : MpUserXLoginUIConnectType; (*UserL login connection to the HMI*) + i : USINT; + HmiUserX : HMIUser_Typ; +END_VAR +(*Enumerations*) +(*Variables*) +VAR + UserXCheckState : enumCheckState; + temp : STRING[255]; (*Temporary string holder for checking file names*) +END_VAR diff --git a/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var b/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var index 4f1c9390..c3851b42 100644 --- a/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var +++ b/mappFramework/Logical/Infrastructure/mappFrameworkGlobal.var @@ -1,8 +1,16 @@ +(*Recipe*) VAR CONSTANT + MACH_CONFIG_CATEGORY_INDEX : USINT := 1; (*Recipe category index for machine config*) + PARAMETERS_CATEGORY_INDEX : USINT := 0; (*Recipe category index for machine parameters*) PARAMETERS_CATEGORY : STRING[10] := 'Parameters'; (*Recipe category for runtime parameters*) MACHINE_CONFIGURATION_CATEGORY : STRING[30] := 'Machine Configuration'; (*Recipe category for machine configuration settings*) - PARAMETERS_CATEGORY_INDEX : USINT := 0; (*Recipe category for runtime parameters*) - MACH_CONFIG_CATEGORY_INDEX : USINT := 1; (*Recipe category for runtime parameters*) + DEFAULT_PARAMETERS : STRING[20] := 'Default'; (*Default parameters recipe file name*) + PARAMETERS_FILE_EXTENSION : STRING[10] := '.par'; (*File extension for parameter recipe files*) + DEFAULT_MACHINE_CONFIGURATION : STRING[20] := 'Machine'; (*Default machine configuration recipe file name*) + MACHINE_CONFIG_FILE_EXTENSION : STRING[10] := '.mcfg'; (*File extension for machine configuration recipe files*) +END_VAR +(*File*) +VAR CONSTANT MAX_IDX_USB_DEV_LIST : USINT := 2; (*Maximum number of USB storage devices. Value 2 = 2 USB devices (index 0 and 1)*) IDX_USB_DEV_LIST : USINT := MAX_IDX_USB_DEV_LIST - 1; (*Maximum number of USB storage devices.*) END_VAR diff --git a/mappFramework/Logical/VC4/Package.pkg b/mappFramework/Logical/VC4/Package.pkg index e2bf3571..7f86829f 100644 --- a/mappFramework/Logical/VC4/Package.pkg +++ b/mappFramework/Logical/VC4/Package.pkg @@ -2,6 +2,6 @@ - Visu + mappFrameworkVisu \ No newline at end of file diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXHistoryStates.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpAlarmXStates.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditCheckbox.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpAuditEventsID.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpBorders.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpComFacilitiesEnum.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpComSeveritiesEnum.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpDataLimitViolation.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileFIFOIcons.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpFileIcons.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpIcons.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpIconsClick.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpListbox.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpPMLStatesGraphics.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpPads.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpTeachIcons.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserCriteriaCheck.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/BitmapGroups/MpUserIcons.bmgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_Backtrace.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_History.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_History.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_History.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_History.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_History.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_List.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListDetail.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarmX_ListHistory.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_AcknowledgeReset.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_AcknowledgeReset.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_AcknowledgeReset.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_AcknowledgeReset.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Active.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_BypassON.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Inactive.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_NotQuit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_Quit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_QuitAll.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_ResetAcknowledge.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_ResetAcknowledge.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAlarm_ResetAcknowledge.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_ResetAcknowledge.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_3rdPartyEvent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_3rdPartyEvent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_3rdPartyEvent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_3rdPartyEvent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_3rdPartyEvent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_AlarmEvent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_AlarmEvent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_AlarmEvent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_AlarmEvent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_AlarmEvent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox_checked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox_checked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox_checked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CheckBox_checked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CheckBox_checked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CustomEvent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CustomEvent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CustomEvent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_CustomEvent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_CustomEvent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_PackMLEvent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_PackMLEvent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_PackMLEvent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_PackMLEvent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_PackMLEvent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_RecipeEvents.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_RecipeEvents.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_RecipeEvents.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_RecipeEvents.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_RecipeEvents.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_TweetEvent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_TweetEvent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_TweetEvent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_TweetEvent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_TweetEvent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_UserEvent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_UserEvent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_UserEvent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_UserEvent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_UserEvent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_VC4Event.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_VC4Event.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_VC4Event.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAudit_VC4Event.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAudit_VC4Event.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Alarm.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_Off.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_Off.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_Off.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_Off.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_Off.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Gear_On.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpAxis_Warning.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackTransparent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundSemiTransparent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundSemiTransparent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundSemiTransparent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundSemiTransparent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundSemiTransparent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundVGA_Logo_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundVGA_Logo_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBackgroundWVGA_Logo.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.PNG b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.PNG similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.PNG rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.PNG diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpBorderSlider09x09.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_control_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_decrease_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_default_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_selected_left.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_device_unselected_left.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_error.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_bottom.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_left.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_bottom.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pres_top.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_press_left.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_global_area_top.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_increase_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_off.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_on.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_selected.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_radio_unselected.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_ready.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_multi_press.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_down_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_multi_press.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_left_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_multi_pres.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_right_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_multi_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpButton_scroll_up_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxGray.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxGray.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxGray.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxGray.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxGray.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxOrange.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxOrange.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxOrange.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckBoxOrange.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckBoxOrange.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_checked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpCheckbox_small_gray.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpClickMe.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpClickMe.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpClickMe.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpClickMe.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpClickMe.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerAlarm_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerInformation_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerUI_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpComLoggerWarning_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_DevBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_LowerLimit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MaxBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MeanBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_MinBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_NoLimit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_RangeBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_UpperLimit_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit_0.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit_0.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit_0.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpData_WithinLimit_0.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit_0.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFileScan.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowDown.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowLeft.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowRight.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_ArrowUp.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_BMP.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_CSV.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_Cancel.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_DOC.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FILE.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_FOLDER.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_HTML.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_JPG.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_OK.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_PDF.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_TXT.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_UNKOWN.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER10.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER2.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER3.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER4.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER5.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER6.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER7.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER8.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_USER9.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XLS.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFile_XML.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameHeader.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpFrameInvisible.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpGroupControl.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarm.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmX.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmX.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmX.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmX.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmX.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistory.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistory.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistory.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistory.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistory.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryExport.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryExport.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryExport.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAudit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAuditClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxis1Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpAxisClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc2Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCnc3Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpCom.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpComClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpData.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDataClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta3Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpDelta4Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergy.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpEnergyClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFile.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpFileClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpHeat.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpHeat.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpHeat.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpHeat.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpHeat.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOee.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeList.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTimeline.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpOeeTrend.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackML.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpPackMLClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipe.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeX.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRecipeXClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm4Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm5Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpRoboArm6Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSafetyXClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara2Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpScara4Click.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindle.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpSpindleClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeach.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTeachClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrend.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTrendClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpTweetClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUser1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick1.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserClick2.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpUserXClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXs.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWebXsClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_MpWinderClick.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpIcon_mapp.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_ActiveWarning.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_ActiveWarning.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_ActiveWarning.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_ActiveWarning.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_ActiveWarning.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Config.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Diagnostics.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Home.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpImg_Warning.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderCenterless.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactive.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpInputBorderInactiveCenterless.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lower.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_lowerPressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_numericPressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upper.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_AlphaPad_upperPressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lower.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_lowerPressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numeric2Pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_numericPressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upper.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_EditPad_upperPressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadHor_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_ListPadVer_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpKey_Numpad_pressed.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderDown_Orange.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderLeft.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLabelBorderSlim.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameCenter.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameLeft.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpListboxFrameRight.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLogoTransparent.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLogoTransparent.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLogoTransparent.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpLogoTransparent.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLogoTransparent.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeCore.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeCore.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeCore.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeCore.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeCore.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList_64x64.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList_64x64.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList_64x64.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeList_64x64.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeList_64x64.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline_64x64.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline_64x64.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline_64x64.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTimeline_64x64.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTimeline_64x64.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend_64x64.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend_64x64.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend_64x64.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOeeTrend_64x64.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOeeTrend_64x64.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorderActive.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorderActive.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorderActive.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpOutputBorderActive.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorderActive.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueOFF.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_BlueON.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenOFF.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_GreenON.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_Main.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowOFF.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpPackML_YellowON.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpProgressBorder.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_off.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_off.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_off.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_off.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_off.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_on.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_on.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_on.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSafetyButton_on.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSafetyButton_on.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray_small.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray_small.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray_small.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpSlider_BallGray_small.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray_small.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Add.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Add.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Add.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Add.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Add.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Copy.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Copy.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Copy.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Copy.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Copy.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Cut.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Cut.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Cut.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Cut.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Cut.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Delete.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Delete.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Delete.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Delete.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Delete.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Export.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Export.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Export.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Export.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Export.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Generate.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Generate.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Generate.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Generate.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Generate.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Import.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Import.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Import.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Import.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Import.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Insert.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Insert.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Insert.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Insert.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Insert.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveDown.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveDown.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveDown.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveDown.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveDown.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveUp.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveUp.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveUp.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_MoveUp.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_MoveUp.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Paste.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Paste.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Paste.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Paste.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Paste.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_selected.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_even.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_even.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_even.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_even.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_even.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Point_unselected_odd.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Replace.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Replace.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Replace.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpTeach_Replace.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Replace.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_add_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_delete_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUserGroup_edit_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaError.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaOK.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaOK.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaOK.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_CriteriaOK.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaOK.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Exit_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Export_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_Import_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserEdit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserEdit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserEdit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserEdit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserEdit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserGroupEdit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserGroupEdit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserGroupEdit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_UserGroupEdit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_UserGroupEdit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_add_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_clock_stop.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_delete_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_edit_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_lock_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/MpUser_pw_change_locked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/Mpbutton_control.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/Mpbutton_control.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/Mpbutton_control.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/Mpbutton_control.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked_40.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked_40.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked_40.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_checked_40.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_checked_40.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_small_checked.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_small_checked.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_small_checked.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/checkbox_small_checked.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/checkbox_small_checked.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/inprogress.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/inprogress.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/inprogress.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/inprogress.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/inprogress.png diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.bminfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.bminfo diff --git a/mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.png similarity index 100% rename from mappFramework/Logical/VC4/Visu/Bitmaps/mappSERVICES_logo.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.png diff --git a/mappFramework/Logical/VC4/Visu/Borders/CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/CheckBox_checked.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/CheckBox_small_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_small_checked.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/CheckBox_small_checked.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_small_checked.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOff.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOff.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOff.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOn.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_AttentionOn.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOn.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_BitmapFrame.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Control_pressed.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Select_Left.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Device_Unselect_Left.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOff.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOff.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOff.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOn.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_KeyRingOn.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOn.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Down.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_off.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_off.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_off.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_on.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Safety_ACK_on.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_on.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up_pressed.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scoll_Up_pressed.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up_pressed.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down_pressed.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Down_pressed.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down_pressed.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Left_pressed.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_Scroll_Right_pressed.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Button_pressed.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_CheckBox_checked.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataDevBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_DataDevBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataDevBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMaxBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_DataMaxBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMaxBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMeanBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_DataMeanBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMeanBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMinBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_DataMinBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMinBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_DataNameFrame.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataRangeBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_DataRangeBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataRangeBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_Flat_grey.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_FrameInvisible.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_GroupControl.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorderInactive.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_InputBorderInactive.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorderInactive.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderDown.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorderSlim.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_LabelBorder_Orange.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxCenter.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxLeft.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_ListBoxRight.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOff.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOff.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOff.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOn.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_MoveOn.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOn.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_OutputBorder.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_PackML_States.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_PackML_States.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_PackML_States.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_RangeBar.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_SliderBorder09.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNG.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_SunkenNGgray.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_TabActive.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_TabSelect.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_TabUnSelect.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointSelected.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointSelected.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointSelected.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedEven.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedEven.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedEven.bdr diff --git a/mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedOdd.bdr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Borders/Mp_TeachPointUnselectedOdd.bdr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedOdd.bdr diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm similarity index 100% rename from mappFramework/Logical/VC4/Visu/ColorMaps/MpEnergyChartData.clm rename to mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm diff --git a/mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm similarity index 100% rename from mappFramework/Logical/VC4/Visu/ColorMaps/MpPMLStateColors.clm rename to mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpButton.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpDefault.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpHeader.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpHeader2.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpHtml_SDM.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpInfo.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpInput.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpMenuButtons.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpPackMLStateNames.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo similarity index 100% rename from mappFramework/Logical/VC4/Visu/Fonts/MpPads.fninfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo diff --git a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer similarity index 97% rename from mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer rename to mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 971396dc..115fbcdc 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -5,7 +5,7 @@ - + @@ -103,7 +103,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer similarity index 98% rename from mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer rename to mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index 337c1304..a2a75674 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -84,7 +84,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer similarity index 100% rename from mappFramework/Logical/VC4/Visu/Layers/MpOeeControl.layer rename to mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer similarity index 100% rename from mappFramework/Logical/VC4/Visu/Layers/MpPageControl.layer rename to mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer similarity index 100% rename from mappFramework/Logical/VC4/Visu/Layers/MpUserXSign.layer rename to mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer diff --git a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer similarity index 98% rename from mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer rename to mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer index 86729dc1..0db172e3 100644 --- a/mappFramework/Logical/VC4/Visu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer @@ -33,7 +33,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp similarity index 100% rename from mappFramework/Logical/VC4/Visu/Package.vcp rename to mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page similarity index 93% rename from mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index 199a88a3..9e4043af 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -114,10 +114,10 @@ - + - + @@ -187,7 +187,7 @@ - + @@ -224,12 +224,12 @@ - + - + @@ -241,7 +241,7 @@ - + @@ -257,12 +257,12 @@ - + - + @@ -274,7 +274,7 @@ - + @@ -291,12 +291,12 @@ - + - + @@ -324,12 +324,12 @@ - + - + @@ -357,7 +357,7 @@ - + @@ -375,7 +375,7 @@ - + @@ -393,7 +393,7 @@ - + @@ -411,7 +411,7 @@ - + @@ -429,7 +429,7 @@ - + @@ -447,7 +447,7 @@ - + @@ -465,7 +465,7 @@ - + @@ -483,7 +483,7 @@ - + @@ -501,7 +501,7 @@ - + @@ -519,7 +519,7 @@ - + @@ -537,7 +537,7 @@ - + @@ -555,7 +555,7 @@ - + @@ -573,7 +573,7 @@ - + @@ -591,7 +591,7 @@ - + @@ -609,7 +609,7 @@ - + @@ -627,7 +627,7 @@ - + @@ -645,7 +645,7 @@ - + @@ -663,7 +663,7 @@ - + @@ -681,7 +681,7 @@ - + @@ -699,7 +699,7 @@ - + @@ -806,12 +806,12 @@ - + - + @@ -823,7 +823,7 @@ - + @@ -1022,7 +1022,7 @@ - + @@ -1037,7 +1037,7 @@ - + @@ -1052,7 +1052,7 @@ - + @@ -1067,7 +1067,7 @@ - + @@ -1108,7 +1108,7 @@ - + @@ -1150,7 +1150,7 @@ - + @@ -1243,7 +1243,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page similarity index 93% rename from mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index 776bf0db..7176a3a4 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -114,10 +114,10 @@ - + - + @@ -187,7 +187,7 @@ - + @@ -274,11 +274,11 @@ - + - + @@ -290,7 +290,7 @@ - + @@ -307,11 +307,11 @@ - + - + @@ -339,11 +339,11 @@ - + - + @@ -371,7 +371,7 @@ - + @@ -389,7 +389,7 @@ - + @@ -407,7 +407,7 @@ - + @@ -425,7 +425,7 @@ - + @@ -443,7 +443,7 @@ - + @@ -461,7 +461,7 @@ - + @@ -479,7 +479,7 @@ - + @@ -497,7 +497,7 @@ - + @@ -515,7 +515,7 @@ - + @@ -533,7 +533,7 @@ - + @@ -551,7 +551,7 @@ - + @@ -569,7 +569,7 @@ - + @@ -587,7 +587,7 @@ - + @@ -605,7 +605,7 @@ - + @@ -623,7 +623,7 @@ - + @@ -641,7 +641,7 @@ - + @@ -659,7 +659,7 @@ - + @@ -677,7 +677,7 @@ - + @@ -695,7 +695,7 @@ - + @@ -713,7 +713,7 @@ - + @@ -819,11 +819,11 @@ - + - + @@ -835,7 +835,7 @@ - + @@ -851,11 +851,11 @@ - + - + @@ -867,7 +867,7 @@ - + @@ -1041,7 +1041,7 @@ - + @@ -1056,7 +1056,7 @@ - + @@ -1071,7 +1071,7 @@ - + @@ -1086,7 +1086,7 @@ - + @@ -1101,7 +1101,7 @@ - + @@ -1116,7 +1116,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page similarity index 96% rename from mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index ff872317..50f12f59 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -94,7 +94,7 @@ - + @@ -310,7 +310,7 @@ - + @@ -346,7 +346,7 @@ - + @@ -413,12 +413,12 @@ - + - + @@ -445,12 +445,12 @@ - + - + @@ -477,12 +477,12 @@ - + - + @@ -509,7 +509,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page similarity index 96% rename from mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 82226ffe..3a3a9695 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -82,7 +82,7 @@ - + @@ -119,11 +119,11 @@ - + - + @@ -135,7 +135,7 @@ - + @@ -183,11 +183,11 @@ - + - + @@ -199,7 +199,7 @@ - + @@ -215,11 +215,11 @@ - + - + @@ -231,7 +231,7 @@ - + @@ -429,7 +429,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page similarity index 95% rename from mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index b66cf8ca..66676020 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -32,7 +32,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -145,10 +145,10 @@ - + - + @@ -295,7 +295,7 @@ - + @@ -310,7 +310,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -340,7 +340,7 @@ - + @@ -356,7 +356,7 @@ - + @@ -534,7 +534,7 @@ - + @@ -551,7 +551,7 @@ - + @@ -569,7 +569,7 @@ - + @@ -587,7 +587,7 @@ - + @@ -606,7 +606,7 @@ - + @@ -625,7 +625,7 @@ - + @@ -644,7 +644,7 @@ - + @@ -663,7 +663,7 @@ - + @@ -726,7 +726,7 @@ - + @@ -745,7 +745,7 @@ - + @@ -764,7 +764,7 @@ - + @@ -783,7 +783,7 @@ - + @@ -802,7 +802,7 @@ - + @@ -1101,7 +1101,7 @@ - + @@ -1141,7 +1141,7 @@ - + @@ -1158,7 +1158,7 @@ - + @@ -1174,7 +1174,7 @@ - + @@ -1190,7 +1190,7 @@ - + @@ -1206,7 +1206,7 @@ - + @@ -1222,7 +1222,7 @@ - + @@ -1238,7 +1238,7 @@ - + @@ -1253,7 +1253,7 @@ - + @@ -1268,7 +1268,7 @@ - + @@ -1284,7 +1284,7 @@ - + @@ -1300,7 +1300,7 @@ - + @@ -1316,7 +1316,7 @@ - + @@ -1332,7 +1332,7 @@ - + @@ -1448,7 +1448,7 @@ - + @@ -1463,7 +1463,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page similarity index 95% rename from mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index e4ff7a59..6e65d3b2 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -32,7 +32,7 @@ - + @@ -124,7 +124,7 @@ - + @@ -169,7 +169,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -266,7 +266,7 @@ - + @@ -279,7 +279,7 @@ - + @@ -324,7 +324,7 @@ - + @@ -340,7 +340,7 @@ - + @@ -518,7 +518,7 @@ - + @@ -535,7 +535,7 @@ - + @@ -553,7 +553,7 @@ - + @@ -571,7 +571,7 @@ - + @@ -590,7 +590,7 @@ - + @@ -609,7 +609,7 @@ - + @@ -628,7 +628,7 @@ - + @@ -647,7 +647,7 @@ - + @@ -710,7 +710,7 @@ - + @@ -729,7 +729,7 @@ - + @@ -748,7 +748,7 @@ - + @@ -767,7 +767,7 @@ - + @@ -786,7 +786,7 @@ - + @@ -1085,7 +1085,7 @@ - + @@ -1125,7 +1125,7 @@ - + @@ -1142,7 +1142,7 @@ - + @@ -1158,7 +1158,7 @@ - + @@ -1174,7 +1174,7 @@ - + @@ -1190,7 +1190,7 @@ - + @@ -1206,7 +1206,7 @@ - + @@ -1222,7 +1222,7 @@ - + @@ -1237,7 +1237,7 @@ - + @@ -1252,7 +1252,7 @@ - + @@ -1268,7 +1268,7 @@ - + @@ -1284,7 +1284,7 @@ - + @@ -1300,7 +1300,7 @@ - + @@ -1316,7 +1316,7 @@ - + @@ -1432,7 +1432,7 @@ - + @@ -1447,7 +1447,7 @@ - + @@ -1476,7 +1476,7 @@ - + @@ -1513,7 +1513,7 @@ - + @@ -1550,7 +1550,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page similarity index 95% rename from mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 6a1a2966..91549484 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -32,7 +32,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -173,7 +173,7 @@ - + @@ -194,7 +194,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -241,7 +241,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -269,7 +269,7 @@ - + @@ -292,10 +292,10 @@ - + - + @@ -438,7 +438,7 @@ - + @@ -452,7 +452,7 @@ - + @@ -508,7 +508,7 @@ - + @@ -524,7 +524,7 @@ - + @@ -539,7 +539,7 @@ - + @@ -614,7 +614,7 @@ - + @@ -673,7 +673,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -703,7 +703,7 @@ - + @@ -718,7 +718,7 @@ - + @@ -733,7 +733,7 @@ - + @@ -748,7 +748,7 @@ - + @@ -789,7 +789,7 @@ - + @@ -805,7 +805,7 @@ - + @@ -983,7 +983,7 @@ - + @@ -1000,7 +1000,7 @@ - + @@ -1018,7 +1018,7 @@ - + @@ -1036,7 +1036,7 @@ - + @@ -1055,7 +1055,7 @@ - + @@ -1074,7 +1074,7 @@ - + @@ -1093,7 +1093,7 @@ - + @@ -1112,7 +1112,7 @@ - + @@ -1175,7 +1175,7 @@ - + @@ -1194,7 +1194,7 @@ - + @@ -1213,7 +1213,7 @@ - + @@ -1232,7 +1232,7 @@ - + @@ -1251,7 +1251,7 @@ - + @@ -1550,7 +1550,7 @@ - + @@ -1590,7 +1590,7 @@ - + @@ -1606,7 +1606,7 @@ - + @@ -1622,7 +1622,7 @@ - + @@ -1638,7 +1638,7 @@ - + @@ -1654,7 +1654,7 @@ - + @@ -1670,7 +1670,7 @@ - + @@ -1686,7 +1686,7 @@ - + @@ -1702,7 +1702,7 @@ - + @@ -1718,7 +1718,7 @@ - + @@ -1734,7 +1734,7 @@ - + @@ -1750,7 +1750,7 @@ - + @@ -1765,7 +1765,7 @@ - + @@ -1781,7 +1781,7 @@ - + @@ -1897,7 +1897,7 @@ - + @@ -1912,7 +1912,7 @@ - + @@ -1941,7 +1941,7 @@ - + @@ -2149,7 +2149,7 @@ - + @@ -2164,7 +2164,7 @@ - + @@ -2192,7 +2192,7 @@ - + @@ -2207,7 +2207,7 @@ - + @@ -2241,7 +2241,7 @@ - + @@ -2257,11 +2257,11 @@ - + - + @@ -2277,11 +2277,11 @@ - + - + @@ -2313,7 +2313,7 @@ - + @@ -2328,7 +2328,7 @@ - + @@ -2337,7 +2337,7 @@ - + @@ -2353,7 +2353,7 @@ - + @@ -2382,7 +2382,7 @@ - + @@ -2406,7 +2406,7 @@ - + @@ -2453,7 +2453,7 @@ - + @@ -2468,7 +2468,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page similarity index 94% rename from mappFramework/Logical/VC4/Visu/Pages/MpBackup.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index 442e5ea8..19a2d8dd 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -66,12 +66,12 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -100,12 +100,12 @@ - + - + @@ -121,7 +121,7 @@ - + @@ -166,12 +166,12 @@ - + - + @@ -187,7 +187,7 @@ - + @@ -314,7 +314,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -434,7 +434,7 @@ - + @@ -447,7 +447,7 @@ - + @@ -460,7 +460,7 @@ - + @@ -478,7 +478,7 @@ - + @@ -504,7 +504,7 @@ - + @@ -530,7 +530,7 @@ - + @@ -556,7 +556,7 @@ - + @@ -595,7 +595,7 @@ - + @@ -610,7 +610,7 @@ - + @@ -619,7 +619,7 @@ - + @@ -634,7 +634,7 @@ - + @@ -649,7 +649,7 @@ - + @@ -664,7 +664,7 @@ - + @@ -679,7 +679,7 @@ - + @@ -694,7 +694,7 @@ - + @@ -709,7 +709,7 @@ - + @@ -738,7 +738,7 @@ - + @@ -946,7 +946,7 @@ - + @@ -1018,7 +1018,7 @@ - + @@ -1046,7 +1046,7 @@ - + @@ -1061,7 +1061,7 @@ - + @@ -1074,7 +1074,7 @@ - + @@ -1092,11 +1092,11 @@ - + - + @@ -1112,11 +1112,11 @@ - + - + @@ -1132,11 +1132,11 @@ - + - + @@ -1149,7 +1149,7 @@ - + @@ -1165,7 +1165,7 @@ - + @@ -1174,7 +1174,7 @@ - + @@ -1204,7 +1204,7 @@ - + @@ -1220,7 +1220,7 @@ - + @@ -1236,7 +1236,7 @@ - + @@ -1251,7 +1251,7 @@ - + @@ -1260,7 +1260,7 @@ - + @@ -1276,7 +1276,7 @@ - + @@ -1401,7 +1401,7 @@ - + @@ -1410,7 +1410,7 @@ - + @@ -1425,7 +1425,7 @@ - + @@ -1434,7 +1434,7 @@ - + @@ -1464,7 +1464,7 @@ - + @@ -1480,7 +1480,7 @@ - + @@ -1605,7 +1605,7 @@ - + @@ -1614,7 +1614,7 @@ - + @@ -1629,7 +1629,7 @@ - + @@ -1638,7 +1638,7 @@ - + @@ -1668,7 +1668,7 @@ - + @@ -1684,7 +1684,7 @@ - + @@ -1777,7 +1777,7 @@ - + @@ -1786,7 +1786,7 @@ - + @@ -1801,7 +1801,7 @@ - + @@ -1810,7 +1810,7 @@ - + @@ -1841,7 +1841,7 @@ - + @@ -1963,7 +1963,7 @@ - + @@ -1979,7 +1979,7 @@ - + @@ -1988,7 +1988,7 @@ - + @@ -2003,7 +2003,7 @@ - + @@ -2012,7 +2012,7 @@ - + @@ -2042,7 +2042,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpComLoggerUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpDataStatisticsUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpDataTableUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpEnergyUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page similarity index 94% rename from mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index d9a0e966..cb084640 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -195,7 +195,7 @@ - + @@ -324,7 +324,7 @@ - + @@ -333,7 +333,7 @@ - + @@ -407,7 +407,7 @@ - + @@ -426,10 +426,10 @@ - + - + @@ -634,7 +634,7 @@ - + @@ -978,12 +978,12 @@ - + - + @@ -999,7 +999,7 @@ - + @@ -1012,12 +1012,12 @@ - + - + @@ -1033,7 +1033,7 @@ - + @@ -1046,12 +1046,12 @@ - + - + @@ -1067,7 +1067,7 @@ - + @@ -1081,13 +1081,13 @@ - + - + @@ -1104,7 +1104,7 @@ - + @@ -1118,13 +1118,13 @@ - + - + @@ -1140,7 +1140,7 @@ - + @@ -1242,7 +1242,7 @@ - + @@ -1258,7 +1258,7 @@ - + @@ -1274,7 +1274,7 @@ - + @@ -1290,7 +1290,7 @@ - + @@ -1306,7 +1306,7 @@ - + @@ -1322,7 +1322,7 @@ - + @@ -1338,7 +1338,7 @@ - + @@ -1354,7 +1354,7 @@ - + @@ -1370,7 +1370,7 @@ - + @@ -1386,7 +1386,7 @@ - + @@ -1406,7 +1406,7 @@ - + @@ -1421,7 +1421,7 @@ - + @@ -1436,7 +1436,7 @@ - + @@ -1451,7 +1451,7 @@ - + @@ -1466,7 +1466,7 @@ - + @@ -1481,7 +1481,7 @@ - + @@ -1496,7 +1496,7 @@ - + @@ -1511,7 +1511,7 @@ - + @@ -1526,7 +1526,7 @@ - + @@ -1541,7 +1541,7 @@ - + @@ -1556,7 +1556,7 @@ - + @@ -1572,7 +1572,7 @@ - + @@ -1588,7 +1588,7 @@ - + @@ -1604,7 +1604,7 @@ - + @@ -1620,7 +1620,7 @@ - + @@ -1636,7 +1636,7 @@ - + @@ -1652,7 +1652,7 @@ - + @@ -1668,7 +1668,7 @@ - + @@ -1684,7 +1684,7 @@ - + @@ -1700,7 +1700,7 @@ - + @@ -1716,7 +1716,7 @@ - + @@ -1731,7 +1731,7 @@ - + @@ -1746,7 +1746,7 @@ - + @@ -1762,7 +1762,7 @@ - + @@ -1778,7 +1778,7 @@ - + @@ -1794,7 +1794,7 @@ - + @@ -1810,7 +1810,7 @@ - + @@ -1825,7 +1825,7 @@ - + @@ -1854,7 +1854,7 @@ - + @@ -1900,7 +1900,7 @@ - + @@ -1971,7 +1971,7 @@ - + @@ -1986,7 +1986,7 @@ - + @@ -2002,7 +2002,7 @@ - + @@ -2089,7 +2089,7 @@ - + @@ -2103,11 +2103,11 @@ - + - + @@ -2131,7 +2131,7 @@ - + @@ -2144,7 +2144,7 @@ - + @@ -2156,7 +2156,7 @@ - + @@ -2196,7 +2196,7 @@ - + @@ -2228,11 +2228,11 @@ - + - + @@ -2243,7 +2243,7 @@ - + @@ -2265,7 +2265,7 @@ - + @@ -2280,7 +2280,7 @@ - + @@ -2296,7 +2296,7 @@ - + @@ -2401,7 +2401,7 @@ - + @@ -2416,7 +2416,7 @@ - + @@ -2431,7 +2431,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpOeeCoreUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpOeeListUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpOeeTimelineUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpOeeTrendUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpPackMLBasicUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpPackMLStatisticsUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page similarity index 95% rename from mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index 296d54dd..91e298ca 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -119,7 +119,7 @@ - + @@ -144,11 +144,11 @@ - + - + @@ -159,7 +159,7 @@ - + @@ -175,7 +175,7 @@ - + @@ -244,10 +244,10 @@ - + - + @@ -386,7 +386,7 @@ - + @@ -408,7 +408,7 @@ - + @@ -433,7 +433,7 @@ - + @@ -492,12 +492,12 @@ - + - + @@ -523,12 +523,12 @@ - + - + @@ -539,7 +539,7 @@ - + @@ -602,7 +602,7 @@ - + @@ -628,7 +628,7 @@ - + @@ -636,7 +636,7 @@ - + @@ -651,7 +651,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -681,7 +681,7 @@ - + @@ -696,7 +696,7 @@ - + @@ -711,7 +711,7 @@ - + @@ -720,14 +720,14 @@ - + - + @@ -736,14 +736,14 @@ - + - + @@ -752,14 +752,14 @@ - + - + @@ -774,7 +774,7 @@ - + @@ -789,7 +789,7 @@ - + @@ -805,7 +805,7 @@ - + @@ -937,7 +937,7 @@ - + @@ -952,7 +952,7 @@ - + @@ -967,7 +967,7 @@ - + @@ -982,7 +982,7 @@ - + @@ -1091,7 +1091,7 @@ - + @@ -1106,7 +1106,7 @@ - + @@ -1124,7 +1124,7 @@ - + @@ -1208,7 +1208,7 @@ - + @@ -1225,7 +1225,7 @@ - + @@ -1298,7 +1298,7 @@ - + @@ -1315,7 +1315,7 @@ - + @@ -1332,7 +1332,7 @@ - + @@ -1349,7 +1349,7 @@ - + @@ -1366,7 +1366,7 @@ - + @@ -1383,7 +1383,7 @@ - + @@ -1393,7 +1393,7 @@ - + @@ -1410,7 +1410,7 @@ - + @@ -1434,7 +1434,7 @@ - + @@ -1514,7 +1514,7 @@ - + @@ -1530,7 +1530,7 @@ - + @@ -1547,7 +1547,7 @@ - + @@ -1564,7 +1564,7 @@ - + @@ -1633,7 +1633,7 @@ - + @@ -1649,7 +1649,7 @@ - + @@ -1666,7 +1666,7 @@ - + @@ -1683,7 +1683,7 @@ - + @@ -1693,7 +1693,7 @@ - + @@ -1710,7 +1710,7 @@ - + @@ -1734,7 +1734,7 @@ - + @@ -1847,7 +1847,7 @@ - + @@ -1863,7 +1863,7 @@ - + @@ -1878,7 +1878,7 @@ - + @@ -1894,7 +1894,7 @@ - + @@ -1987,7 +1987,7 @@ - + @@ -2003,7 +2003,7 @@ - + @@ -2113,7 +2113,7 @@ - + @@ -2160,7 +2160,7 @@ - + @@ -2178,7 +2178,7 @@ - + @@ -2196,7 +2196,7 @@ - + @@ -2270,7 +2270,7 @@ - + @@ -2284,7 +2284,7 @@ - + @@ -2302,7 +2302,7 @@ - + @@ -2317,7 +2317,7 @@ - + @@ -2333,7 +2333,7 @@ - + @@ -2449,7 +2449,7 @@ - + @@ -2496,7 +2496,7 @@ - + @@ -2514,7 +2514,7 @@ - + @@ -2532,7 +2532,7 @@ - + @@ -2614,11 +2614,11 @@ - + - + @@ -2649,7 +2649,7 @@ - + @@ -2667,7 +2667,7 @@ - + @@ -2682,7 +2682,7 @@ - + @@ -2698,7 +2698,7 @@ - + @@ -2808,7 +2808,7 @@ - + @@ -2850,7 +2850,7 @@ - + @@ -2867,7 +2867,7 @@ - + @@ -2885,7 +2885,7 @@ - + @@ -2903,7 +2903,7 @@ - + @@ -2973,7 +2973,7 @@ - + @@ -2991,7 +2991,7 @@ - + @@ -3006,7 +3006,7 @@ - + @@ -3022,7 +3022,7 @@ - + @@ -3138,7 +3138,7 @@ - + @@ -3180,7 +3180,7 @@ - + @@ -3197,7 +3197,7 @@ - + @@ -3215,7 +3215,7 @@ - + @@ -3233,7 +3233,7 @@ - + @@ -3315,11 +3315,11 @@ - + - + @@ -3350,7 +3350,7 @@ - + @@ -3365,7 +3365,7 @@ - + @@ -3381,7 +3381,7 @@ - + @@ -3493,7 +3493,7 @@ - + @@ -3509,7 +3509,7 @@ - + @@ -3524,7 +3524,7 @@ - + @@ -3553,7 +3553,7 @@ - + @@ -3599,7 +3599,7 @@ - + @@ -3670,7 +3670,7 @@ - + @@ -3685,7 +3685,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page similarity index 94% rename from mappFramework/Logical/VC4/Visu/Pages/MpReport.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index 5e56930d..b1828356 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -66,12 +66,12 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -100,12 +100,12 @@ - + - + @@ -121,7 +121,7 @@ - + @@ -166,12 +166,12 @@ - + - + @@ -187,7 +187,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -315,7 +315,7 @@ - + @@ -339,7 +339,7 @@ - + @@ -354,7 +354,7 @@ - + @@ -369,7 +369,7 @@ - + @@ -378,7 +378,7 @@ - + @@ -393,7 +393,7 @@ - + @@ -408,7 +408,7 @@ - + @@ -424,7 +424,7 @@ - + @@ -475,7 +475,7 @@ - + @@ -504,7 +504,7 @@ - + @@ -526,13 +526,13 @@ - + - + - + @@ -574,7 +574,7 @@ - + @@ -590,7 +590,7 @@ - + @@ -698,7 +698,7 @@ - + @@ -799,7 +799,7 @@ - + @@ -927,7 +927,7 @@ - + @@ -942,7 +942,7 @@ - + @@ -951,7 +951,7 @@ - + @@ -960,7 +960,7 @@ - + @@ -976,7 +976,7 @@ - + @@ -992,7 +992,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpSetup.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpSystemDiagnostics.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Alarm.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page similarity index 100% rename from mappFramework/Logical/VC4/Visu/Pages/MpTweetCoreUI_Receiver.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page similarity index 94% rename from mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index 61c71b80..6ab531f7 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -136,7 +136,7 @@ - + @@ -172,12 +172,12 @@ - + - + @@ -245,7 +245,7 @@ - + @@ -268,7 +268,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -398,7 +398,7 @@ - + @@ -415,7 +415,7 @@ - + @@ -432,7 +432,7 @@ - + @@ -449,7 +449,7 @@ - + @@ -466,7 +466,7 @@ - + @@ -483,7 +483,7 @@ - + @@ -500,7 +500,7 @@ - + @@ -517,7 +517,7 @@ - + @@ -550,7 +550,7 @@ - + @@ -610,11 +610,11 @@ - + - + @@ -625,7 +625,7 @@ - + @@ -635,7 +635,7 @@ - + @@ -645,7 +645,7 @@ - + @@ -674,7 +674,7 @@ - + @@ -684,7 +684,7 @@ - + @@ -701,7 +701,7 @@ - + @@ -711,7 +711,7 @@ - + @@ -778,10 +778,10 @@ - + - + @@ -842,7 +842,7 @@ - + @@ -870,7 +870,7 @@ - + @@ -885,7 +885,7 @@ - + @@ -900,7 +900,7 @@ - + @@ -915,7 +915,7 @@ - + @@ -930,7 +930,7 @@ - + @@ -945,7 +945,7 @@ - + @@ -961,7 +961,7 @@ - + @@ -1029,9 +1029,9 @@ - + - + @@ -1059,7 +1059,7 @@ - + @@ -1133,11 +1133,11 @@ - + - + @@ -1162,11 +1162,11 @@ - + - + @@ -1191,11 +1191,11 @@ - + - + @@ -1250,11 +1250,11 @@ - + - + @@ -1279,11 +1279,11 @@ - + - + @@ -1323,11 +1323,11 @@ - + - + @@ -1382,11 +1382,11 @@ - + - + @@ -1411,11 +1411,11 @@ - + - + @@ -1470,11 +1470,11 @@ - + - + @@ -1499,11 +1499,11 @@ - + - + @@ -1590,7 +1590,7 @@ - + @@ -1606,7 +1606,7 @@ - + @@ -1621,7 +1621,7 @@ - + @@ -1637,7 +1637,7 @@ - + @@ -1707,7 +1707,7 @@ - + @@ -1735,7 +1735,7 @@ - + @@ -1809,11 +1809,11 @@ - + - + @@ -1838,11 +1838,11 @@ - + - + @@ -1867,11 +1867,11 @@ - + - + @@ -1926,11 +1926,11 @@ - + - + @@ -1955,11 +1955,11 @@ - + - + @@ -1999,11 +1999,11 @@ - + - + @@ -2058,11 +2058,11 @@ - + - + @@ -2087,11 +2087,11 @@ - + - + @@ -2146,11 +2146,11 @@ - + - + @@ -2175,11 +2175,11 @@ - + - + @@ -2254,7 +2254,7 @@ - + @@ -2269,7 +2269,7 @@ - + @@ -2298,7 +2298,7 @@ - + @@ -2328,7 +2328,7 @@ - + @@ -2345,7 +2345,7 @@ - + @@ -2416,7 +2416,7 @@ - + @@ -2431,7 +2431,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page similarity index 93% rename from mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index 5a7363bb..5e274f18 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -96,7 +96,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -147,7 +147,7 @@ - + @@ -228,7 +228,7 @@ - + @@ -244,7 +244,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -271,7 +271,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -425,22 +425,22 @@ - + - + - + - + @@ -450,7 +450,7 @@ - + @@ -461,7 +461,7 @@ - + @@ -478,7 +478,7 @@ - + @@ -489,7 +489,7 @@ - + @@ -506,7 +506,7 @@ - + @@ -517,7 +517,7 @@ - + @@ -534,7 +534,7 @@ - + @@ -545,7 +545,7 @@ - + @@ -574,7 +574,7 @@ - + @@ -585,7 +585,7 @@ - + @@ -604,7 +604,7 @@ - + @@ -615,7 +615,7 @@ - + @@ -636,12 +636,12 @@ - + - + @@ -701,10 +701,10 @@ - + - + @@ -807,12 +807,12 @@ - + - + @@ -823,7 +823,7 @@ - + @@ -831,7 +831,7 @@ - + @@ -843,7 +843,7 @@ - + @@ -871,7 +871,7 @@ - + @@ -886,7 +886,7 @@ - + @@ -901,7 +901,7 @@ - + @@ -916,7 +916,7 @@ - + @@ -931,7 +931,7 @@ - + @@ -959,7 +959,7 @@ - + @@ -974,7 +974,7 @@ - + @@ -989,7 +989,7 @@ - + @@ -1004,7 +1004,7 @@ - + @@ -1019,7 +1019,7 @@ - + @@ -1034,7 +1034,7 @@ - + @@ -1050,7 +1050,7 @@ - + @@ -1065,7 +1065,7 @@ - + @@ -1090,7 +1090,7 @@ - + @@ -1115,7 +1115,7 @@ - + @@ -1140,7 +1140,7 @@ - + @@ -1165,7 +1165,7 @@ - + @@ -1192,7 +1192,7 @@ - + @@ -1228,7 +1228,7 @@ - + @@ -1243,7 +1243,7 @@ - + @@ -1258,7 +1258,7 @@ - + @@ -1273,7 +1273,7 @@ - + @@ -1288,7 +1288,7 @@ - + @@ -1303,7 +1303,7 @@ - + @@ -1319,7 +1319,7 @@ - + @@ -1417,7 +1417,7 @@ - + @@ -1431,7 +1431,7 @@ - + @@ -1445,7 +1445,7 @@ - + @@ -1500,7 +1500,7 @@ - + @@ -1537,7 +1537,7 @@ - + @@ -1554,7 +1554,7 @@ - + @@ -1571,7 +1571,7 @@ - + @@ -1591,7 +1591,7 @@ - + @@ -1606,7 +1606,7 @@ - + @@ -1622,7 +1622,7 @@ - + @@ -1720,7 +1720,7 @@ - + @@ -1734,7 +1734,7 @@ - + @@ -1761,7 +1761,7 @@ - + @@ -1803,7 +1803,7 @@ - + @@ -1858,7 +1858,7 @@ - + @@ -1895,7 +1895,7 @@ - + @@ -1912,7 +1912,7 @@ - + @@ -1929,7 +1929,7 @@ - + @@ -1945,7 +1945,7 @@ - + @@ -1957,7 +1957,7 @@ - + @@ -1984,21 +1984,21 @@ - + - + - + - + @@ -2028,21 +2028,21 @@ - + - + - + - + @@ -2072,21 +2072,21 @@ - + - + - + - + @@ -2116,21 +2116,21 @@ - + - + - + - + @@ -2160,21 +2160,21 @@ - + - + - + - + @@ -2204,21 +2204,21 @@ - + - + - + - + @@ -2248,21 +2248,21 @@ - + - + - + - + @@ -2281,7 +2281,7 @@ - + @@ -2296,7 +2296,7 @@ - + @@ -2312,7 +2312,7 @@ - + @@ -2409,7 +2409,7 @@ - + @@ -2423,7 +2423,7 @@ - + @@ -2437,7 +2437,7 @@ - + @@ -2464,7 +2464,7 @@ - + @@ -2491,21 +2491,21 @@ - + - + - + - + @@ -2593,7 +2593,7 @@ - + @@ -2630,7 +2630,7 @@ - + @@ -2647,7 +2647,7 @@ - + @@ -2664,7 +2664,7 @@ - + @@ -2681,7 +2681,7 @@ - + @@ -2697,7 +2697,7 @@ - + @@ -2709,7 +2709,7 @@ - + @@ -2736,21 +2736,21 @@ - + - + - + - + @@ -2780,21 +2780,21 @@ - + - + - + - + @@ -2824,21 +2824,21 @@ - + - + - + - + @@ -2868,21 +2868,21 @@ - + - + - + - + @@ -2912,21 +2912,21 @@ - + - + - + - + @@ -2956,21 +2956,21 @@ - + - + - + - + @@ -2989,7 +2989,7 @@ - + @@ -3004,7 +3004,7 @@ - + @@ -3020,7 +3020,7 @@ - + @@ -3050,7 +3050,7 @@ - + @@ -3067,7 +3067,7 @@ - + @@ -3138,7 +3138,7 @@ - + @@ -3153,7 +3153,7 @@ - + @@ -3169,7 +3169,7 @@ - + @@ -3233,7 +3233,7 @@ - + @@ -3246,11 +3246,11 @@ - + - + @@ -3260,7 +3260,7 @@ - + @@ -3418,7 +3418,7 @@ - + @@ -3433,7 +3433,7 @@ - + @@ -3449,7 +3449,7 @@ - + @@ -3465,7 +3465,7 @@ - + @@ -3494,7 +3494,7 @@ - + @@ -3524,7 +3524,7 @@ - + @@ -3605,7 +3605,7 @@ - + @@ -3638,7 +3638,7 @@ - + @@ -3709,7 +3709,7 @@ - + @@ -3724,7 +3724,7 @@ - + @@ -3740,7 +3740,7 @@ - + @@ -3756,7 +3756,7 @@ - + @@ -3876,7 +3876,7 @@ - + @@ -3891,7 +3891,7 @@ - + @@ -3907,7 +3907,7 @@ - + @@ -3971,7 +3971,7 @@ - + @@ -4033,7 +4033,7 @@ - + @@ -4048,7 +4048,7 @@ - + @@ -4064,7 +4064,7 @@ - + @@ -4094,7 +4094,7 @@ - + @@ -4111,7 +4111,7 @@ - + @@ -4182,7 +4182,7 @@ - + @@ -4197,7 +4197,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page similarity index 98% rename from mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page rename to mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index d6b4685e..b6cf13bb 100644 --- a/mappFramework/Logical/VC4/Visu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -489,7 +489,7 @@ - + @@ -498,7 +498,7 @@ - + @@ -507,7 +507,7 @@ - + @@ -516,7 +516,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -697,7 +697,7 @@ - + @@ -706,7 +706,7 @@ - + @@ -715,7 +715,7 @@ - + @@ -730,7 +730,7 @@ - + diff --git a/mappFramework/Logical/VC4/Visu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr similarity index 100% rename from mappFramework/Logical/VC4/Visu/Palette.vcr rename to mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs b/mappFramework/Logical/VC4/mappFrameworkVisu/StyleSheets/Color.vcs similarity index 100% rename from mappFramework/Logical/VC4/Visu/StyleSheets/Color.vcs rename to mappFramework/Logical/VC4/mappFrameworkVisu/StyleSheets/Color.vcs diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs b/mappFramework/Logical/VC4/mappFrameworkVisu/StyleSheets/Default2.vcs similarity index 100% rename from mappFramework/Logical/VC4/Visu/StyleSheets/Default2.vcs rename to mappFramework/Logical/VC4/mappFrameworkVisu/StyleSheets/Default2.vcs diff --git a/mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs b/mappFramework/Logical/VC4/mappFrameworkVisu/StyleSheets/mapp.vcs similarity index 100% rename from mappFramework/Logical/VC4/Visu/StyleSheets/mapp.vcs rename to mappFramework/Logical/VC4/mappFrameworkVisu/StyleSheets/mapp.vcs diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/TextGroups/MpAuditEventTextSetup.txtgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/TextGroups/MpAuditUserDefinedEvent.txtgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/TextGroups/MpButtons_PageTexts.txtgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp diff --git a/mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp similarity index 100% rename from mappFramework/Logical/VC4/Visu/TextGroups/ShiftGroup.txtgrp rename to mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp diff --git a/mappFramework/Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpAlphaPad.tpr similarity index 100% rename from mappFramework/Logical/VC4/Visu/TouchPads/MpAlphaPad.tpr rename to mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpAlphaPad.tpr diff --git a/mappFramework/Logical/VC4/Visu/TouchPads/MpNavigationPad_ver.tpr b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNavigationPad_ver.tpr similarity index 100% rename from mappFramework/Logical/VC4/Visu/TouchPads/MpNavigationPad_ver.tpr rename to mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNavigationPad_ver.tpr diff --git a/mappFramework/Logical/VC4/Visu/TouchPads/MpNumPad.tpr b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNumPad.tpr similarity index 100% rename from mappFramework/Logical/VC4/Visu/TouchPads/MpNumPad.tpr rename to mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNumPad.tpr diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre similarity index 100% rename from mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI.tre rename to mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Availability.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Availability.trd similarity index 100% rename from mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Availability.trd rename to mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Availability.trd diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_OEE.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_OEE.trd similarity index 100% rename from mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_OEE.trd rename to mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_OEE.trd diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Performance.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Performance.trd similarity index 100% rename from mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Performance.trd rename to mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Performance.trd diff --git a/mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Quality.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Quality.trd similarity index 100% rename from mappFramework/Logical/VC4/Visu/Trends/MpOeeTrendUI_Quality.trd rename to mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Quality.trd diff --git a/mappFramework/Logical/VC4/Visu/Trends/TrendData.tdc b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/TrendData.tdc similarity index 100% rename from mappFramework/Logical/VC4/Visu/Trends/TrendData.tdc rename to mappFramework/Logical/VC4/mappFrameworkVisu/Trends/TrendData.tdc diff --git a/mappFramework/Logical/VC4/Visu/VCObject.vc b/mappFramework/Logical/VC4/mappFrameworkVisu/VCObject.vc similarity index 86% rename from mappFramework/Logical/VC4/Visu/VCObject.vc rename to mappFramework/Logical/VC4/mappFrameworkVisu/VCObject.vc index 62918c3d..3cd1ab18 100644 --- a/mappFramework/Logical/VC4/Visu/VCObject.vc +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VCObject.vc @@ -1,7 +1,7 @@  - + diff --git a/mappFramework/Logical/VC4/Visu/Vc.dob b/mappFramework/Logical/VC4/mappFrameworkVisu/Vc.dob similarity index 100% rename from mappFramework/Logical/VC4/Visu/Vc.dob rename to mappFramework/Logical/VC4/mappFrameworkVisu/Vc.dob diff --git a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk similarity index 99% rename from mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk rename to mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 9d270aad..06c7cac4 100644 --- a/mappFramework/Logical/VC4/Visu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1721,7 +1721,7 @@ - + @@ -1730,7 +1730,7 @@ - + @@ -2685,7 +2685,7 @@ - + @@ -2694,7 +2694,7 @@ - + @@ -2709,7 +2709,7 @@ - + @@ -2718,7 +2718,7 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 64dc96b3..bac1a259 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -29,26 +29,26 @@ - + - - + - + - + - + + - + - + @@ -134,7 +134,7 @@ - + @@ -144,7 +144,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -230,9 +230,9 @@ - + - + @@ -240,9 +240,9 @@ - + - + @@ -250,9 +250,9 @@ - + - + @@ -260,9 +260,9 @@ - + - + @@ -270,9 +270,9 @@ - + - + @@ -280,9 +280,9 @@ - + - + @@ -290,9 +290,9 @@ - + - + @@ -300,9 +300,9 @@ - + - + @@ -310,9 +310,9 @@ - + - + @@ -320,9 +320,9 @@ - + - + @@ -332,7 +332,7 @@ - + @@ -342,7 +342,7 @@ - + @@ -352,7 +352,7 @@ - + @@ -362,7 +362,7 @@ - + @@ -372,7 +372,7 @@ - + @@ -382,7 +382,7 @@ - + @@ -390,9 +390,9 @@ - + - + @@ -402,7 +402,7 @@ - + @@ -412,7 +412,7 @@ - + @@ -436,7 +436,7 @@ - + @@ -445,7 +445,7 @@ - + @@ -454,7 +454,7 @@ - + @@ -464,477 +464,311 @@ - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -957,7 +791,7 @@ - + @@ -965,71 +799,95 @@ - - - + + + + + + + - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1038,7 +896,7 @@ - + @@ -1047,16 +905,16 @@ - + - + - + @@ -1064,19 +922,137 @@ - - - - - - + + + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1088,30 +1064,10 @@ - - - - - - - - - - - + - - - - - - - - - - @@ -1120,63 +1076,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1185,25 +1141,25 @@ - + - + - + - + - + @@ -1211,6 +1167,16 @@ + + + + + + + + + + @@ -1232,9 +1198,9 @@ - + - + @@ -1244,9 +1210,9 @@ - + - + @@ -1256,9 +1222,9 @@ - + - + @@ -1268,9 +1234,9 @@ - + - + @@ -1280,9 +1246,9 @@ - + - + @@ -1292,9 +1258,9 @@ - + - + @@ -1304,9 +1270,9 @@ - + - + @@ -1316,9 +1282,9 @@ - + - + @@ -1328,9 +1294,9 @@ - + - + @@ -1340,9 +1306,9 @@ - + - + @@ -1364,41 +1330,41 @@ - + - + - + - + - + - + - + - + @@ -1412,9 +1378,9 @@ - + - + @@ -1424,9 +1390,9 @@ - + - + @@ -1436,9 +1402,9 @@ - + - + @@ -1448,9 +1414,9 @@ - + - + @@ -1460,9 +1426,9 @@ - + - + @@ -1472,9 +1438,9 @@ - + - + @@ -1484,9 +1450,9 @@ - + - + @@ -1496,9 +1462,9 @@ - + - + @@ -1508,9 +1474,9 @@ - + - + @@ -1520,9 +1486,9 @@ - + - + @@ -1533,6 +1499,16 @@ + + + + + + + + + + @@ -1543,12 +1519,12 @@ - + - + - + @@ -1561,90 +1537,90 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1652,18 +1628,8 @@ - - - - - - - - - - - + @@ -1713,7 +1679,7 @@ - + @@ -1723,9 +1689,9 @@ - + - + @@ -1737,7 +1703,7 @@ - + @@ -1747,9 +1713,9 @@ - + - + @@ -1761,7 +1727,7 @@ - + @@ -1773,7 +1739,7 @@ - + @@ -1785,7 +1751,7 @@ - + @@ -1797,7 +1763,7 @@ - + @@ -1809,7 +1775,7 @@ - + @@ -1821,7 +1787,7 @@ - + @@ -1844,7 +1810,7 @@ - + @@ -1870,36 +1836,36 @@ - + - + - + - + - + - + - + - + @@ -1908,7 +1874,7 @@ - + @@ -1917,7 +1883,7 @@ - + @@ -1926,7 +1892,7 @@ - + @@ -1935,7 +1901,7 @@ - + @@ -1944,7 +1910,7 @@ - + @@ -1953,7 +1919,7 @@ - + @@ -1962,1026 +1928,1120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + + + + + + + + + + + + + + - + - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + + + + + - + - - + + - + - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + + + + - + - + @@ -2990,7 +3050,27 @@ - + + + + + + + + + + + + + + + + + + + + + @@ -3000,9 +3080,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3021,9 +3127,19 @@ - + + + + + + + + + + + - + @@ -3033,7 +3149,87 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3042,7669 +3238,1461 @@ - - - + + + + + + + - + + - + - - - - - + - + + + - - + + + + + + + + + + + + + + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - + + + - + - - - + + + - + - - - - - - - + + + - + - - - + + + + + + + + + + + + + - + + - + - - - + + + - + + - + - - - - - - - - - - - - - - - - + + + - + + - + - - - + + + - + + - + - - - + + + - + + - + - - - - - - - - - - - - - - - - - - - + - + - - + - - - - - - - - + + + + - + - - - + + + - + - - - + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - + + - - + + + - + - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - + + + - + + + - - + + + + + - - + - - - + - + - + - - + - - - + - + - + - - + - - - + - + - + - - + - - - + - + - + - - + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - + - - - - - - - - - - - - - - - - - - - + + - + - + - + - - + - - - + - + - - - - - + - + - + - + - + - - + - - - + - + - + - + - + - - + + - - - - + + - - - - - - + + - + - - + - + - + + + + + - + - - + - + - + + + + + - + - - + - + - + + + + + - + - - + - + - + + + + + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - - + + + + + + - + - + + - + - + - + - + + - + - + - - + - - - + + - + - - - - - - - - - + - - + - - - + + - + - + - + - + + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - - + - - - + + - - - - - - - - - - + + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + - - + + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + - + - + + + + + + + + + + - + - + - - + - + - + - + - + + + + + + + + + + - + + + + + - + - + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + + + - + - + - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + - + + + + + + + + + + + + - - - - - + - + - - + - + - + + + + + + + + + + + + + + - + - + - + - + - + - + + + + + - + - + - + - + - + @@ -10712,2316 +4700,3623 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - - + + + - + + - + - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + - + - + - + - - - + + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - + - - - - - - - - - - - - - - - - - - - - + + + + - + + + - + - - + + + + - + + + - + - - + + + - + - + - - + + + - + + - + - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - + - - + + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - - - + + - + - + + - + - + - + - + - + - + - + - + - + - + - + - + + - + - - - + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - - + + - + - + - + - + - - - - - - - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + - + - + - + - + + - + - + - + - + - + - + - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + - + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - - + - - - + - + - + - - + - - - + - + - - - - - - - + + + - - + - + - + - + - - + - + - + + - + - - - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - + - + - + + - + - + - + - + - - - - - - - - - - + - + + - - + + + - + - + - + + - - + + + - + - - + - - - - - - - + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - + - - + - + - + - + - - + - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + - - + - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - + - - - + + - - + - + - - - + + - - + - + - - - + + - - + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - + - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + + - + - + - - + - - - + - + - + @@ -13032,893 +8327,880 @@ - + - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + - + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + - + - + - - - + + - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + + - - + + + + + - + - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + - + - + - + - + - + - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + - + - + - + + - + - + - + - - + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - + - + + - + - + + + + + - + @@ -13927,16 +9209,7 @@ - - - - - - - - - - + @@ -13944,3499 +9217,8230 @@ - + - + - + - + - + - + - + - + - + - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + - + - - + + + - - + - + - - + + + + + + + - - + + - + - - + + + - - + + - + - - + + + - - + - + - - + + + - - + + - + - - + + + - - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + - - + + + - - + - - - - - - - - + + + + + - - + - + - - - - - - + + + - - + - + - + - - + + + - - + - + - - - - - - + + + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + - + - - + + + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - + - + + - - + + + - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + + - + + + - + - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + - + + - + + + - + - + - + - + - + - + - + + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + - + - + - + - + - + - + - + + + + + + + + + - + - + + + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - + - + - + - + - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - - + + + - + - - + + + - - + + + - + - + - - + + + - + - - + + + - + - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - + - + - - - - - - - - - - - + - - + - - - + - + - + - - + - - - + - + - + + + + + - - + - - - + - + - - - - - + - + - + - + - + - + - + - + - - + - - - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + + + + + - + - - - - - - - - - - - - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + - + - + - + - + - - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - + - + - + - - + - - - + - + - + - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - - + - - - + - + - + - - + - - - + + - + - + - - + - - - + + - + - - - - - - - - - - - - - + - - - + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - + + + - + - + - - - + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + - - + - - - + - + - + - - + - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - + - - + - + - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index c667e41c..42b15a43 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 20a557ff..0fe41f88 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index bc98c4c5..c1baaff9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index 601d3afc..bc1eb3c3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index 658a600a..11835474 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -150,7 +150,7 @@ - + @@ -158,7 +158,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index 487100ed..dc3336f5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -6,7 +6,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index b4dd8597..82b9269c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index be7bb2ec..04e30c96 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -6,7 +6,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index 97a33fe9..7e5ae185 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index e5bfd4dc..e847b6cf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -6,7 +6,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 47340e4d..fa1ad4e7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index 6c4265b7..cc2050ef 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 6e455924..d5a35c1a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -6,7 +6,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 1e127e4b..f6dd7667 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index c7436082..bf622f23 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 526efd53..d36dd883 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -6,7 +6,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -34,7 +34,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 8e1040d6..5fa6b5e0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/mappFramework/Physical/Physical.pkg b/mappFramework/Physical/Physical.pkg index fa21e8fb..1aeffdc2 100644 --- a/mappFramework/Physical/Physical.pkg +++ b/mappFramework/Physical/Physical.pkg @@ -4,5 +4,6 @@ Simulation UnitTest + SimulationVC4 \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index d145154b..771beaf0 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,7 +2,7 @@ - + @@ -13,19 +13,19 @@ - - - - - - - + + + + + + + - + diff --git a/mappFramework/Physical/SimulationVC4/Config.pkg b/mappFramework/Physical/SimulationVC4/Config.pkg new file mode 100644 index 00000000..91544a2b --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/Config.pkg @@ -0,0 +1,11 @@ + + + + + Hardware.hw + Hardware.hwl + PC + Hardware.jpg + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/Hardware.hw b/mappFramework/Physical/SimulationVC4/Hardware.hw new file mode 100644 index 00000000..6a1117d9 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/Hardware.hw @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/Hardware.hwl b/mappFramework/Physical/SimulationVC4/Hardware.hwl new file mode 100644 index 00000000..126b9dcf --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/Hardware.hwl @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/Hardware.jpg b/mappFramework/Physical/SimulationVC4/Hardware.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffd79302642eed2c6338bc79afcf6aa64df82610 GIT binary patch literal 135483 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 TU;qq&0Wbgt{#OIoyYBx0M=io3 literal 0 HcmV?d00001 diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg new file mode 100644 index 00000000..973c7323 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg new file mode 100644 index 00000000..683b25c6 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg new file mode 100644 index 00000000..66601a5e --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg new file mode 100644 index 00000000..08d57353 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg @@ -0,0 +1,8 @@ + + + + + Certificates + PrivateKeys + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg new file mode 100644 index 00000000..b03ca4ca --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/Package.pkg new file mode 100644 index 00000000..3748db47 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/Package.pkg @@ -0,0 +1,10 @@ + + + + + OwnCertificates + ThirdPartyCertificates + CertificateRevocationLists + CertificateSigningRequests + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg new file mode 100644 index 00000000..7ea47349 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg @@ -0,0 +1,7 @@ + + + + + SoftwareCertificates + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg new file mode 100644 index 00000000..0c531bcb --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Firewall/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Firewall/Package.pkg new file mode 100644 index 00000000..591a0785 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Firewall/Package.pkg @@ -0,0 +1,7 @@ + + + + + Rules.firewallRules + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Firewall/Rules.firewallRules b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Firewall/Rules.firewallRules new file mode 100644 index 00000000..8748b192 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Firewall/Rules.firewallRules @@ -0,0 +1,6 @@ + + + + + + diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Package.pkg new file mode 100644 index 00000000..d88458a2 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/Package.pkg @@ -0,0 +1,10 @@ + + + + + UserRoleSystem + CertificateStore + TransportLayerSecurity + Firewall + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg new file mode 100644 index 00000000..58a4ff87 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/UserRoleSystem/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/UserRoleSystem/Package.pkg new file mode 100644 index 00000000..188b516a --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/AccessAndSecurity/UserRoleSystem/Package.pkg @@ -0,0 +1,8 @@ + + + + + \Physical\Simulation\PC\AccessAndSecurity\UserRoleSystem\Role.role + \Physical\Simulation\PC\AccessAndSecurity\UserRoleSystem\User.user + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg new file mode 100644 index 00000000..2f38cef0 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Connectivity/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/Connectivity/Package.pkg new file mode 100644 index 00000000..fec6e023 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/Connectivity/Package.pkg @@ -0,0 +1,7 @@ + + + + + OpcUA + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Cpu.per b/mappFramework/Physical/SimulationVC4/PC/Cpu.per new file mode 100644 index 00000000..14f5eaec --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/Cpu.per @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg b/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg new file mode 100644 index 00000000..de823723 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg @@ -0,0 +1,30 @@ + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + Connectivity + TextSystem + UnitSystem + AccessAndSecurity + mappControl + mappMotion + mappServices + mappSafety + mappView + mappVision + mappCockpit + VC + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Cpu.sw b/mappFramework/Physical/SimulationVC4/PC/Cpu.sw new file mode 100644 index 00000000..7be5aaba --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/Cpu.sw @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/IoMap.iom b/mappFramework/Physical/SimulationVC4/PC/IoMap.iom new file mode 100644 index 00000000..14f5eaec --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/IoMap.iom @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/mappFramework/Physical/SimulationVC4/PC/PvMap.vvm b/mappFramework/Physical/SimulationVC4/PC/PvMap.vvm new file mode 100644 index 00000000..14f5eaec --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/PvMap.vvm @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg new file mode 100644 index 00000000..24b827e6 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/UnitSystem/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/UnitSystem/Package.pkg new file mode 100644 index 00000000..f45ab49e --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/UnitSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/VC/PS2-Keyboard.dis b/mappFramework/Physical/SimulationVC4/PC/VC/PS2-Keyboard.dis new file mode 100644 index 00000000..c9744984 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/VC/PS2-Keyboard.dis @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/VC/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/VC/Package.pkg new file mode 100644 index 00000000..e906aaff --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/VC/Package.pkg @@ -0,0 +1,7 @@ + + + + + PS2-Keyboard.dis + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappCockpit/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappCockpit/Package.pkg new file mode 100644 index 00000000..1d844adb --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappCockpit/Package.pkg @@ -0,0 +1,7 @@ + + + + + \Physical\Simulation\PC\mappCockpit\Settings.mcocfg + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappControl/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappControl/Package.pkg new file mode 100644 index 00000000..e5d9739c --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappControl/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappMotion/AppAxis_1/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappMotion/AppAxis_1/Package.pkg new file mode 100644 index 00000000..ae35b379 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappMotion/AppAxis_1/Package.pkg @@ -0,0 +1,8 @@ + + + + + \Physical\Simulation\PC\mappMotion\AppAxis_1\AppAxis1.axis + \Physical\Simulation\PC\mappMotion\AppAxis_1\VAppAxis1.purevaxcfg + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappMotion/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappMotion/Package.pkg new file mode 100644 index 00000000..9f524510 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappMotion/Package.pkg @@ -0,0 +1,7 @@ + + + + + AppAxis_1 + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappSafety/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappSafety/Package.pkg new file mode 100644 index 00000000..5ba47808 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappSafety/Package.pkg @@ -0,0 +1,8 @@ + + + + + SafeApplication + SafeCommissioning + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappSafety/SafeApplication/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappSafety/SafeApplication/Package.pkg new file mode 100644 index 00000000..9efcef1c --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappSafety/SafeApplication/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappSafety/SafeCommissioning/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappSafety/SafeCommissioning/Package.pkg new file mode 100644 index 00000000..d23129f5 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappSafety/SafeCommissioning/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/AlarmX/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/AlarmX/Package.pkg new file mode 100644 index 00000000..26b74485 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/AlarmX/Package.pkg @@ -0,0 +1,8 @@ + + + + + \Physical\Simulation\PC\mappServices\AlarmX\AlarmXCfg.mpalarmxcore + \Physical\Simulation\PC\mappServices\AlarmX\AlarmXHist.mpalarmxhistory + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/AppAxis_1/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/AppAxis_1/Package.pkg new file mode 100644 index 00000000..4b54a1da --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/AppAxis_1/Package.pkg @@ -0,0 +1,8 @@ + + + + + \Physical\Simulation\PC\mappServices\AppAxis_1\Axis1Alm.mpalarmxcore + \Physical\Simulation\PC\mappServices\AppAxis_1\Axis1Grp.mpcomgroup + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Audit/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Audit/Package.pkg new file mode 100644 index 00000000..06b389b1 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Audit/Package.pkg @@ -0,0 +1,9 @@ + + + + + \Physical\Simulation\PC\mappServices\Audit\AuditCfg.mpaudittrail + \Physical\Simulation\PC\mappServices\Audit\CustomCfg.mpaudittrail + \Physical\Simulation\PC\mappServices\Audit\UnitCfg.mpcomunit + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Backup/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Backup/Package.pkg new file mode 100644 index 00000000..5ba0f19d --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Backup/Package.pkg @@ -0,0 +1,8 @@ + + + + + \Physical\Simulation\PC\mappServices\Backup\BackupCfg.mpbackupcore + \Physical\Simulation\PC\mappServices\Backup\BackupFile.mpfilemanagerui + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/File/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/File/Package.pkg new file mode 100644 index 00000000..65640ae4 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/File/Package.pkg @@ -0,0 +1,7 @@ + + + + + \Physical\Simulation\PC\mappServices\File\FileCfg.mpfilemanagerui + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg new file mode 100644 index 00000000..b754ee7d --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg @@ -0,0 +1,14 @@ + + + + + AlarmX + Audit + AppAxis_1 + Backup + File + Recipe + UserX + Records + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Recipe/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Recipe/Package.pkg new file mode 100644 index 00000000..ab443144 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Recipe/Package.pkg @@ -0,0 +1,9 @@ + + + + + \Physical\Simulation\PC\mappServices\Recipe\RecipeCSV.mprecipecsv + \Physical\Simulation\PC\mappServices\Recipe\RecipeFile.mpfilemanagerui + \Physical\Simulation\PC\mappServices\Recipe\RecipeXML.mprecipexml + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Records/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Records/Package.pkg new file mode 100644 index 00000000..dbc5b711 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Records/Package.pkg @@ -0,0 +1,9 @@ + + + + + \Physical\Simulation\PC\mappServices\Report\SimpleCfg.mpreportcore + \Physical\Simulation\PC\mappServices\Report\AdvCfg.mpreportcore + \Physical\Simulation\PC\mappServices\Report\ReportFile.mpfilemanagerui + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/UserX/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/UserX/Package.pkg new file mode 100644 index 00000000..da525f32 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/UserX/Package.pkg @@ -0,0 +1,8 @@ + + + + + \Physical\Simulation\PC\mappServices\UserX\UserXCfg.mpuserx + \Physical\Simulation\PC\mappServices\UserX\UserXlogin.mpuserxlogin + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappView/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappView/Package.pkg new file mode 100644 index 00000000..29009954 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappView/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappVision/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappVision/Package.pkg new file mode 100644 index 00000000..7c77cf1d --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappVision/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index 59daebcf..09091b26 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -11,22 +11,22 @@ - + - + - + - - + + - + - + - + From 8b5fa699cac7ac66910815953b4f25f9af9f27e4 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Mon, 15 May 2023 14:25:19 -0400 Subject: [PATCH 092/159] Organization updates to add VC4 contents to develop branch 2 --- mappFramework/Logical/Infrastructure/Package.pkg | 1 + mappFramework/Physical/Simulation/PC/Cpu.pkg | 2 +- mappFramework/Physical/Simulation/PC/Cpu.sw | 3 --- mappFramework/mappFramework.apj | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/Package.pkg b/mappFramework/Logical/Infrastructure/Package.pkg index 062875d8..495a722b 100644 --- a/mappFramework/Logical/Infrastructure/Package.pkg +++ b/mappFramework/Logical/Infrastructure/Package.pkg @@ -13,6 +13,7 @@ UserX Audit Report + VC4 LoggerDemo \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.pkg b/mappFramework/Physical/Simulation/PC/Cpu.pkg index 8112cf00..dec88dfb 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.pkg +++ b/mappFramework/Physical/Simulation/PC/Cpu.pkg @@ -24,6 +24,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index 771beaf0..9ef25edb 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -24,9 +24,6 @@ - - - diff --git a/mappFramework/mappFramework.apj b/mappFramework/mappFramework.apj index ee179c8f..9d0c52ba 100644 --- a/mappFramework/mappFramework.apj +++ b/mappFramework/mappFramework.apj @@ -1,5 +1,5 @@  - + From 3a118e9343bdcb6c3cb7b8021ce781813d8812e0 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Mon, 15 May 2023 14:38:11 -0400 Subject: [PATCH 093/159] Last details merging VC4 into develop --- mappFramework/Physical/Physical.pkg | 1 + mappFramework/Physical/Simulation/PC/Cpu.sw | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mappFramework/Physical/Physical.pkg b/mappFramework/Physical/Physical.pkg index 1aeffdc2..3f77a90c 100644 --- a/mappFramework/Physical/Physical.pkg +++ b/mappFramework/Physical/Physical.pkg @@ -5,5 +5,6 @@ Simulation UnitTest SimulationVC4 + SourceReference \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index efaa1686..66109c75 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,7 +2,7 @@ - + @@ -37,7 +37,6 @@ - @@ -70,6 +69,7 @@ + From 4905c8c75a574b98a4ac9dac623e9c9fa37ebf4f Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Mon, 15 May 2023 16:30:56 -0500 Subject: [PATCH 094/159] AAZM-599 - PackML mappView implementation update, changed model to old version, used full size model, cleaned up some unnecessary code --- .../PackML/PackMLMgr/HMIActions.st | 92 +- .../Infrastructure/PackML/PackMLMgr/IEC.prg | 4 +- .../PackML/PackMLMgr/LocalFunctions.fun | 10 + .../PackML/PackMLMgr/PackMLBaseModel.st | 146 ++ .../PackML/PackMLMgr/PackMLMgr.typ | 34 +- .../PackML/PackMLMgr/PackMLMgr.var | 3 +- .../Logical/Infrastructure/Package.pkg | 2 +- .../UnitTest/Audit/AuditTest/Set_AuditMgr.c | 2 +- .../UnitTest/File/FileUnitTest/Set_FileMgr.c | 1322 ++++++++--------- .../PackMLContent/PackML.content | 10 +- .../mappFrameworkVariables/PackML.svar | 14 + .../mappFrameworkVariables/Package.pkg | 1 + .../PackMLModel/Widget.compoundwidget | 571 ++++--- .../PackMLModelOld/Widget.compoundwidget | 44 +- .../mappView/Widgets/PackMLLib/Package.pkg | 4 +- .../Resources/Media/PackMLCmdResized.svg | 586 -------- .../Resources/Media/PackMLOldCmd.svg | 1133 ++++++++++++++ .../PackMLLib/Resources/Media/Package.pkg | 2 +- .../PC/Connectivity/OpcUA/PackMLMgr.uad | 6 +- .../Simulation/PC/mappView/PackML.vis | 8 +- .../PC/mappView/PackML/PackML_content.binding | 34 +- .../PackML/PackML_content.eventbinding | 132 +- 22 files changed, 2383 insertions(+), 1777 deletions(-) create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/LocalFunctions.fun create mode 100644 mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLBaseModel.st create mode 100644 mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/PackML.svar delete mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg create mode 100644 mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOldCmd.svg diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st index 2d846c44..892673c6 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -17,71 +17,39 @@ ACTION HmiActions: MpPackMLModule_Main.Command.StateComplete := HmiPackML.Commands.Complete; END_IF - // Check current state and convert to a usable format by HMI - CASE MpPackMLModule_Main.StateCurrent OF - - mpPACKML_STATE_STOPPED: - HmiPackML.Status.CurrentPackMLState := 1; - - mpPACKML_STATE_STARTING: - HmiPackML.Status.CurrentPackMLState := 2; - - mpPACKML_STATE_IDLE: - HmiPackML.Status.CurrentPackMLState := 3; - - mpPACKML_STATE_SUSPENDING: - HmiPackML.Status.CurrentPackMLState := 4; - - mpPACKML_STATE_SUSPENDED: - HmiPackML.Status.CurrentPackMLState := 5; - - mpPACKML_STATE_UNSUSPENDING: - HmiPackML.Status.CurrentPackMLState := 6; - - mpPACKML_STATE_EXECUTE: - HmiPackML.Status.CurrentPackMLState := 7; - - mpPACKML_STATE_STOPPING: - HmiPackML.Status.CurrentPackMLState := 8; - - mpPACKML_STATE_ABORTING: - HmiPackML.Status.CurrentPackMLState := 9; - - mpPACKML_STATE_ABORTED: - HmiPackML.Status.CurrentPackMLState := 10; - - mpPACKML_STATE_HOLDING: - HmiPackML.Status.CurrentPackMLState := 11; - - mpPACKML_STATE_HELD: - HmiPackML.Status.CurrentPackMLState := 12; - - mpPACKML_STATE_UNHOLDING: - HmiPackML.Status.CurrentPackMLState := 13; - - mpPACKML_STATE_COMPLETING: - HmiPackML.Status.CurrentPackMLState := 14; - - mpPACKML_STATE_COMPLETE: - HmiPackML.Status.CurrentPackMLState := 15; - - mpPACKML_STATE_RESETTING: - HmiPackML.Status.CurrentPackMLState := 16; - - mpPACKML_STATE_CLEARING: - HmiPackML.Status.CurrentPackMLState := 17; - - mpPACKML_STATE_DEACTIVATING: - HmiPackML.Status.CurrentPackMLState := 18; - - mpPACKML_STATE_DEACTIVATED: - HmiPackML.Status.CurrentPackMLState := 18; - - mpPACKML_STATE_ACTIVATING: - HmiPackML.Status.CurrentPackMLState := 18; + // control state machine active state blinking + CASE HmiPackML.Status.PackMLState OF + 0: // Build the intital string to setup enabled states and reduce the opacity to 50% for inactive states + + PackMLBaseModel(HmiPackML.Parameters.StateEnabled,ADR(HmiPackML.Status.PackMLStateModel)); + + //start timer before transitioning to the current state which turns the opacity to 100% creating a blinking effect + TON_StateBlink.IN := TRUE; + IF TON_StateBlink.Q THEN + HmiPackML.Status.PackMLState := MpPackMLModule_Main.StateCurrent; + TON_StateBlink.IN := FALSE; + END_IF + + mpPACKML_STATE_CLEARING..mpPACKML_STATE_COMPLETE: + + TON_StateBlink.IN := TRUE; + IF TON_StateBlink.Q THEN + HmiPackML.Status.PackMLState := 0; + TON_StateBlink.IN := FALSE; + END_IF + + ELSE //if the state does't exist because of the synchronized mode use just go back to state 0 + HmiPackML.Status.PackMLState := 0; END_CASE + // timer function block call + TON_StateBlink(PT := t#1s); + + // copy status info to HMI structure + HmiPackML.Status.StateCurrent := MpPackMLModule_Main.Info.StateCurrent; + HmiPackML.Status.ModeCurrent := MpPackMLModule_Main.Info.ModeCurrent; + END_ACTION diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg index 4660f09e..59a6222e 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/IEC.prg @@ -6,6 +6,8 @@ PackMLMgr.typ PackMLMgr.var HMIActions.st - StateMachine_Main.st + StateMachine_Main.st + LocalFunctions.fun + PackMLBaseModel.st \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/LocalFunctions.fun b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/LocalFunctions.fun new file mode 100644 index 00000000..12bc6f7a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/LocalFunctions.fun @@ -0,0 +1,10 @@ + +{REDUND_ERROR} FUNCTION PackMLBaseModel : BOOL (*TODO: Add your comment here*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) + VAR_INPUT + StateEnabled : PackMLStateEnabledType; + BaseLayout : REFERENCE TO STRING[100000]; + END_VAR + VAR + stringPart : STRING[79]; + END_VAR +END_FUNCTION diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLBaseModel.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLBaseModel.st new file mode 100644 index 00000000..500bd88c --- /dev/null +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLBaseModel.st @@ -0,0 +1,146 @@ + +(* TODO: Add your comment here *) +FUNCTION PackMLBaseModel + + BaseLayout := ''; + brsstrcat(ADR(BaseLayout),ADR('[')); + + IF StateEnabled.Clearing THEN + stringPart := '{"select":"#Clearing","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Clearing","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + stringPart := '{"select":"#Stopped","style":"fill:2;fill-opacity:1"}'; + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Starting THEN + stringPart := '{"select":"#Starting","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Starting","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + stringPart := '{"select":"#Idle","style":"fill:2;fill-opacity:1"}'; + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Suspended THEN + stringPart := '{"select":"#Suspended","style":"fill:2;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Suspended","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + stringPart := '{"select":"#Execute","style":"fill:4;fill-opacity:1"}'; + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Stopping THEN + stringPart := '{"select":"#Stopping","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Stopping","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Aborting THEN + stringPart := '{"select":"#Aborting","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Aborting","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + stringPart := '{"select":"#Aborted","style":"fill:2;fill-opacity:1"}'; + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Holding THEN + stringPart := '{"select":"#Holding","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Holding","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Held THEN + stringPart := '{"select":"#Held","style":"fill:2;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Held","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Unholding THEN + stringPart := '{"select":"#Unholding","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Unholding","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Suspending THEN + stringPart := '{"select":"#Suspending","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Suspending","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Unsuspending THEN + stringPart := '{"select":"#Unsuspending","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Unsuspending","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Resetting THEN + stringPart := '{"select":"#Resetting","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Resetting","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Completing THEN + stringPart := '{"select":"#Completing","style":"fill:1;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Completing","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(',')); + + IF StateEnabled.Complete THEN + stringPart := '{"select":"#Complete","style":"fill:2;fill-opacity:1"}'; + ELSE + stringPart := '{"select":"#Complete","style":"fill:0;fill-opacity:0.5"}'; + END_IF + + brsstrcat(ADR(BaseLayout),ADR(stringPart)); + brsstrcat(ADR(BaseLayout),ADR(']')); + + +END_FUNCTION diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ index d8a86630..0a48331a 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ @@ -1,13 +1,13 @@ (*Structure types*) TYPE - PackMLHmiInterfaceType : STRUCT + PackMLHmiInterfaceType : STRUCT (*Structure to hold commands, parameters and status from the HMI*) Commands : PackMLCommandsType; Parameters : PackMLParametersType; Status : PackMLStatusType; Activate : BOOL; END_STRUCT; - PackMLCommandsType : STRUCT + PackMLCommandsType : STRUCT (*Structure to hold the commands from the HMI*) Reset : BOOL; Start : BOOL; Stop : BOOL; @@ -19,13 +19,35 @@ TYPE Clear : BOOL; Complete : BOOL; END_STRUCT; - PackMLParametersType : STRUCT + PackMLParametersType : STRUCT (*Structure to hold the parameters for the HMI*) Par : USINT; + StateEnabled : PackMLStateEnabledType; END_STRUCT; - PackMLStatusType : STRUCT - CurrentPackMLState : USINT; - CurrentMode : DINT; + PackMLStatusType : STRUCT (*Structure to hold status information from the mapp View HMI*) + StateCurrent : STRING[20]; + ModeCurrent : STRING[50]; DownTimeReason : STRING[255]; + PackMLStateModel : STRING[100000]; + PackMLState : MpPackMLStateEnum; + END_STRUCT; + PackMLStateEnabledType : STRUCT (*Structure to hold state availability definition*) + Clearing : BOOL; (*Statistic information for Clearing state*) + Stopped : BOOL; (*Statistic information for Stopped state*) + Starting : BOOL; (*Statistic information for Starting state*) + Idle : BOOL; (*Statistic information for Idle state*) + Suspended : BOOL; (*Statistic information for Suspended state*) + Execute : BOOL; (*Statistic information for Execute state*) + Stopping : BOOL; (*Statistic information for Stopping state*) + Aborting : BOOL; (*Statistic information for Aborting state*) + Aborted : BOOL; (*Statistic information for Aborted state*) + Holding : BOOL; (*Statistic information for Holding state*) + Held : BOOL; (*Statistic information for Held state*) + Unholding : BOOL; (*Statistic information for Unholding state*) + Suspending : BOOL; (*Statistic information for Suspending state*) + Unsuspending : BOOL; (*Statistic information for Unsuspending state*) + Resetting : BOOL; (*Statistic information for Resetting state*) + Completing : BOOL; (*Statistic information for Completing state*) + Complete : BOOL; (*Statistic information for Complete state*) END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index c60fff8b..0b6f8ad4 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -3,10 +3,11 @@ VAR DirCreate_0 : DirCreate; (*DirCreate instance*) MpPackMLModule_Main : MpPackMLModule; (*PackMLModule instance*) MpPackMLModulePar_Main : MpPackMLModuleParType; (*PackMLModule Parameter instance*) + TON_StateBlink : TON; (*Timer to control state blinking action*) END_VAR (*Constants*) (*Structure Types*) VAR - HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) + HmiPackML : PackMLHmiInterfaceType := (Parameters:=(StateEnabled:=(Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=TRUE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=TRUE,Unsuspending:=TRUE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE))); (*HMI interface structure*) END_VAR (*Variables*) diff --git a/mappFramework/Logical/Infrastructure/Package.pkg b/mappFramework/Logical/Infrastructure/Package.pkg index 1ba379ef..a4971a7a 100644 --- a/mappFramework/Logical/Infrastructure/Package.pkg +++ b/mappFramework/Logical/Infrastructure/Package.pkg @@ -13,7 +13,7 @@ UserX Audit Report - VC4 + VC4 LoggerDemo PackML diff --git a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c index 747c53ea..ff4cbf96 100644 --- a/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c +++ b/mappFramework/Logical/UnitTest/Audit/AuditTest/Set_AuditMgr.c @@ -49,7 +49,7 @@ _SETUP_TEST(void) TestState = TEST_ARRANGE; cycleCount = 0; - TEST_DONE; + TEST_DONE; } _TEARDOWN_TEST(void) diff --git a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c index 0e3b32c0..4cc063e0 100644 --- a/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c +++ b/mappFramework/Logical/UnitTest/File/FileUnitTest/Set_FileMgr.c @@ -24,93 +24,93 @@ _SETUP_SET(void) { - TestState = 0; - FileNumber = 0; + TestState = 0; + FileNumber = 0; - HmiFile_UT.Parameters.Fifo.Enable = false; - HmiFile_UT.Parameters.Fifo.ScanInterval = 60; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.Enable = false; + HmiFile_UT.Parameters.Fifo.ScanInterval = 60; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - switch (SetupState) - { - case 0: - TEST_BUSY_CONDITION(HmiFile_UT.Status.DeleteStep != FILE_DISABLED); - for (USINT i=0; i= NumberOfFiles) ? 100 : 1; - break; + CurrentFile++; + SetupState = (CurrentFile >= NumberOfFiles) ? 100 : 1; + break; - case 10: - TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); - MpFileManagerUIConnect_FIFO.File.Refresh = true; - TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); - MpFileManagerUIConnect_FIFO.File.Refresh = false; - SetupState = 11; - break; + case 10: + TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect_FIFO.File.Refresh = true; + TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect_FIFO.File.Refresh = false; + SetupState = 11; + break; - case 11: - TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status != mpFILE_UI_STATUS_IDLE); - SetupState = 100; - break; + case 11: + TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status != mpFILE_UI_STATUS_IDLE); + SetupState = 100; + break; - case 100: - TEST_DONE; - } - TEST_BUSY; + case 100: + TEST_DONE; + } + TEST_BUSY; } _TEARDOWN_SET(void) { - /* TODO: add code running after test set here */ - TEST_DONE; + /* TODO: add code running after test set here */ + TEST_DONE; } bool FileIdleOrDisabled(void) { - return ((HmiFile_UT.Status.DeleteStep == FILE_DELETE_WAIT) || (HmiFile_UT.Status.DeleteStep == FILE_DISABLED)); + return ((HmiFile_UT.Status.DeleteStep == FILE_DELETE_WAIT) || (HmiFile_UT.Status.DeleteStep == FILE_DISABLED)); } _SETUP_TEST(void) { - TestState = 0; + TestState = 0; ArrangeSubState = 0; ActSubState = 0; AssertSubState = 0; - FileNumber = 0; + FileNumber = 0; cycleCount = 0; NameMatch = 0; InNewLocation = 0; @@ -128,79 +128,79 @@ _SETUP_TEST(void) { MpFileManagerUIConnect.File.Paste = 0; MpFileManagerUIConnect.File.Refresh = 0; MpFileManagerUIConnect.File.Rename = 0; - + HmiFile_UT.Parameters.Fifo.Enable = false; - HmiFile_UT.Parameters.Fifo.ScanInterval = 60; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.ScanInterval = 60; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - switch (SetupState) - { - case 0: - TEST_BUSY_CONDITION(HmiFile_UT.Status.DeleteStep != FILE_DISABLED); - for (USINT i=0; i= NumberOfFiles) ? 100 : 1; - break; - - case 10: - TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); - MpFileManagerUIConnect_FIFO.File.Refresh = true; - TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); - MpFileManagerUIConnect_FIFO.File.Refresh = false; - SetupState = 11; - break; + case 2: + FileDelete_UT.enable = true; + FileDelete_UT.pDevice = DirInfo_UT.pDevice; + FileDelete_UT.pName = (UDINT)&fileInfo.Filename; + FileDelete(&FileDelete_UT); + TEST_BUSY_CONDITION(FileDelete_UT.status == 65535); + TEST_ABORT_CONDITION(FileDelete_UT.status != 0); + + CurrentFile++; + SetupState = (CurrentFile >= NumberOfFiles) ? 100 : 1; + break; + + case 10: + TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect_FIFO.File.Refresh = true; + TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status == mpFILE_UI_STATUS_IDLE); + MpFileManagerUIConnect_FIFO.File.Refresh = false; + SetupState = 11; + break; - case 11: - TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status != mpFILE_UI_STATUS_IDLE); - SetupState = 100; - break; + case 11: + TEST_BUSY_CONDITION(MpFileManagerUIConnect_FIFO.Status != mpFILE_UI_STATUS_IDLE); + SetupState = 100; + break; - case 100: - TEST_DONE; - } - TEST_BUSY; + case 100: + TEST_DONE; + } + TEST_BUSY; } _TEARDOWN_TEST(void) { - HmiFile_UT.Parameters.Fifo.Enable = false; - HmiFile_UT.Parameters.Fifo.ScanInterval = 60; + HmiFile_UT.Parameters.Fifo.Enable = false; + HmiFile_UT.Parameters.Fifo.ScanInterval = 60; TestState = 0; ArrangeSubState = 0; @@ -236,7 +236,7 @@ _TEARDOWN_TEST(void) FileCreate(&FileCreate_0); FileClose(&FileClose_0); - TEST_DONE; + TEST_DONE; } _CYCLIC_SET(void) @@ -1558,588 +1558,588 @@ _TEST Delete_Directory(void) _TEST FIFO_20(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 20) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; - HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 10; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 20) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; + HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 10; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); - TEST_DONE; - break; - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); + TEST_DONE; + break; + } + TEST_BUSY; } _TEST FIFO_60(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 60) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; - HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 15; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 60) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; + HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 15; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_140(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 140) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; - HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 15; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 140) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; + HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 15; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_MaxFiles60(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 100) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; - HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 60; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 100) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; + HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 60; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_MaxFiles120(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 200) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; - HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 120; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 200) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_NUM_OF_FILES; + HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles = 120; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(HmiFile_UT.Parameters.Fifo.MaxNumberOfFiles, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_MaxFolderSize_30Files(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileWrite_UT.enable = true; - FileWrite_UT.ident = FileCreate_UT.ident; - FileWrite_UT.offset = 0; - FileWrite_UT.pSrc = (UDINT)&testData; - FileWrite_UT.len = sizeof(testData); - FileWrite(&FileWrite_UT); - TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); - TEST_ABORT_CONDITION(FileWrite_UT.status != 0); - TestState = 2; - break; - - case 2: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 30) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; - HmiFile_UT.Parameters.Fifo.MaxFolderSize = 20; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileWrite_UT.enable = true; + FileWrite_UT.ident = FileCreate_UT.ident; + FileWrite_UT.offset = 0; + FileWrite_UT.pSrc = (UDINT)&testData; + FileWrite_UT.len = sizeof(testData); + FileWrite(&FileWrite_UT); + TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); + TEST_ABORT_CONDITION(FileWrite_UT.status != 0); + TestState = 2; + break; + + case 2: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 30) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; + HmiFile_UT.Parameters.Fifo.MaxFolderSize = 20; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(20, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(20, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_MaxFolderSize_60Files(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileWrite_UT.enable = true; - FileWrite_UT.ident = FileCreate_UT.ident; - FileWrite_UT.offset = 0; - FileWrite_UT.pSrc = (UDINT)&testData; - FileWrite_UT.len = sizeof(testData); - FileWrite(&FileWrite_UT); - TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); - TEST_ABORT_CONDITION(FileWrite_UT.status != 0); - TestState = 2; - break; - - case 2: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 60) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; - HmiFile_UT.Parameters.Fifo.MaxFolderSize = 40; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileWrite_UT.enable = true; + FileWrite_UT.ident = FileCreate_UT.ident; + FileWrite_UT.offset = 0; + FileWrite_UT.pSrc = (UDINT)&testData; + FileWrite_UT.len = sizeof(testData); + FileWrite(&FileWrite_UT); + TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); + TEST_ABORT_CONDITION(FileWrite_UT.status != 0); + TestState = 2; + break; + + case 2: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 60) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; + HmiFile_UT.Parameters.Fifo.MaxFolderSize = 40; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(40, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(40, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_MaxFolderSize_Keep60Files(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileWrite_UT.enable = true; - FileWrite_UT.ident = FileCreate_UT.ident; - FileWrite_UT.offset = 0; - FileWrite_UT.pSrc = (UDINT)&testData; - FileWrite_UT.len = sizeof(testData); - FileWrite(&FileWrite_UT); - TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); - TEST_ABORT_CONDITION(FileWrite_UT.status != 0); - TestState = 2; - break; - - case 2: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 90) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; - HmiFile_UT.Parameters.Fifo.MaxFolderSize = 60; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileWrite_UT.enable = true; + FileWrite_UT.ident = FileCreate_UT.ident; + FileWrite_UT.offset = 0; + FileWrite_UT.pSrc = (UDINT)&testData; + FileWrite_UT.len = sizeof(testData); + FileWrite(&FileWrite_UT); + TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); + TEST_ABORT_CONDITION(FileWrite_UT.status != 0); + TestState = 2; + break; + + case 2: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 90) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; + HmiFile_UT.Parameters.Fifo.MaxFolderSize = 60; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(60, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(60, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } _TEST FIFO_MaxFolderSize_Keep120Files(void) { TEST_DONE; - switch (TestState) - { - // Arrange - case 0: - FileCreate_UT.enable = true; - FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; - snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); - FileCreate_UT.pFile = (UDINT)&FileName; - FileCreate(&FileCreate_UT); - - TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); - TEST_ABORT_CONDITION(FileCreate_UT.status != 0); - TestState = 1; - break; - - case 1: - FileWrite_UT.enable = true; - FileWrite_UT.ident = FileCreate_UT.ident; - FileWrite_UT.offset = 0; - FileWrite_UT.pSrc = (UDINT)&testData; - FileWrite_UT.len = sizeof(testData); - FileWrite(&FileWrite_UT); - TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); - TEST_ABORT_CONDITION(FileWrite_UT.status != 0); - TestState = 2; - break; - - case 2: - FileClose_UT.enable = true; - FileClose_UT.ident = FileCreate_UT.ident; - FileClose(&FileClose_UT); - - TEST_BUSY_CONDITION(FileClose_UT.status == 65535); - TEST_ABORT_CONDITION(FileClose_UT.status != 0); - - FileNumber++; - TestState = (FileNumber >= 140) ? 10 : 0; - break; - - // Act - case 10: - HmiFile_UT.Parameters.Fifo.Enable = true; - strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); - HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; - HmiFile_UT.Parameters.Fifo.MaxFolderSize = 120; - HmiFile_UT.Parameters.Fifo.ScanInterval = 0; - TEST_BUSY_CONDITION(FileIdleOrDisabled()); - TestState = 100; - break; - - // Assert - case 100: - TEST_BUSY_CONDITION(!FileIdleOrDisabled()); - HmiFile_UT.Parameters.Fifo.Enable = false; + switch (TestState) + { + // Arrange + case 0: + FileCreate_UT.enable = true; + FileCreate_UT.pDevice = (UDINT)&"mappUserXFiles"; + snprintf2(FileName, sizeof(FileName), "TestFile%d.txt", FileNumber); + FileCreate_UT.pFile = (UDINT)&FileName; + FileCreate(&FileCreate_UT); + + TEST_BUSY_CONDITION(FileCreate_UT.status == 65535); + TEST_ABORT_CONDITION(FileCreate_UT.status != 0); + TestState = 1; + break; + + case 1: + FileWrite_UT.enable = true; + FileWrite_UT.ident = FileCreate_UT.ident; + FileWrite_UT.offset = 0; + FileWrite_UT.pSrc = (UDINT)&testData; + FileWrite_UT.len = sizeof(testData); + FileWrite(&FileWrite_UT); + TEST_BUSY_CONDITION(FileWrite_UT.status == 65535); + TEST_ABORT_CONDITION(FileWrite_UT.status != 0); + TestState = 2; + break; + + case 2: + FileClose_UT.enable = true; + FileClose_UT.ident = FileCreate_UT.ident; + FileClose(&FileClose_UT); + + TEST_BUSY_CONDITION(FileClose_UT.status == 65535); + TEST_ABORT_CONDITION(FileClose_UT.status != 0); + + FileNumber++; + TestState = (FileNumber >= 140) ? 10 : 0; + break; + + // Act + case 10: + HmiFile_UT.Parameters.Fifo.Enable = true; + strcpy(HmiFile_UT.Parameters.Fifo.DeviceName, "mappUserXFiles"); + HmiFile_UT.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER; + HmiFile_UT.Parameters.Fifo.MaxFolderSize = 120; + HmiFile_UT.Parameters.Fifo.ScanInterval = 0; + TEST_BUSY_CONDITION(FileIdleOrDisabled()); + TestState = 100; + break; + + // Assert + case 100: + TEST_BUSY_CONDITION(!FileIdleOrDisabled()); + HmiFile_UT.Parameters.Fifo.Enable = false; - DirInfo_UT.enable = true; - DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; - DirInfo_UT.pPath = (UDINT)&""; - DirInfo(&DirInfo_UT); - TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); - TEST_ABORT_CONDITION(DirInfo_UT.status != 0); - TEST_ASSERT_EQUAL_INT(120, DirInfo_UT.filenum); - TEST_DONE; - break; - - } - TEST_BUSY; + DirInfo_UT.enable = true; + DirInfo_UT.pDevice = (UDINT)&"mappUserXFiles"; + DirInfo_UT.pPath = (UDINT)&""; + DirInfo(&DirInfo_UT); + TEST_BUSY_CONDITION(DirInfo_UT.status == 65535); + TEST_ABORT_CONDITION(DirInfo_UT.status != 0); + TEST_ASSERT_EQUAL_INT(120, DirInfo_UT.filenum); + TEST_DONE; + break; + + } + TEST_BUSY; } /* B+R UnitTest: This is generated code. diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content index 550a070e..13e599ef 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -1,9 +1,9 @@  - + - - - - + + + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/PackML.svar b/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/PackML.svar new file mode 100644 index 00000000..f01d1ae5 --- /dev/null +++ b/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/PackML.svar @@ -0,0 +1,14 @@ + + + + + + + diff --git a/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/Package.pkg b/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/Package.pkg index b518c16e..4d478501 100644 --- a/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/Package.pkg +++ b/mappFramework/Logical/mappView/Visualization/Variables/mappFrameworkVariables/Package.pkg @@ -6,5 +6,6 @@ UserX.svar Report.svar File.svar + PackML.svar \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget index 317e1780..0a09a550 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModel/Widget.compoundwidget @@ -1,319 +1,302 @@  - - - + + + - + - - - - - - - - - - - + + + + + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - + + - - PackML state - - - - + + PackML state + + + + - - Bind to PackML command interface - - - - - - - - - - - - - - - + + Bind to PackML command interface + + + + + + + + + + + + + + + - - PackML transform - - - - - + + PackML transform + + + + + - - PackML base model - - - - - + + PackML base model + + + + + - - + --> + - - - + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - --> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget index 9a0b40e9..7e3e9bb3 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/PackMLModelOld/Widget.compoundwidget @@ -1,13 +1,27 @@  - + - + - - - + + + + + + + + + + + + + + + + + - + @@ -19,6 +33,24 @@ + + Bind to PackML command interface + + + + + + + + + + + + + + + + PackML transform diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Package.pkg index 8a40c573..4c65f8e9 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Package.pkg @@ -4,14 +4,14 @@ Description.widgetlibrary Resources - PackMLModel PackMLInfo PackMLModule PackMLMainModule PackMLModuleSlim - PackMLMainModuleSlim PackMLInfoBanner + PackMLMainModuleSlim PackML_support_lib.png PackMLModelOld + PackMLModel \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg deleted file mode 100644 index ee7ceebc..00000000 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLCmdResized.svg +++ /dev/null @@ -1,586 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOldCmd.svg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOldCmd.svg new file mode 100644 index 00000000..d27f3bcf --- /dev/null +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/PackMLOldCmd.svg @@ -0,0 +1,1133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuspending + Idle + Starting + Unholding + Resetting + Stopped + Stopping + Clearing + Suspended + Execute + Held + Holding + Completing + Suspending + Aborted + Aborting + Complete + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg index e4d5552d..3faaa07e 100644 --- a/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg +++ b/mappFramework/Logical/mappView/Widgets/PackMLLib/Resources/Media/Package.pkg @@ -6,6 +6,6 @@ PackMLOld.svg PackMLCmd.svg TouchMe.svg - PackMLCmdResized.svg + PackMLOldCmd.svg \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index 54be5a51..b3919ba3 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -23,7 +23,7 @@ - + @@ -40,9 +40,9 @@ - - + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis index 3dfe232f..c1666772 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis @@ -6,7 +6,7 @@ - + @@ -19,7 +19,9 @@ - + + + @@ -36,4 +38,4 @@ - + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding index 452e4dfb..d9880314 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding @@ -1,17 +1,25 @@  - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding index aff9f348..47e8a685 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.eventbinding @@ -1,134 +1,4 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file From 981da1c5d4093fee68c334f64ea0fdf086af077e Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Tue, 16 May 2023 08:39:27 -0400 Subject: [PATCH 095/159] remove index variable and use the Index variable instead to avoid a compilation issue with the unit test configuration --- .../Infrastructure/File/FileMgr/FileMgr.var | 90 +++--- .../Infrastructure/File/FileMgr/HMIActions.st | 272 +++++++++--------- 2 files changed, 181 insertions(+), 181 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var index e0d20b3c..ef083693 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var @@ -1,45 +1,45 @@ -(*Function Blocks*) -VAR - MpFileManagerUI_0 : MpFileManagerUI; (*MpFileManagerUI instance*) - MpFileManagerUI_FIFO : MpFileManagerUI; (*MpFileManagerUI instance*) - R_TRIG_CheckStatus : R_TRIG; (*Trigger function block*) - TON_Wait : TON; (*FIFO handling support*) - TON_ScanFolder : TON; (*Timer to scan for folder*) - CurrentIndex : UDINT; (*FIFO handling support deleting more then 50 files*) - DirRead_FolderSize : DirRead; (*FIFO handling support reading current folder size*) -END_VAR -(*Constants*) -VAR CONSTANT - MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 7; (*Maximum number of file devices *) -END_VAR -(*Structure Types*) -VAR - MpFileManagerUIConnect : MpFileManagerUIConnectType; (*File manager connection to the HMI*) - MpFileManagerUIConnect_FIFO : {REDUND_UNREPLICABLE} MpFileManagerUIConnectType; (*File manager connection to the HMI*) - HmiFile : FileHmiInterfaceType; (*HMI interface structure*) - PathCheck : FilePathCheckType; (*Parameter structure controlling the visible file device based on available folders*) - DirectoryData : fiDIR_READ_DATA; (*FIFO handling support reading current folder size*) -END_VAR -(*Variables*) -VAR - i : USINT; (*Index for FOR loops*) - DeviceListCount : USINT; (*Counter for accessible file devices*) - DeviceCount : USINT; (*Counter for available file devices*) - Ident : UDINT; (*Ident of a program on target*) - IdentStatus : UINT; (*Status variable if a program exists on target*) - Index : USINT; (*Index for avaliable devices*) - FolderDepthCount : USINT; (*Keeps track of the folder depth location to determine whether or not the back button should be shown*) - USBOffset : USINT := 0; (*Device list offset where to add USB device*) - MaxDeviceNameIndex : USINT; (*How many devices are configured*) - tempIdx : USINT; (*FIFO handling support index variable*) - FileNameArraySize : USINT; (*FIFO handling support size of the array*) - StartIndex : USINT; (*FIFO handling support *) - Fifo_Count : USINT; (*FIFO handling support current file count*) -END_VAR -VAR RETAIN - FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) -END_VAR -VAR - NextOpenIndex : USINT; (*Index for the next open slot in mpFileManagerUICOnnect device list which populates table*) - index : USINT; (*Index for FOR loop cheking paths*) -END_VAR +(*Function Blocks*) +VAR + MpFileManagerUI_0 : MpFileManagerUI; (*MpFileManagerUI instance*) + MpFileManagerUI_FIFO : MpFileManagerUI; (*MpFileManagerUI instance*) + R_TRIG_CheckStatus : R_TRIG; (*Trigger function block*) + TON_Wait : TON; (*FIFO handling support*) + TON_ScanFolder : TON; (*Timer to scan for folder*) + CurrentIndex : UDINT; (*FIFO handling support deleting more then 50 files*) + DirRead_FolderSize : DirRead; (*FIFO handling support reading current folder size*) +END_VAR +(*Constants*) +VAR CONSTANT + MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 7; (*Maximum number of file devices *) +END_VAR +(*Structure Types*) +VAR + MpFileManagerUIConnect : MpFileManagerUIConnectType; (*File manager connection to the HMI*) + MpFileManagerUIConnect_FIFO : {REDUND_UNREPLICABLE} MpFileManagerUIConnectType; (*File manager connection to the HMI*) + HmiFile : FileHmiInterfaceType; (*HMI interface structure*) + PathCheck : FilePathCheckType; (*Parameter structure controlling the visible file device based on available folders*) + DirectoryData : fiDIR_READ_DATA; (*FIFO handling support reading current folder size*) +END_VAR +(*Variables*) +VAR + i : USINT; (*Index for FOR loops*) + DeviceListCount : USINT; (*Counter for accessible file devices*) + DeviceCount : USINT; (*Counter for available file devices*) + Ident : UDINT; (*Ident of a program on target*) + IdentStatus : UINT; (*Status variable if a program exists on target*) + Index : USINT; (*Index for avaliable devices*) + FolderDepthCount : USINT; (*Keeps track of the folder depth location to determine whether or not the back button should be shown*) + USBOffset : USINT := 0; (*Device list offset where to add USB device*) + MaxDeviceNameIndex : USINT; (*How many devices are configured*) + tempIdx : USINT; (*FIFO handling support index variable*) + TempIdx : USINT; (*FIFO handling support index variable*) + FileNameArraySize : USINT; (*FIFO handling support size of the array*) + StartIndex : USINT; (*FIFO handling support *) + Fifo_Count : USINT; (*FIFO handling support current file count*) +END_VAR +VAR RETAIN + FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) +END_VAR +VAR + NextOpenIndex : USINT; (*Index for the next open slot in mpFileManagerUICOnnect device list which populates table*) +END_VAR diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 02e55ffa..3f1c67f5 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -1,137 +1,137 @@ -ACTION FormatDeviceDataProvider: - - // Select CF device if USB device is not available - FOR i := 0 TO IDX_USB_DEV_LIST DO - tempIdx := (i + USBOffset); - - IF gUSBAvailable[i] THEN - - HmiFile.Status.DeviceDataProvider[tempIdx] := '{"value":"USB'; - brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); - - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('","text":"USB')); - brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('"}')); - - PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; - brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); - ELSE - brsmemset(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[tempIdx])); - brsmemset(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[tempIdx])); - END_IF - END_FOR - - //Check initilized folder for existance and remove any from the device list that don't exist - MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); - NextOpenIndex := 0; - FOR index := 0 TO MaxDeviceNameIndex DO - IdentStatus := ST_ident(ADR(PathCheck.PrgName[index]),0,ADR(Ident)); - //Assign device name to next available slot in table according to if the path is valid - IF (IdentStatus = 0) THEN //path is valid - MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[index + 1]; - NextOpenIndex := NextOpenIndex + 1; - END_IF; - //Clear the remaining index slots with invalid path checks - IF index > NextOpenIndex THEN - MpFileManagerUIConnect.DeviceList.DeviceNames[index] := ''; - END_IF - END_FOR; - - // Configure visible device list - HmiFile.Status.TableConfig[0] := '{ "specRows": [{"from":'; - FOR i := 0 TO MaxDeviceNameIndex DO - IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN - DeviceCount := i + 1; - END_IF - END_FOR - brsitoa((DeviceCount), ADR(HmiFile.Status.TableConfig[0]) + brsstrlen(ADR(HmiFile.Status.TableConfig[0]))); - brsstrcat(ADR(HmiFile.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); - - // Configure visible file list - HmiFile.Status.TableConfig[1] := '{ "specRows": [{"from":'; - brsitoa((MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount), ADR(HmiFile.Status.TableConfig[1]) + brsstrlen(ADR(HmiFile.Status.TableConfig[1]))); - brsstrcat(ADR(HmiFile.Status.TableConfig[1]), ADR(',"to":49, "visible":false}]}')); - - // Create device data provider for FIFO drop down - FOR i := 0 TO MaxDeviceNameIndex DO - IF (MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '') THEN - HmiFile.Status.DeviceDataProvider[i] := '{"value":"'; - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i])); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR('","text":"')); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i])); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR('"}')); - ELSE - brsmemset(ADR(HmiFile.Status.DeviceDataProvider[i]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[i])); - END_IF - END_FOR - -END_ACTION - -ACTION FileManager: - - MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); - MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); - MpFileManagerUI_0(); - - FOR i := 0 TO ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1) DO - HmiFile.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; - HmiFile.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; - HmiFile.Status.Size[i] := REAL_TO_UDINT(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); - - // Set image array based on item type - IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN - HmiFile.Status.Type[i] := FOLDER; - ELSIF NOT MpFileManagerUIConnect.File.List.Items[i].IsFolder AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN - HmiFile.Status.Type[i] := FILE_SELECTED; - ELSE - HmiFile.Status.Type[i] := FILE; - END_IF - - // Set file selected when the table is clicked Single and MultiSelect - IF (MpFileManagerUIConnect.File.MultiSelect = FALSE) THEN - MpFileManagerUIConnect.File.List.Items[i].IsSelected := (i = HmiFile.Status.SelectedIndex); - ELSIF (MpFileManagerUIConnect.File.MultiSelect = TRUE) AND (HmiFile.Commands.MultiSelect = TRUE) THEN - IF (i = HmiFile.Status.SelectedIndex) AND NOT MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN - MpFileManagerUIConnect.File.List.Items[i].IsSelected := TRUE; - HmiFile.Commands.MultiSelect := FALSE; - ELSIF (i = HmiFile.Status.SelectedIndex) AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN - MpFileManagerUIConnect.File.List.Items[i].IsSelected := FALSE; - HmiFile.Commands.MultiSelect := FALSE; - END_IF - END_IF - END_FOR - - - // Read currently selected device name for HMI - IF (MpFileManagerUIConnect.DeviceList.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0]))) THEN - MpFileManagerUIConnect.DeviceList.SelectedIndex := 0; - END_IF - HmiFile.Status.DeviceName := MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]; - - // Read if current selected object is folder - IF (HmiFile.Status.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]))) THEN - HmiFile.Status.SelectedIndex := 0; - END_IF - HmiFile.Status.IsFolder := MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsFolder; - - // Control the folder structure when entering and leaving folders - IF (HmiFile.Commands.EnterFolder) AND MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsFolder THEN - HmiFile.Commands.EnterFolder := FALSE; - MpFileManagerUIConnect.File.EnterFolder := TRUE; - FolderDepthCount := FolderDepthCount + 1; - ELSE - HmiFile.Commands.EnterFolder := FALSE; - END_IF - - IF EDGEPOS(HmiFile.Commands.FolderUp) AND (HmiFile.Status.BackButton > 0) THEN - HmiFile.Commands.FolderUp := FALSE; - MpFileManagerUIConnect.File.FolderUp := TRUE; - FolderDepthCount := FolderDepthCount - 1; - END_IF - - HmiFile.Status.BackButton := (FolderDepthCount > 0); - HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = CONCAT(DEFAULT_PARAMETERS,PARAMETERS_FILE_EXTENSION)) OR - (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = CONCAT(DEFAULT_MACHINE_CONFIGURATION, - MACHINE_CONFIG_FILE_EXTENSION))) AND MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; - +ACTION FormatDeviceDataProvider: + + // Select CF device if USB device is not available + FOR i := 0 TO IDX_USB_DEV_LIST DO + tempIdx := (i + USBOffset); + + IF gUSBAvailable[i] THEN + + HmiFile.Status.DeviceDataProvider[tempIdx] := '{"value":"USB'; + brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); + + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('","text":"USB')); + brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('"}')); + + PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; + brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); + ELSE + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[tempIdx])); + brsmemset(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[tempIdx])); + END_IF + END_FOR + + //Check initilized folder for existance and remove any from the device list that don't exist + MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); + NextOpenIndex := 0; + FOR Index := 0 TO MaxDeviceNameIndex DO + IdentStatus := ST_ident(ADR(PathCheck.PrgName[Index ]),0,ADR(Ident)); + //Assign device name to next available slot in table according to if the path is valid + IF (IdentStatus = 0) THEN //path is valid + MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[Index + 1]; + NextOpenIndex := NextOpenIndex + 1; + END_IF; + //Clear the remaining index slots with invalid path checks + IF Index > NextOpenIndex THEN + MpFileManagerUIConnect.DeviceList.DeviceNames[Index ] := ''; + END_IF + END_FOR; + + // Configure visible device list + HmiFile.Status.TableConfig[0] := '{ "specRows": [{"from":'; + FOR i := 0 TO MaxDeviceNameIndex DO + IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN + DeviceCount := i + 1; + END_IF + END_FOR + brsitoa((DeviceCount), ADR(HmiFile.Status.TableConfig[0]) + brsstrlen(ADR(HmiFile.Status.TableConfig[0]))); + brsstrcat(ADR(HmiFile.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); + + // Configure visible file list + HmiFile.Status.TableConfig[1] := '{ "specRows": [{"from":'; + brsitoa((MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount), ADR(HmiFile.Status.TableConfig[1]) + brsstrlen(ADR(HmiFile.Status.TableConfig[1]))); + brsstrcat(ADR(HmiFile.Status.TableConfig[1]), ADR(',"to":49, "visible":false}]}')); + + // Create device data provider for FIFO drop down + FOR i := 0 TO MaxDeviceNameIndex DO + IF (MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '') THEN + HmiFile.Status.DeviceDataProvider[i] := '{"value":"'; + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i])); + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR('","text":"')); + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i])); + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[i]), ADR('"}')); + ELSE + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[i]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[i])); + END_IF + END_FOR + +END_ACTION + +ACTION FileManager: + + MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); + MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); + MpFileManagerUI_0(); + + FOR i := 0 TO ((SIZEOF(HmiFile.Status.FileNames)/SIZEOF(HmiFile.Status.FileNames[0])) - 1) DO + HmiFile.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; + HmiFile.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; + HmiFile.Status.Size[i] := REAL_TO_UDINT(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); + + // Set image array based on item type + IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN + HmiFile.Status.Type[i] := FOLDER; + ELSIF NOT MpFileManagerUIConnect.File.List.Items[i].IsFolder AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + HmiFile.Status.Type[i] := FILE_SELECTED; + ELSE + HmiFile.Status.Type[i] := FILE; + END_IF + + // Set file selected when the table is clicked Single and MultiSelect + IF (MpFileManagerUIConnect.File.MultiSelect = FALSE) THEN + MpFileManagerUIConnect.File.List.Items[i].IsSelected := (i = HmiFile.Status.SelectedIndex); + ELSIF (MpFileManagerUIConnect.File.MultiSelect = TRUE) AND (HmiFile.Commands.MultiSelect = TRUE) THEN + IF (i = HmiFile.Status.SelectedIndex) AND NOT MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + MpFileManagerUIConnect.File.List.Items[i].IsSelected := TRUE; + HmiFile.Commands.MultiSelect := FALSE; + ELSIF (i = HmiFile.Status.SelectedIndex) AND MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN + MpFileManagerUIConnect.File.List.Items[i].IsSelected := FALSE; + HmiFile.Commands.MultiSelect := FALSE; + END_IF + END_IF + END_FOR + + + // Read currently selected device name for HMI + IF (MpFileManagerUIConnect.DeviceList.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0]))) THEN + MpFileManagerUIConnect.DeviceList.SelectedIndex := 0; + END_IF + HmiFile.Status.DeviceName := MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]; + + // Read if current selected object is folder + IF (HmiFile.Status.SelectedIndex >= (SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]))) THEN + HmiFile.Status.SelectedIndex := 0; + END_IF + HmiFile.Status.IsFolder := MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsFolder; + + // Control the folder structure when entering and leaving folders + IF (HmiFile.Commands.EnterFolder) AND MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsFolder THEN + HmiFile.Commands.EnterFolder := FALSE; + MpFileManagerUIConnect.File.EnterFolder := TRUE; + FolderDepthCount := FolderDepthCount + 1; + ELSE + HmiFile.Commands.EnterFolder := FALSE; + END_IF + + IF EDGEPOS(HmiFile.Commands.FolderUp) AND (HmiFile.Status.BackButton > 0) THEN + HmiFile.Commands.FolderUp := FALSE; + MpFileManagerUIConnect.File.FolderUp := TRUE; + FolderDepthCount := FolderDepthCount - 1; + END_IF + + HmiFile.Status.BackButton := (FolderDepthCount > 0); + HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = CONCAT(DEFAULT_PARAMETERS,PARAMETERS_FILE_EXTENSION)) OR + (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = CONCAT(DEFAULT_MACHINE_CONFIGURATION, + MACHINE_CONFIG_FILE_EXTENSION))) AND MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + END_ACTION \ No newline at end of file From 654065bc89161c8b25e100b95b15de0202f90a0f Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 16 May 2023 10:25:24 -0400 Subject: [PATCH 096/159] Merged PackML VC4 task --- .../VC4/PackML/PackMLAlarms.tmx | 51 +++++++ .../VC4/PackML/PackMLMgr/HMIActions.st | 29 ++++ .../VC4/PackML/PackMLMgr/IEC.prg | 11 ++ .../VC4/PackML/PackMLMgr/PackMLMgr.st | 58 ++++++++ .../VC4/PackML/PackMLMgr/PackMLMgr.typ | 33 +++++ .../VC4/PackML/PackMLMgr/PackMLMgr.var | 15 ++ .../VC4/PackML/PackMLMgr/StateMachine_Main.st | 134 ++++++++++++++++++ .../Infrastructure/VC4/PackML/Package.pkg | 8 ++ .../Logical/Infrastructure/VC4/Package.pkg | 1 + .../Physical/SimulationVC4/PC/Cpu.sw | 2 + .../PackML/PackMLCfg.mppackmlcore | 47 ++++++ .../PackML/PackMLMain.mppackmlmodule | 13 ++ .../PC/mappServices/PackML/Package.pkg | 8 ++ .../SimulationVC4/PC/mappServices/Package.pkg | 1 + 14 files changed, 411 insertions(+) create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLAlarms.tmx create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st create mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/Package.pkg create mode 100644 mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore create mode 100644 mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule create mode 100644 mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLAlarms.tmx b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLAlarms.tmx new file mode 100644 index 00000000..27649498 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLAlarms.tmx @@ -0,0 +1,51 @@ + + +

    + Change the namespace to define where this text module should be located within the logical structure of your texts + mappFramework/PackML/Alarms +
    + + + + Übergang in diesen Zustand nicht möglich + + + 无法过渡到此状态 + + + Transition to this state not possible + + + Mon unité + + + + + Moduswechsel nicht erlaubt + + + 无法进行模式转换 + + + Mode transition not possible + + + Unité + + + + + Ungültige Konfiguration + + + 无效配置 + + + Invalid configuration + + + Ma description + + + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st new file mode 100644 index 00000000..c722ddd2 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st @@ -0,0 +1,29 @@ + +ACTION HmiActions: + + // Reset all commands on each state change + IF HmiPackML.Status.LastState <> MpPackMLMode_0.StateCurrent THEN + MpPackMLBasicUIConnect.StateControl.Abort := MpPackMLMode_0.Abort := FALSE; + MpPackMLBasicUIConnect.StateControl.Clear := MpPackMLMode_0.Clear := FALSE; + MpPackMLBasicUIConnect.StateControl.Hold := MpPackMLMode_0.Hold := FALSE; + MpPackMLBasicUIConnect.StateControl.Reset := MpPackMLMode_0.Reset := FALSE; + MpPackMLBasicUIConnect.StateControl.Start := MpPackMLMode_0.Start := FALSE; + MpPackMLBasicUIConnect.StateControl.StateComplete := MpPackMLMode_0.StateComplete := FALSE; + MpPackMLBasicUIConnect.StateControl.Stop := MpPackMLMode_0.Stop := FALSE; + MpPackMLBasicUIConnect.StateControl.Suspend := MpPackMLMode_0.Suspend := FALSE; + MpPackMLBasicUIConnect.StateControl.Unhold := MpPackMLMode_0.Unhold := FALSE; + MpPackMLBasicUIConnect.StateControl.Unsuspend := MpPackMLMode_0.Unsuspend := FALSE; + + HmiPackML.Status.LastState := MpPackMLMode_0.StateCurrent; + END_IF + + // Connect UIConnect Commands to function block + MpPackMLMode_0.Abort := MpPackMLBasicUIConnect.StateControl.Abort; + MpPackMLMode_0.Stop := MpPackMLBasicUIConnect.StateControl.Stop; + + MpPackMLBasicUIConnect.ModeCurrent := MpPackMLMode_0.ModeID; + MpPackMLBasicUIConnect.StateCurrent := MpPackMLMode_0.StateCurrent; + +END_ACTION + + diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg new file mode 100644 index 00000000..4660f09e --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg @@ -0,0 +1,11 @@ + + + + + PackMLMgr.st + PackMLMgr.typ + PackMLMgr.var + HMIActions.st + StateMachine_Main.st + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st new file mode 100644 index 00000000..f2918479 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st @@ -0,0 +1,58 @@ +//*********************************************************************** +// Copyright: B&R Industrial Automation GmbH +// Author: B&R Industrial Automation GmbH +// Created: June 1, 2023 +// Description: Task for handling PackML control. +//*********************************************************************** + +PROGRAM _INIT + + // NOTE: For VC4 implementations, the MpPackMLCore must be configured in "standalone" mode. + // For additional information, see "Required Modifications" in AS Mapp Framework Help. + + // Create folder for this component on the user file device + DirCreate_0(enable := TRUE, pDevice := ADR('mappPackMLFiles'), pName := ADR('/')); + + // Check if folder already exist and if so disabled the function block call + IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN + DirCreate_0(enable := FALSE); + END_IF + + // Initialize mapp function blocks + MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLCore_0.Enable := TRUE; + MpPackMLCore_0(); + + MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLMode_0.Enable := TRUE; + MpPackMLMode_0.ModeID := 1; + MpPackMLMode_0(); + +END_PROGRAM + +PROGRAM _CYCLIC + + // Call all cyclic actions + HmiActions; + StateMachine_Main; + + // Assign MpLinks & UIConnects + MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); + + // Call function blocks + MpPackMLCore_0(); + MpPackMLMode_0(); + +END_PROGRAM + +PROGRAM _EXIT + + // Disable the function blocks to unlink the MpLinks + MpPackMLCore_0.Enable := FALSE; + + // Call function blocks + MpPackMLCore_0(); + +END_PROGRAM + diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ new file mode 100644 index 00000000..f23ab22a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ @@ -0,0 +1,33 @@ +(*Structure types*) + +TYPE + PackMLHmiInterfaceType : STRUCT + Commands : PackMLCommandsType; + Parameters : PackMLParametersType; + Status : PackMLStatusType; + Activate : BOOL; + END_STRUCT; + PackMLCommandsType : STRUCT + Reset : BOOL; + Start : BOOL; + Stop : BOOL; + Hold : BOOL; + Unhold : BOOL; + Suspend : BOOL; + Unsuspend : BOOL; + Abort : BOOL; + Clear : BOOL; + Complete : BOOL; + END_STRUCT; + PackMLParametersType : STRUCT + Par : USINT; + END_STRUCT; + PackMLStatusType : STRUCT + LastState : MpPackMLStateEnum; + CurrentPackMLState : USINT; + CurrentMode : DINT; + DownTimeReason : STRING[255]; + END_STRUCT; +END_TYPE + +(*Enumerations*) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var new file mode 100644 index 00000000..81a67076 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var @@ -0,0 +1,15 @@ +(*Function Blocks*) +VAR + DirCreate_0 : DirCreate; (*DirCreate instance*) + MpPackMLModule_Main : MpPackMLModule; (*PackMLModule instance*) + MpPackMLModulePar_Main : MpPackMLModuleParType; (*PackMLModule Parameter instance*) + MpPackMLCore_0 : MpPackMLCore; + MpPackMLMode_0 : MpPackMLMode; +END_VAR +(*Constants*) +(*Structure Types*) +VAR + MpPackMLBasicUIConnect : MpPackMLBasicUIConnectType; + HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) +END_VAR +(*Variables*) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st new file mode 100644 index 00000000..81d9512a --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st @@ -0,0 +1,134 @@ + +ACTION StateMachine_Main: + + CASE MpPackMLCore_0.StateCurrent OF + + mpPACKML_STATE_STOPPED: + + // Add STOPPED actions here + + MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.Reset; + + mpPACKML_STATE_STARTING: + + // Add STARTING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_IDLE: + + // Add IDLE actions here + + MpPackMLMode_0.Start := MpPackMLBasicUIConnect.StateControl.Start; + + mpPACKML_STATE_SUSPENDING: + + // Add SUSPENDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_SUSPENDED: + + // Add SUSPENDED actions here + + MpPackMLMode_0.Unsuspend := MpPackMLBasicUIConnect.StateControl.Unsuspend; + + mpPACKML_STATE_UNSUSPENDING: + + // Add UNSUSPENDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + + mpPACKML_STATE_EXECUTE: + + // Add EXECUTE actions here + + MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; + MpPackMLMode_0.Suspend := MpPackMLBasicUIConnect.StateControl.Suspend; + MpPackMLMode_0.Hold := MpPackMLBasicUIConnect.StateControl.Hold; + + mpPACKML_STATE_STOPPING: + + // Add STOPPING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_ABORTING: + + // Add ABORTING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_ABORTED: + + // Add ABORTED actions here + + MpPackMLMode_0.Clear := MpPackMLBasicUIConnect.StateControl.Clear; + + mpPACKML_STATE_HOLDING: + + // Add HOLDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_HELD: + + // Add HELD actions here + + MpPackMLMode_0.Unhold := MpPackMLBasicUIConnect.StateControl.Unhold; + + mpPACKML_STATE_UNHOLDING: + + // Add UNHOLDING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_COMPLETING: + + // Add COMPLETING actions here + + MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; + + + mpPACKML_STATE_COMPLETE: + + // Add COMPLETE actions here + + MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.StateComplete; + + mpPACKML_STATE_RESETTING: + + // Add RESETTING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_CLEARING: + + // Add CLEARING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + mpPACKML_STATE_UNDEFINED: + + // Add UNDEFINED actions here + + MpPackMLMode_0.Activate := TRUE; + + mpPACKML_STATE_DEACTIVATING: + + // Add DEACTIVATING actions here + + mpPACKML_STATE_DEACTIVATED: + + // Add DEACTIVATED actions here + + mpPACKML_STATE_ACTIVATING: + + // Add ACTIVATING actions here + + MpPackMLMode_0.StateComplete := TRUE; + + END_CASE + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/PackML/Package.pkg new file mode 100644 index 00000000..b1a2e387 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/Package.pkg @@ -0,0 +1,8 @@ + + + + + PackMLMgr + PackMLAlarms.tmx + + \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Package.pkg index c316fe61..faf51466 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Package.pkg +++ b/mappFramework/Logical/Infrastructure/VC4/Package.pkg @@ -10,5 +10,6 @@ UserX Audit Report + PackML \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Cpu.sw b/mappFramework/Physical/SimulationVC4/PC/Cpu.sw index 7be5aaba..6d20d9a2 100644 --- a/mappFramework/Physical/SimulationVC4/PC/Cpu.sw +++ b/mappFramework/Physical/SimulationVC4/PC/Cpu.sw @@ -20,6 +20,7 @@ +
    @@ -97,6 +98,7 @@ + diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore new file mode 100644 index 00000000..d8e6c84c --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule new file mode 100644 index 00000000..e762dc21 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg new file mode 100644 index 00000000..66309cc5 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg @@ -0,0 +1,8 @@ + + + + + PackMLCfg.mppackmlcore + PackMLMain.mppackmlmodule + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg index b754ee7d..c9975d7e 100644 --- a/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg @@ -10,5 +10,6 @@ Recipe UserX Records + PackML \ No newline at end of file From 88148eff67ae2aa924971385e7bc70d1eb14836d Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Tue, 16 May 2023 11:02:41 -0500 Subject: [PATCH 097/159] AAZM-599 - mappView PackML - adding the ability to change modes --- .../PackML/PackMLMgr/HMIActions.st | 10 +++ .../PackML/PackMLMgr/PackMLMgr.st | 3 + .../PackML/PackMLMgr/PackMLMgr.typ | 1 + .../PackML/PackMLMgr/PackMLMgr.var | 5 ++ .../PackML/PackMLMgr/StateMachine_Main.st | 5 ++ .../Texts/mappFrameworkTexts/PackMLTexts.tmx | 61 +++++++++++++++++++ .../PackMLContent/PackML.content | 4 ++ .../PC/Connectivity/OpcUA/PackMLMgr.uad | 23 +------ .../PC/mappView/Navigation_content.binding | 9 --- .../Simulation/PC/mappView/PackML.vis | 1 - .../PackML/Navigation_content.binding | 7 ++- .../PC/mappView/PackML/PackML_content.binding | 10 ++- .../Simulation/PC/mappView/Package.pkg | 3 +- 13 files changed, 105 insertions(+), 37 deletions(-) delete mode 100644 mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st index 892673c6..e9fa7023 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/HMIActions.st @@ -17,6 +17,16 @@ ACTION HmiActions: MpPackMLModule_Main.Command.StateComplete := HmiPackML.Commands.Complete; END_IF + // Assign mode configuration based on active mode + CASE MpPackMLModule_Main.ModeID OF + 1: + HmiPackML.Parameters.StateEnabled := AutomaticMode; + 2: + HmiPackML.Parameters.StateEnabled := Maintenance; + 3: + HmiPackML.Parameters.StateEnabled := Manual; + END_CASE + // control state machine active state blinking CASE HmiPackML.Status.PackMLState OF diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index 490d3ce4..14ad57d0 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -21,6 +21,9 @@ PROGRAM _INIT MpPackMLModule_Main.Enable := TRUE; MpPackMLModule_Main(); + // Initialize startup mode - Automatic Mode + HmiPackML.Commands.Mode := 1; + END_PROGRAM PROGRAM _CYCLIC diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ index 0a48331a..f77903d9 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.typ @@ -18,6 +18,7 @@ TYPE Abort : BOOL; Clear : BOOL; Complete : BOOL; + Mode : DINT; END_STRUCT; PackMLParametersType : STRUCT (*Structure to hold the parameters for the HMI*) Par : USINT; diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index 0b6f8ad4..ac3ff8b3 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -11,3 +11,8 @@ VAR HmiPackML : PackMLHmiInterfaceType := (Parameters:=(StateEnabled:=(Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=TRUE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=TRUE,Unsuspending:=TRUE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE))); (*HMI interface structure*) END_VAR (*Variables*) +VAR + Manual : PackMLStateEnabledType := (Clearing:=FALSE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=FALSE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=FALSE,Held:=FALSE,Unholding:=FALSE,Suspending:=FALSE,Unsuspending:=FALSE,Resetting:=TRUE,Completing:=FALSE,Complete:=FALSE); (*State active / inactive control*) + Maintenance : PackMLStateEnabledType := (Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=FALSE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=FALSE,Unsuspending:=FALSE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE); (*State active / inactive control*) + AutomaticMode : PackMLStateEnabledType := (Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=TRUE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=TRUE,Unsuspending:=TRUE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE); (*State active / inactive control*) +END_VAR diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index 54294538..8714810a 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -1,6 +1,11 @@ ACTION StateMachine_Main: + // Check active state and change mode if allowed + IF MpPackMLModeChangeIsAllowed(gMpLinkPackMLCore,HmiPackML.Commands.Mode) = 0 THEN + MpPackMLChangeMode(gMpLinkPackMLCore,HmiPackML.Commands.Mode); + END_IF + CASE MpPackMLModule_Main.StateCurrent OF mpPACKML_STATE_STOPPED: diff --git a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx index 56636102..15eeaabf 100644 --- a/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx +++ b/mappFramework/Logical/mappView/Resources/Texts/mappFrameworkTexts/PackMLTexts.tmx @@ -19,6 +19,34 @@ Bonjour tout le monde! + + + Modus Auswahl: + + + 选择模式 + + + Select Mode: + + + Mon unité + + + + + Aktuellen Modus: + + + 当前模式 + + + Current Mode: + + + Mon unité + + Aktuellen Zustand: @@ -354,5 +382,38 @@ Vollständig COMPLETE + + + Manuell + + + 手动 + + + Manual + + + + + Wartung + + + 维护 + + + Maintenance + + + + + Automatik + + + 自动的 + + + Automatic + + \ No newline at end of file diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content index 13e599ef..f57d6a34 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/PackMLContent/PackML.content @@ -5,5 +5,9 @@ + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad index b3919ba3..be31df42 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/PackMLMgr.uad @@ -23,28 +23,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -76,6 +54,7 @@ + diff --git a/mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding b/mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding deleted file mode 100644 index 551efbfc..00000000 --- a/mappFramework/Physical/Simulation/PC/mappView/Navigation_content.binding +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis index c1666772..1568e34a 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML.vis @@ -8,7 +8,6 @@ - diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding index 0ab261e7..4c45c4f1 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/Navigation_content.binding @@ -1,6 +1,9 @@  - - + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding index d9880314..fe9a7c38 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding +++ b/mappFramework/Physical/Simulation/PC/mappView/PackML/PackML_content.binding @@ -20,6 +20,14 @@ + + + + - + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/Package.pkg b/mappFramework/Physical/Simulation/PC/mappView/Package.pkg index 1de72394..d3595d1d 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/mappView/Package.pkg @@ -22,7 +22,6 @@ UserX Audit Report - PackML - Navigation_content.binding + PackML \ No newline at end of file From c54e2017a06bd003dc980373132f3baa3ca31f63 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Tue, 16 May 2023 14:36:53 -0400 Subject: [PATCH 098/159] Connected to MpBasicUIConnect --- .../VC4/PackML/PackMLMgr/StateMachine_Main.st | 2 +- .../Pages/MpPackMLBasicUI.page | 64 ++++----- .../VCShared/DataSources/DataSource.dso | 128 +----------------- 3 files changed, 34 insertions(+), 160 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st index 81d9512a..3d1c6de0 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st @@ -95,7 +95,7 @@ ACTION StateMachine_Main: // Add COMPLETE actions here - MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.StateComplete; + MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.Reset; mpPACKML_STATE_RESETTING: diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index e18fcb8c..31b284de 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + @@ -182,7 +182,7 @@ - + @@ -362,7 +362,7 @@ - + @@ -394,7 +394,7 @@ - + @@ -443,7 +443,7 @@ - + @@ -458,7 +458,7 @@ - + @@ -473,7 +473,7 @@ - + @@ -488,7 +488,7 @@ - + @@ -503,7 +503,7 @@ - + @@ -518,7 +518,7 @@ - + @@ -533,7 +533,7 @@ - + @@ -548,7 +548,7 @@ - + @@ -563,7 +563,7 @@ - + @@ -578,7 +578,7 @@ - + @@ -593,7 +593,7 @@ - + @@ -1349,7 +1349,7 @@ - + @@ -1372,7 +1372,7 @@ - + @@ -1395,7 +1395,7 @@ - + @@ -1418,7 +1418,7 @@ - + @@ -1441,7 +1441,7 @@ - + @@ -1518,7 +1518,7 @@ - + @@ -1541,7 +1541,7 @@ - + @@ -1573,7 +1573,7 @@ - + @@ -1614,7 +1614,7 @@ - + @@ -1637,7 +1637,7 @@ - + @@ -1661,7 +1661,7 @@ - + @@ -1711,7 +1711,7 @@ - + @@ -1752,7 +1752,7 @@ - + @@ -1811,7 +1811,7 @@ - + @@ -1854,7 +1854,7 @@ - + @@ -1877,7 +1877,7 @@ - + @@ -1911,7 +1911,7 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index bac1a259..0b22aeeb 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -16396,15 +16396,6 @@ - - - - - - - - - @@ -16414,118 +16405,10 @@ - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -16684,15 +16567,6 @@ - - - - - - - - -
    From 0c7805d220155f2688313a9ca6b6a43a4bbb909d Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Tue, 16 May 2023 13:43:27 -0500 Subject: [PATCH 099/159] AAZM-464 - re-adding MpAxisBasic page for VC4 after it was deleted during merge --- .../Diagnosis/Simulation/PC/PackMLMgr.PVM | 120 ++ .../Diagnosis/Simulation/PC/RecipeMgr.PVM | 149 ++ .../AppAxis_1/AppAxis_1/AxisMgr.typ | 4 +- .../AxisTemplate/AxisMgr/AxisMgr.typ | 2 + .../AxisTemplate/AxisMgr/AxisMgr.var | 2 +- .../AxisTemplate/AxisMgr/AxisStateMachine.st | 6 + .../BitmapGroups/MpAxisAlarm.bmgrp | 15 + .../BitmapGroups/MpAxisHomed.bmgrp | 15 + .../BitmapGroups/MpAxisMoving.bmgrp | 25 + .../BitmapGroups/MpAxisPower.bmgrp | 15 + .../Bitmaps/MpAxis_Alarm.bminfo | 24 +- .../Bitmaps/MpAxis_AlarmActive.bminfo | 15 + .../Bitmaps/MpAxis_AlarmActive.png | Bin 0 -> 959 bytes .../Bitmaps/MpAxis_GearDisabled.bminfo | 15 + .../Bitmaps/MpAxis_GearDisabled.png | Bin 0 -> 954 bytes .../Bitmaps/MpAxis_GearEnabled.bminfo | 15 + .../Bitmaps/MpAxis_GearEnabled.png | Bin 0 -> 768 bytes .../Bitmaps/MpAxis_GearRotating.bminfo | 15 + .../Bitmaps/MpAxis_GearRotating.png | Bin 0 -> 1228 bytes .../Bitmaps/MpAxis_Gear_Off.bminfo | 26 +- .../Bitmaps/MpAxis_Gear_On.bminfo | 26 +- .../Bitmaps/MpAxis_KnownPosition.bminfo | 15 + .../Bitmaps/MpAxis_KnownPosition.png | Bin 0 -> 821 bytes .../Bitmaps/MpAxis_Off.bminfo | 15 + .../mappFrameworkVisu/Bitmaps/MpAxis_Off.png | Bin 0 -> 611 bytes .../Bitmaps/MpAxis_Off1.bminfo | 15 + .../mappFrameworkVisu/Bitmaps/MpAxis_Off1.png | Bin 0 -> 1025 bytes .../Bitmaps/MpAxis_On.bminfo | 15 + .../mappFrameworkVisu/Bitmaps/MpAxis_On.png | Bin 0 -> 614 bytes .../Bitmaps/MpAxis_On1.bminfo | 15 + .../mappFrameworkVisu/Bitmaps/MpAxis_On1.png | Bin 0 -> 958 bytes .../Bitmaps/MpAxis_Reset.bminfo | 15 + .../Bitmaps/MpAxis_Reset.png | Bin 0 -> 620 bytes .../Bitmaps/MpAxis_Stop.bminfo | 15 + .../mappFrameworkVisu/Bitmaps/MpAxis_Stop.png | Bin 0 -> 169 bytes .../Bitmaps/MpAxis_UnknownPosition.bminfo | 15 + .../Bitmaps/MpAxis_UnknownPosition.png | Bin 0 -> 1017 bytes .../Bitmaps/MpAxis_Warning.bminfo | 24 +- .../Bitmaps/MpAxis_Warning.png | Bin 1527 -> 1574 bytes .../Borders/CheckBox_checked.bdr | 2 +- .../Borders/CheckBox_small_checked.bdr | 2 +- .../Borders/Mp_AttentionOff.bdr | 2 +- .../Borders/Mp_AttentionOn.bdr | 2 +- .../Borders/Mp_BitmapFrame.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_Button.bdr | 2 +- .../Borders/Mp_Button_Control.bdr | 2 +- .../Borders/Mp_Button_Control_pressed.bdr | 2 +- .../Borders/Mp_Button_Device_Select_Left.bdr | 2 +- .../Mp_Button_Device_Unselect_Left.bdr | 2 +- .../Borders/Mp_Button_KeyRingOff.bdr | 2 +- .../Borders/Mp_Button_KeyRingOn.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Down.bdr | 2 +- .../Mp_Button_Multi_Scroll_Dwn_press.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Up.bdr | 2 +- .../Mp_Button_Multi_Scroll_Up_press.bdr | 2 +- .../Borders/Mp_Button_Safety_ACK_off.bdr | 2 +- .../Borders/Mp_Button_Safety_ACK_on.bdr | 2 +- .../Borders/Mp_Button_Scoll_Up.bdr | 2 +- .../Borders/Mp_Button_Scoll_Up_pressed.bdr | 2 +- .../Borders/Mp_Button_Scroll_Down.bdr | 2 +- .../Borders/Mp_Button_Scroll_Down_pressed.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_Multi.bdr | 2 +- .../Mp_Button_Scroll_Left_Multi_pres.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_pressed.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right_Multi.bdr | 2 +- .../Mp_Button_Scroll_Right_Multi_pr.bdr | 2 +- .../Mp_Button_Scroll_Right_pressed.bdr | 2 +- .../Borders/Mp_Button_pressed.bdr | 2 +- .../Borders/Mp_CheckBox_checked.bdr | 2 +- .../Borders/Mp_DataDevBorder.bdr | 2 +- .../Borders/Mp_DataMaxBorder.bdr | 2 +- .../Borders/Mp_DataMeanBorder.bdr | 2 +- .../Borders/Mp_DataMinBorder.bdr | 2 +- .../Borders/Mp_DataNameFrame.bdr | 2 +- .../Borders/Mp_DataRangeBorder.bdr | 2 +- .../Borders/Mp_Flat_grey.bdr | 2 +- .../Borders/Mp_FrameInvisible.bdr | 2 +- .../Borders/Mp_GroupControl.bdr | 2 +- .../Borders/Mp_InputBorder.bdr | 2 +- .../Borders/Mp_InputBorderInactive.bdr | 2 +- .../Borders/Mp_LabelBorder.bdr | 2 +- .../Borders/Mp_LabelBorderDown.bdr | 2 +- .../Borders/Mp_LabelBorderSlim.bdr | 2 +- .../Borders/Mp_LabelBorder_Orange.bdr | 2 +- .../Borders/Mp_ListBoxCenter.bdr | 2 +- .../Borders/Mp_ListBoxLeft.bdr | 2 +- .../Borders/Mp_ListBoxRight.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_MoveOff.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_MoveOn.bdr | 2 +- .../Borders/Mp_OutputBorder.bdr | 2 +- .../Borders/Mp_PackML_States.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_RangeBar.bdr | 2 +- .../Borders/Mp_SliderBorder09.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_SunkenNG.bdr | 2 +- .../Borders/Mp_SunkenNGgray.bdr | 2 +- .../Borders/Mp_TabActive.bdr | 2 +- .../Borders/Mp_TabSelect.bdr | 2 +- .../Borders/Mp_TabUnSelect.bdr | 2 +- .../Borders/Mp_TeachPointSelected.bdr | 2 +- .../Borders/Mp_TeachPointUnselectedEven.bdr | 2 +- .../Borders/Mp_TeachPointUnselectedOdd.bdr | 2 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 19 +- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 1291 +++++++++++++++++ .../Pages/mapp1StartPage.page | 59 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 66 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 251 +++- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 5 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 70 + 114 files changed, 2397 insertions(+), 133 deletions(-) create mode 100644 mappFramework/Diagnosis/Simulation/PC/PackMLMgr.PVM create mode 100644 mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearDisabled.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearDisabled.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearRotating.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearRotating.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On1.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On1.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Reset.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Reset.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Stop.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Stop.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page create mode 100644 mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp diff --git a/mappFramework/Diagnosis/Simulation/PC/PackMLMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/PackMLMgr.PVM new file mode 100644 index 00000000..75e3f721 --- /dev/null +++ b/mappFramework/Diagnosis/Simulation/PC/PackMLMgr.PVM @@ -0,0 +1,120 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=PackMLMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=266 Scope=60 Force=60 Index=50 ASCIIString=0 + name type force value level type len format place expand specs + HmiPackML PackMLHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands PackMLCommandsType 0 " *" 1 24 1 0 0 1 + Reset BOOL 0 " FALSE" 2 1 1 2 0 0 + Start BOOL 0 " FALSE" 2 1 1 2 0 0 + Stop BOOL 0 " FALSE" 2 1 1 2 0 0 + Hold BOOL 0 " FALSE" 2 1 1 2 0 0 + Unhold BOOL 0 " FALSE" 2 1 1 2 0 0 + Suspend BOOL 0 " FALSE" 2 1 1 2 0 0 + Unsuspend BOOL 0 " FALSE" 2 1 1 2 0 0 + Abort BOOL 0 " FALSE" 2 1 1 2 0 0 + Clear BOOL 0 " FALSE" 2 1 1 2 0 0 + Complete BOOL 0 " FALSE" 2 1 1 2 0 0 + Mode DINT 0 " 1" 2 4 1 10 0 0 + Parameters PackMLParametersType 0 " *" 1 24 1 0 0 1 + Par USINT 0 " 0" 2 5 1 10 0 0 + StateEnabled PackMLStateEnabledType 0 " *" 2 24 1 0 0 0 + Clearing BOOL 0 " *" 3 1 1 2 0 0 + Stopped BOOL 0 " *" 3 1 1 2 0 0 + Starting BOOL 0 " *" 3 1 1 2 0 0 + Idle BOOL 0 " *" 3 1 1 2 0 0 + Suspended BOOL 0 " *" 3 1 1 2 0 0 + Execute BOOL 0 " *" 3 1 1 2 0 0 + Stopping BOOL 0 " *" 3 1 1 2 0 0 + Aborting BOOL 0 " *" 3 1 1 2 0 0 + Aborted BOOL 0 " *" 3 1 1 2 0 0 + Holding BOOL 0 " *" 3 1 1 2 0 0 + Held BOOL 0 " *" 3 1 1 2 0 0 + Unholding BOOL 0 " *" 3 1 1 2 0 0 + Suspending BOOL 0 " *" 3 1 1 2 0 0 + Unsuspending BOOL 0 " *" 3 1 1 2 0 0 + Resetting BOOL 0 " *" 3 1 1 2 0 0 + Completing BOOL 0 " *" 3 1 1 2 0 0 + Complete BOOL 0 " *" 3 1 1 2 0 0 + Status PackMLStatusType 0 " *" 1 24 1 0 0 1 + StateCurrent STRING[20] 0 " 'Stopped'" 2 9 21 1 0 0 + ModeCurrent STRING[50] 0 " 'Automatic Mode'" 2 9 51 1 0 0 + DownTimeReason STRING[255] 0 " ''" 2 9 256 1 0 0 + PackMLStateModel STRING[100000] 0 "'[{"select":"#Clearing","style":"fill:1;fill-opacity:1"},{"select":"#Stopped","style"" 2 9 100001 1 0 0 + PackMLState DINT 0 " 2" 2 4 1 10 0 0 e,0,mpPA + + Activate BOOL 0 " FALSE" 1 1 1 2 0 0 + Manual PackMLStateEnabledType 0 " *" 0 24 1 0 1 1 + Clearing BOOL 0 " FALSE" 1 1 1 2 0 0 + Stopped BOOL 0 " TRUE" 1 1 1 2 0 0 + Starting BOOL 0 " TRUE" 1 1 1 2 0 0 + Idle BOOL 0 " TRUE" 1 1 1 2 0 0 + Suspended BOOL 0 " FALSE" 1 1 1 2 0 0 + Execute BOOL 0 " TRUE" 1 1 1 2 0 0 + Stopping BOOL 0 " TRUE" 1 1 1 2 0 0 + Aborting BOOL 0 " TRUE" 1 1 1 2 0 0 + Aborted BOOL 0 " TRUE" 1 1 1 2 0 0 + Holding BOOL 0 " FALSE" 1 1 1 2 0 0 + Held BOOL 0 " FALSE" 1 1 1 2 0 0 + Unholding BOOL 0 " FALSE" 1 1 1 2 0 0 + Suspending BOOL 0 " FALSE" 1 1 1 2 0 0 + Unsuspending BOOL 0 " FALSE" 1 1 1 2 0 0 + Resetting BOOL 0 " TRUE" 1 1 1 2 0 0 + Completing BOOL 0 " FALSE" 1 1 1 2 0 0 + Complete BOOL 0 " FALSE" 1 1 1 2 0 0 + MpPackMLModule_Main MpPackMLModule 0 " *" 0 24 1 0 1 1 + MpLink UDINT 0 " 137364116" 1 7 1 10 0 0 + Enable BOOL 0 " TRUE" 1 1 1 2 0 0 + ErrorReset BOOL 0 " FALSE" 1 1 1 2 0 0 + Parameters UDINT 0 " 338048312" 1 7 1 10 0 0 + Update BOOL 0 " FALSE" 1 1 1 2 0 0 + Blocked BOOL 0 " FALSE" 1 1 1 2 0 0 + Starved BOOL 0 " FALSE" 1 1 1 2 0 0 + Command MpPackMLModuleCommandType 0 " *" 1 24 1 0 0 0 + Abort BOOL 0 " FALSE" 2 1 1 2 0 0 + Clear BOOL 0 " FALSE" 2 1 1 2 0 0 + Stop BOOL 0 " FALSE" 2 1 1 2 0 0 + Reset BOOL 0 " FALSE" 2 1 1 2 0 0 + Start BOOL 0 " FALSE" 2 1 1 2 0 0 + Hold BOOL 0 " FALSE" 2 1 1 2 0 0 + Unhold BOOL 0 " FALSE" 2 1 1 2 0 0 + Suspend BOOL 0 " FALSE" 2 1 1 2 0 0 + Unsuspend BOOL 0 " FALSE" 2 1 1 2 0 0 + StateComplete BOOL 0 " FALSE" 2 1 1 2 0 0 + SubState DINT 0 " 0" 1 4 1 10 0 0 + StateInfo STRING[255] 0 " ''" 1 9 256 1 0 0 + Active BOOL 0 " TRUE" 1 1 1 2 0 0 + Error BOOL 0 " FALSE" 1 1 1 2 0 0 + StatusID DINT 0 " -2137750523" 1 4 1 10 0 0 + UpdateDone BOOL 0 " FALSE" 1 1 1 2 0 0 + StateCurrent DINT 0 " 2" 1 4 1 10 0 0 e,0,mpPA + + SubStateCurrent DINT 0 " 0" 1 4 1 10 0 0 + ModeID DINT 0 " 3" 1 4 1 10 0 0 + Info MpPackMLModuleInfoType 0 " *" 1 24 1 0 0 1 + ModeCurrent STRING[50] 0 " 'Manual'" 2 9 51 1 0 0 + StateCurrent STRING[20] 0 " 'Stopped'" 2 9 21 1 0 0 + ChildCount UDINT 0 " 0" 2 7 1 10 0 0 + Parent MpPackMLParentType 0 " *" 2 24 1 0 0 0 + Name STRING[255] 0 " *" 3 9 256 1 0 0 + StateCurrent DINT 0 " *" 3 4 1 10 0 0 e,0,mpPA + + SubStateCurrent DINT 0 " *" 3 4 1 10 0 0 + Level UDINT 0 " 0" 2 7 1 10 0 0 + ReadyForCommand BOOL 0 " TRUE" 2 1 1 2 0 0 + Diag MpPackMLDiagType 0 " *" 2 24 1 0 0 0 + StatusID MpPackMLStatusIDType 0 " *" 3 24 1 0 0 0 + ID DINT 0 " *" 4 4 1 10 0 0 e,0,mpPA + + Severity DINT 0 " *" 4 4 1 10 0 0 e,0,mpCO + + Code UINT 0 " *" 4 6 1 10 0 0 + Internal MpComInternalDataType 0 " *" 1 24 1 0 0 1 + pObject UDINT 0 " 170272240" 2 7 1 10 0 0 + State UDINT 0 " 3" 2 7 1 10 0 0 + TON_StateBlink TON 0 " *" 0 24 1 0 1 0 + IN BOOL 0 " TRUE" 1 1 1 2 0 0 + PT TIME 0 " T#01s" 1 12 1 1 0 0 + Q BOOL 0 " FALSE" 1 1 1 2 0 0 + ET TIME 0 " T#810ms" 1 12 1 1 0 0 + StartTime TIME 0 " T#01h_03m_33s_650ms" 1 12 1 1 0 0 + M BOOL 0 " TRUE" 1 1 1 2 0 0 + Restart UDINT 0 " 2" 1 7 1 10 0 0 diff --git a/mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM b/mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM new file mode 100644 index 00000000..d46406c1 --- /dev/null +++ b/mappFramework/Diagnosis/Simulation/PC/RecipeMgr.PVM @@ -0,0 +1,149 @@ +WATCH Ver=2.00 PLCName=PLC1 CPUName=CPU TaskName=RecipeMgr +Position X=0 Y=0 Width=0 Height=0 TabWidth Name=200 Type=100 Scope=60 Force=60 Index=131 ASCIIString=0 + name type force value level type len format place expand specs + HmiRecipe RecipeHmiInterfaceType 0 " *" 0 24 1 0 1 1 + Commands RecipeCommandsType 0 " *" 1 24 1 0 0 1 + LoadRecipe BOOL 0 " FALSE" 2 1 1 2 0 0 + SaveSelectedRecipe BOOL 0 " FALSE" 2 1 1 2 0 0 + CreateRecipe BOOL 0 " FALSE" 2 1 1 2 0 0 + ResetPreview BOOL 0 " FALSE" 2 1 1 2 0 0 + Parameters RecipeParametersType 0 " *" 1 24 1 0 0 1 + Category STRING[30] 0 " 'Parameters'" 2 9 31 1 0 0 + DeviceName STRING[50] 0 " 'mappRecipeFiles'" 2 9 51 1 0 0 + FileName STRING[255] 0 " 'Default.par'" 2 9 256 1 0 0 n + Status RecipeStatusType 0 " *" 1 24 1 0 0 1 + PreviewCase DINT 0 " 0" 2 4 1 10 0 0 e,0,PREV + + HMIcommand DINT 0 " 0" 2 4 1 10 0 0 e,0,REC_ + + LastLoadedConfigRecipe STRING[255] 0 " 'Machine.mcfg'" 2 9 256 1 0 0 n + LastLoadedProductRecipe STRING[255] 0 " 'Default.par'" 2 9 256 1 0 0 n + ProductRecipeLoaded BOOL 0 " TRUE" 2 1 1 2 0 0 + ConfigRecipeLoaded BOOL 0 " TRUE" 2 1 1 2 0 0 + PreviousRangeStart REAL 0 " 0.0" 2 8 1 10 0 0 + PreviousRangeEnd REAL 0 " 0.0" 2 8 1 10 0 0 + LastMaxSelection UINT 0 " 0" 2 6 1 10 0 0 + LastSelectedIndex UINT 0 " 0" 2 6 1 10 0 0 + LastStatus DINT 0 " 0" 2 4 1 10 0 0 e,0,mpRE + + EditDialogOpened BOOL 0 " FALSE" 2 1 1 2 0 0 + CreateDialogOpened BOOL 0 " FALSE" 2 1 1 2 0 0 + PreviousRecipe STRING[80] 0 " 'Default'" 2 9 81 1 0 0 + FileDuplicate BOOL 0 " FALSE" 2 1 1 2 0 0 + FilesAvailable BOOL 0 " TRUE" 2 1 1 2 0 0 + InvalidRecipe BOOL 0 " FALSE" 2 1 1 2 0 0 + LoadingRecipeList BOOL 0 " FALSE" 2 1 1 2 0 0 + MachineSettingsRecipeMissing BOOL 0 " FALSE" 2 1 1 2 0 0 + ParameterRecipeMissing BOOL 0 " FALSE" 2 1 1 2 0 0 + DeviceValid BOOL 0 " TRUE" 2 1 1 2 0 0 + LoadAllowed BOOL 0 " TRUE" 2 1 1 2 0 0 + DeviceDataProvider STRING[100][0..3] 0 " *" 2 9 101 0 0 1 n + DeviceDataProvider[0] STRING[100] 0 " '{"value":"mappRecipeFiles","text":"CF/PLC"}'" 3 9 101 1 0 0 n + DeviceDataProvider[1] STRING[100] 0 " ''" 3 9 101 1 0 0 n + DeviceDataProvider[2] STRING[100] 0 " ''" 3 9 101 1 0 0 n + DeviceDataProvider[3] STRING[100] 0 " ''" 3 9 101 1 0 0 n + TableConfig STRING[120] 0 " '{ "specRows": [{"from":1,"to":19, "visible":false}]}'" 2 9 121 1 0 0 + SelectedRecipe STRING[255] 0 " 'Default.par'" 2 9 256 1 0 0 n + DefaultRecipeSelected BOOL 0 " TRUE" 2 1 1 2 0 0 + RecipeContentLoaded BOOL 0 " FALSE" 2 1 1 2 0 0 + MpRecipeUIConnect MpRecipeUIConnectType 0 " *" 0 24 1 0 1 1 + Status DINT 0 " 0" 1 4 1 10 0 0 e,0,mpRE + + Recipe MpRecipeUIRecipeType 0 " *" 1 24 1 0 0 1 + List MpRecipeUIRecipeListType 0 " *" 2 24 1 0 0 1 + Names STRING[255][0..19] 0 " *" 3 9 256 0 0 1 n + Names[0] STRING[255] 0 " 'Default.par'" 4 9 256 1 0 0 n + Names[1] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[2] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[3] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[4] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[5] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[6] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[7] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[8] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[9] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[10] STRING[255] 0 " ''" 4 9 256 1 0 0 n + Names[11] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[12] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[13] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[14] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[15] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[16] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[17] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[18] STRING[255] 0 " *" 4 9 256 1 0 0 n + Names[19] STRING[255] 0 " *" 4 9 256 1 0 0 n + SelectedIndex UINT 0 " *" 3 6 1 10 0 0 + MaxSelection UINT 0 " *" 3 6 1 10 0 0 + PageUp BOOL 0 " *" 3 1 1 2 0 0 + PageDown BOOL 0 " *" 3 1 1 2 0 0 + StepUp BOOL 0 " *" 3 1 1 2 0 0 + StepDown BOOL 0 " *" 3 1 1 2 0 0 + RangeStart REAL 0 " *" 3 8 1 10 0 0 + RangeEnd REAL 0 " *" 3 8 1 10 0 0 + Sizes UDINT[0..19] 0 " *" 3 7 20 0 0 0 + Sizes[0] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[1] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[2] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[3] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[4] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[5] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[6] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[7] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[8] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[9] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[10] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[11] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[12] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[13] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[14] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[15] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[16] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[17] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[18] UDINT 0 " *" 4 7 1 10 0 0 + Sizes[19] UDINT 0 " *" 4 7 1 10 0 0 + LastModified STRING[50][0..19] 0 " *" 3 9 51 0 0 1 + LastModified[0] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[1] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[2] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[3] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[4] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[5] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[6] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[7] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[8] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[9] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[10] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[11] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[12] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[13] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[14] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[15] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[16] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[17] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[18] STRING[50] 0 " *" 4 9 51 1 0 0 + LastModified[19] STRING[50] 0 " *" 4 9 51 1 0 0 + Load BOOL 0 " *" 2 1 1 2 0 0 + Save BOOL 0 " *" 2 1 1 2 0 0 + Filter STRING[255] 0 " ''" 2 9 256 1 0 0 n + SortOrder DINT 0 " *" 2 4 1 10 0 0 e,0,mpRE + + Refresh BOOL 0 " *" 2 1 1 2 0 0 + UpdateNotification BOOL 0 " *" 2 1 1 2 0 0 + Delete BOOL 0 " *" 2 1 1 2 0 0 + Rename BOOL 0 " *" 2 1 1 2 0 0 + NewFileName STRING[255] 0 " ''" 2 9 256 1 0 0 + Header MpRecipeUIHeaderType 0 " *" 2 24 1 0 0 0 + Name STRING[100] 0 " ''" 3 9 101 1 0 0 + Description STRING[255] 0 " ''" 3 9 256 1 0 0 n + Version STRING[20] 0 " ''" 3 9 21 1 0 0 + DateTime DATE_AND_TIME 0 " *" 3 11 1 1 0 0 + New MpRecipeUINewType 0 " *" 1 24 1 0 0 1 + FileName STRING[255] 0 " ''" 2 9 256 1 0 0 n + Create BOOL 0 " *" 2 1 1 2 0 0 + MessageBox MpRecipeUIMessageBoxType 0 " *" 1 24 1 0 0 0 + LayerStatus UINT 0 " *" 2 6 1 10 0 0 + Type DINT 0 " *" 2 4 1 10 0 0 e,0,mpRE + + Confirm BOOL 0 " *" 2 1 1 2 0 0 + Cancel BOOL 0 " *" 2 1 1 2 0 0 + DefaultLayerStatus UINT 0 " *" 1 6 1 10 0 0 diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ index e2450457..a0303195 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ @@ -56,7 +56,9 @@ TYPE MotorTemperature : {REDUND_UNREPLICABLE} REAL; (*Motor temperature*) IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) - PLCopenState : McAxisPLCopenStateEnum; (*Axis PLCopenState*) + PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) + ModeManual : BOOL; (*Axis may be moved manually*) + StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ index b23c2be8..e6e8c1d2 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ @@ -55,6 +55,8 @@ TYPE IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) + ModeManual : BOOL; (*Axis may be moved manually*) + StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var index 6b5c1628..7f8ca640 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.var @@ -5,7 +5,7 @@ VAR State : {REDUND_UNREPLICABLE} StateEnum; (*OMAC based state machine*) AutomaticState : {REDUND_UNREPLICABLE} AutomaticStateEnum; (*Automatic handling state*) ManualState : {REDUND_UNREPLICABLE} ManualStateEnum; (*Manual handling state*) - AxisControl : {REDUND_UNREPLICABLE} AxisControlType; (*Single axis control type*) + AxisControl : {REDUND_UNREPLICABLE} AxisControlType := (Status:=(StatusPointControl:=[0,1])); (*Single axis control type*) AxisSettings : {REDUND_UNREPLICABLE} AxisSettingsType; (*Single axis settings *) END_VAR (*Function Blocks*) diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st index 632d9258..c518f46f 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisStateMachine.st @@ -202,6 +202,12 @@ ACTION AxisStateMachine: AxisControl.Status.PLCopenState := MpAxisBasic_0.Info.PLCopenState; AxisControl.Status.Position := MpAxisBasic_0.Position; AxisControl.Status.Velocity := MpAxisBasic_0.Velocity; + AxisControl.Status.ModeManual := (State <> STATE_AUTOMATIC_OPERATION); + //VC4 related code + AxisControl.Status.StatusPointControl[0].0 := NOT AxisControl.Status.StatusPointControl[1].0; + AxisControl.Status.StatusPointControl[0].1 := NOT AxisControl.Status.ModeManual; + + END_ACTION diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp new file mode 100644 index 00000000..dd5c9bd3 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp new file mode 100644 index 00000000..15ac1839 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp new file mode 100644 index 00000000..5763ee8a --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp new file mode 100644 index 00000000..5e940156 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.bminfo index 9f3e9deb..4fd26a38 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Alarm.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.bminfo new file mode 100644 index 00000000..8e1fd413 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_AlarmActive.png new file mode 100644 index 0000000000000000000000000000000000000000..9cd4a62c4a6e522180f2899b8ebd9410b113886f GIT binary patch literal 959 zcmV;w13>(VP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15`;wK~zXf#a3NQ zltC0evu>^_6%vI}f`t02S%P`dm0(cNg?9x>5MA|wUPxs`R?=nB7gCaX5fpe)KOqPU zFBQ^c-F1T^yXZ@eLT%OE={YlJ{n~fk57Ztwd!94%zVp0uX6DQ)tu_4*c*JiwG8b0L zV=O~tlhy z6QHuw!c#_Css5l!wniu`0J_VzEa1D3!cLL?_)FrXNNdIry#*H&eJ#e=875zw@RX49 zj4|5^2)_f}1dG6`vDWiT+UBtY)n$6*J$O>2JYxtvfMWqtq&plP7%J8wKX@m%0bcNj z!jmE;;h-uz0e93!G=U?;DK|ihZ^Hew5go>}$Azzoq{3fR;byoyHZo{MI>&|6emyh^ z$Ko;EA5v9$!V@B?@D$};gDbKT4LTI;#;lrQnr&1$ZD{M_KKlq2VuxQ9o)D`Fhm^Ay z?y`-Duz8wE>j>6zn>2A-zO*%&(4qy^twgvhRuztt;?0s{BYJ@p_cFm6&zTmBF#nY5 zU?1E|=70|s?VfN~BosypkHOX3h^8atZ4u7+B%U!U9y{MWGi@WPmoZ%7D(qL4*+?ND z9|NTEc7-1PEFs4OLYemqC4L6+(v8@T^Y0VB46ednn!5<+*oemd(3ZQx4X~L)aKB-H z(dRdff?S$rVUrPjd@;^{GxL>*6GnP=m5u%SIoWxb?;8y!#gwffF&a=|F zuE3Op0 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearDisabled.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearDisabled.png new file mode 100644 index 0000000000000000000000000000000000000000..167a9812bd576fcea3c1e783255d6f6f534c42e7 GIT binary patch literal 954 zcmV;r14aCaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15ZgrK~zXf#gVL_yGlP(-j^L_tsl3yOk*UPL^3 zkZSP*Po+(on$RLDL8K*#V2BD$O;ESSz-T! zN`$3gFt`oALz1Lwuh)A|l-Gu-a5NgNPN&mn5gvoJ$VC8gH^kpjS}`{Ay3Ehd?}xhx zD~ob4;e!-v5)Ox*6l!8B3|^7{o1s7;a1vfM#^mJWU_PJ!3O|Z_Hc(lCX{*P^#@1C; zRpk&$qN3sxYy_?UP%IX+@Vk-oE|qwXN$m9bd@0IhOocJyJs9jcrEBF)CX?y*`~5#C zH*R$(6xs;UTa;R%y{4w7n_?MV;qmeDO=#TKITd0D=uLoK>=h~hG`Fc#8nxHylESXfw~NDYowiZr=`^Pq!b8N~sDi+eGNhX@^_ zqGV=fMpwY;bh6IQPRcal?_vVuKf=f5reYuW_4SRyofny!hK2@;)EHeO>@Xi5^b$`L z!W^8dcj3N^Oo_|oVs&-utzBPV&zhT?DKmwi?b>HGS{_78G*>#mKb1!&oEmS79$< zPjk84V}3!^Y8;=Z;P|<1l>|f&U&CnMC{i_wR@-bg z{_~a;nI(=JiES}_5> zDB5BCBR&LQzHxebx;C55o_wB&|XHZhi&g1cXL;V86 z8=|6O2YFpIpLn%k2W*G?bJg+>%^iosF^tLOMM)b=!hruW9mN>c=uW7=zyB?2s~XU% c@ET$47yU3y`4^sn2><{907*qoM6N<$f;*hDJOBUy literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.bminfo new file mode 100644 index 00000000..9b975313 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearEnabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3013a4094c34389873eee9bed930807d77d3dfff GIT binary patch literal 768 zcmV+b1ONPqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0+mTbK~zXf#n(+p z6;T+*@uQZO8}ox8qQHX4FcPVSLQpNDKr>N-2&q*qB54swNI?rBa3QYRM&&*bS_$SN z3Nfq#+maH-V?jE%@~_}k9xBy10c zu@UJ;VEf)Rmh0DpCA`5wTtfwN%{UGt<;;1pdvF$;mB$Dit;o0iH`(c`Nv4vf^J}N6 z8LM%0Om~?1<$1eQ&2Bpl#5>jRAg5!+ETk4p-FTfDO^n(WH&xrK%t-Z!Db6ppErHBp z7n07Ljd#TR?R3TT{_Kr(Dw#-5nC>6lb}o_;vD4dqh>L^Xsc+7@``MwrW~&!dv`+`ypFx}%Q2vdmw@WJB7#G678=nw(`>W&*K;#0%8BWiafT>HF1Z24)9LB9$_vF{zVPGp9^c(Er(DIfTk6rSaTT6pr!(hf7z2=(@d2E|HfULf zER!KNKH*bfRYE>jBr=FQJD8ya_Yn8+u6UY-+GrJ^Hq;i@11%Szt?yGC*Wf5J^98rD y725i~xaT + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearRotating.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_GearRotating.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1f49fe2091a2e57c06c6b6fd8978fafea03624 GIT binary patch literal 1228 zcmV;-1T*`IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TH>yyrdY%pBL*HRw0|IL~>`d*(UkydUR; z`FuY5KX{VDVK4{245Q$;@af^gXBY)PgUj$Fc~Gl;NNOenyb87W0&2Bay`YghQZpG~ z2Gqh0--kLFc+LmV3kP6=%=sBgA4k9gvh6<#nIv6p*Sf&Kc8xA zYsC{e!K?6RC47A0w7I!CYhPcV!Rz%>X=y2ymzPs`c(^?54_^c>l14^GM4XkCMGXxN z6c)y_kiLSSaG;_V=A$+I~jz<0z&D=RCJKAVk=4eIXhCY(=ob#+u& zSU89DOVBGCNOW>*f*-<<;P6=l@I zX1Nt`!KtY!5t~dV^>GRIz5CR<+DZlY3xqf9H^|{}$fF9mxw#Y{A5Yuc+cZBvpC{9P zsE?XQ9X}3%)oP{5$w|>qjg5^miy`TCk#WvQwmqB7C}cmAO?UI|l3u5m8KTkAQ5qW? zqk@8h1GCxuEK>XJ?d|#4z6D#=JAP4a1u-!(q}S`Iq@+Y<6mI=_E2t{st~9A(7E&q?VQzN=;3b8HKTb#$*)C z!o3BWot>qwt}e3KY=p%`bP>;em&^5KbaeC}nq@%l!>`rCA49&xI_Ts?z#J5~eQp^A z^C;sH6%`eU6|KL&UvwAuGk2xMVoAg(H=_7Kb93`xTU(n`EvzyCKUczFt|VNMQ84uv z>#4fBT1+9H>(kTIw6n7#jx8=Ol1`_irlzJS%n~u5wH6Q_2;5P}BSqrH&-}ZY26yJ2RYk?cylRTIJNvYiYZ6{oLVxgXq1%7mChOl; z+Vk#FZ9*+wyLb&N(D9UGcuMy6_LALh=aEeq+42Z|2jBL4Rh{q$cy6$E`>=@ku!PEt zpdOyOR?omoN_Z{~;4u6H@+T9I&Ntwp*4$JuZcJ}>qZc(t)Yo?-^bud8UNg$MF6<*VQ{0v~}i9sUZL z4k#}0gz>N)dY~4Meax(8QW_2~1>^#~3AJc|TJ4Y2Og@3Hz>_S&Phlj~YJcQu^Egy^ qxq1iktM3 - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.bminfo index 99179370..c06cf899 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Gear_On.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.bminfo new file mode 100644 index 00000000..b58cc2ba --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_KnownPosition.png new file mode 100644 index 0000000000000000000000000000000000000000..b5de465be937a57d98729176aea918c3b8af938a GIT binary patch literal 821 zcmV-51Iqk~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0?J85K~zXf#nwwm zRACs#@uOxp%%~_KA`2}dXi<<9q8k?mU7$s@s)f9@WNDxYl?uzL2f6kn5_~!V|nIi-}@Z-!p-1g`mY?bjM)#D zV<>|)-&XvDav#<_IcDiufbUSw!}U|ph>e&Xb+R2U8gu;wX6bQTt1X!eby`qATy)&E z67DxIpd@a!S$ZBrxeM3bP|@1onrZ26$qbDS>FWU8_+Ay{52nKPdCbz&1LX{IUDvO! zOwb;L+6LM*KIV;YQW2#ZuFq5KI(FkTqN(z(c6x14S5X&Kl~)B#l}+ltg(KO_jHXIi zG@Tf0Z9Mm&yoT%M;Rjr_wOioE!(BjhUX;T1dCbyt5H9`+RE|A3ibYW;I`O_hc?j1} zV3wZ6&=x5lpv%jePjr3XhKp`2)_ftejCl%|K5RgIo)vfk7afWU#OKQ~%NX4V;?WA+ z!F6|3TD7J3MDVWA2#4!!8Th5xWfOq!ExCEB2c>BMQq0k~YjAiB|ui&%%`#CL&5uQ#Wm zyHY!v;qOkJXoHyVb*pd!HwlH%g9bBz0lJrK3;=uvCg>!Wf!dR#9iG79lzOF zsv;Kc)?3++d6@;>GIi_J;jv?_jb}67V+7}*2Zr^+u02wZBlwJ$(0g}$zMM2?wf4$d zG@=33D2IMH5>3bO5zp}qI>Qq)*~{r4B?$fkutp7)w2Yc~00000NkvXXu0mjfC*pc~ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.bminfo new file mode 100644 index 00000000..23398482 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..630155938a96f022184fb67b48f1a0867aeb05b0 GIT binary patch literal 611 zcmV-p0-XJcP)Px#1ZP1_K>z@;j|==^1poj61yD>>MWa3-uvkCLl!V~Fwdv8y%#?$yQa9kev;O`4 z|NsBryt1rOHn?h2_wVi9xUJBgj?tcv-MOy!?(DZ{QLC(&n`ueCnl!ZC28ulhB=wxocF`shs}({HsqisY@@`sG8%% zyYuJc@7>tq!nx(i!1Lzf?%USo$iLaJr2YH*sY))VMk@RF_SmkWy>wo?aa-E5roD7u z$&P*Q+tsvUO5eP(vRy>_^z-f5(zRtx`}g&_ZdbT#RQvYzwPQ=Zc47MU^xe0tzIS4; zSU%^?#o)fQuv$Q*KqA9|ZS2_6?AOu4ergUA_AdYc010qNS#tmY4#NNd4#NS*Z>VGd z008GnL_t(IPtDL)h%GL0@`+o3wVYU4)n{^zqbHSyy`K50OxDK6rWrj> z4*4y%D%jX|*kT7LGPM%0%M@ko?K8DX9#y6|z#+>x!ZAyn;FM+5P-lrVoL?}t%LcBP z;u^^6qv^Ug`nUy}W}b2G&}b>u2HHy9chKcN^Uy>3QLg(I21CxC(UX3yxqe3Pg`>~w x+gPsM+=NrmyIcqVr=L9SS0A5WQ|4b&>Kltw6_*}&Dn$SQ002ovPDHLkV1l^~L%IL} literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.bminfo new file mode 100644 index 00000000..0eb844ba --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Off1.png new file mode 100644 index 0000000000000000000000000000000000000000..d5999f80dd43e58a25a2ec0f95553bc3f82f81b0 GIT binary patch literal 1025 zcmV+c1pfPpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1C~idK~zXf#g?FEqSx^x|jdWGj zhkAuXn$RG`W2G{oMAFXqoqJEenQvykPCJNSa&!LYeBZt2-t*nLcl_~q-1k2iapJD7 zt|^0qgEfA?e+BMz+Enwv=lei=%Q(%!VDLt1Y3WBB9-gd;TU%R;^78TylW-?)&_+Fp z@!n-7c%ZVf^0US=GHl}Z_VzUl)PM}z$cXtyzfEOjWjEDN!!vP5N5@{wDO$h;68xk+ zU|=b+kN#5f#k2zPlZf$bUqwa5IrUv+Ox)SoSxfvX(r+V%ceEq@{r%Ufs;c^J$kNi% zGAl9{n;%9ZhiAST+9oT2qHIrXUHRh{pa3$siDUtJC`3#3fveHzltE+#p%021|0Y1Sx z)rQnkuT(3%r);-Wj~af*_b@%yGmBcK(%>ZKpcsppYdu3mZO%}!+bV^5kw|2W>O^98 z?PQe(I`yjj6JDwn{Dp;ulT;@XvzsTVG*FtT%A8>_UsM|S?nNqHiCu>RD|SsJ7f3Ww zrGdqKSD8qhpP&B;rq`^Wq(q!W0ga<*FUznk0UgOXRV(NOyO)tE2+)3d|hi0An|+G`JE|-bR%M{4@G9 zbKq_+CB76{qHWp0z`!DTHUxe0Fz2mjkWVPrtAi^srFe|FYdyoPP$+Z(>%7NzODjJU zNxsEoznsP_w4Qn1%whCgT|?R+lw>!?IVSNpQMQXcJv|`}dD7I>6y!=hi`-=+h99)# z+^|#jvHXuWz+#Pl}6+m*~WYz>RNDy%L4A!~)41D9?Um^3Q9$N>50V ze22&BbC9uI`(}uYi3MhPnvQFcU&WWHi_OB&JMy1vGh>`kKMl{s0v)em=FyIG3f(us zVPI}gFekYJ7tr^TjbTmpa@cDiNb_h>cSQr%@00000NkvXXu0mjf&2Z+o literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.bminfo new file mode 100644 index 00000000..b0d4a291 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On.png new file mode 100644 index 0000000000000000000000000000000000000000..f28e1b4186e3a0c92b0146c7396638f31483db1e GIT binary patch literal 614 zcmV-s0-61ZP)Px#1ZP1_K>z@;j|==^1poj63s6i{MF4;RR;yOZ<;u(D%UG;frqibX|NjDk0w$9t z!{Ni4&6=v!s=eO5B9S6ar%v_y^`Ow8uh*~h`SVJpN;8==^!oJa^yxaCIzXU6@AvP{ z=g#o>@F$ZeFqkmb>(&H<1V*DqXtZcZq)3^}nL?pLb-Hy;rcIX1mI{Rm5r`4{{ri>5 zmABis&*#tH@7~eq(cZ8%4f4_gE z(xmJ4>o=P>rP8JR{`?n<7jU?6snn^c)TnQ_Zy}H&3z*~500009a7bBm000id000id z0mpBsWB>pF&F(7&bQL z98Vw;Q+m zt&B64sKBZ+m0BI=OmP8RGL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On1.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_On1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6b0d24aea4e10887425e02e9c89af260f88923 GIT binary patch literal 958 zcmV;v13~Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15-&vK~zXf#aGQs zR8bVa@6C*3IVF)Kp=4#tP@=#-Ac!^<>7qs8Dk+c_Lj40llu@f_+bVZOn~JC)Du@as zD*~x72r4lblcO)oa^A=7ciuho=Ds)6n-2qj@O$T+d(S=Re%~2GN-35DCd*pTHRH@o zWu2@=%sIK)oSQq&b=8ALTnnf3(<6NoeNv1HpUq>S?)&Lm*~h|woCAj#Q83a@*$KKW&3bg#=&MuScB2u zN6~h+LnxOxBSqp42;(H{gdc`54?=!dW>xr!=iefc7HZ{ z(#eC8=t}3hR#z8YXUYbZ}g z{K_#AxipA>q+Hw@^$i(CI!Dkzn{uN45#>iw-%#o=lc?*((u{}O&=flZ5nrD%Kj^(v zaJdX6v;hISlb@s27f26}0lhkVz_p+biIZ^_&CjtNMzkkk(kL7&I*KZ|fVTbRV=9&{ zjIagkb_u~2Bf-m&mggqgY>LDvVJ-ii)?;Sz7eeBZmz}s`=)%V`$Vup*F|7|^($5@v g3M*on{ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Reset.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Reset.png new file mode 100644 index 0000000000000000000000000000000000000000..52a92f21fc7d87eae584baf91880ced5eba56ca3 GIT binary patch literal 620 zcmV-y0+aoTP)Px#1ZP1_K>z@;j|==^1poj62vAH^MgOG$|Hxwhs0jb20{^%*|IBXx)P?`jfB&!_ z|LDK}?acqB0sqKj|MT4c|NsB#!vDHF|M=|x>A?U0{{Pd1|Ni~|>cs!to&VjR|L@ZO z){OuA_5Zjw|MJ=Y!cqUUEB~t!|MA%Wrv?A{?*F+s|Gh>3_vioSx&PLR|HWMYwJ!hd z%m3Gn|F$sytrq{;l>g$b|K+v+<+T6Xn*XmI|HWJXtr-9O_W#FU|GYx~&2azWtN;7- z|Ley8&vyT&1plfI|KFqkvL^re?f>)L|I~#4#$Nx~lK=SY|LVj4rw9M{=>Mz~|E?PU z;HUrk^8e9(|FI+g&v*ahum9`C|LDH|-Jt)g5jHJW+W-In32;bRa{vGi!TOY&k%TD&xXFZn%NXtuamU0dJSDi%vP1lI@v0000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Stop.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Stop.png new file mode 100644 index 0000000000000000000000000000000000000000..c9cfed2ddb20cb7580041ab117bdefc8fccb8c48 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^azHG_!VDyX`aiY8q{chvkN^MwUn)yP7bweF;1OBOz`%DHgc*!Z5i2 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.bminfo new file mode 100644 index 00000000..f5465c1d --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_UnknownPosition.png new file mode 100644 index 0000000000000000000000000000000000000000..31af09068532bc65119242d85497fb58f747436b GIT binary patch literal 1017 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1CB{VK~zXf#gFEldZ7*U@-9waV7$9aycM>>uwMD5l9G}iDz*i|hzi$qc6QEE zaT-p-^2^Auebh5|bSod|@9)o5aT-p-sppx>JHkh1sZe9Z`&5{QtuT#rif8zOdVxEN zl^^7n>Q!+Xw!(aIs|uH~!ow=IBp#2?#qBUMeUXhDVLDDdzKzpgrq>Pfdr53YBogtB zjEr0*oF_T;Z;7|UR+!)8Gp@zRv;rD?!A6nVp(g3*=vbVaoBM=ti&3Ke9vd6GuVPai zcP@HaNu7r(O(Apl3LC}>vE`Tt)1m%F=J%jVO>uQdup^1c3L|qQ!3kCn4u`*}+!WiP zp29ih9bsKGI*AIdgqiDmG$_4xVuZOprD9v$_ILu}qbjz9X}jd6w}M+?jlEh{?K2}Y z2tKTUF8$~8}s;opJ z@tSmjQL683Wr0ATtEi~xmr>-5qi{4DE%bW5HH7Oh5!;K&W}$D13~>W?hJC$>G=Vi^ z_52Ajd2WTJa7#-|hTrd(yVgGJCE_PpV6wRMy_-$tDQ+c#OSsm4lQKqRDeWD`+Q{G5gos*NZ-FT9Y zr7#Wm;6!Nd@bK_Ly>JQ$bhC<6*PKZh3Aq>+5GL@l7EH07V@{$?4Dki(qyRK;A-J%4s00000NkvXXu0mjfzh~e* literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.bminfo index 5632664a..92df9876 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAxis_Warning.png index 728814b1a7e6b12d6de56a9e5a89879c46d97bde..00ff8920c118a68df627a30eefa9a1e89473f92d 100644 GIT binary patch delta 1533 zcmV|2cY`=Xtu$;*^>>gXDEcZ|Z|WVJV`OsU>vD3hW^edg(rh5OnE5u<%KH$=6FM z_!2@6K`5d2kT~Hy&!_L($L;+!^`3LN4+VX&*wfm3e|xR9*S~-9KmKdbF3RVD*52NK z{;q?ALx+clN95Ml*8IZ4!neJ>y^k@rZc(uv#*5NcXl-q6AH>DQJ+7~>_s-1B)KXGX zJdTf#?|XT9nI|VFe}m4xMb$Pu7opnP+K`~2pdT6=8=VXWgE%@m5@xemL`6ku^Yins ztgWs6w7k5$0M#?g4C`UIC~bk!)6=tmv#_wx(`YmbSVd@>CQeRH#Odj&$j!}lg2g_9 zUVug2HrQ$*t)ZbIGdeo@>+{))F$r$H#vHSA^3dB;n}j zD1(_+qOeXdhDeGQLvZ`$=jXqFhi-p4Xa%ftSxrq%bXZu}cU4tYCKWrh1~D@;BV~1U zRRjkIOLrltWn8(rxe26zl-=Fk;l;(pzo339C*1*S2pMt8Zz?J(Ugqg}&EYy}0me&b zXQ!B+o)#k`BO)m&NyU!<0cj~;Uti1$^icqE(}BS&OPrMG?bK-yo1Hk z{rvo-HE@lkOO$m8x=n$92~vT2v!w z5?X-nBQcUypoMtbC>#q74VC?@CnqQKTlXQdd_1~La^MEsM#zBEevV)cq*b^eV?_nB z{`(ah8!IR9hLNluoJ+#gVhVxf=T4>0wasi%RPK{w3J&57~xaoJ`f92y#u{e+$rt;`#!>U<3#rF@Kh z6$#ZVUeXgXAc)`3$jFFSPYIfsCu3bLPN*_GJY2eoAQ8lWhOA%LrO?U@0fM(NEiEl9 zFE6hi&8OEC&=azU3z~7w#m>%-v<~wK-9};*ZmLRd!qd`1{r&xdZ!vDje!Z?t3i`_$-*AEtN^YZ9Ua>c4Sx@^L**NiDo< z-QAsuA^Kf^rvEE0!$)uizcccrbQ9V#?~s_vKNPlAox)92zZ%o)sJSea)%fJat6&!U zUP)g1fU?JJ*hO$Yz~{oitIk`)QVDOB5|U=JRKh-$JXvSS_@l6{glqD7GB`MB9vd6$ z!e7cS*n0;eO{{kr(|I8NCdv`4O$gSPU}{O2KBw7eS<=)j3FRgQw)K7bHcPd}`uh4G z!1tr0qd#J34#I2v4??UvLVPcTnN;u67X_Y%1lAy{5dKhFP6+4;5p47QOKZ_O*T-KJ j7&m;3Q!dH;3n9ec|Ja$uI1Tn`00000NkvXXu0mjfTgUgt delta 1488 zcmV;>1uy!h4EGC=B#|)~e-How3lIUVBfWJ1000?uMObuGZ)S9NVRB^vP+@6qbS_Rs zR3LUUE;TMVH#>k`000GaNkl&GV=^5$aty>b z${-OWGL$r0{z);d)N=NwF|;CjWsnVD$#4H@EA^kt2>CdlM28 zzSi}>{crfdm6n#4T3A@<^!4@0$jFF1eE3j`ii(`=+qdT{knf^G#m2_ImzS3}HaIva z*rP{}3{ZD>w;VovfB2VxfPgRs@?I>crKzc@-&Isp7|#In`0-=8fB(L8c6Q3eix*|* z&YeFhjQ?T)xl|{g6%-UqKYjXi#xqk>Q_|JdC2ehOa_`YDyp$&e=jeu4;9G0P*AR&`J1z6&&rc0PmEp=^0Q~p z3>0QVN4DL%e|5`1m6n!@W@M4V_{}R&Oiav%Lx&DcQgaAPM@NT&!SDo`Rb5?e!iE7< zS63%ju3QnFHx(2V^rZs5K3`BvQ&LiXsI06sp#la$Hh=@cTv+|XoRFK}9z6}T!-B4qw%;*ImyyWfeZD6qL*RLBO3~ySX z3l}bkYOr&~iWMKdN*QqL>QhKxJOK<)=!TjzJUncGEDT2kZGpJo(9j@+y0*4fPM$m| zQBhIffBxe>w|VnsUrpNq`V%byT@VU9WBV89zP`RQPzajPVvOMk5aGl2?%g}Se*O9{ z6za9PhR&_pIe{SQRd@$5Ji<$C|3bhaAt46H&(F_ ze;Xw~Kc6y?q4VB)DbU7^8<+3iy}ON$O|JsRzI-+e*9adEpPgmr&Yd%!1PBn$F~ZG! zJOmiEDKRmzclGMkfjWPwCn(Z9v$(j}tRC->T|D?j814ha%hs$}W1!q_w;9K^7h!D8 zVkZC)eU35^85wy(=f3L+$Xj=U?Y2GOe;rn8>&oox0mh0JJ)Jpo#?&C|4cq-~!zDYZ zU)%?XUWd2TO9Ki+vHVjl`5ZiW&|xAl7%RGQb+8%Xouaf^8hl9Dofhh)TN$aWEX}|F;)ybuofKnf7#%6 zTLL7{i;s`*RG3dZ0r`Z7hbL+MnI=sEV?~(tnEh|Bz4)JTc3*Ah*i7X==NK?KIXTXz zO`F(Je&7j+a_+C2^Az1KH0p%k4jee(VA%RkZpFp+?wo%{!0000 - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_small_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_small_checked.bdr index 33680ab9..b08734d1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_small_checked.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_small_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOff.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOff.bdr index 619b9a9b..3364459f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOff.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOn.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOn.bdr index 4d4731d1..81b01c5f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOn.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_AttentionOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr index f68624e1..7678681f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr index 3a06a71e..daa034ab 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr index b1168cc6..7924a897 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr index ab1d23a2..ed446c2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr index f2774dfe..d06c55f6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr index 738127ff..40a2be33 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOff.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOff.bdr index f2273614..7f08c71f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOff.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOn.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOn.bdr index ab382780..0ccc8c84 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOn.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_KeyRingOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr index c591fd13..29303810 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr index a8f40f22..84977485 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr index 84474499..76b59db1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr index cd05f67c..5a28f03f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_off.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_off.bdr index aed26ff7..32da758d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_off.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_off.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_on.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_on.bdr index dd6d7f55..5b5726c4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_on.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Safety_ACK_on.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up.bdr index bc8f4162..0c7a7703 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up_pressed.bdr index 794f12ab..2ee12a33 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scoll_Up_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down.bdr index 43d17b80..a7e1bbad 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down_pressed.bdr index e3a41f4a..7ca1ec12 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Down_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr index 6b4c45ac..bdece365 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr index cec2835e..6f458f89 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr index c584eb9a..be6dd5db 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr index bb7632d6..50e3706f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr index cadb57e8..528ffb2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr index fad588eb..aad77720 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr index 4a66802b..12d3c25a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr index 37a863c9..617786ff 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr index ebbe19fb..b5f4c27d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr index cb5bcdcf..dcc2f205 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataDevBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataDevBorder.bdr index a9d80516..f09490c5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataDevBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataDevBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMaxBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMaxBorder.bdr index bd5aff57..3fce10b3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMaxBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMaxBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMeanBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMeanBorder.bdr index 6673fbe5..41c43054 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMeanBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMeanBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMinBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMinBorder.bdr index 576bc3e6..a3d02c0c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMinBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataMinBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr index 66b2fd67..16a16701 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataRangeBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataRangeBorder.bdr index 5c58a1b4..2c90fa0c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataRangeBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataRangeBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr index 155197b0..da4d224c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr index 67903832..ba89734f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr index 9b73f4a4..d8153748 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr index 85b81a05..20e4df3b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorderInactive.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorderInactive.bdr index b253b85c..abfa90d8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorderInactive.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorderInactive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr index 6f91edec..8d3a1961 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr index 74c03be6..4a63d258 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr index b6f9b030..4706ef0b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr index 771ebc66..f743062b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr index ce3c0726..0ed59b8d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr index 6cf1e8e1..e47443bc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr index 29169210..a8b0c405 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOff.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOff.bdr index 4db49d73..e7aa05c3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOff.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOff.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOn.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOn.bdr index 11ea810c..5d4d3949 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOn.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_MoveOn.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr index 8dffa2b5..ac55a465 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_PackML_States.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_PackML_States.bdr index 7177f71c..9852a12e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_PackML_States.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_PackML_States.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr index 5a937ebc..26268ea5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr index d94c3c6f..fa400860 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr index 686e2f7d..193596e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr index 17365678..937e079d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr index 05c57ac2..a3217c90 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr index 2b96dadc..dfbea32b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr index 33453874..51a19583 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointSelected.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointSelected.bdr index 901ec1bd..f0ccd0b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointSelected.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointSelected.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedEven.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedEven.bdr index bef3f97a..b594ab05 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedEven.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedEven.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedOdd.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedOdd.bdr index 5e39b22b..3605b2c3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedOdd.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TeachPointUnselectedOdd.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 9e955c27..fdc0e06d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + @@ -362,6 +362,18 @@ + + + + + + + + + + + + @@ -381,6 +393,10 @@ + + + + @@ -409,6 +425,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page new file mode 100644 index 00000000..c6400be4 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -0,0 +1,1291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index b6cf13bb..4ce77208 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + @@ -162,7 +162,7 @@ - + @@ -192,7 +192,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -372,7 +372,7 @@ - + @@ -432,7 +432,7 @@ - + @@ -462,7 +462,7 @@ - + @@ -472,10 +472,40 @@ - +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -741,6 +771,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index d8d2d534..08981107 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 06c7cac4..cf0f6847 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + @@ -3022,4 +3022,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 2602c2e3..1b79c3c0 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index a31ecc7c..5aeb43d6 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index bac1a259..8bc52637 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -17443,5 +17443,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 6291a5f3..575ebacc 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index d718cf5a..2a0f0375 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + @@ -109,6 +109,7 @@ + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp new file mode 100644 index 00000000..32947a83 --- /dev/null +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From d5532292c1cef2b48b2cf9e01662541bd5ac183a Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Thu, 18 May 2023 08:44:57 -0500 Subject: [PATCH 100/159] AAZM-542 - making some changes to the MachineControl package based on RAJones feedback --- .../AppAxis_1/AppAxis_1/AxisControlModes.st | 9 +- .../AppAxis_1/AppAxis_1/AxisMgr.st | 2 +- .../AppAxis_1/AppAxis_1/AxisMgr.typ | 134 ------------------ .../AppAxis_1/AppAxis_1/IEC.prg | 2 +- .../AppAxis_1/AppAxis_1/Variables.var | 3 + .../AxisMgr.typ | 6 +- .../AxisReferencedFiles/AxisMgr.var | 1 - .../AxisReferencedFiles/AxisStateMachine.st | 2 +- .../AxisReferencedFiles/Package.pkg | 1 + .../AxisTemplate/AxisMgr/AxisControlModes.st | 13 +- .../AxisTemplate/AxisMgr/AxisMgr.st | 4 +- .../AxisTemplate/AxisMgr/IEC.prg | 2 +- .../AxisTemplate/AxisMgr/SimulationControl.st | 1 - .../AxisTemplate/AxisMgr/Variables.var | 3 + .../AppAxis_1/AppAxisUnitTest/ANSIC.prg | 2 +- .../mappMotion/AppAxis_1/VAppAxis1.purevaxcfg | 3 +- 16 files changed, 25 insertions(+), 163 deletions(-) delete mode 100644 mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ rename mappFramework/Logical/MachineControl/{AxisTemplate/AxisMgr => AxisReferencedFiles}/AxisMgr.typ (95%) diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisControlModes.st b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisControlModes.st index 282153d8..1902fb77 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisControlModes.st +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisControlModes.st @@ -130,12 +130,5 @@ ACTION AxisAutomatic: END_ACTION ACTION AxisReset: - -// edge alarms don't require a reset -// IF (MpAlarmXControl_SpeedNotSet.Set = TRUE) THEN -// MpAlarmXControl_SpeedNotSet.Set := FALSE; -// MpAlarmXControl_SpeedNotSet.ID := MpAlarmXControl_SpeedNotSet.InstanceID; -// MpAlarmXControl_SpeedNotSet.Reset := TRUE; -// END_IF - + // AxisReset action call END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.st b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.st index 464cc6e9..4080f411 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.st +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.st @@ -17,7 +17,7 @@ PROGRAM _INIT AxisInit; // Call initialization variables - RestorePosition; + RestorePosition_AppAxis_1; // Initialize homing mode MpAxisParameters.Homing.Mode := mcHOMING_DEFAULT; diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ deleted file mode 100644 index a0303195..00000000 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/AxisMgr.typ +++ /dev/null @@ -1,134 +0,0 @@ -(*Structure types*) - -TYPE - AxisSettingsType : STRUCT - AxisFeatures : {REDUND_UNREPLICABLE} ARRAY[0..2]OF STRING[255]; (*Variable to write axis features into*) - DriveConfiguration : {REDUND_UNREPLICABLE} McCfgPureVAxType; (*Drive configuration structure*) - BaseConfiguration : {REDUND_UNREPLICABLE} McCfgAxType; (*Base axis type configuration *) - BaseParam : {REDUND_UNREPLICABLE} McCfgAxMoveLimType; (*Base axis movement configuration*) - END_STRUCT; - AxisMachineSettingsType : {REDUND_UNREPLICABLE} STRUCT - ReferencePosition : {REDUND_UNREPLICABLE} LREAL := 0; (*[mm] Axis position after reference*) - END_STRUCT; - AxisControlCommandType : {REDUND_UNREPLICABLE} STRUCT - UpdatePreviewParameters : {REDUND_UNREPLICABLE} BOOL; (*Cmd to load new preview*) - LoadRecipeParameters : {REDUND_UNREPLICABLE} BOOL; (*Load selected recipe file into active parameters *) - SaveRecipeParameters : {REDUND_UNREPLICABLE} BOOL; (*Save current parameters*) - Power : {REDUND_UNREPLICABLE} BOOL; (*Cmd power*) - Reference : {REDUND_UNREPLICABLE} BOOL; (*Cmd home / reference*) - MoveAbsolute : {REDUND_UNREPLICABLE} BOOL; (*Cmd move absolute*) - MoveAdditive : {REDUND_UNREPLICABLE} BOOL; (*Cmd move additive*) - MoveVelocity : {REDUND_UNREPLICABLE} BOOL; (*Cmd move velocity*) - MoveToStart : {REDUND_UNREPLICABLE} BOOL; (*Cmd move the start position*) - Abort : {REDUND_UNREPLICABLE} BOOL; (*Cmd abort*) - Stop : {REDUND_UNREPLICABLE} BOOL; (*Cmd stop all movement*) - Reset : {REDUND_UNREPLICABLE} BOOL; (*Cmd reset axis state*) - JogPositive : {REDUND_UNREPLICABLE} BOOL; (*Cmd jog positive*) - JogNegative : {REDUND_UNREPLICABLE} BOOL; (*Cmd jog negative*) - Start : {REDUND_UNREPLICABLE} BOOL; (*Cmd start motion*) - UpdateVelocity : {REDUND_UNREPLICABLE} BOOL; (*Cmd update velocity for automatic mode*) - END_STRUCT; - AxisControlParametersType : {REDUND_UNREPLICABLE} STRUCT - HomePosition : {REDUND_UNREPLICABLE} LREAL := 0; (*[mm] Home Position*) - Position : {REDUND_UNREPLICABLE} LREAL := 0; (*[mm] Position for absolute move*) - Distance : {REDUND_UNREPLICABLE} LREAL := 50; (*[mm] Distance for relative move*) - Velocity : {REDUND_UNREPLICABLE} REAL := 100; (*[mm/s] Velocity for absoluate and relative moves*) - Acceleration : {REDUND_UNREPLICABLE} REAL := 360; (*[mm/s2] Acceleration for absoluate and relative moves*) - Deceleration : {REDUND_UNREPLICABLE} REAL := 360; (*[mm/s2] Deceleration for absoluate and relative moves*) - JogVelocity : {REDUND_UNREPLICABLE} REAL := 100; (*[mm/s] Velocity used when jogging the axis*) - StopDeceleration : {REDUND_UNREPLICABLE} REAL := 0; (*[mm/s2] Deceleration for stopping*) - ProductNumber : {REDUND_UNREPLICABLE} INT := 0; (*Product Number*) - ProductLength : {REDUND_UNREPLICABLE} REAL := 70; (*Real Product Length*) - END_STRUCT; - AxisControlStatusType : {REDUND_UNREPLICABLE} STRUCT - TaskName : {REDUND_UNREPLICABLE} STRING[80]; (*Current task name for configuration changes*) - MachineSettingsName : {REDUND_UNREPLICABLE} STRING[255]; (*Category name for machine settings*) - ProductSettingsName : {REDUND_UNREPLICABLE} STRING[255]; (*Category name for product settings*) - Status : {REDUND_UNREPLICABLE} STRING[80]; (*Machine Status*) - IsReady : {REDUND_UNREPLICABLE} BOOL; (*Axis is ready*) - ErrorActive : {REDUND_UNREPLICABLE} BOOL; (*Error active*) - Busy : {REDUND_UNREPLICABLE} BOOL; (*Cmd execution*) - ReferenceRequired : {REDUND_UNREPLICABLE} BOOL; (*Reference cmd required*) - Position : {REDUND_UNREPLICABLE} LREAL; (*Current position*) - Velocity : {REDUND_UNREPLICABLE} REAL; (*Current position*) - Current : {REDUND_UNREPLICABLE} REAL; (*Drive current*) - LagError : {REDUND_UNREPLICABLE} LREAL; (*Axis lag error *) - MotorTemperature : {REDUND_UNREPLICABLE} REAL; (*Motor temperature*) - IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) - IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) - PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) - ModeManual : BOOL; (*Axis may be moved manually*) - StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) - END_STRUCT; - AxisControlType : {REDUND_UNREPLICABLE} STRUCT - Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) - Parameters : {REDUND_UNREPLICABLE} AxisControlParametersType; (*Parameter structure*) - Status : {REDUND_UNREPLICABLE} AxisControlStatusType; (*Status structure*) - END_STRUCT; - AxisRecipeType : STRUCT - EditDialogOpened : BOOL; (*HMI edit dialog open*) - CreateDialogOpened : BOOL; (*HMI create dialog open*) - SaveRecipe : BOOL; (*Cmd save current values*) - LoadRecipe : BOOL; (*Cmd load exiting recipe*) - CreateRecipe : BOOL; (*Cmd create new recipe*) - State : AxisRecipeStepEnum; (*Recipe handling state*) - CategoryDropdown : STRING[50]; (*HMI selector*) - END_STRUCT; -END_TYPE - -(*Enumerations*) - -TYPE - StateEnum : - ( - STATE_INIT, (*Axis initialization state*) - STATE_POWER_ON, (*Axis powering on state*) - STATE_HOME, (*Axis homing state*) - STATE_REFERENCE, (*Axis reference state*) - STATE_MOVE_TO_HOME_POSITION, (*Axis moving to reference position state*) - STATE_READY, (*Axis ready state*) - STATE_MANUAL_OPERATION, (*Axis manual state*) - STATE_AUTOMATIC_OPERATION, (*Axis automatic state*) - STATE_STOPPING, (*Axis stopping state*) - STATE_STOPPED, (*Axis stopped state*) - STATE_ABORTING, (*Axis aborting state*) - STATE_ABORTED, (*Axis aborted state*) - STATE_CLEARING, (*Axis clearing state*) - STATE_RESETTING (*Axis resetting state*) - ); - ParameterStateEnum : - ( - PAR_STATE_INIT, (*Param initialization state*) - PAR_STATE_READ, (*Param read state*) - PAR_STATE_WRITE, (*Param write state*) - PAR_STATE_READY (*Param ready state*) - ); - ConfigurationStateEnum : - ( - CONFIG_STATE_INIT, (*Config initialization state*) - CONFIG_STATE_READ, (*Config read state*) - CONFIG_STATE_WRITE, (*Config write state*) - CONFIG_STATE_READY (*Config ready state*) - ); - ManualStateEnum : - ( - MANUAL_STATE_IDLE, (*Idle state*) - MANUAL_STATE_JOG, (*Jog state*) - MANUAL_STATE_MOVE, (*Move state*) - MANUAL_STATE_STOPPING (*Stopping state*) - ); - AutomaticStateEnum : - ( - AUTOMATIC_STATE_IDLE, (*Idle state*) - AUTOMATIC_STATE_RUNNING (*Run state*) - ); - AxisRecipeStepEnum : - ( - REC_AXIS_WAIT, (*Wait state*) - REC_AXIS_LOAD, (*Load product parameters*) - REC_AXIS_SAVE, (*Save product parameters*) - REC_AXIS_CREATE, (*Create new axis recipe*) - REC_AXIS_STORE_MACH_SETTINGS, (*Save machine parameter settings*) - REC_AXIS_FACTORY_RESET (*Factory reset*) - ); -END_TYPE diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg index 3525eb67..13455135 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/IEC.prg @@ -3,7 +3,6 @@ AxisMgr.st - AxisMgr.typ Variables.var SimulationControl.st AxisControlModes.st @@ -11,6 +10,7 @@ ManualCommand.st AutomaticCommand.st \Logical\MachineControl\AxisReferencedFiles\AxisMgr.var + \Logical\MachineControl\AxisReferencedFiles\AxisMgr.typ \Logical\MachineControl\AxisReferencedFiles\AxisStateMachine.st \Logical\MachineControl\AxisReferencedFiles\ChangeConfiguration.st \Logical\MachineControl\AxisReferencedFiles\Recipe.st diff --git a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/Variables.var b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/Variables.var index e69de29b..830f9a5b 100644 --- a/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/Variables.var +++ b/mappFramework/Logical/MachineControl/AppAxis_1/AppAxis_1/Variables.var @@ -0,0 +1,3 @@ +VAR RETAIN + RestorePosition_AppAxis_1 : {REDUND_UNREPLICABLE} McPureVAxRestorePosType; (*Data structure for retsore position mode*) +END_VAR diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.typ similarity index 95% rename from mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ rename to mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.typ index e6e8c1d2..b41cf8ca 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.typ +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.typ @@ -55,8 +55,8 @@ TYPE IsHomed : {REDUND_UNREPLICABLE} BOOL; (*Axis is referenced*) IsPowered : {REDUND_UNREPLICABLE} BOOL; (*Axis is powered*) PLCopenState : {REDUND_UNREPLICABLE} McAxisPLCopenStateEnum; (*Axis PLCopenState*) - ModeManual : BOOL; (*Axis may be moved manually*) - StatusPointControl : ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) + ModeManual : {REDUND_UNREPLICABLE} BOOL; (*Axis may be moved manually*) + StatusPointControl : {REDUND_UNREPLICABLE} ARRAY[0..1]OF UINT; (*VC4 - Axis Manual/Auto control*) END_STRUCT; AxisControlType : {REDUND_UNREPLICABLE} STRUCT Command : {REDUND_UNREPLICABLE} AxisControlCommandType; (*Cmd structure*) @@ -96,6 +96,7 @@ TYPE ); ParameterStateEnum : ( + PAR_STATE_NOT_USED, (*Param initialization not used*) PAR_STATE_INIT, (*Param initialization state*) PAR_STATE_READ, (*Param read state*) PAR_STATE_WRITE, (*Param write state*) @@ -103,6 +104,7 @@ TYPE ); ConfigurationStateEnum : ( + CONFIG_STATE_NOT_USED, (*Config initialization not used*) CONFIG_STATE_INIT, (*Config initialization state*) CONFIG_STATE_READ, (*Config read state*) CONFIG_STATE_WRITE, (*Config write state*) diff --git a/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.var b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.var index 7f8ca640..fd307950 100644 --- a/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.var +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisMgr.var @@ -10,7 +10,6 @@ VAR END_VAR (*Function Blocks*) VAR - RestorePosition : {REDUND_UNREPLICABLE} McPureVAxRestorePosType; (*Data structure for retsore position mode*) MpRecipeRegPar_Cfg : {REDUND_UNREPLICABLE} MpRecipeRegPar; (*Register function block for configuration values*) MpRecipeRegPar_Par : {REDUND_UNREPLICABLE} MpRecipeRegPar; (*Register function block for parameter values*) MpAlarmXCore_0 : {REDUND_UNREPLICABLE} MpAlarmXCore; (*AlarmX Core function block*) diff --git a/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisStateMachine.st b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisStateMachine.st index bcd1ddde..2ddfd3a6 100644 --- a/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisStateMachine.st +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/AxisStateMachine.st @@ -31,7 +31,7 @@ ACTION AxisStateMachine: AxisControl.Status.Status := 'Initializing'; ChangeConfiguration; ChangeParameter; - IF ((ConfigurationState = CONFIG_STATE_READY) AND (ParameterState = PAR_STATE_READY) AND (MpAxisBasic_0.Active = TRUE)) THEN + IF (((ConfigurationState = CONFIG_STATE_READY) OR (ConfigurationState = CONFIG_STATE_NOT_USED)) AND ((ParameterState = PAR_STATE_READY) OR (ParameterState = PAR_STATE_NOT_USED)) AND (MpAxisBasic_0.Active = TRUE)) THEN AxisControl.Status.IsReady := TRUE; State := STATE_POWER_ON; diff --git a/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg b/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg index 936b96bc..14ca896c 100644 --- a/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg +++ b/mappFramework/Logical/MachineControl/AxisReferencedFiles/Package.pkg @@ -3,6 +3,7 @@ AxisMgr.var + AxisMgr.typ AxisStateMachine.st Recipe.st ChangeConfiguration.st diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisControlModes.st b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisControlModes.st index bf2e8da4..bbf16684 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisControlModes.st +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisControlModes.st @@ -4,15 +4,11 @@ END_ACTION ACTION AxisCyclic: // Cyclic action call - IF (MpRecipeRegPar_Par.UpdateNotification) THEN - - END_IF - END_ACTION ACTION AxisManual: // Action handling manual axis control - MpAxisParameters.Jog.Velocity := AxisControl.Parameters.Velocity; + MpAxisParameters.Jog.Velocity := AxisControl.Parameters.JogVelocity; MpAxisParameters.Velocity := AxisControl.Parameters.Velocity; MpAxisParameters.Position := AxisControl.Parameters.Position; MpAxisParameters.Distance := AxisControl.Parameters.Distance; @@ -32,6 +28,8 @@ ACTION AxisManual: AxisControl.Command.MoveAbsolute := FALSE; AxisControl.Command.MoveAdditive := FALSE; ManualState := MANUAL_STATE_MOVE; + ELSE + State := STATE_READY; END_IF // Jog state MANUAL_STATE_JOG: @@ -92,7 +90,6 @@ ACTION AxisAutomatic: CASE AutomaticState OF AUTOMATIC_STATE_IDLE: IF (AxisControl.Command.Start = TRUE) THEN - MpAlarmXControl_SpeedNotSet.Set := (MpAxisParameters.Velocity = 0); AutomaticState := AUTOMATIC_STATE_RUNNING; END_IF @@ -115,7 +112,6 @@ ACTION AxisAutomatic: AutomaticState := AUTOMATIC_STATE_IDLE; ELSIF (AxisControl.Command.UpdateVelocity = TRUE) THEN AxisControl.Command.UpdateVelocity := FALSE; - MpAlarmXControl_SpeedNotSet.Set := (MpAxisParameters.Velocity = 0); MpAxisBasic_0.Update := TRUE; ELSIF (MpAxisBasic_0.UpdateDone = TRUE) THEN MpAxisBasic_0.Update := FALSE; @@ -124,7 +120,6 @@ ACTION AxisAutomatic: END_ACTION - ACTION AxisReset: - + // AxisReset action call END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.st b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.st index fed3ff0a..f46a998b 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.st +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/AxisMgr.st @@ -17,14 +17,14 @@ PROGRAM _INIT AxisInit; // Call initialization variables - RestorePosition; + RestorePosition_AxisTemplate; // Initialize homing mode MpAxisParameters.Homing.Mode := mcHOMING_DEFAULT; // Enable mapp function blocks - MpAlarmXCore_0.Enable := TRUE; MpAxisBasic_0.Enable := TRUE; + MpAlarmXCore_0.Enable := TRUE; END_PROGRAM diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg index 504b59a0..eb842fb8 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/IEC.prg @@ -3,7 +3,6 @@ AxisMgr.st - AxisMgr.typ Variables.var AxisControlModes.st SimulationControl.st @@ -11,6 +10,7 @@ ManualCommand.st AutomaticCommand.st \Logical\MachineControl\AxisReferencedFiles\AxisMgr.var + \Logical\MachineControl\AxisReferencedFiles\AxisMgr.typ \Logical\MachineControl\AxisReferencedFiles\AxisStateMachine.st \Logical\MachineControl\AxisReferencedFiles\ChangeConfiguration.st \Logical\MachineControl\AxisReferencedFiles\Recipe.st diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/SimulationControl.st b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/SimulationControl.st index 478745b2..06fa3aae 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/SimulationControl.st +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/SimulationControl.st @@ -1,5 +1,4 @@ ACTION SimulationControl: - // Automatic settings when project is in simulation IF NOT (DiagCpuIsARsim() OR DiagCpuIsSimulated()) THEN RETURN; diff --git a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Variables.var b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Variables.var index e69de29b..e65d7b90 100644 --- a/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Variables.var +++ b/mappFramework/Logical/MachineControl/AxisTemplate/AxisMgr/Variables.var @@ -0,0 +1,3 @@ +VAR RETAIN + RestorePosition_AxisTemplate : {REDUND_UNREPLICABLE} McAcpAxRestorePosType; (*Data structure for retsore position mode*) +END_VAR diff --git a/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg b/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg index 92a686fa..8e1559ca 100644 --- a/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg +++ b/mappFramework/Logical/UnitTest/AppAxis_1/AppAxisUnitTest/ANSIC.prg @@ -5,7 +5,7 @@ \Logical\UnitTest\Common\CommonUT\CommonTypes.typ \Logical\UnitTest\Common\CommonUT\CommonVariables.var \Logical\UnitTest\Common\CommonUT\Set_Common.c - \Logical\MachineControl\AppAxis_1\AppAxis_1\AxisMgr.typ + \Logical\MachineControl\AxisReferencedFiles\AxisMgr.typ variables.var testSuite.c autoGeneratedFile.c diff --git a/mappFramework/Physical/Simulation/PC/mappMotion/AppAxis_1/VAppAxis1.purevaxcfg b/mappFramework/Physical/Simulation/PC/mappMotion/AppAxis_1/VAppAxis1.purevaxcfg index 260dfaf2..64412ba0 100644 --- a/mappFramework/Physical/Simulation/PC/mappMotion/AppAxis_1/VAppAxis1.purevaxcfg +++ b/mappFramework/Physical/Simulation/PC/mappMotion/AppAxis_1/VAppAxis1.purevaxcfg @@ -1,4 +1,5 @@  + @@ -6,7 +7,7 @@ - + From be5a40f30b09d32a400c9249990aebefc5909fc0 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Thu, 18 May 2023 14:00:48 -0500 Subject: [PATCH 101/159] AAZM-542 - adding alarm line to axis content based on RAJones feedback --- .../Pages/mappFrameworkContents/AxisContent/Axis.content | 6 ++++++ .../Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad | 6 ++++-- mappFramework/Physical/Simulation/PC/mappView/Axis.vis | 1 + .../Simulation/PC/mappView/Axis/Axis_content.binding | 9 +++++++++ .../Physical/Simulation/PC/mappView/Axis/Package.pkg | 1 + .../Physical/Simulation/PC/mappView/Visualization.vis | 1 + 6 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 mappFramework/Physical/Simulation/PC/mappView/Axis/Axis_content.binding diff --git a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/AxisContent/Axis.content b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/AxisContent/Axis.content index 146c20e7..6cb63ed3 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/AxisContent/Axis.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/mappFrameworkContents/AxisContent/Axis.content @@ -15,6 +15,12 @@ + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad index 139c48c1..e961b145 100644 --- a/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad +++ b/mappFramework/Physical/Simulation/PC/Connectivity/OpcUA/AlarmMgr.uad @@ -1,6 +1,6 @@  - + @@ -53,7 +53,9 @@ - + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/Axis.vis b/mappFramework/Physical/Simulation/PC/mappView/Axis.vis index d2f2495e..0644151f 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Axis.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/Axis.vis @@ -8,6 +8,7 @@ + diff --git a/mappFramework/Physical/Simulation/PC/mappView/Axis/Axis_content.binding b/mappFramework/Physical/Simulation/PC/mappView/Axis/Axis_content.binding new file mode 100644 index 00000000..750c89d8 --- /dev/null +++ b/mappFramework/Physical/Simulation/PC/mappView/Axis/Axis_content.binding @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/mappView/Axis/Package.pkg b/mappFramework/Physical/Simulation/PC/mappView/Axis/Package.pkg index 4ae458dd..60535cb4 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Axis/Package.pkg +++ b/mappFramework/Physical/Simulation/PC/mappView/Axis/Package.pkg @@ -2,6 +2,7 @@ + Axis_content.binding AxisManual_content.binding AxisAuto_content.binding AxisRecipe_content.eventbinding diff --git a/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis b/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis index 34da4b19..764bf85a 100644 --- a/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis +++ b/mappFramework/Physical/Simulation/PC/mappView/Visualization.vis @@ -15,6 +15,7 @@ + From efead975415fae767cb94981b8db918eb9d98461 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 19 May 2023 08:28:32 -0400 Subject: [PATCH 102/159] Merging in Arif's VC4 changes --- .../VC4/Backup/BackupMgr/BackupMgr.st | 75 +- .../VC4/Backup/BackupMgr/BackupMgr.typ | 4 + .../VC4/Backup/BackupMgr/BackupMgr.var | 7 + .../VC4/Recipe/RecipeMgr/HMIActions.st | 59 + .../VC4/Recipe/RecipeMgr/RecipeMgr.st | 2 + .../VC4/Recipe/RecipeMgr/RecipeMgr.typ | 1 + .../VC4/Report/ReportMgr/HMIActions.st | 15 +- .../VC4/Report/ReportMgr/ReportMgr.typ | 14 +- .../VC4/Report/ReportMgr/ReportMgr.var | 7 +- .../BitmapGroups/MpAxisAlarm.bmgrp | 2 +- .../BitmapGroups/MpAxisHomed.bmgrp | 2 +- .../BitmapGroups/MpAxisMoving.bmgrp | 2 +- .../BitmapGroups/MpAxisPower.bmgrp | 2 +- .../Bitmaps/MpAlarmX_Backtrace.bminfo | 26 +- .../Bitmaps/MpAlarmX_List.bminfo | 26 +- .../Bitmaps/MpAlarmX_ListDetail.bminfo | 26 +- .../Bitmaps/MpAlarmX_ListHistory.bminfo | 26 +- .../Bitmaps/MpAlarm_Active.bminfo | 24 +- .../Bitmaps/MpAlarm_BypassON.bminfo | 24 +- .../Bitmaps/MpAlarm_Inactive.bminfo | 24 +- .../Bitmaps/MpAlarm_NotQuit.bminfo | 24 +- .../Bitmaps/MpAlarm_Quit.bminfo | 24 +- .../Bitmaps/MpAlarm_QuitAll.bminfo | 26 +- .../Bitmaps/MpBackTransparent.bminfo | 26 +- .../Bitmaps/MpBackgroundWVGA_Logo.bminfo | 2 +- .../Bitmaps/MpBorderSlider09x09.bminfo | 26 +- .../Bitmaps/MpButton_control.bminfo | 26 +- .../Bitmaps/MpButton_control_pressed.bminfo | 26 +- .../Bitmaps/MpButton_decrease.bminfo | 24 +- .../Bitmaps/MpButton_decrease_pressed.bminfo | 24 +- .../Bitmaps/MpButton_default.bminfo | 34 +- .../Bitmaps/MpButton_default_pressed.bminfo | 24 +- .../MpButton_device_selected_left.bminfo | 26 +- .../MpButton_device_unselected_left.bminfo | 26 +- .../Bitmaps/MpButton_error.bminfo | 26 +- .../Bitmaps/MpButton_global_area.bminfo | 24 +- .../MpButton_global_area_bottom.bminfo | 26 +- .../Bitmaps/MpButton_global_area_left.bminfo | 26 +- .../MpButton_global_area_pres_bottom.bminfo | 26 +- .../MpButton_global_area_pres_top.bminfo | 24 +- .../MpButton_global_area_press_left.bminfo | 26 +- .../MpButton_global_area_pressed.bminfo | 24 +- .../Bitmaps/MpButton_global_area_top.bminfo | 24 +- .../Bitmaps/MpButton_increase.bminfo | 24 +- .../Bitmaps/MpButton_increase_pressed.bminfo | 24 +- .../Bitmaps/MpButton_off.bminfo | 26 +- .../Bitmaps/MpButton_on.bminfo | 26 +- .../Bitmaps/MpButton_radio_selected.bminfo | 24 +- .../Bitmaps/MpButton_radio_unselected.bminfo | 24 +- .../Bitmaps/MpButton_ready.bminfo | 26 +- .../Bitmaps/MpButton_scroll_down.bminfo | 24 +- .../Bitmaps/MpButton_scroll_down_multi.bminfo | 24 +- .../MpButton_scroll_down_multi_press.bminfo | 24 +- .../MpButton_scroll_down_pressed.bminfo | 26 +- .../Bitmaps/MpButton_scroll_left.bminfo | 24 +- .../Bitmaps/MpButton_scroll_left_multi.bminfo | 24 +- .../MpButton_scroll_left_multi_press.bminfo | 24 +- .../MpButton_scroll_left_pressed.bminfo | 24 +- .../Bitmaps/MpButton_scroll_right.bminfo | 24 +- .../MpButton_scroll_right_multi.bminfo | 24 +- .../MpButton_scroll_right_multi_pres.bminfo | 24 +- .../MpButton_scroll_right_pressed.bminfo | 24 +- .../Bitmaps/MpButton_scroll_up.bminfo | 24 +- .../Bitmaps/MpButton_scroll_up_multi.bminfo | 24 +- .../MpButton_scroll_up_multi_pressed.bminfo | 24 +- .../Bitmaps/MpButton_scroll_up_pressed.bminfo | 24 +- .../Bitmaps/MpCheckbox_small.bminfo | 24 +- .../Bitmaps/MpCheckbox_small_checked.bminfo | 24 +- .../Bitmaps/MpCheckbox_small_gray.bminfo | 26 +- .../Bitmaps/MpComLoggerAlarm.bminfo | 26 +- .../Bitmaps/MpComLoggerInformation.bminfo | 26 +- .../Bitmaps/MpComLoggerUI.bminfo | 26 +- .../Bitmaps/MpComLoggerWarning.bminfo | 26 +- .../Bitmaps/MpData_DevBorder.bminfo | 24 +- .../Bitmaps/MpData_LowerLimit.bminfo | 24 +- .../Bitmaps/MpData_MaxBorder.bminfo | 24 +- .../Bitmaps/MpData_MeanBorder.bminfo | 24 +- .../Bitmaps/MpData_MinBorder.bminfo | 24 +- .../Bitmaps/MpData_NoLimit.bminfo | 24 +- .../Bitmaps/MpData_RangeBorder.bminfo | 24 +- .../Bitmaps/MpData_UpperLimit.bminfo | 24 +- .../Bitmaps/MpData_WithinLimit.bminfo | 24 +- .../Bitmaps/MpFile_ArrowDown.bminfo | 26 +- .../Bitmaps/MpFile_ArrowLeft.bminfo | 26 +- .../Bitmaps/MpFile_ArrowRight.bminfo | 26 +- .../Bitmaps/MpFile_ArrowUp.bminfo | 26 +- .../Bitmaps/MpFile_BMP.bminfo | 26 +- .../Bitmaps/MpFile_CSV.bminfo | 26 +- .../Bitmaps/MpFile_Cancel.bminfo | 26 +- .../Bitmaps/MpFile_DOC.bminfo | 26 +- .../Bitmaps/MpFile_FILE.bminfo | 26 +- .../Bitmaps/MpFile_FOLDER.bminfo | 26 +- .../Bitmaps/MpFile_HTML.bminfo | 26 +- .../Bitmaps/MpFile_JPG.bminfo | 26 +- .../Bitmaps/MpFile_OK.bminfo | 26 +- .../Bitmaps/MpFile_PDF.bminfo | 26 +- .../Bitmaps/MpFile_TXT.bminfo | 26 +- .../Bitmaps/MpFile_UNKOWN.bminfo | 26 +- .../Bitmaps/MpFile_USER1.bminfo | 26 +- .../Bitmaps/MpFile_USER10.bminfo | 26 +- .../Bitmaps/MpFile_USER2.bminfo | 26 +- .../Bitmaps/MpFile_USER3.bminfo | 26 +- .../Bitmaps/MpFile_USER4.bminfo | 26 +- .../Bitmaps/MpFile_USER5.bminfo | 26 +- .../Bitmaps/MpFile_USER6.bminfo | 26 +- .../Bitmaps/MpFile_USER7.bminfo | 26 +- .../Bitmaps/MpFile_USER8.bminfo | 26 +- .../Bitmaps/MpFile_USER9.bminfo | 26 +- .../Bitmaps/MpFile_XLS.bminfo | 26 +- .../Bitmaps/MpFile_XML.bminfo | 26 +- .../Bitmaps/MpFrameHeader.bminfo | 24 +- .../Bitmaps/MpFrameInvisible.bminfo | 26 +- .../Bitmaps/MpGroupControl.bminfo | 26 +- .../Bitmaps/MpIcon_MpAlarm.bminfo | 26 +- .../Bitmaps/MpIcon_MpAlarmClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpAlarmXClick.bminfo | 26 +- .../MpIcon_MpAlarmXHistoryClick.bminfo | 24 +- .../Bitmaps/MpIcon_MpAudit.bminfo | 26 +- .../Bitmaps/MpIcon_MpAuditClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpAxis.bminfo | 26 +- .../Bitmaps/MpIcon_MpAxis1.bminfo | 26 +- .../Bitmaps/MpIcon_MpAxis1Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpAxisClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpCnc.bminfo | 26 +- .../Bitmaps/MpIcon_MpCnc1.bminfo | 26 +- .../Bitmaps/MpIcon_MpCnc2Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpCnc3Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpCom.bminfo | 26 +- .../Bitmaps/MpIcon_MpComClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpData.bminfo | 26 +- .../Bitmaps/MpIcon_MpDataClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpDelta.bminfo | 26 +- .../Bitmaps/MpIcon_MpDelta1.bminfo | 26 +- .../Bitmaps/MpIcon_MpDelta3Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpDelta4Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpEnergy.bminfo | 26 +- .../Bitmaps/MpIcon_MpEnergyClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpFile.bminfo | 26 +- .../Bitmaps/MpIcon_MpFileClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpOee.bminfo | 26 +- .../Bitmaps/MpIcon_MpOeeClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpOeeList.bminfo | 26 +- .../Bitmaps/MpIcon_MpOeeTimeline.bminfo | 26 +- .../Bitmaps/MpIcon_MpOeeTrend.bminfo | 26 +- .../Bitmaps/MpIcon_MpPackML.bminfo | 26 +- .../Bitmaps/MpIcon_MpPackMLClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpRecipe.bminfo | 26 +- .../Bitmaps/MpIcon_MpRecipeClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpRecipeX.bminfo | 26 +- .../Bitmaps/MpIcon_MpRecipeXClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpRoboArm4.bminfo | 26 +- .../Bitmaps/MpIcon_MpRoboArm4Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpRoboArm5.bminfo | 26 +- .../Bitmaps/MpIcon_MpRoboArm5Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpRoboArm6.bminfo | 26 +- .../Bitmaps/MpIcon_MpRoboArm6Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpSafetyXClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpScara.bminfo | 26 +- .../Bitmaps/MpIcon_MpScara1.bminfo | 26 +- .../Bitmaps/MpIcon_MpScara2Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpScara4Click.bminfo | 26 +- .../Bitmaps/MpIcon_MpSpindle.bminfo | 26 +- .../Bitmaps/MpIcon_MpSpindleClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpTeach.bminfo | 26 +- .../Bitmaps/MpIcon_MpTeachClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpTrend.bminfo | 26 +- .../Bitmaps/MpIcon_MpTrendClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpTweetClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpUser.bminfo | 26 +- .../Bitmaps/MpIcon_MpUser1.bminfo | 24 +- .../Bitmaps/MpIcon_MpUserClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpUserClick1.bminfo | 24 +- .../Bitmaps/MpIcon_MpUserClick2.bminfo | 26 +- .../Bitmaps/MpIcon_MpUserXClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpWebXs.bminfo | 26 +- .../Bitmaps/MpIcon_MpWebXsClick.bminfo | 26 +- .../Bitmaps/MpIcon_MpWinder.bminfo | 26 +- .../Bitmaps/MpIcon_MpWinderClick.bminfo | 26 +- .../Bitmaps/MpIcon_mapp.bminfo | 26 +- .../Bitmaps/MpImg_Config.bminfo | 26 +- .../Bitmaps/MpImg_Diagnostics.bminfo | 26 +- .../Bitmaps/MpImg_Home.bminfo | 26 +- .../Bitmaps/MpImg_Warning.bminfo | 26 +- .../Bitmaps/MpInputBorder.bminfo | 26 +- .../Bitmaps/MpInputBorderCenterless.bminfo | 26 +- .../Bitmaps/MpInputBorderInactive.bminfo | 26 +- .../MpInputBorderInactiveCenterless.bminfo | 26 +- .../Bitmaps/MpKey_AlphaPad_lower.bminfo | 26 +- .../MpKey_AlphaPad_lowerPressed.bminfo | 26 +- .../Bitmaps/MpKey_AlphaPad_numeric.bminfo | 26 +- .../Bitmaps/MpKey_AlphaPad_numeric2.bminfo | 26 +- .../MpKey_AlphaPad_numeric2Pressed.bminfo | 26 +- .../MpKey_AlphaPad_numericPressed.bminfo | 26 +- .../Bitmaps/MpKey_AlphaPad_upper.bminfo | 26 +- .../MpKey_AlphaPad_upperPressed.bminfo | 26 +- .../Bitmaps/MpKey_EditPad_lower.bminfo | 26 +- .../Bitmaps/MpKey_EditPad_lowerPressed.bminfo | 26 +- .../Bitmaps/MpKey_EditPad_numeric.bminfo | 26 +- .../Bitmaps/MpKey_EditPad_numeric2.bminfo | 26 +- .../MpKey_EditPad_numeric2Pressed.bminfo | 26 +- .../MpKey_EditPad_numericPressed.bminfo | 26 +- .../Bitmaps/MpKey_EditPad_upper.bminfo | 26 +- .../Bitmaps/MpKey_EditPad_upperPressed.bminfo | 26 +- .../Bitmaps/MpKey_ListPadHor.bminfo | 26 +- .../Bitmaps/MpKey_ListPadHor_pressed.bminfo | 26 +- .../Bitmaps/MpKey_ListPadVer.bminfo | 26 +- .../Bitmaps/MpKey_ListPadVer_pressed.bminfo | 26 +- .../Bitmaps/MpKey_Numpad.bminfo | 26 +- .../Bitmaps/MpKey_Numpad_pressed.bminfo | 26 +- .../Bitmaps/MpLabelBorder.bminfo | 26 +- .../Bitmaps/MpLabelBorderDown.bminfo | 26 +- .../Bitmaps/MpLabelBorderDown_Orange.bminfo | 26 +- .../Bitmaps/MpLabelBorderLeft.bminfo | 26 +- .../Bitmaps/MpLabelBorderSlim.bminfo | 24 +- .../Bitmaps/MpListboxFrameCenter.bminfo | 26 +- .../Bitmaps/MpListboxFrameLeft.bminfo | 26 +- .../Bitmaps/MpListboxFrameRight.bminfo | 26 +- .../Bitmaps/MpOutputBorder.bminfo | 26 +- .../Bitmaps/MpPackML_BlueOFF.bminfo | 26 +- .../Bitmaps/MpPackML_BlueON.bminfo | 26 +- .../Bitmaps/MpPackML_GreenOFF.bminfo | 26 +- .../Bitmaps/MpPackML_GreenON.bminfo | 26 +- .../Bitmaps/MpPackML_Main.bminfo | 26 +- .../Bitmaps/MpPackML_YellowOFF.bminfo | 26 +- .../Bitmaps/MpPackML_YellowON.bminfo | 26 +- .../Bitmaps/MpProgressBorder.bminfo | 24 +- .../Bitmaps/MpSlider_BallGray.bminfo | 26 +- .../Bitmaps/MpTeach_Point_selected.bminfo | 24 +- .../MpTeach_Point_unselected_odd.bminfo | 24 +- .../Bitmaps/MpUserGroup_add.bminfo | 26 +- .../Bitmaps/MpUserGroup_add_locked.bminfo | 26 +- .../Bitmaps/MpUserGroup_delete.bminfo | 26 +- .../Bitmaps/MpUserGroup_delete_locked.bminfo | 26 +- .../Bitmaps/MpUserGroup_edit.bminfo | 26 +- .../Bitmaps/MpUserGroup_edit_locked.bminfo | 26 +- .../Bitmaps/MpUser_CriteriaError.bminfo | 24 +- .../Bitmaps/MpUser_Exit.bminfo | 26 +- .../Bitmaps/MpUser_Exit_locked.bminfo | 26 +- .../Bitmaps/MpUser_Export.bminfo | 26 +- .../Bitmaps/MpUser_Export_locked.bminfo | 26 +- .../Bitmaps/MpUser_Import.bminfo | 26 +- .../Bitmaps/MpUser_Import_locked.bminfo | 26 +- .../Bitmaps/MpUser_add.bminfo | 26 +- .../Bitmaps/MpUser_add_locked.bminfo | 26 +- .../Bitmaps/MpUser_clock_stop.bminfo | 26 +- .../Bitmaps/MpUser_delete.bminfo | 26 +- .../Bitmaps/MpUser_delete_locked.bminfo | 26 +- .../Bitmaps/MpUser_edit.bminfo | 26 +- .../Bitmaps/MpUser_edit_locked.bminfo | 26 +- .../Bitmaps/MpUser_lock.bminfo | 26 +- .../Bitmaps/MpUser_lock_locked.bminfo | 26 +- .../Bitmaps/MpUser_pw_change.bminfo | 26 +- .../Bitmaps/MpUser_pw_change_locked.bminfo | 26 +- .../Bitmaps/mappSERVICES_logo.bminfo | 2 +- .../Borders/CheckBox_checked.bdr | 2 +- .../Borders/Mp_BitmapFrame.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_Button.bdr | 2 +- .../Borders/Mp_Button_Control.bdr | 2 +- .../Borders/Mp_Button_Control_pressed.bdr | 2 +- .../Borders/Mp_Button_Device_Select_Left.bdr | 2 +- .../Mp_Button_Device_Unselect_Left.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Down.bdr | 2 +- .../Mp_Button_Multi_Scroll_Dwn_press.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Up.bdr | 2 +- .../Mp_Button_Multi_Scroll_Up_press.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_Multi.bdr | 2 +- .../Mp_Button_Scroll_Left_Multi_pres.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_pressed.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right_Multi.bdr | 2 +- .../Mp_Button_Scroll_Right_Multi_pr.bdr | 2 +- .../Mp_Button_Scroll_Right_pressed.bdr | 2 +- .../Borders/Mp_Button_pressed.bdr | 2 +- .../Borders/Mp_CheckBox_checked.bdr | 2 +- .../Borders/Mp_DataNameFrame.bdr | 2 +- .../Borders/Mp_Flat_grey.bdr | 2 +- .../Borders/Mp_FrameInvisible.bdr | 2 +- .../Borders/Mp_GroupControl.bdr | 2 +- .../Borders/Mp_InputBorder.bdr | 2 +- .../Borders/Mp_LabelBorder.bdr | 2 +- .../Borders/Mp_LabelBorderDown.bdr | 2 +- .../Borders/Mp_LabelBorderSlim.bdr | 2 +- .../Borders/Mp_LabelBorder_Orange.bdr | 2 +- .../Borders/Mp_ListBoxCenter.bdr | 2 +- .../Borders/Mp_ListBoxLeft.bdr | 2 +- .../Borders/Mp_ListBoxRight.bdr | 2 +- .../Borders/Mp_OutputBorder.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_RangeBar.bdr | 2 +- .../Borders/Mp_SliderBorder09.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_SunkenNG.bdr | 2 +- .../Borders/Mp_SunkenNGgray.bdr | 2 +- .../Borders/Mp_TabActive.bdr | 2 +- .../Borders/Mp_TabSelect.bdr | 2 +- .../Borders/Mp_TabUnSelect.bdr | 2 +- .../Layers/LockedMessageLayer.layer | 12 +- .../Layers/MpBackground.layer | 6 +- .../Layers/MpOeeControl.layer | 24 +- .../Layers/MpPageControl.layer | 24 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 168 +- .../Pages/MpAlarmXHistory.page | 24 +- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 54 +- .../Pages/MpAlarmXListUI_Backtrace.page | 16 +- .../Pages/MpAlarmXQuery.page | 36 +- .../Pages/MpAuditCustomEventsUI.page | 501 +- .../Pages/MpAuditQueryUI.page | 603 +- .../Pages/MpAuditTrailUI.page | 1249 +- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 20 +- .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 697 +- .../Pages/MpComLoggerUI.page | 54 +- .../Pages/MpDataStatisticsUI.page | 30 +- .../Pages/MpDataTableUI.page | 90 +- .../mappFrameworkVisu/Pages/MpEnergyUI.page | 84 +- .../Pages/MpFileManagerUI.page | 294 +- .../mappFrameworkVisu/Pages/MpOeeCoreUI.page | 6 +- .../mappFrameworkVisu/Pages/MpOeeListUI.page | 148 +- .../Pages/MpOeeTimelineUI.page | 66 +- .../mappFrameworkVisu/Pages/MpOeeTrendUI.page | 66 +- .../Pages/MpPackMLBasicUI.page | 176 +- .../Pages/MpPackMLStatisticsUI.page | 30 +- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 550 +- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 425 +- .../VC4/mappFrameworkVisu/Pages/MpSetup.page | 26 +- .../Pages/MpTweetCoreUI_Alarm.page | 18 +- .../Pages/MpTweetCoreUI_Receiver.page | 84 +- .../Pages/MpUserXManagerUI_Roles.page | 90 +- .../Pages/MpUserXManagerUI_Users.page | 268 +- .../Pages/mapp1StartPage.page | 122 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 162 +- .../TouchPads/MpAlphaPad.tpr | 1222 +- .../TouchPads/MpNavigationPad_ver.tpr | 64 +- .../mappFrameworkVisu/TouchPads/MpNumPad.tpr | 160 +- .../mappFrameworkVisu/Trends/MpOeeTrendUI.tre | 5 + .../Trends/MpOeeTrendUI_Availability.trd | 34 +- .../Trends/MpOeeTrendUI_OEE.trd | 34 +- .../Trends/MpOeeTrendUI_Performance.trd | 34 +- .../Trends/MpOeeTrendUI_Quality.trd | 34 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 2082 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 16328 ++++++++-------- .../Logical/VCShared/DataSources/Internal.dso | 372 +- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 148 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 120 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 18 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 120 +- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 12 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 96 +- .../TextGroups/MpAlarmXListCode.txtgrp | 120 +- .../TextGroups/MpAlarmXListEventID.txtgrp | 30 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 30 +- .../TextGroups/MpAlarmXListState.txtgrp | 120 +- .../TextGroups/MpAlarmXListStatus.txtgrp | 12 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 36 +- .../TextGroups/MpAlarmXListUIText.txtgrp | 150 +- .../MpAuditArchiveFileTypeDP.txtgrp | 18 +- .../MpAuditArchiveSettingsDP.txtgrp | 18 +- .../TextGroups/MpAuditTrailUIText.txtgrp | 174 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 18 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 12 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 2 +- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 60 +- .../TextGroups/MpBackupUITexts.txtgrp | 171 +- .../TextGroups/MpComLoggerUIText.txtgrp | 48 +- .../MpDataStatisticsUIStatus.txtgrp | 18 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 96 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 18 +- .../TextGroups/MpDataTableUIText.txtgrp | 96 +- .../TextGroups/MpDateTimeFormats.txtgrp | 24 +- .../TextGroups/MpEnergyCoreStatus.txtgrp | 12 +- .../TextGroups/MpEnergyCoreUIText.txtgrp | 198 +- .../TextGroups/MpEnergyForwardEnergy.txtgrp | 120 +- .../TextGroups/MpEnergyReverseEnergy.txtgrp | 120 +- .../TextGroups/MpFileManagerUIDevices.txtgrp | 60 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 18 +- .../MpFileManagerUIMessageBox.txtgrp | 48 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 78 +- .../TextGroups/MpFileManagerUIText.txtgrp | 180 +- .../VCShared/TextGroups/MpLanguages.txtgrp | 12 +- .../TextGroups/MpOeeCoreUIText.txtgrp | 126 +- .../TextGroups/MpOeeCoreUITime.txtgrp | 24 +- .../TextGroups/MpOeeListUIText.txtgrp | 102 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 36 +- .../MpOeeTimelineUIProductionState.txtgrp | 24 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 96 +- .../TextGroups/MpOeeTrendUIText.txtgrp | 96 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 48 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 66 +- .../TextGroups/MpPackMLModesNames.txtgrp | 18 +- .../TextGroups/MpPackMLStateNames.txtgrp | 108 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 318 +- .../MpPackMLStatisticsUIText.txtgrp | 48 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 12 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 12 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 48 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 120 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 42 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 141 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 12 +- .../TextGroups/MpReportUITexts.txtgrp | 294 +- .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 30 +- .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 36 +- .../TextGroups/MpTweetCoreUITexts.txtgrp | 144 +- .../TextGroups/MpTweetCoreUIType.txtgrp | 12 +- .../TextGroups/MpUserXConfirmText.txtgrp | 30 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 36 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 12 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 60 +- .../TextGroups/MpUserXRightLevel.txtgrp | 30 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 54 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 264 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 48 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 312 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 6 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 12 +- .../VCShared/TextGroups/mappComponents.txtgrp | 234 +- .../Logical/VCShared/UnitGroups/Energy.vcug | 42 +- .../Logical/VCShared/UnitGroups/Power.vcug | 42 +- .../VCShared/UnitGroups/Temperatures.vcug | 54 +- mappFramework/Physical/Simulation/PC/Cpu.sw | 11 +- .../Physical/SimulationVC4/PC/Cpu.sw | 53 +- mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 8 - 424 files changed, 19504 insertions(+), 19446 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st index 913b81d0..98c50e37 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st @@ -216,7 +216,7 @@ PROGRAM _CYCLIC FormatDeviceDataProvider; - //vc4 + //---------------------- VC4 ------------------------// IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; @@ -230,14 +230,71 @@ PROGRAM _CYCLIC HmiBackup.Parameters.AutomaticBackup.Device := ''; END_IF; - HmiBackup.Status.Layer.Creating := (BackupState <> BACKUP_CREATING); - HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := NOT HmiBackup.Status.FileOverMax; - HmiBackup.Status.ButtonOperation.OperationCreate := HmiBackup.Status.CreateAllowed; - HmiBackup.Status.ButtonOperation.OperationRestore := HmiBackup.Status.RestoreAllowed; - // HmiBackup.Status.ButtonOperation.OperationDelete := HmiBackup.Status. - // HmiBackup.Status.ButtonOperation.OperationSettings := HmiBackup.Status. - HmiBackup.Status.ButtonOperation.OperationDelete := 1; - HmiBackup.Status.ButtonOperation.OperationSettings := 1; + // Function is not available Layer manager + IF HmiBackup.Status.CmdButtonsPressed AND HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.Layer.FuncNotAvailable := DISPLAY; + ELSE + HmiBackup.Status.Layer.FuncNotAvailable := HIDE; + END_IF; + + // Visibility creating layer + IF BackupState = BACKUP_CREATING THEN + HmiBackup.Status.Layer.Creating := DISPLAY; + ELSE + HmiBackup.Status.Layer.Creating := HIDE; + END_IF; + // Visibility UpDown buttons + IF HmiBackup.Status.FileOverMax THEN + HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := DISPLAY; + ELSE + HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := HIDE; + END_IF; + + // Operation Create Button + IF HmiBackup.Status.CreateAllowed AND NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationCreate := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationCreate := OPERATION_DEACTIVATED; + END_IF; + // Operation Restore Button + IF HmiBackup.Status.RestoreAllowed AND NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationRestore := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationRestore := OPERATION_DEACTIVATED; + END_IF; + // Operation Delete Button + IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_DEACTIVATED; + END_IF; + // Operation Settings Button + IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_DEACTIVATED; + END_IF; + + + //grpBobDetailsStatus Visible/Hide + IF HmiBackup.Status.BackupCtrlEnabled AND HmiBackup.Status.Info.Name <> '' THEN + HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(DISPLAY); + + ELSIF NOT HmiBackup.Status.BackupCtrlEnabled OR HmiBackup.Status.Info.Name = '' THEN + HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(HIDE); + END_IF; + + + //settings contents + IF HmiBackup.Parameters.AutomaticBackup.Enable THEN + HmiBackup.Status.SettingsContentsStatus := USINT_TO_BOOL(DISPLAY); + ELSE + HmiBackup.Status.SettingsContentsStatus := USINT_TO_BOOL(HIDE); + END_IF; + + //-----------------------------------------------------// + // // + //-----------------------------------------------------// diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ index 47c3d505..d912a927 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ @@ -43,6 +43,9 @@ TYPE Update : MpBackupAutoUpdateInfoType; Layer : BackupHmiStatusLayerType; ButtonOperation : BackupHmiStatusButtonOperatiType; + CmdButtonsPressed : BOOL; + grpBobDetailsStatus : BOOL; + SettingsContentsStatus : BOOL; END_STRUCT; BackupHmiStatusButtonOperatiType : STRUCT VisibilityPageUpDown : USINT; @@ -57,6 +60,7 @@ TYPE Delete : USINT; Restore : USINT; Settings : USINT; + FuncNotAvailable : USINT; END_STRUCT; AutomaticBackupType : STRUCT (*Automatic backup settings*) Enable : BOOL; (*Enable automatic backup feature*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var index 87b283f5..1cf8b2c6 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var @@ -28,3 +28,10 @@ END_VAR VAR RETAIN AutomaticBackupRetain : AutomaticBackupType; END_VAR +(**) +VAR CONSTANT + DISPLAY : USINT := 0; + HIDE : USINT := 1; + OPERATION_ACTIVATED : USINT := 1; + OPERATION_DEACTIVATED : USINT := 0; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st index a939118b..5c59f276 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -12,6 +12,26 @@ ACTION HMIActions_Init: END_ACTION +ACTION FormatDeviceDataProvider: + + // Select CF device if USB device is not available + FOR i := 0 TO ((SIZEOF(gUSBAvailable) / SIZEOF(gUSBAvailable[0])) - 1) DO + IF gUSBAvailable[i] THEN + HmiRecipe.Status.DeviceDataProvider[i + 1] := '{"value":"USB'; + brsitoa(i + 1, ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]) + brsstrlen(ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]))); + brsstrcat(ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]), ADR('","text":"USB')); + brsitoa(i + 1, ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]) + brsstrlen(ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]))); + brsstrcat(ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]), ADR('"}')); + MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1] := 'USB'; + brsitoa(i + 1, ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]) + brsstrlen(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]))); + ELSE + brsmemset(ADR(HmiRecipe.Status.DeviceDataProvider[i + 1]), 0, SIZEOF(HmiRecipe.Status.DeviceDataProvider[i + 1])); + brsmemset(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]), 0, SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1])); + END_IF + END_FOR + +END_ACTION + ACTION LoadStatus: // Configure visible recipe list IF MpRecipeUIConnect.Recipe.List.Names[0] = '' THEN @@ -29,7 +49,16 @@ ACTION LoadStatus: END_ACTION ACTION LoadPreview: + + + //invalid Recip Manager + IF HmiRecipe.Status.InvalidRecipe THEN + HmiRecipe.Status.InvalidRecipeLayer := USINT_TO_BOOL(DISPLAY); + ELSE + HmiRecipe.Status.InvalidRecipeLayer := USINT_TO_BOOL(HIDE); + END_IF; + // Category name genarate IF HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX THEN MpRecipeUIConnect.Recipe.Filter := '*par'; @@ -53,6 +82,8 @@ ACTION LoadPreview: HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; END_IF; + + // Create Recipe Layer manager IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN IF HmiRecipe.Status.CreateDialogOpened THEN @@ -84,6 +115,9 @@ ACTION LoadPreview: HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; END_IF; + + + // File Duplicate manager IF HmiRecipe.Commands.CreateRecipe AND HmiRecipe.Status.FileDuplicate AND @@ -95,6 +129,9 @@ ACTION LoadPreview: ELSIF HmiRecipe.Commands.CreateRecipe THEN HmiRecipe.Status.DuplicateLayer := HIDE; END_IF; + + + // Preview Recipe Layer manager IF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN @@ -106,6 +143,8 @@ ACTION LoadPreview: HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := DISPLAY; END_IF; + + // Active Recipe declare IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedProductRecipe; @@ -114,6 +153,9 @@ ACTION LoadPreview: HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedConfigRecipe; END_IF; + + + // Recipe Edit manager IF HmiRecipe.Status.EditRecipeLayer.Save THEN HmiRecipe.Status.EditRecipeLayer.Save := FALSE; @@ -124,6 +166,16 @@ ACTION LoadPreview: HmiRecipe.Commands.LoadRecipe := TRUE; END_IF; + + + + + + + + + + // Load preview when a recipe is selected IF (MpRecipeUIConnect.Recipe.List.SelectedIndex <> HmiRecipe.Status.LastSelectedIndex) OR (HmiRecipe.Status.LastMaxSelection <> MpRecipeUIConnect.Recipe.List.MaxSelection) THEN // Check selected recipe name is not empty @@ -267,6 +319,10 @@ ACTION RecipeHMIcommands: END_CASE + // IF NOT MpRecipe_0.CommandBusy AND brsstrcmp(ADR(HmiRecipe.Status.PreviousRecipe), ADR(HmiRecipe.Parameters.FileName)) <> 0 THEN + // HmiRecipe.Parameters.FileName := HmiRecipe.Status.PreviousRecipe; + // END_IF + // If the Edit or Create dialog boxes open, copy the Preview structure into the Edit structure. IF HmiRecipe.Status.EditDialogOpened OR HmiRecipe.Status.CreateDialogOpened THEN IF (brsstrcmp(ADR(HmiRecipe.Parameters.Category), ADR(PARAMETERS_RECIPE)) = 0) THEN @@ -317,6 +373,9 @@ ACTION RecipeHMIcommands: END_IF END_FOR + // Set whether the loading .gif should be shown on the HMI + HmiRecipe.Status.LoadingRecipeList := (MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_REFRESH); + // Update status information HmiRecipe.Status.LastStatus := MpRecipeUIConnect.Status; HmiRecipe.Status.SelectedRecipe := MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]; diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st index c84b8fd9..d312542d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st @@ -36,6 +36,7 @@ PROGRAM _INIT MpRecipeUI_0(); HmiRecipe.Parameters.Category := PARAMETERS_CATEGORY; + HmiRecipe.Status.DeviceDataProvider[0] := '{"value":"mappRecipeFiles","text":"CF/PLC"}'; HmiRecipe.Parameters.DeviceName := 'mappRecipeFiles'; MpRecipe_0.MpLink := ADR(gMpLinkRecipeXml); MpRecipe_0.Enable := TRUE; @@ -149,6 +150,7 @@ END_PROGRAM PROGRAM _CYCLIC // Call actions + FormatDeviceDataProvider; LoadPreview; RecipeHMIcommands; LoadStatus; diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ index f46c99e1..1aeae2a4 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ @@ -50,6 +50,7 @@ TYPE EditRecipeLayer : RecipeStatusEditRecLayerType; DuplicateLayer : USINT; DeviceValid : BOOL; (*Flag for whether FileDevice is valid. Prevents user from being prompted to load default recipe.*) + InvalidRecipeLayer : BOOL; END_STRUCT; RecipeStatusDefRecLayerType : STRUCT Status : USINT; diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st index 4bdfebfd..8b6df114 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -102,7 +102,7 @@ ACTION ReportFileExplorer: MpReportCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); - + @@ -110,9 +110,16 @@ ACTION ReportFileExplorer: IF HmiReport.Status.Error THEN HmiReport.Status.Layer.ReportCreate := HIDE; END_IF; - HmiReport.Status.PageUpDownVisibility := NOT HmiReport.Status.FileOverMax; - HtmlView; - + IF HmiReport.Status.DeleteAllowed THEN + HmiReport.Status.DeleteButtonEnableStatus := HIDE; + ELSE + HmiReport.Status.DeleteButtonEnableStatus := DISPLAY; + END_IF; + IF HmiReport.Status.FileOverMax THEN + HmiReport.Status.PageUpDownVisibility := DISPLAY; + ELSE + HmiReport.Status.PageUpDownVisibility := HIDE; + END_IF; diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ index 0d65a518..f63da6cd 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ @@ -37,6 +37,7 @@ TYPE FilterString : STRING[1000]; (*String used to filter out any file that is not a PDF*) Layer : ReportStatusLayerType; PageUpDownVisibility : USINT; + DeleteButtonEnableStatus : BOOL; END_STRUCT; ReportExampleType : STRUCT (*Structure for the example data used by the two types of reports*) SimpleReport : SimpleReportDataType; (*Structure for the simple report's example data*) @@ -78,19 +79,10 @@ END_TYPE TYPE ReportStatusLayerType : STRUCT - ReportCreate : USINT; - ReportDelete : USINT; - ReportView : USINT; + ReportCreate : BOOL; + ReportDelete : BOOL; END_STRUCT; END_TYPE (**) (**) - -TYPE - HtmlViewType : STRUCT - HTMLStream : STRING[255]; - ChangeURLDatapoint : STRING[255]; - CurrentURLDatapoint : STRING[255]; - END_STRUCT; -END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var index 171f3680..d6453c4b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var @@ -25,10 +25,7 @@ VAR END_VAR (**) VAR CONSTANT - DISPLAY : USINT := 0; - HIDE : USINT := 1; + DISPLAY : BOOL := FALSE; + HIDE : BOOL := TRUE; END_VAR (**) -VAR - HtmlView : HtmlViewType; -END_VAR diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp index dd5c9bd3..7637fa69 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp index 15ac1839..19d316f3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp index 5763ee8a..bfd2cd39 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp index 5e940156..c4bf63be 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.bminfo index 42d9ba4e..296f457b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_Backtrace.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.bminfo index 58eb5abe..e8e35fb2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_List.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.bminfo index cca8e25d..10e35e8f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListDetail.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.bminfo index 9d1df2e2..be1b9152 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarmX_ListHistory.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.bminfo index 55ac2c44..7696c55d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Active.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.bminfo index 99d3480f..092724a3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_BypassON.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.bminfo index 0d905ad6..dfc528f5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Inactive.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.bminfo index 7cc4b8c4..38e216da 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_NotQuit.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.bminfo index 4d56b1a2..adb15a21 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_Quit.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.bminfo index e81e2442..156333ab 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpAlarm_QuitAll.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.bminfo index 72b8b3cc..6838ac37 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackTransparent.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.bminfo index 3ffee873..53bba8e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBackgroundWVGA_Logo.bminfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.bminfo index fd392b97..273749a6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpBorderSlider09x09.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control.bminfo index 814d6f91..1be004a3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.bminfo index 1adb1322..69a00215 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_control_pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.bminfo index fcda2fbc..84ac6506 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.bminfo index 96388729..92240aa8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_decrease_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.bminfo index edc48f9e..e6706360 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default.bminfo @@ -1,19 +1,19 @@ - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.bminfo index 31d8ab64..ec0861f1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_default_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.bminfo index efb1c713..4a4d8f15 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_selected_left.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.bminfo index 105078af..ee49bd39 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_device_unselected_left.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.bminfo index fa4dfe2a..a6c1c921 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_error.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.bminfo index 3dc217cc..451a27e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.bminfo index aa3cdc8d..e3006278 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_bottom.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.bminfo index 8a8fc65f..6bf4f01b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_left.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.bminfo index b2b3b676..ea00668c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_bottom.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.bminfo index b08c4555..778019d8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pres_top.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.bminfo index 4bed96bc..04b2fc18 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_press_left.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.bminfo index c9c810d4..2010618c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.bminfo index 59a4542d..ba3384bd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_global_area_top.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.bminfo index 09e9b242..d3ae6d7f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.bminfo index ecefa8d1..c27652f5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_increase_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.bminfo index d72b853a..98819984 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_off.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.bminfo index 7e2aae88..1aaac0df 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_on.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.bminfo index 44216664..4407e7d3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_selected.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.bminfo index c3f149de..773a41fb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_radio_unselected.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.bminfo index 60f8a1e9..c747f04d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_ready.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.bminfo index 53eabf68..e991b32d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.bminfo index 794988a8..a9065ca4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.bminfo index 82cd1f8d..e3960dba 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_multi_press.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.bminfo index 51a9f0b2..1377a9ea 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_down_pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.bminfo index ca9f2f59..acaee265 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.bminfo index 5c9a5e55..bde5f9ff 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.bminfo index 3af18442..f7495a14 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_multi_press.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.bminfo index 396f365e..4389e376 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_left_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.bminfo index 33a158d6..30797049 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.bminfo index 7fe87537..1f5e1e87 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo index f95e2225..4a4930bf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_multi_pres.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.bminfo index 05efd14f..488c65ee 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_right_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.bminfo index b8b418b2..8c751ecd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.bminfo index fd4347f0..44cf92bf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo index 786e3965..cd52cc9a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_multi_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.bminfo index 28cdbfba..2056100f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpButton_scroll_up_pressed.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.bminfo index dcc3b808..035469a9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.bminfo index 5e1a3ccf..79f14059 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_checked.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.bminfo index 2aa079d9..c23954e0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpCheckbox_small_gray.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.bminfo index afef9af4..8287cb02 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerAlarm.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.bminfo index c53efc0f..dfe73c77 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerInformation.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.bminfo index d078c81d..da773016 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerUI.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.bminfo index 86e03284..830c3a6a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpComLoggerWarning.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.bminfo index 4cf7b258..7d6955c5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_DevBorder.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.bminfo index c0ec0cef..e19e2db7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_LowerLimit.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.bminfo index a2479144..5beea362 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MaxBorder.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.bminfo index 4e97ebaa..d58aa230 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MeanBorder.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.bminfo index 8084e47a..48e768bb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_MinBorder.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.bminfo index ef9593f7..187ee004 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_NoLimit.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.bminfo index b6ce59d7..a4eacd7c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_RangeBorder.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.bminfo index 7550c84b..78f862cb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_UpperLimit.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.bminfo index f6aea828..4db01a06 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpData_WithinLimit.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.bminfo index 47fd2e2a..75f543c6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowDown.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.bminfo index e5c0aed2..d9865a2a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowLeft.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.bminfo index 8c67a730..629938f1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowRight.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.bminfo index ba0dd492..b4e568b4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_ArrowUp.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.bminfo index d3fc4f39..14c520e7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_BMP.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.bminfo index 99d62a23..6415d1e8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_CSV.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.bminfo index f2b7e759..b8ce13bc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Cancel.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.bminfo index f476f685..25adc7ec 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_DOC.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.bminfo index 5b97b96e..4dc117cb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FILE.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.bminfo index d8d315de..156db650 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_FOLDER.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.bminfo index 5466c6a4..6bb4851b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_HTML.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.bminfo index 7eebd1e8..57012ca9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_JPG.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.bminfo index 5fa46585..f2aebc95 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_OK.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.bminfo index 833af8cb..ab2f0eb5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_PDF.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.bminfo index 6bdf23bb..3f18a4dd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_TXT.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.bminfo index 66677fe5..19bc0691 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_UNKOWN.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.bminfo index ba076b3c..3fd14b10 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER1.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.bminfo index e0bc23fa..3f9d22d0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER10.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.bminfo index 0e26c029..61da5114 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER2.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.bminfo index 716dbcc4..0f6d61bf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER3.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.bminfo index a1f12081..e0d5ecee 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER4.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.bminfo index dfba99c3..360cbabb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER5.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.bminfo index a6b1e606..7c5626ee 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER6.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.bminfo index 8ba958f3..3871a325 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER7.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.bminfo index 164a03d1..7250195e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER8.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.bminfo index 7e53337f..ef2ba812 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_USER9.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.bminfo index c0774c2f..1d4290ad 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XLS.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.bminfo index 7682db3e..341ce905 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_XML.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.bminfo index db980ccf..ddebd1fb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameHeader.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.bminfo index da92cddc..d98a9bfa 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFrameInvisible.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.bminfo index a692dc17..f4ca78f4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpGroupControl.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.bminfo index 4b1f2f43..92942e66 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarm.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.bminfo index d1b0ab32..94a0d9cd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.bminfo index 0a5617c4..fc7ad327 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo index b53cbf32..cd62ce91 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAlarmXHistoryClick.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.bminfo index 08222b5c..ab95c746 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAudit.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.bminfo index 8eac481f..7c143498 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAuditClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.bminfo index f95b9813..fc772bc6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.bminfo index 5bfef08e..24b9e412 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.bminfo index 782da9bd..1d36dccd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxis1Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.bminfo index c68c80a2..cab99cf3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpAxisClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.bminfo index 35619c70..65be176f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.bminfo index cdb1950d..1593d513 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc1.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.bminfo index ea5051e8..83949775 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc2Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.bminfo index 3e4eb983..f9edc3d6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCnc3Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.bminfo index 31084bab..23296d9e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpCom.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.bminfo index f85bf829..f7b3e7a9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpComClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.bminfo index 12e71c85..6b031d26 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpData.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.bminfo index 48aaf822..689d0d28 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDataClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.bminfo index 3c1a5568..a0405551 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.bminfo index 35e93433..1cbdfcc8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta1.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.bminfo index b0347ee7..79fcfd9c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta3Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.bminfo index fe5ce789..cec91cf0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpDelta4Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.bminfo index 9d8305df..6278be49 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergy.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.bminfo index 7071dd0c..10fc16fe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpEnergyClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.bminfo index 7e9e90cf..19738e51 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFile.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.bminfo index 6133c7e0..1a437131 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpFileClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.bminfo index 38a47952..c211f467 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOee.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.bminfo index f7f84920..be97c061 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.bminfo index 912edb92..0b62af4b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeList.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.bminfo index dd2a5be5..a3751616 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTimeline.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.bminfo index 0e075f7a..126cbbc7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpOeeTrend.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.bminfo index c17587d0..d449d5dc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackML.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.bminfo index a4cd3249..6a5bf194 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpPackMLClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.bminfo index 5f565ebe..daa51e20 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipe.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.bminfo index 536416cd..8b09c51a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.bminfo index 5ca9ec67..c36847d2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeX.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.bminfo index 3954ea5c..6db8d98c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRecipeXClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.bminfo index 6fbe7e0a..b5a92616 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo index 3055d8b9..9d3e5aac 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm4Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.bminfo index ddb67931..5a9ead5b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo index 5592c9f8..e615a132 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm5Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.bminfo index 820fffbe..380d957b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo index 60079fed..f850ce15 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpRoboArm6Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.bminfo index 947ceb1d..485c4205 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSafetyXClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.bminfo index 063d56e4..d0e0a8d6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.bminfo index b97f32e0..9858d5a7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara1.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.bminfo index ee76b028..947e2873 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara2Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.bminfo index 58087179..24240991 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpScara4Click.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.bminfo index 49725ce0..fb753941 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindle.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.bminfo index 89b8094f..978eaeb1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpSpindleClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.bminfo index 1e969277..89f5bbd6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeach.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.bminfo index 7f538ebc..57adac5d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTeachClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.bminfo index a97a9bab..ffe48487 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrend.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.bminfo index e04115e4..ace5c4aa 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTrendClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.bminfo index 28b87ea3..cc63519b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpTweetClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.bminfo index 98f9186b..a1a3a1f6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.bminfo index ec065d55..1da41c93 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUser1.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.bminfo index 5cbd9d2c..a6e9051a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.bminfo index 66cdbbba..4bcc5996 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick1.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.bminfo index 33abaaf1..5e85c97d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserClick2.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.bminfo index 3eb58e68..3c795017 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpUserXClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.bminfo index fb978aa4..7ed3a6ca 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXs.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.bminfo index eecfb460..4de04a86 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWebXsClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.bminfo index ddc07d46..7979a4f6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinder.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.bminfo index c0ad03d7..98341699 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_MpWinderClick.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.bminfo index 57b92cf1..2c44893b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_mapp.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.bminfo index 7bcd129d..e4e0144f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Config.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.bminfo index d219abd1..5e414483 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Diagnostics.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.bminfo index ff393a10..decc5bb1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Home.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.bminfo index 9191dfe6..30f061f8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpImg_Warning.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.bminfo index 4502cafa..71abdd8c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorder.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.bminfo index f9a9fecf..5f32eec2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderCenterless.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.bminfo index 0e224956..880dc2d9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactive.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.bminfo index a7f772c5..45a3f66b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpInputBorderInactiveCenterless.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.bminfo index 89a17061..83bbfee1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lower.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo index 202cf824..e826d67d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_lowerPressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.bminfo index 727d11de..15452cea 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo index c53866fa..7a5eebaa 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo index 090e26f7..7676fa7e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numeric2Pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo index af548dd6..ae4fc65b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_numericPressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.bminfo index 42e5f02f..1f05da21 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upper.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo index eb0f162a..a9774752 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_AlphaPad_upperPressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.bminfo index 48ae70c4..3336c273 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lower.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo index 27f8459b..07c52485 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_lowerPressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.bminfo index 133cadc3..377e51f9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.bminfo index f0ee02dd..0a4a4546 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo index 178d10d0..dd214975 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numeric2Pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.bminfo index 2066634f..c9bd1f01 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_numericPressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.bminfo index 5bbaf1c1..70e29c8a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upper.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.bminfo index 06167f34..90a31ce9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_EditPad_upperPressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.bminfo index 4ae96ce7..792c35e7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.bminfo index 1c1bab2f..7813c594 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadHor_pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.bminfo index 384fabcb..2e43e828 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.bminfo index 74d4de3e..1d1f80c5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_ListPadVer_pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.bminfo index 99bf9f11..2dd0d87c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.bminfo index 88e68e24..8633b6d1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpKey_Numpad_pressed.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.bminfo index 7f6a20bc..8df58201 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorder.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.bminfo index efb5d7af..d873653d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.bminfo index 80d844de..1a0622c9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderDown_Orange.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.bminfo index b069a4c9..b1cf1f66 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderLeft.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.bminfo index d77571e5..b9814181 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpLabelBorderSlim.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.bminfo index 3c62fb98..5ad6da76 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameCenter.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.bminfo index 6c29db05..2776bdd7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameLeft.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.bminfo index 178da3c8..24b1b325 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpListboxFrameRight.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.bminfo index 69f689ab..f2e7fdd1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpOutputBorder.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.bminfo index 31b8bd55..b52fbb47 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueOFF.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.bminfo index 7ae6a5f2..cccc8b11 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_BlueON.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.bminfo index 8dd934c3..a744136d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenOFF.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.bminfo index 823ca131..5ab38f4d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_GreenON.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.bminfo index d7fee3ae..37947b81 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_Main.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.bminfo index 91b126d8..c57429e4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowOFF.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.bminfo index 2f13f644..35b89e3b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpPackML_YellowON.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.bminfo index e3433617..69e4adf2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpProgressBorder.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.bminfo index e0a32e05..3626eb43 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpSlider_BallGray.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.bminfo index b1a7362c..e9fdd2c1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_selected.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.bminfo index 7b43a746..f97a6180 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpTeach_Point_unselected_odd.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.bminfo index 751be8cd..3b3f4ec6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.bminfo index d1bd68eb..c753cd41 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_add_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.bminfo index 424be841..f29c6d21 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.bminfo index 519fdc0a..55fab277 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_delete_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.bminfo index 951d1f19..49873fbc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.bminfo index b8a54bd4..381e2fae 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUserGroup_edit_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.bminfo index 5a4f02d5..e3860eb7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_CriteriaError.bminfo @@ -1,14 +1,14 @@ - - + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.bminfo index 25a31bc6..587ef540 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.bminfo index 0b806021..32324a7f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Exit_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.bminfo index f27e19d8..6b62601a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.bminfo index 5aac9b99..2fb5296b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Export_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.bminfo index a9c1b946..b6f20d92 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.bminfo index a65e4d1c..e9ba6af2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_Import_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.bminfo index 5403932d..74f81037 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.bminfo index 18ea1869..55c974cf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_add_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.bminfo index 4d9c8a7d..d01a41b9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_clock_stop.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.bminfo index f1394358..4cc44f71 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.bminfo index 71bb69d1..4707e376 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_delete_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.bminfo index d1b6d05d..5da1120c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.bminfo index 9562b5d5..3899cc8d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_edit_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.bminfo index 1755670d..52817608 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.bminfo index d80ac654..2d3a43d8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_lock_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.bminfo index 3df9137d..5b9c8a72 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.bminfo index 405ec0c6..bc542cae 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpUser_pw_change_locked.bminfo @@ -1,15 +1,15 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.bminfo index c7919634..dbc7ad95 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappSERVICES_logo.bminfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr index df5e28d4..7592c19b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr index 7678681f..f68624e1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr index daa034ab..3a06a71e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr index 7924a897..b1168cc6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr index ed446c2c..ab1d23a2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr index d06c55f6..f2774dfe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr index 40a2be33..738127ff 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr index 29303810..c591fd13 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr index 84977485..a8f40f22 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr index 76b59db1..84474499 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr index 5a28f03f..cd05f67c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr index bdece365..6b4c45ac 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr index 6f458f89..cec2835e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr index be6dd5db..c584eb9a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr index 50e3706f..bb7632d6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr index 528ffb2c..cadb57e8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr index aad77720..fad588eb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr index 12d3c25a..4a66802b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr index 617786ff..37a863c9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr index b5f4c27d..ebbe19fb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr index dcc2f205..cb5bcdcf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr index 16a16701..66b2fd67 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr index da4d224c..155197b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr index ba89734f..67903832 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr index d8153748..9b73f4a4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr index 20e4df3b..85b81a05 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr index 8d3a1961..6f91edec 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr index 4a63d258..74c03be6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr index 4706ef0b..b6f9b030 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr index f743062b..771ebc66 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr index 0ed59b8d..ce3c0726 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr index e47443bc..6cf1e8e1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr index a8b0c405..29169210 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr index ac55a465..8dffa2b5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr index 26268ea5..5a937ebc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr index fa400860..d94c3c6f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr index 193596e5..686e2f7d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr index 937e079d..17365678 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr index a3217c90..05c57ac2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr index dfbea32b..2b96dadc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr index 51a19583..33453874 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 115fbcdc..07895333 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -17,13 +17,13 @@ - + - + @@ -72,7 +72,7 @@ - + @@ -87,12 +87,12 @@ - + - + @@ -107,7 +107,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index a2a75674..2bcc25b1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -90,18 +90,18 @@ - + - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer index eac10e60..13c7aff0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer @@ -23,7 +23,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -113,7 +113,7 @@ - + @@ -131,12 +131,12 @@ - + - + @@ -149,7 +149,7 @@ - + @@ -162,7 +162,7 @@ - + @@ -175,7 +175,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index a8dba7ee..c1710dec 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -24,7 +24,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -115,12 +115,12 @@ - + - + @@ -133,7 +133,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -159,7 +159,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index fdc0e06d..bb26ba33 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + @@ -40,10 +40,10 @@ - + @@ -52,8 +52,8 @@ - + @@ -376,140 +376,140 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - - - + + + - - - - - - - - - - - - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index 9e4043af..d977d9d3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -1084,7 +1084,7 @@ - + @@ -1092,36 +1092,36 @@ - + - + - - - + - - + + - + - + + + - - + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index 7176a3a4..8ace5767 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -65,7 +65,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -143,7 +143,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -162,7 +162,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -261,7 +261,7 @@ - + @@ -775,7 +775,7 @@ - + @@ -790,7 +790,7 @@ - + @@ -970,7 +970,7 @@ - + @@ -985,7 +985,7 @@ - + @@ -1010,7 +1010,7 @@ - + @@ -1025,12 +1025,12 @@ - + - + @@ -1045,7 +1045,7 @@ - + @@ -1060,7 +1060,7 @@ - + @@ -1075,7 +1075,7 @@ - + @@ -1090,7 +1090,7 @@ - + @@ -1105,7 +1105,7 @@ - + @@ -1120,7 +1120,7 @@ - + @@ -1133,7 +1133,7 @@ - + @@ -1146,7 +1146,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index 50f12f59..7a34b11d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -190,7 +190,7 @@ - + @@ -205,7 +205,7 @@ - + @@ -527,7 +527,7 @@ - + @@ -542,12 +542,12 @@ - + - + @@ -555,12 +555,12 @@ - + - + @@ -568,7 +568,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 3a3a9695..c50c439e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -347,7 +347,7 @@ - + @@ -362,7 +362,7 @@ - + @@ -372,7 +372,7 @@ - + @@ -387,7 +387,7 @@ - + @@ -397,7 +397,7 @@ - + @@ -412,28 +412,25 @@ - + - + - - - + - - - + + - + @@ -446,16 +443,19 @@ - + - + + + - - + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index 66676020..39f5b0f3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -64,7 +64,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -100,7 +100,7 @@ - + @@ -163,7 +163,7 @@ - + @@ -174,7 +174,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -202,7 +202,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -223,7 +223,7 @@ - + @@ -235,7 +235,7 @@ - + @@ -258,7 +258,7 @@ - + @@ -271,7 +271,7 @@ - + @@ -284,7 +284,7 @@ - + @@ -299,7 +299,7 @@ - + @@ -314,7 +314,7 @@ - + @@ -329,7 +329,7 @@ - + @@ -363,28 +363,28 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -407,7 +407,7 @@ - + @@ -442,7 +442,7 @@ - + @@ -456,7 +456,7 @@ - + @@ -483,7 +483,7 @@ - + @@ -497,31 +497,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -537,42 +513,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -858,7 +798,7 @@ - + @@ -872,7 +812,7 @@ - + @@ -881,7 +821,7 @@ - + @@ -899,34 +839,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -946,23 +859,6 @@ - - - - - - - - - - - - - - - - - @@ -971,7 +867,7 @@ - + @@ -982,8 +878,8 @@ - - + + @@ -994,7 +890,7 @@ - + @@ -1005,148 +901,13 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1162,7 +923,7 @@ - + @@ -1178,23 +939,7 @@ - - - - - - - - - - - - - - - - - + @@ -1210,7 +955,7 @@ - + @@ -1226,23 +971,7 @@ - - - - - - - - - - - - - - - - - + @@ -1257,7 +986,7 @@ - + @@ -1272,54 +1001,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1397,7 +1078,7 @@ - + @@ -1409,7 +1090,7 @@ - + @@ -1420,7 +1101,7 @@ - + @@ -1432,12 +1113,12 @@ - + - + @@ -1452,7 +1133,7 @@ - + @@ -1485,10 +1166,10 @@ - + - - + + @@ -1496,18 +1177,6 @@ - - - - - - - - - - - - @@ -1568,36 +1237,20 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index 6e65d3b2..a40889db 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -64,7 +64,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -100,7 +100,7 @@ - + @@ -243,7 +243,7 @@ - + @@ -257,7 +257,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -300,7 +300,7 @@ - + @@ -313,7 +313,7 @@ - + @@ -347,28 +347,28 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -391,15 +391,15 @@ - - + + - + @@ -409,14 +409,14 @@ - + - + @@ -426,10 +426,10 @@ - + - + @@ -439,8 +439,8 @@ - - + + @@ -450,14 +450,14 @@ - + - + @@ -467,10 +467,10 @@ - + - + @@ -480,32 +480,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -514,55 +490,19 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -570,7 +510,7 @@ - + @@ -580,7 +520,7 @@ - + @@ -589,7 +529,7 @@ - + @@ -599,7 +539,7 @@ - + @@ -608,7 +548,7 @@ - + @@ -618,7 +558,7 @@ - + @@ -627,7 +567,7 @@ - + @@ -637,7 +577,7 @@ - + @@ -646,7 +586,7 @@ - + @@ -656,14 +596,14 @@ - + - + @@ -671,14 +611,14 @@ - + - + @@ -686,14 +626,14 @@ - + - + @@ -701,7 +641,7 @@ - + @@ -709,7 +649,7 @@ - + @@ -719,7 +659,7 @@ - + @@ -728,7 +668,7 @@ - + @@ -738,7 +678,7 @@ - + @@ -747,7 +687,7 @@ - + @@ -757,7 +697,7 @@ - + @@ -766,7 +706,7 @@ - + @@ -776,7 +716,7 @@ - + @@ -785,7 +725,7 @@ - + @@ -795,14 +735,14 @@ - + - + @@ -810,14 +750,14 @@ - + - + @@ -825,14 +765,14 @@ - + - + @@ -842,10 +782,10 @@ - + - + @@ -855,8 +795,8 @@ - - + + @@ -865,11 +805,11 @@ - + - + @@ -882,35 +822,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -920,31 +833,14 @@ - + - - - - - - - - - - - - - - - - - - + @@ -955,10 +851,10 @@ - + - + @@ -966,8 +862,8 @@ - - + + @@ -978,10 +874,10 @@ - + - + @@ -989,148 +885,13 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1146,7 +907,7 @@ - + @@ -1162,23 +923,7 @@ - - - - - - - - - - - - - - - - - + @@ -1194,7 +939,7 @@ - + @@ -1210,23 +955,7 @@ - - - - - - - - - - - - - - - - - + @@ -1241,7 +970,7 @@ - + @@ -1256,54 +985,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1381,7 +1062,7 @@ - + @@ -1393,7 +1074,7 @@ - + @@ -1404,7 +1085,7 @@ - + @@ -1416,12 +1097,12 @@ - + - + @@ -1436,7 +1117,7 @@ - + @@ -1493,7 +1174,7 @@ - + @@ -1507,7 +1188,7 @@ - + @@ -1539,7 +1220,7 @@ - + @@ -1578,23 +1259,11 @@ - + - + - - - - - - - - - - - - @@ -1626,7 +1295,7 @@ - + @@ -1655,46 +1324,30 @@ - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 91549484..aaea3928 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -38,243 +38,32 @@ - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -282,8 +71,8 @@ - - + + @@ -300,7 +89,7 @@ - + @@ -310,18 +99,18 @@ - + - + - - + + @@ -329,18 +118,18 @@ - + - + - - + + @@ -349,10 +138,10 @@ - + - + @@ -360,8 +149,8 @@ - - + + @@ -370,10 +159,10 @@ - + - + @@ -381,161 +170,29 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -546,16 +203,16 @@ - - - + + + - + @@ -569,7 +226,7 @@ - + @@ -577,7 +234,7 @@ - + @@ -591,7 +248,7 @@ - + @@ -600,9 +257,9 @@ - + - + @@ -617,8 +274,8 @@ - - + + @@ -628,25 +285,25 @@ - + - - + + - + - + @@ -656,13 +313,13 @@ - - - + + + - + @@ -677,7 +334,7 @@ - + @@ -688,11 +345,11 @@ - + - + @@ -702,42 +359,38 @@ - - + + - + - - - + - - + + - + - - - + - - + + - + @@ -748,37 +401,41 @@ - + - + - + + + - - + + - + - + + + - - + + - + @@ -788,8 +445,8 @@ - - + + @@ -812,28 +469,28 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -856,7 +513,7 @@ - + @@ -891,7 +548,7 @@ - + @@ -905,7 +562,7 @@ - + @@ -932,7 +589,7 @@ - + @@ -946,31 +603,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -986,42 +619,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1275,255 +872,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - + - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + @@ -1536,35 +917,22 @@ - - + + - - - - - - - - - - - - - - + - + - + @@ -1576,26 +944,76 @@ - - + + - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -1610,7 +1028,7 @@ - + @@ -1626,7 +1044,7 @@ - + @@ -1642,39 +1060,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1690,7 +1076,7 @@ - + @@ -1706,55 +1092,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1846,7 +1184,7 @@ - + @@ -1858,7 +1196,7 @@ - + @@ -1869,7 +1207,7 @@ - + @@ -1881,12 +1219,12 @@ - + - + @@ -1901,7 +1239,7 @@ - + @@ -1948,26 +1286,26 @@ - + - + - + - + - + @@ -1985,7 +1323,7 @@ - + @@ -2006,7 +1344,7 @@ - + @@ -2019,7 +1357,7 @@ - + @@ -2028,7 +1366,7 @@ - + @@ -2045,7 +1383,7 @@ - + @@ -2287,22 +1625,23 @@ - + - + + - + - + @@ -2317,7 +1656,7 @@ - + @@ -2328,32 +1667,31 @@ - + + + + + + + - + - + - - - - - - - + - - + - + @@ -2384,7 +1722,7 @@ - + @@ -2399,10 +1737,10 @@ - + - + @@ -2413,9 +1751,9 @@ - - - + + + @@ -2423,10 +1761,10 @@ - + - + @@ -2436,13 +1774,13 @@ - - - + + + - + @@ -2457,7 +1795,7 @@ - + @@ -2477,29 +1815,17 @@ - - - - + + + + - - + + - - - - - - - - - - - - @@ -2527,17 +1853,17 @@ - + - + - + @@ -2557,26 +1883,14 @@ - + - - - - - - - - - - - - - - + + - + @@ -2585,51 +1899,42 @@ - - - - + + + + - - + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index c6400be4..fbabced1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + @@ -1278,14 +1278,14 @@ - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index 19a2d8dd..8e7595a1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -214,7 +214,7 @@ - + @@ -229,7 +229,7 @@ - + @@ -237,7 +237,7 @@ - + @@ -252,7 +252,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -283,7 +283,7 @@ - + @@ -298,7 +298,7 @@ - + @@ -306,7 +306,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -330,7 +330,7 @@ - + @@ -346,7 +346,7 @@ - + @@ -359,6 +359,7 @@ + @@ -372,6 +373,7 @@ + @@ -385,6 +387,7 @@ + @@ -401,6 +404,7 @@ + @@ -417,6 +421,7 @@ + @@ -432,6 +437,7 @@ + @@ -445,6 +451,7 @@ + @@ -458,6 +465,7 @@ + @@ -470,10 +478,11 @@ - + + @@ -486,7 +495,7 @@ - + @@ -496,10 +505,11 @@ - + + @@ -512,7 +522,7 @@ - + @@ -522,10 +532,11 @@ - + + @@ -538,7 +549,7 @@ - + @@ -548,10 +559,11 @@ - + + @@ -564,12 +576,93 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -580,11 +673,11 @@ - + - + @@ -595,11 +688,11 @@ - + - + @@ -609,21 +702,27 @@ - - + + + + + + + + - + - + - + @@ -633,12 +732,12 @@ - - + + - + @@ -648,12 +747,12 @@ - - + + - + @@ -663,12 +762,12 @@ - - + + - + @@ -678,12 +777,12 @@ - - + + - + @@ -694,11 +793,56 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -713,6 +857,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -745,26 +943,26 @@ - + - + - + - + - + @@ -782,7 +980,7 @@ - + @@ -795,7 +993,7 @@ - + @@ -803,7 +1001,7 @@ - + @@ -843,7 +1041,7 @@ - + @@ -860,7 +1058,7 @@ - + @@ -898,6 +1096,7 @@ + @@ -911,9 +1110,10 @@ - + + @@ -930,6 +1130,7 @@ + @@ -946,7 +1147,7 @@ - + @@ -960,7 +1161,7 @@ - + @@ -972,12 +1173,13 @@ + - + @@ -988,6 +1190,7 @@ + @@ -1004,6 +1207,7 @@ + @@ -1030,6 +1234,7 @@ + @@ -1046,7 +1251,7 @@ - + @@ -1073,6 +1278,7 @@ + @@ -1092,7 +1298,7 @@ - + @@ -1112,7 +1318,7 @@ - + @@ -1132,7 +1338,7 @@ - + @@ -1147,6 +1353,7 @@ + @@ -1154,31 +1361,39 @@ - + - + + - + - + + + + + + + - + + - + - + @@ -1193,7 +1408,7 @@ - + @@ -1208,35 +1423,27 @@ - + - + - - + - - - - - - - + - - + - + @@ -1290,13 +1497,13 @@ - + - + @@ -1314,7 +1521,7 @@ - + @@ -1327,7 +1534,7 @@ - + @@ -1335,7 +1542,7 @@ - + @@ -1390,7 +1597,7 @@ - + @@ -1401,14 +1608,20 @@ - + + + + + + + - + @@ -1438,7 +1651,7 @@ - + @@ -1449,20 +1662,14 @@ - + - - - - - - - + @@ -1494,13 +1701,13 @@ - + - + @@ -1518,7 +1725,7 @@ - + @@ -1531,7 +1738,7 @@ - + @@ -1539,7 +1746,7 @@ - + @@ -1594,7 +1801,7 @@ - + @@ -1605,14 +1812,20 @@ - + + + + + + + - + @@ -1642,7 +1855,151 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1657,7 +2014,22 @@ - + + + + + + + + + + + + + + + + @@ -1668,7 +2040,40 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1688,7 +2093,7 @@ - + @@ -1698,13 +2103,13 @@ - + - + @@ -1766,7 +2171,7 @@ - + @@ -1777,16 +2182,7 @@ - - - - - - - - - - + @@ -1814,7 +2210,7 @@ - + @@ -1825,7 +2221,16 @@ - + + + + + + + + + + @@ -1845,7 +2250,7 @@ - + @@ -1855,13 +2260,13 @@ - + - + @@ -1879,7 +2284,7 @@ - + @@ -1893,7 +2298,7 @@ - + @@ -1901,7 +2306,7 @@ - + @@ -1968,7 +2373,7 @@ - + @@ -1979,14 +2384,20 @@ - + + + + + + + - + @@ -2016,7 +2427,7 @@ - + @@ -2027,20 +2438,14 @@ - + - - - - - - - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page index 40ccd867..f6b237b8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page @@ -38,25 +38,25 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + @@ -827,7 +827,7 @@ - + @@ -838,7 +838,7 @@ - + @@ -846,7 +846,7 @@ - + @@ -857,7 +857,7 @@ - + @@ -893,7 +893,7 @@ - + @@ -904,7 +904,7 @@ - + @@ -913,7 +913,7 @@ - + @@ -925,7 +925,7 @@ - + @@ -1017,7 +1017,7 @@ - + @@ -1033,7 +1033,7 @@ - + @@ -1049,7 +1049,7 @@ - + @@ -1065,7 +1065,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page index 45b0cc33..14b41825 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page @@ -246,7 +246,7 @@ - + @@ -262,7 +262,7 @@ - + @@ -846,7 +846,7 @@ - + @@ -858,7 +858,7 @@ - + @@ -867,7 +867,7 @@ - + @@ -879,7 +879,7 @@ - + @@ -888,7 +888,7 @@ - + @@ -900,7 +900,7 @@ - + @@ -909,7 +909,7 @@ - + @@ -921,7 +921,7 @@ - + @@ -1299,7 +1299,7 @@ - + @@ -1312,7 +1312,7 @@ - + @@ -1327,7 +1327,7 @@ - + @@ -1342,7 +1342,7 @@ - + @@ -1357,7 +1357,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page index 9227bde2..1fbabffe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page @@ -158,7 +158,7 @@ - + @@ -169,7 +169,7 @@ - + @@ -177,7 +177,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -225,7 +225,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -244,7 +244,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -353,7 +353,7 @@ - + @@ -365,7 +365,7 @@ - + @@ -374,7 +374,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -395,7 +395,7 @@ - + @@ -407,7 +407,7 @@ - + @@ -416,7 +416,7 @@ - + @@ -428,7 +428,7 @@ - + @@ -1464,7 +1464,7 @@ - + @@ -1479,7 +1479,7 @@ - + @@ -1487,7 +1487,7 @@ - + @@ -1502,7 +1502,7 @@ - + @@ -2926,7 +2926,7 @@ - + @@ -2942,7 +2942,7 @@ - + @@ -3087,7 +3087,20 @@ - + + + + + + + + + + + + + + @@ -3102,7 +3115,7 @@ - + @@ -3118,7 +3131,7 @@ - + @@ -3133,7 +3146,7 @@ - + @@ -3148,7 +3161,7 @@ - + @@ -3163,7 +3176,7 @@ - + @@ -3178,7 +3191,7 @@ - + @@ -3193,7 +3206,7 @@ - + @@ -3208,7 +3221,7 @@ - + @@ -3223,7 +3236,7 @@ - + @@ -3238,19 +3251,6 @@ - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page index b09056b3..1d905e5c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page @@ -66,7 +66,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -148,7 +148,7 @@ - + @@ -156,7 +156,7 @@ - + @@ -168,7 +168,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -681,7 +681,7 @@ - + @@ -692,7 +692,7 @@ - + @@ -707,7 +707,7 @@ - + @@ -718,7 +718,7 @@ - + @@ -733,7 +733,7 @@ - + @@ -744,7 +744,7 @@ - + @@ -759,7 +759,7 @@ - + @@ -770,7 +770,7 @@ - + @@ -785,7 +785,7 @@ - + @@ -796,7 +796,7 @@ - + @@ -811,7 +811,7 @@ - + @@ -822,7 +822,7 @@ - + @@ -837,7 +837,7 @@ - + @@ -848,7 +848,7 @@ - + @@ -863,7 +863,7 @@ - + @@ -874,7 +874,7 @@ - + @@ -889,7 +889,7 @@ - + @@ -900,7 +900,7 @@ - + @@ -915,7 +915,7 @@ - + @@ -931,7 +931,7 @@ - + @@ -946,7 +946,7 @@ - + @@ -961,7 +961,7 @@ - + @@ -976,7 +976,7 @@ - + @@ -991,7 +991,7 @@ - + @@ -1007,7 +1007,7 @@ - + @@ -1023,7 +1023,7 @@ - + @@ -1039,7 +1039,7 @@ - + @@ -1055,7 +1055,7 @@ - + @@ -1071,7 +1071,7 @@ - + @@ -1087,7 +1087,7 @@ - + @@ -1103,7 +1103,7 @@ - + @@ -1119,7 +1119,7 @@ - + @@ -1135,7 +1135,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index cb084640..5c9f2d96 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -64,7 +64,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -100,7 +100,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -141,7 +141,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -163,7 +163,7 @@ - + @@ -171,7 +171,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -235,7 +235,7 @@ - + @@ -249,7 +249,7 @@ - + @@ -257,7 +257,7 @@ - + @@ -271,7 +271,7 @@ - + @@ -341,7 +341,7 @@ - + @@ -356,7 +356,7 @@ - + @@ -364,7 +364,7 @@ - + @@ -379,7 +379,7 @@ - + @@ -445,7 +445,7 @@ - + @@ -457,7 +457,7 @@ - + @@ -466,7 +466,7 @@ - + @@ -478,7 +478,7 @@ - + @@ -490,7 +490,7 @@ - + @@ -509,7 +509,7 @@ - + @@ -517,7 +517,7 @@ - + @@ -532,7 +532,7 @@ - + @@ -544,7 +544,7 @@ - + @@ -563,7 +563,7 @@ - + @@ -575,7 +575,7 @@ - + @@ -594,7 +594,7 @@ - + @@ -711,7 +711,7 @@ - + @@ -730,7 +730,7 @@ - + @@ -739,7 +739,7 @@ - + @@ -756,7 +756,7 @@ - + @@ -765,7 +765,7 @@ - + @@ -782,7 +782,7 @@ - + @@ -791,7 +791,7 @@ - + @@ -808,7 +808,7 @@ - + @@ -817,7 +817,7 @@ - + @@ -834,7 +834,7 @@ - + @@ -843,7 +843,7 @@ - + @@ -862,7 +862,7 @@ - + @@ -871,7 +871,7 @@ - + @@ -888,7 +888,7 @@ - + @@ -897,7 +897,7 @@ - + @@ -914,7 +914,7 @@ - + @@ -923,7 +923,7 @@ - + @@ -940,7 +940,7 @@ - + @@ -949,7 +949,7 @@ - + @@ -968,7 +968,7 @@ - + @@ -1215,7 +1215,7 @@ - + @@ -1230,7 +1230,7 @@ - + @@ -1395,7 +1395,7 @@ - + @@ -1406,11 +1406,11 @@ - + - + @@ -1421,11 +1421,11 @@ - + - + @@ -1436,11 +1436,11 @@ - + - + @@ -1451,11 +1451,11 @@ - + - + @@ -1470,7 +1470,7 @@ - + @@ -1481,11 +1481,11 @@ - + - + @@ -1496,11 +1496,11 @@ - + - + @@ -1511,11 +1511,11 @@ - + - + @@ -1526,11 +1526,11 @@ - + - + @@ -1545,7 +1545,7 @@ - + @@ -1560,7 +1560,7 @@ - + @@ -1576,7 +1576,7 @@ - + @@ -1592,7 +1592,7 @@ - + @@ -1608,7 +1608,7 @@ - + @@ -1624,7 +1624,7 @@ - + @@ -1640,7 +1640,7 @@ - + @@ -1651,28 +1651,27 @@ - - + + - + - + - - - + + - + @@ -1683,12 +1682,12 @@ - + - + @@ -1699,12 +1698,12 @@ - + - + @@ -1714,91 +1713,91 @@ - - + + - + - + - - + + + - + - + - + + - + - + - + - - - + + + - + - + - - + - + - + - + - - - + + - + @@ -1808,24 +1807,25 @@ - - + + - + - + - + - - + + + @@ -1920,7 +1920,7 @@ - + @@ -1932,7 +1932,7 @@ - + @@ -1943,7 +1943,7 @@ - + @@ -1955,12 +1955,12 @@ - + - + @@ -1975,7 +1975,7 @@ - + @@ -2037,7 +2037,7 @@ - + @@ -2051,7 +2051,7 @@ - + @@ -2059,7 +2059,7 @@ - + @@ -2073,7 +2073,7 @@ - + @@ -2253,7 +2253,7 @@ - + @@ -2269,7 +2269,7 @@ - + @@ -2314,7 +2314,7 @@ - + @@ -2331,7 +2331,7 @@ - + @@ -2341,7 +2341,7 @@ - + @@ -2358,7 +2358,7 @@ - + @@ -2368,7 +2368,7 @@ - + @@ -2385,12 +2385,12 @@ - + - + @@ -2405,7 +2405,7 @@ - + @@ -2420,7 +2420,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page index 6c7ea18f..70950c90 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page @@ -51,13 +51,13 @@ - + - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page index a99c913a..54178780 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page @@ -38,52 +38,52 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -587,7 +587,7 @@ - + @@ -601,7 +601,7 @@ - + @@ -637,7 +637,7 @@ - + @@ -648,7 +648,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -667,7 +667,7 @@ - + @@ -703,7 +703,7 @@ - + @@ -714,7 +714,7 @@ - + @@ -722,7 +722,7 @@ - + @@ -733,7 +733,7 @@ - + @@ -1831,7 +1831,7 @@ - + @@ -1842,11 +1842,11 @@ - + - + @@ -1857,11 +1857,11 @@ - + - + @@ -1872,11 +1872,11 @@ - + - + @@ -1887,11 +1887,11 @@ - + - + @@ -1902,7 +1902,7 @@ - + @@ -2008,7 +2008,7 @@ - + @@ -2022,7 +2022,7 @@ - + @@ -2327,7 +2327,7 @@ - + @@ -2341,7 +2341,7 @@ - + @@ -2352,7 +2352,7 @@ - + @@ -2364,7 +2364,7 @@ - + @@ -2375,7 +2375,7 @@ - + @@ -2387,12 +2387,12 @@ - + - + @@ -2408,7 +2408,7 @@ - + @@ -2424,7 +2424,7 @@ - + @@ -2439,7 +2439,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page index fc3a18da..61451bdc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page @@ -38,16 +38,16 @@ - - + + - - + + - - + + @@ -240,7 +240,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -278,7 +278,7 @@ - + @@ -289,7 +289,7 @@ - + @@ -297,7 +297,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -400,7 +400,7 @@ - + @@ -1227,7 +1227,7 @@ - + @@ -1242,7 +1242,7 @@ - + @@ -1257,7 +1257,7 @@ - + @@ -1272,7 +1272,7 @@ - + @@ -1287,7 +1287,7 @@ - + @@ -1404,7 +1404,7 @@ - + @@ -1418,7 +1418,7 @@ - + @@ -1723,7 +1723,7 @@ - + @@ -1737,7 +1737,7 @@ - + @@ -1748,7 +1748,7 @@ - + @@ -1760,7 +1760,7 @@ - + @@ -1771,7 +1771,7 @@ - + @@ -1783,12 +1783,12 @@ - + - + @@ -1804,7 +1804,7 @@ - + @@ -1820,7 +1820,7 @@ - + @@ -1835,7 +1835,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page index 2d406f5c..b02c7510 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page @@ -38,16 +38,16 @@ - - + + - - + + - - + + @@ -153,7 +153,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -190,7 +190,7 @@ - + @@ -199,7 +199,7 @@ - + @@ -213,7 +213,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -314,7 +314,7 @@ - + @@ -328,7 +328,7 @@ - + @@ -383,7 +383,7 @@ - + @@ -399,7 +399,7 @@ - + @@ -415,7 +415,7 @@ - + @@ -431,7 +431,7 @@ - + @@ -447,7 +447,7 @@ - + @@ -564,7 +564,7 @@ - + @@ -578,7 +578,7 @@ - + @@ -883,7 +883,7 @@ - + @@ -897,7 +897,7 @@ - + @@ -908,7 +908,7 @@ - + @@ -920,7 +920,7 @@ - + @@ -931,7 +931,7 @@ - + @@ -943,12 +943,12 @@ - + - + @@ -964,7 +964,7 @@ - + @@ -980,7 +980,7 @@ - + @@ -995,7 +995,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index e18fcb8c..5f86b6d4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -64,7 +64,7 @@ - + @@ -79,7 +79,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -133,7 +133,7 @@ - + @@ -147,7 +147,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -247,7 +247,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -278,7 +278,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -301,7 +301,7 @@ - + @@ -315,7 +315,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -411,7 +411,7 @@ - + @@ -427,27 +427,25 @@ - + - + - - - + - - + + - + @@ -458,11 +456,11 @@ - + - + @@ -473,11 +471,11 @@ - + - + @@ -488,11 +486,11 @@ - + - + @@ -503,11 +501,11 @@ - + - + @@ -518,11 +516,11 @@ - + - + @@ -533,11 +531,11 @@ - + - + @@ -548,11 +546,11 @@ - + - + @@ -563,11 +561,11 @@ - + - + @@ -578,11 +576,11 @@ - + - + @@ -593,20 +591,22 @@ - + - + - + + + - - + + @@ -658,7 +658,7 @@ - + @@ -674,7 +674,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -704,7 +704,7 @@ - + @@ -718,7 +718,7 @@ - + @@ -734,7 +734,7 @@ - + @@ -748,7 +748,7 @@ - + @@ -764,7 +764,7 @@ - + @@ -778,7 +778,7 @@ - + @@ -794,7 +794,7 @@ - + @@ -808,7 +808,7 @@ - + @@ -824,7 +824,7 @@ - + @@ -838,7 +838,7 @@ - + @@ -854,7 +854,7 @@ - + @@ -868,7 +868,7 @@ - + @@ -885,7 +885,7 @@ - + @@ -899,7 +899,7 @@ - + @@ -915,7 +915,7 @@ - + @@ -929,7 +929,7 @@ - + @@ -945,7 +945,7 @@ - + @@ -959,7 +959,7 @@ - + @@ -975,7 +975,7 @@ - + @@ -989,7 +989,7 @@ - + @@ -1005,7 +1005,7 @@ - + @@ -1019,7 +1019,7 @@ - + @@ -1035,7 +1035,7 @@ - + @@ -1049,7 +1049,7 @@ - + @@ -1065,7 +1065,7 @@ - + @@ -1079,7 +1079,7 @@ - + @@ -1095,7 +1095,7 @@ - + @@ -1109,7 +1109,7 @@ - + @@ -1125,7 +1125,7 @@ - + @@ -1139,7 +1139,7 @@ - + @@ -1155,7 +1155,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index 3d734f6c..c4b9e47d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -164,7 +164,7 @@ - + @@ -180,7 +180,7 @@ - + @@ -2242,7 +2242,7 @@ - + @@ -2257,37 +2257,37 @@ - + - + - + + + - - + + + - + - - - + - - - + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index 91e298ca..fbe12703 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -52,7 +52,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -114,7 +114,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -187,7 +187,7 @@ - + @@ -195,7 +195,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -225,7 +225,7 @@ - + @@ -263,7 +263,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -284,7 +284,7 @@ - + @@ -296,7 +296,7 @@ - + @@ -309,7 +309,7 @@ - + @@ -329,7 +329,7 @@ - + @@ -403,7 +403,7 @@ - + @@ -420,7 +420,7 @@ - + @@ -428,7 +428,7 @@ - + @@ -446,7 +446,7 @@ - + @@ -459,7 +459,7 @@ - + @@ -479,7 +479,7 @@ - + @@ -623,39 +623,37 @@ - + - - + + - - - + - - + + - + - + - + - + @@ -670,7 +668,7 @@ - + @@ -685,7 +683,39 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -700,7 +730,7 @@ - + @@ -715,7 +745,7 @@ - + @@ -731,7 +761,7 @@ - + @@ -747,7 +777,7 @@ - + @@ -763,36 +793,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -823,7 +823,7 @@ - + @@ -840,7 +840,7 @@ - + @@ -850,7 +850,7 @@ - + @@ -867,7 +867,7 @@ - + @@ -877,7 +877,7 @@ - + @@ -894,7 +894,7 @@ - + @@ -904,7 +904,7 @@ - + @@ -921,12 +921,12 @@ - + - + @@ -941,7 +941,7 @@ - + @@ -956,7 +956,7 @@ - + @@ -971,7 +971,7 @@ - + @@ -1111,6 +1111,25 @@ + + + + + + + + + + + + + + + + + + + @@ -1131,28 +1150,28 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -1196,6 +1215,7 @@ + @@ -1213,6 +1233,7 @@ + @@ -1286,6 +1307,7 @@ + @@ -1303,6 +1325,7 @@ + @@ -1320,6 +1343,7 @@ + @@ -1337,6 +1361,7 @@ + @@ -1354,6 +1379,7 @@ + @@ -1371,6 +1397,7 @@ + @@ -1421,6 +1448,17 @@ + + + + + + + + + + + @@ -1441,28 +1479,28 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -1518,6 +1556,7 @@ + @@ -1535,6 +1574,7 @@ + @@ -1552,6 +1592,7 @@ + @@ -1637,6 +1678,7 @@ + @@ -1654,6 +1696,7 @@ + @@ -1671,6 +1714,7 @@ + @@ -1721,6 +1765,17 @@ + + + + + + + + + + + @@ -1799,7 +1854,7 @@ - + @@ -1811,7 +1866,7 @@ - + @@ -1822,7 +1877,7 @@ - + @@ -1834,7 +1889,7 @@ - + @@ -1852,7 +1907,7 @@ - + @@ -1867,7 +1922,7 @@ - + @@ -1959,7 +2014,7 @@ - + @@ -1971,12 +2026,12 @@ - + - + @@ -2010,25 +2065,25 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + @@ -2069,7 +2124,7 @@ - + @@ -2081,7 +2136,7 @@ - + @@ -2092,7 +2147,7 @@ - + @@ -2104,7 +2159,7 @@ - + @@ -2291,7 +2346,7 @@ - + @@ -2306,7 +2361,7 @@ - + @@ -2340,31 +2395,31 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + @@ -2405,7 +2460,7 @@ - + @@ -2417,7 +2472,7 @@ - + @@ -2428,7 +2483,7 @@ - + @@ -2440,7 +2495,7 @@ - + @@ -2483,6 +2538,7 @@ + @@ -2501,6 +2557,7 @@ + @@ -2519,6 +2576,7 @@ + @@ -2636,6 +2694,7 @@ + @@ -2655,7 +2714,7 @@ - + @@ -2671,7 +2730,7 @@ - + @@ -2705,25 +2764,25 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + @@ -2764,7 +2823,7 @@ - + @@ -2776,7 +2835,7 @@ - + @@ -2787,7 +2846,7 @@ - + @@ -2799,7 +2858,7 @@ - + @@ -2980,7 +3039,7 @@ - + @@ -2995,7 +3054,7 @@ - + @@ -3029,31 +3088,31 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + @@ -3094,7 +3153,7 @@ - + @@ -3106,7 +3165,7 @@ - + @@ -3117,7 +3176,7 @@ - + @@ -3129,7 +3188,7 @@ - + @@ -3184,6 +3243,7 @@ + @@ -3202,6 +3262,7 @@ + @@ -3220,6 +3281,7 @@ + @@ -3336,9 +3398,27 @@ + + + + + + + + + + + + + + + + + + - + @@ -3354,7 +3434,7 @@ - + @@ -3446,7 +3526,7 @@ - + @@ -3458,7 +3538,7 @@ - + @@ -3469,7 +3549,7 @@ - + @@ -3481,7 +3561,7 @@ - + @@ -3498,7 +3578,7 @@ - + @@ -3513,7 +3593,7 @@ - + @@ -3619,7 +3699,7 @@ - + @@ -3631,7 +3711,7 @@ - + @@ -3642,7 +3722,7 @@ - + @@ -3654,12 +3734,12 @@ - + - + @@ -3674,7 +3754,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index b1828356..7b6c2d4f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -214,7 +214,7 @@ - + @@ -237,7 +237,7 @@ - + @@ -255,12 +255,12 @@ - + - + @@ -268,22 +268,23 @@ + - + - - + + - + - + @@ -294,41 +295,71 @@ - + - - + + - + + + - - + + - - + + + - - + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -338,12 +369,12 @@ - - + + - + @@ -353,12 +384,12 @@ - - + + - + @@ -368,21 +399,12 @@ - - - - - - - - - - + - + @@ -392,12 +414,12 @@ - - + + - + @@ -408,74 +430,16 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -492,94 +456,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -594,7 +472,7 @@ - + @@ -633,7 +511,7 @@ - + @@ -654,7 +532,7 @@ - + @@ -685,8 +563,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + @@ -702,7 +623,7 @@ - + @@ -724,7 +645,7 @@ - + @@ -745,7 +666,7 @@ - + @@ -758,7 +679,7 @@ - + @@ -840,7 +761,7 @@ - + @@ -857,7 +778,7 @@ - + @@ -880,7 +801,7 @@ - + @@ -897,7 +818,7 @@ - + @@ -916,22 +837,23 @@ - + - + - - + + + - + @@ -942,29 +864,11 @@ - - - - - - - - - - - - - - - - - - - + @@ -980,62 +884,60 @@ - + - + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + - - - - + + + + - - + + - - - - - - - + @@ -1043,6 +945,5 @@ - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page index 34b2271b..218c95fd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page @@ -480,7 +480,7 @@ - + @@ -494,7 +494,7 @@ - + @@ -503,7 +503,7 @@ - + @@ -517,43 +517,43 @@ - + - + - + + - + - + - + - + - + - - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page index 918e36d9..5f535962 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page @@ -93,7 +93,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -1039,7 +1039,7 @@ - + @@ -1130,7 +1130,7 @@ - + @@ -1142,7 +1142,7 @@ - + @@ -1153,7 +1153,7 @@ - + @@ -1165,12 +1165,12 @@ - + - + @@ -1185,7 +1185,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page index ce575a83..1dbd89ef 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page @@ -124,7 +124,7 @@ - + @@ -135,7 +135,7 @@ - + @@ -143,7 +143,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -191,7 +191,7 @@ - + @@ -202,7 +202,7 @@ - + @@ -210,7 +210,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -333,7 +333,7 @@ - + @@ -346,7 +346,7 @@ - + @@ -357,7 +357,7 @@ - + @@ -370,7 +370,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -394,7 +394,7 @@ - + @@ -403,7 +403,7 @@ - + @@ -418,7 +418,7 @@ - + @@ -437,7 +437,7 @@ - + @@ -452,7 +452,7 @@ - + @@ -467,7 +467,7 @@ - + @@ -482,7 +482,7 @@ - + @@ -497,7 +497,7 @@ - + @@ -512,7 +512,7 @@ - + @@ -527,7 +527,7 @@ - + @@ -542,7 +542,7 @@ - + @@ -686,7 +686,7 @@ - + @@ -698,7 +698,7 @@ - + @@ -709,7 +709,7 @@ - + @@ -721,7 +721,7 @@ - + @@ -738,7 +738,7 @@ - + @@ -753,7 +753,7 @@ - + @@ -899,7 +899,7 @@ - + @@ -911,7 +911,7 @@ - + @@ -922,7 +922,7 @@ - + @@ -934,7 +934,7 @@ - + @@ -951,7 +951,7 @@ - + @@ -966,7 +966,7 @@ - + @@ -1059,7 +1059,7 @@ - + @@ -1071,7 +1071,7 @@ - + @@ -1082,7 +1082,7 @@ - + @@ -1094,12 +1094,12 @@ - + - + @@ -1114,7 +1114,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index 6ab531f7..0954fa42 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -38,13 +38,13 @@ - + - + - + @@ -640,7 +640,7 @@ - + @@ -655,19 +655,19 @@ - + - + - + @@ -679,7 +679,7 @@ - + @@ -694,7 +694,7 @@ - + @@ -706,7 +706,7 @@ - + @@ -721,7 +721,7 @@ - + @@ -729,7 +729,7 @@ - + @@ -740,7 +740,7 @@ - + @@ -748,7 +748,7 @@ - + @@ -759,7 +759,7 @@ - + @@ -796,7 +796,7 @@ - + @@ -807,7 +807,7 @@ - + @@ -815,7 +815,7 @@ - + @@ -826,12 +826,12 @@ - + - + @@ -846,7 +846,7 @@ - + @@ -859,7 +859,7 @@ - + @@ -874,7 +874,7 @@ - + @@ -889,7 +889,7 @@ - + @@ -904,7 +904,7 @@ - + @@ -919,7 +919,7 @@ - + @@ -934,7 +934,7 @@ - + @@ -1527,7 +1527,7 @@ - + @@ -1539,7 +1539,7 @@ - + @@ -1550,7 +1550,7 @@ - + @@ -1562,7 +1562,7 @@ - + @@ -1595,7 +1595,7 @@ - + @@ -1610,7 +1610,7 @@ - + @@ -2203,7 +2203,7 @@ - + @@ -2215,7 +2215,7 @@ - + @@ -2226,7 +2226,7 @@ - + @@ -2238,12 +2238,12 @@ - + - + @@ -2258,7 +2258,7 @@ - + @@ -2365,7 +2365,7 @@ - + @@ -2377,7 +2377,7 @@ - + @@ -2388,7 +2388,7 @@ - + @@ -2400,12 +2400,12 @@ - + - + @@ -2420,7 +2420,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index 5e274f18..4bb4d355 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -38,22 +38,22 @@ - - - - + + + + - - - - + + + + - - - - + + + + @@ -456,7 +456,7 @@ - + @@ -471,7 +471,7 @@ - + @@ -484,7 +484,7 @@ - + @@ -499,7 +499,7 @@ - + @@ -512,7 +512,7 @@ - + @@ -527,7 +527,7 @@ - + @@ -540,7 +540,7 @@ - + @@ -555,19 +555,19 @@ - + - + - + @@ -580,7 +580,7 @@ - + @@ -597,7 +597,7 @@ - + @@ -610,7 +610,7 @@ - + @@ -627,7 +627,7 @@ - + @@ -652,7 +652,7 @@ - + @@ -663,7 +663,7 @@ - + @@ -671,7 +671,7 @@ - + @@ -682,7 +682,7 @@ - + @@ -719,7 +719,7 @@ - + @@ -730,7 +730,7 @@ - + @@ -738,7 +738,7 @@ - + @@ -749,7 +749,7 @@ - + @@ -837,7 +837,7 @@ - + @@ -855,12 +855,12 @@ - + - + @@ -875,7 +875,7 @@ - + @@ -890,7 +890,7 @@ - + @@ -905,7 +905,7 @@ - + @@ -920,7 +920,7 @@ - + @@ -935,7 +935,7 @@ - + @@ -948,7 +948,7 @@ - + @@ -963,7 +963,7 @@ - + @@ -978,7 +978,7 @@ - + @@ -993,7 +993,7 @@ - + @@ -1008,7 +1008,7 @@ - + @@ -1023,7 +1023,7 @@ - + @@ -1071,7 +1071,7 @@ - + @@ -1083,7 +1083,7 @@ - + @@ -1096,7 +1096,7 @@ - + @@ -1108,7 +1108,7 @@ - + @@ -1121,7 +1121,7 @@ - + @@ -1133,7 +1133,7 @@ - + @@ -1146,7 +1146,7 @@ - + @@ -1158,7 +1158,7 @@ - + @@ -1171,7 +1171,7 @@ - + @@ -1185,7 +1185,7 @@ - + @@ -1198,7 +1198,7 @@ - + @@ -1212,12 +1212,12 @@ - + - + @@ -1232,7 +1232,7 @@ - + @@ -1247,7 +1247,7 @@ - + @@ -1262,7 +1262,7 @@ - + @@ -1277,7 +1277,7 @@ - + @@ -1292,7 +1292,7 @@ - + @@ -1456,7 +1456,7 @@ - + @@ -1468,7 +1468,7 @@ - + @@ -1479,7 +1479,7 @@ - + @@ -1491,7 +1491,7 @@ - + @@ -1580,7 +1580,7 @@ - + @@ -1595,7 +1595,7 @@ - + @@ -1814,7 +1814,7 @@ - + @@ -1826,7 +1826,7 @@ - + @@ -1837,7 +1837,7 @@ - + @@ -1849,7 +1849,7 @@ - + @@ -2270,7 +2270,7 @@ - + @@ -2285,7 +2285,7 @@ - + @@ -2549,7 +2549,7 @@ - + @@ -2561,7 +2561,7 @@ - + @@ -2572,7 +2572,7 @@ - + @@ -2584,7 +2584,7 @@ - + @@ -2978,7 +2978,7 @@ - + @@ -2993,7 +2993,7 @@ - + @@ -3087,7 +3087,7 @@ - + @@ -3099,7 +3099,7 @@ - + @@ -3110,7 +3110,7 @@ - + @@ -3122,12 +3122,12 @@ - + - + @@ -3142,7 +3142,7 @@ - + @@ -3289,7 +3289,7 @@ - + @@ -3301,7 +3301,7 @@ - + @@ -3312,7 +3312,7 @@ - + @@ -3324,7 +3324,7 @@ - + @@ -3365,7 +3365,7 @@ - + @@ -3378,7 +3378,7 @@ - + @@ -3389,7 +3389,7 @@ - + @@ -3402,12 +3402,12 @@ - + - + @@ -3422,7 +3422,7 @@ - + @@ -3437,7 +3437,7 @@ - + @@ -3453,7 +3453,7 @@ - + @@ -3558,7 +3558,7 @@ - + @@ -3570,7 +3570,7 @@ - + @@ -3581,7 +3581,7 @@ - + @@ -3593,7 +3593,7 @@ - + @@ -3680,7 +3680,7 @@ - + @@ -3693,12 +3693,12 @@ - + - + @@ -3713,7 +3713,7 @@ - + @@ -3728,7 +3728,7 @@ - + @@ -3763,13 +3763,13 @@ - + - + - + @@ -3810,7 +3810,7 @@ - + @@ -3822,7 +3822,7 @@ - + @@ -3833,7 +3833,7 @@ - + @@ -3845,7 +3845,7 @@ - + @@ -3865,7 +3865,7 @@ - + @@ -3876,11 +3876,11 @@ - + - + @@ -3891,7 +3891,7 @@ - + @@ -3982,7 +3982,7 @@ - + @@ -3994,7 +3994,7 @@ - + @@ -4005,7 +4005,7 @@ - + @@ -4017,12 +4017,12 @@ - + - + @@ -4037,7 +4037,7 @@ - + @@ -4131,7 +4131,7 @@ - + @@ -4143,7 +4143,7 @@ - + @@ -4154,7 +4154,7 @@ - + @@ -4166,12 +4166,12 @@ - + - + @@ -4186,7 +4186,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index 4ce77208..57e523b3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + @@ -508,55 +508,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -700,77 +651,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index 08981107..d8d2d534 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index 3df19472..c8fdaafb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -5,90 +5,90 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpAlphaPad.tpr b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpAlphaPad.tpr index de6336f2..239dcd24 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpAlphaPad.tpr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpAlphaPad.tpr @@ -1,1247 +1,1247 @@ - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNavigationPad_ver.tpr b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNavigationPad_ver.tpr index 01034f01..6367dc6d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNavigationPad_ver.tpr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNavigationPad_ver.tpr @@ -1,69 +1,69 @@ - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNumPad.tpr b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNumPad.tpr index 4f2b73a3..8561b0c7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNumPad.tpr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TouchPads/MpNumPad.tpr @@ -1,175 +1,175 @@ - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre index 9f8e9378..4df74024 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre @@ -46,6 +46,7 @@ + @@ -63,6 +64,7 @@ + @@ -72,6 +74,7 @@ + @@ -89,6 +92,7 @@ + @@ -106,6 +110,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Availability.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Availability.trd index abab05cf..2ad8a344 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Availability.trd +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Availability.trd @@ -1,19 +1,19 @@ - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_OEE.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_OEE.trd index d6197334..f69fdc47 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_OEE.trd +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_OEE.trd @@ -1,19 +1,19 @@ - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Performance.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Performance.trd index 26e37ba1..f540e492 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Performance.trd +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Performance.trd @@ -1,19 +1,19 @@ - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Quality.trd b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Quality.trd index 79f86ee9..05040ada 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Quality.trd +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI_Quality.trd @@ -1,19 +1,19 @@ - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index cf0f6847..763b2780 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,126 +1,6 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -301,18 +181,6 @@ - - - - - - - - - - - - @@ -1153,26 +1021,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -1195,16 +1043,6 @@ - - - - - - - - - - @@ -1316,20 +1154,6 @@ - - - - - - - - - - - - - - @@ -1702,50 +1526,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2030,10 +1810,6 @@ - - - - @@ -2042,14 +1818,6 @@ - - - - - - - - @@ -2062,10 +1830,6 @@ - - - - @@ -2090,10 +1854,6 @@ - - - - @@ -2218,10 +1978,6 @@ - - - - @@ -2390,14 +2146,6 @@ - - - - - - - - @@ -2426,10 +2174,6 @@ - - - - @@ -2530,10 +2274,6 @@ - - - - @@ -2638,10 +2378,6 @@ - - - - @@ -2650,10 +2386,6 @@ - - - - @@ -2670,58 +2402,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2890,10 +2570,6 @@ - - - - @@ -2998,10 +2674,6 @@ - - - - @@ -3086,4 +2758,1756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 1b79c3c0..2602c2e3 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index 5aeb43d6..a31ecc7c 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 8bc52637..82c3fd35 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -7,214 +7,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -223,7 +20,6 @@ - @@ -240,7 +36,7 @@ - + @@ -400,7 +196,7 @@ - + @@ -423,7 +219,6 @@ - @@ -464,314 +259,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - @@ -781,7 +276,6 @@ - @@ -791,7 +285,6 @@ - @@ -803,35 +296,33 @@ - + - - + - + - + - + - - + @@ -840,7 +331,7 @@ - + @@ -849,7 +340,7 @@ - + @@ -876,7 +367,7 @@ - + @@ -894,7 +385,7 @@ - + @@ -903,7 +394,7 @@ - + @@ -912,7 +403,7 @@ - + @@ -922,9 +413,17 @@ + + + + + + + + + - @@ -933,7 +432,7 @@ - + @@ -945,7 +444,7 @@ - + @@ -957,7 +456,7 @@ - + @@ -969,7 +468,7 @@ - + @@ -1041,7 +540,7 @@ - + @@ -1054,23 +553,12 @@ - - - - - - - - - - - @@ -1112,7 +600,7 @@ - + @@ -1121,7 +609,7 @@ - + @@ -1130,7 +618,7 @@ - + @@ -1148,7 +636,7 @@ - + @@ -1157,7 +645,7 @@ - + @@ -1167,29 +655,8 @@ - - - - - - - - - - - - - - - - - - - - - @@ -1234,7 +701,7 @@ - + @@ -1246,7 +713,7 @@ - + @@ -1258,7 +725,7 @@ - + @@ -1270,7 +737,7 @@ - + @@ -1282,7 +749,7 @@ - + @@ -1294,7 +761,7 @@ - + @@ -1306,7 +773,7 @@ - + @@ -1319,9 +786,27 @@ + + + + + + + + + + + + + + + + + + + - @@ -1335,7 +820,6 @@ - @@ -1345,7 +829,6 @@ - @@ -1355,7 +838,6 @@ - @@ -1369,7 +851,6 @@ - @@ -1501,7 +982,6 @@ - @@ -1511,7 +991,6 @@ - @@ -1531,13 +1010,12 @@ - - + @@ -1546,7 +1024,7 @@ - + @@ -1555,7 +1033,7 @@ - + @@ -1582,7 +1060,7 @@ - + @@ -1591,7 +1069,7 @@ - + @@ -1600,7 +1078,7 @@ - + @@ -1609,7 +1087,7 @@ - + @@ -1632,9 +1110,17 @@ + + + + + + + + + - @@ -1642,9 +1128,21 @@ + + + + + + + + + + + + + - @@ -1652,9 +1150,17 @@ + + + + + + + + + - @@ -1663,12 +1169,11 @@ - + - @@ -1677,7 +1182,7 @@ - + @@ -1689,7 +1194,7 @@ - + @@ -1701,7 +1206,7 @@ - + @@ -1713,7 +1218,7 @@ - + @@ -1725,7 +1230,7 @@ - + @@ -1737,7 +1242,7 @@ - + @@ -1761,7 +1266,7 @@ - + @@ -1773,7 +1278,7 @@ - + @@ -1785,7 +1290,7 @@ - + @@ -1800,7 +1305,6 @@ - @@ -1808,19 +1312,8 @@ - - - - - - - - - - - @@ -1830,13 +1323,12 @@ - - + @@ -1845,7 +1337,7 @@ - + @@ -1854,7 +1346,7 @@ - + @@ -1863,7 +1355,7 @@ - + @@ -1872,7 +1364,7 @@ - + @@ -1881,7 +1373,7 @@ - + @@ -1890,7 +1382,7 @@ - + @@ -1899,7 +1391,7 @@ - + @@ -1908,7 +1400,7 @@ - + @@ -1917,7 +1409,7 @@ - + @@ -1927,47 +1419,53 @@ + + + + + + + + + + - + - + - - + - + - - + - + - - + - + - @@ -1976,7 +1474,7 @@ - + @@ -1988,7 +1486,7 @@ - + @@ -2012,7 +1510,7 @@ - + @@ -2024,7 +1522,7 @@ - + @@ -2036,7 +1534,7 @@ - + @@ -2048,7 +1546,7 @@ - + @@ -2060,7 +1558,7 @@ - + @@ -2072,7 +1570,7 @@ - + @@ -2084,7 +1582,7 @@ - + @@ -2099,7 +1597,6 @@ - @@ -2107,9 +1604,18 @@ + + + + + + + + + + - @@ -2119,13 +1625,12 @@ - - + @@ -2134,7 +1639,7 @@ - + @@ -2143,7 +1648,7 @@ - + @@ -2152,7 +1657,7 @@ - + @@ -2161,7 +1666,7 @@ - + @@ -2170,7 +1675,7 @@ - + @@ -2179,7 +1684,7 @@ - + @@ -2188,7 +1693,7 @@ - + @@ -2197,7 +1702,7 @@ - + @@ -2206,7 +1711,7 @@ - + @@ -2216,62 +1721,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + - + - + @@ -2280,7 +1744,7 @@ - + @@ -2292,93 +1756,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2387,422 +1765,683 @@ - + + - - + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - - + - + - + - - + - + - - - - - + - - + - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - + - + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + + + + + + + + - + - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + - + - - - - - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2848,21 +2487,12 @@ - + - - - - - - - - - @@ -2873,14 +2503,14 @@ - + - + - + @@ -2891,6 +2521,15 @@ + + + + + + + + + @@ -2976,16 +2615,135 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2993,7 +2751,6 @@ - @@ -3009,23 +2766,23 @@ - + - + - + - + - + - + @@ -3043,7 +2800,6 @@ - @@ -3052,7 +2808,6 @@ - @@ -3072,7 +2827,6 @@ - @@ -3080,7 +2834,7 @@ - + @@ -3088,7 +2842,6 @@ - @@ -3096,88 +2849,260 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3197,6 +3122,16 @@ + + + + + + + + + + @@ -3207,7 +3142,7 @@ - + @@ -3217,7 +3152,7 @@ - + @@ -3227,7 +3162,7 @@ - + @@ -3239,34 +3174,172 @@ - + - + - - - + + - - - - - - + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -3318,149 +3391,275 @@ - + - - - + - - + + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + + - - + + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3476,7 +3675,6 @@ - @@ -3530,13 +3728,12 @@ - - + @@ -3545,7 +3742,7 @@ - + @@ -3554,7 +3751,7 @@ - + @@ -3563,7 +3760,7 @@ - + @@ -3572,7 +3769,7 @@ - + @@ -3582,286 +3779,96 @@ - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + - - + - - - - - + - - + - - - - - + - - + - - - - - + - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - @@ -3870,7 +3877,6 @@ - @@ -3879,7 +3885,6 @@ - @@ -3888,7 +3893,6 @@ - @@ -3897,7 +3901,6 @@ - @@ -3906,7 +3909,6 @@ - @@ -3915,7 +3917,6 @@ - @@ -3924,7 +3925,6 @@ - @@ -3933,7 +3933,6 @@ - @@ -3942,7 +3941,6 @@ - @@ -3953,60 +3951,115 @@ - + - - + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4016,30 +4069,16 @@ - - - - - - - - - - - - - - - + - + - + - + @@ -4051,45 +4090,29 @@ - + - - - - + - + - + - - - - + - + - + - - - - - - - - - - - + @@ -4113,32 +4136,17 @@ - - - - - - - - - - + - - - - + + - + - - - - - + @@ -4159,182 +4167,291 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + + - + - + + + + + - + - + - - - - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -4346,27 +4463,32 @@ - + - - - - + - + - + - - + - + + + + + + + + + + @@ -4384,7 +4506,7 @@ - + @@ -4392,7 +4514,7 @@ - + @@ -4400,7 +4522,7 @@ - + @@ -4408,7 +4530,7 @@ - + @@ -4424,7 +4546,7 @@ - + @@ -4432,7 +4554,7 @@ - + @@ -4440,7 +4562,7 @@ - + @@ -4448,7 +4570,7 @@ - + @@ -4456,7 +4578,7 @@ - + @@ -4464,7 +4586,7 @@ - + @@ -4472,7 +4594,7 @@ - + @@ -4488,7 +4610,7 @@ - + @@ -4496,7 +4618,7 @@ - + @@ -4504,7 +4626,7 @@ - + @@ -4512,7 +4634,7 @@ - + @@ -4520,7 +4642,7 @@ - + @@ -4528,7 +4650,7 @@ - + @@ -4536,7 +4658,7 @@ - + @@ -4545,49 +4667,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - + + + - + - + - + + - + - + + - + + + - + - + - + - + - + @@ -4600,7 +4800,7 @@ - + @@ -4612,6 +4812,24 @@ + + + + + + + + + + + + + + + + + + @@ -4633,6 +4851,10 @@ + + + + @@ -4642,6 +4864,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4652,243 +4904,195 @@ - + - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - + - - - - - + - + - + - + - + - + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - - - + - + - + - - - - - + + - + + + - + - + - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -4900,200 +5104,112 @@ - + - - - - + - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + - + - + - - - + + - + + - + - - - + + - + + - + - + - + + - + - + - + - + + + + + + + + + + + - + - + - - - - - + - - + - + - + - + - - - - - + @@ -5102,6 +5218,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -5114,7 +5251,54 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5123,105 +5307,117 @@ - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + + + + + + + + + + @@ -5231,16 +5427,16 @@ - + - + - + - + @@ -5249,123 +5445,132 @@ - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + @@ -5374,121 +5579,242 @@ - - - - - - - - - - - - - + - + - + - + + - + - + - + - + - + - + + - + - + - + + - + - + - + + - + - + - + - + - + + - + - + - + - + - + - + - - + + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5496,7 +5822,7 @@ - + @@ -5506,10 +5832,20 @@ - + - + + + + + + + + + + + @@ -5518,7 +5854,7 @@ - + @@ -5527,151 +5863,214 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + - + - + + + + + + + + + + + + + + + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -5680,7 +6079,7 @@ - + @@ -5689,7 +6088,7 @@ - + @@ -5698,7 +6097,7 @@ - + @@ -5707,7 +6106,7 @@ - + @@ -5716,7 +6115,7 @@ - + @@ -5725,7 +6124,7 @@ - + @@ -5734,7 +6133,7 @@ - + @@ -5743,7 +6142,7 @@ - + @@ -5752,7 +6151,7 @@ - + @@ -5771,150 +6170,132 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - + + + + + + + + + + @@ -5924,20 +6305,7 @@ - - - - - - - - - - - - - - + @@ -5946,7 +6314,7 @@ - + @@ -5955,26 +6323,11 @@ - - - - - - - - - - - - - - - - - - - - + + + + + @@ -5983,204 +6336,144 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - + - + - + - + - + @@ -6189,17 +6482,16 @@ - + - - + - + - + @@ -6208,307 +6500,105 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -6518,90 +6608,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + - + - + - - - - + - + - + + + + + @@ -6613,7 +6648,7 @@ - + @@ -6622,79 +6657,146 @@ - - - - - - - - - - - + - + - + - + - + - + - + + - + + + - + - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - - - - + @@ -6703,7 +6805,7 @@ - + @@ -6712,31 +6814,21 @@ - - - - - - - - - - + + + + + + + + + - - - - - - - - - @@ -6756,29 +6848,28 @@ - + - + - - + - + - + - + - + - + @@ -6787,15 +6878,22 @@ - + + + + + + + + + - - + - + @@ -6804,14 +6902,14 @@ - + - + - + @@ -6823,7 +6921,16 @@ - + + + + + + + + + + @@ -6833,7 +6940,7 @@ - + @@ -6851,7 +6958,7 @@ - + @@ -6861,7 +6968,7 @@ - + @@ -6879,39 +6986,41 @@ - - - - - - - - - - + + + + + + + + + + - + - + + - + - + - + + - + - + @@ -6920,29 +7029,21 @@ - - - - - - - - - + - + - + - + @@ -6951,7 +7052,7 @@ - + @@ -6960,16 +7061,16 @@ - + - + - + - + @@ -6978,14 +7079,14 @@ - + - + - + @@ -6999,95 +7100,39 @@ - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - @@ -7097,15 +7142,6 @@ - - - - - - - - - @@ -7115,83 +7151,203 @@ - - - - - - - - - - + - + - - + - + - + + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -7200,43 +7356,50 @@ - + - + - + + - + + + - + - + - + - + - + - + - + + + + + @@ -7247,116 +7410,259 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - - - - + + - + - + - + - - - - - + - - + - + - + - - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7365,7 +7671,7 @@ - + @@ -7383,7 +7689,7 @@ - + @@ -7392,7 +7698,7 @@ - + @@ -7401,7 +7707,7 @@ - + @@ -7410,7 +7716,7 @@ - + @@ -7419,7 +7725,7 @@ - + @@ -7428,7 +7734,7 @@ - + @@ -7437,7 +7743,7 @@ - + @@ -7446,7 +7752,7 @@ - + @@ -7456,6 +7762,15 @@ + + + + + + + + + @@ -7469,6 +7784,15 @@ + + + + + + + + + @@ -7478,16 +7802,7 @@ - - - - - - - - - - + @@ -7497,10 +7812,49 @@ + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7509,16 +7863,17 @@ - + - + + - + - + @@ -7527,7 +7882,7 @@ - + @@ -7536,7 +7891,7 @@ - + @@ -7545,14 +7900,15 @@ - + - + + - + @@ -7563,7 +7919,7 @@ - + @@ -7572,7 +7928,7 @@ - + @@ -7581,16 +7937,6 @@ - - - - - - - - - - @@ -7600,17 +7946,7 @@ - - - - - - - - - - - + @@ -7649,7 +7985,7 @@ - + @@ -7662,7 +7998,7 @@ - + @@ -7675,7 +8011,7 @@ - + @@ -7688,7 +8024,7 @@ - + @@ -7701,7 +8037,7 @@ - + @@ -7714,7 +8050,7 @@ - + @@ -7727,7 +8063,7 @@ - + @@ -7753,7 +8089,7 @@ - + @@ -7781,72 +8117,115 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + - + - - + + - + - + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + @@ -7854,27 +8233,14 @@ - - - - - - - - - - - + - - - - + - + @@ -7895,104 +8261,146 @@ - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + @@ -8000,7 +8408,7 @@ - + @@ -8008,7 +8416,7 @@ - + @@ -8016,7 +8424,7 @@ - + @@ -8024,7 +8432,7 @@ - + @@ -8032,7 +8440,7 @@ - + @@ -8040,7 +8448,7 @@ - + @@ -8056,7 +8464,7 @@ - + @@ -8064,7 +8472,7 @@ - + @@ -8072,7 +8480,7 @@ - + @@ -8080,7 +8488,7 @@ - + @@ -8088,7 +8496,7 @@ - + @@ -8096,7 +8504,7 @@ - + @@ -8104,7 +8512,7 @@ - + @@ -8112,7 +8520,7 @@ - + @@ -8120,7 +8528,7 @@ - + @@ -8128,7 +8536,7 @@ - + @@ -8136,7 +8544,7 @@ - + @@ -8144,7 +8552,7 @@ - + @@ -8152,7 +8560,7 @@ - + @@ -8161,7 +8569,7 @@ - + @@ -8170,16 +8578,17 @@ - + - + + - + - + @@ -8188,133 +8597,141 @@ - + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + - + - + - + - - + - + - - - - - - - - - - + @@ -8326,158 +8743,23 @@ - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + - + @@ -8486,7 +8768,7 @@ - + @@ -8494,7 +8776,7 @@ - + @@ -8502,7 +8784,7 @@ - + @@ -8510,7 +8792,7 @@ - + @@ -8518,7 +8800,7 @@ - + @@ -8526,7 +8808,7 @@ - + @@ -8534,7 +8816,7 @@ - + @@ -8542,7 +8824,7 @@ - + @@ -8550,7 +8832,7 @@ - + @@ -8558,7 +8840,7 @@ - + @@ -8574,7 +8856,7 @@ - + @@ -8582,7 +8864,7 @@ - + @@ -8590,7 +8872,7 @@ - + @@ -8598,7 +8880,7 @@ - + @@ -8606,7 +8888,7 @@ - + @@ -8614,7 +8896,7 @@ - + @@ -8622,7 +8904,7 @@ - + @@ -8630,7 +8912,7 @@ - + @@ -8638,7 +8920,7 @@ - + @@ -8647,354 +8929,244 @@ - - - - - - - - - - - - - - - - - - - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + + + - + - - - - - - - - - + - + + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -9003,32 +9175,184 @@ - + - + + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -9037,21 +9361,16 @@ - + - - + - + - - - - - + @@ -9060,52 +9379,51 @@ - - - - - + - - + - + - + - - + - + - + - + - + - + + + + + - + + - + - + - + @@ -9114,7 +9432,7 @@ - + @@ -9123,7 +9441,25 @@ - + + + + + + + + + + + + + + + + + + + @@ -9133,103 +9469,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -9238,111 +9478,115 @@ - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + @@ -9354,16 +9598,16 @@ - + - + - + @@ -9373,7 +9617,7 @@ - + @@ -9382,228 +9626,87 @@ - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9612,24 +9715,24 @@ - + - + + - + - + - - + - + @@ -9641,35 +9744,30 @@ - + - + - - - + + - - + - + - + - - - - + - + - + @@ -9678,37 +9776,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -9718,56 +9786,10 @@ - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -9776,71 +9798,266 @@ - + - + - + - - - + - - - - - - - + + + + - - + - + - - + + + - - + - + - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9848,7 +10065,7 @@ - + @@ -9857,7 +10074,7 @@ - + @@ -9866,7 +10083,7 @@ - + @@ -9875,7 +10092,7 @@ - + @@ -9893,7 +10110,7 @@ - + @@ -9902,7 +10119,7 @@ - + @@ -9911,7 +10128,7 @@ - + @@ -9920,7 +10137,7 @@ - + @@ -9929,7 +10146,16 @@ - + + + + + + + + + + @@ -9947,7 +10173,7 @@ - + @@ -9956,7 +10182,7 @@ - + @@ -9965,7 +10191,43 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9975,20 +10237,19 @@ - - - - - + + - + + + - + - + @@ -9997,15 +10258,37 @@ - - + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + @@ -10015,10 +10298,14 @@ - + + + + + - + @@ -10027,480 +10314,76 @@ - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10509,28 +10392,18 @@ - + - - + - + - - - - - - - - - @@ -10551,6 +10424,15 @@ + + + + + + + + + @@ -10562,36 +10444,24 @@ - - - - - - - - - - - - - - + - + - + - + - + + - + @@ -10600,15 +10470,6 @@ - - - - - - - - - @@ -10618,15 +10479,6 @@ - - - - - - - - - @@ -10636,112 +10488,79 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10758,7 +10577,7 @@ - + @@ -10770,7 +10589,7 @@ - + @@ -10782,7 +10601,7 @@ - + @@ -10815,21 +10634,39 @@ - + - + + + + + + + + + + + + + + + + + + + + - @@ -10838,13 +10675,20 @@ - + + + + + + + + @@ -10869,7 +10713,6 @@ - @@ -10878,7 +10721,6 @@ - @@ -10887,7 +10729,6 @@ - @@ -10904,43 +10745,29 @@ + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - @@ -10949,33 +10776,13 @@ - - - - - - - - - - - - - - - - - - - - @@ -10983,7 +10790,6 @@ - @@ -11010,496 +10816,457 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - - + - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - - - - + - + - + - + - - - - - + - + - + - + - + - + - - - - + - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - + - + - + - - - - + - + - + - + - - - - - + - + - + - + - + - + - - - - + - + - - - - - + - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - + - + - - - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + - - + - - - + - + - + - - + + - - - + + + - + - + - - + - - - + - + - + + + + + - - + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -11509,65 +11276,92 @@ - + - + + - - + + + - - + + + + + + + + + + - + - - + + + - + - + - + - - + + + - + - + - + - - + + + - + - + - + - - + + + - + - + - + - - + + + - + + + + + + + + + + + + + @@ -11578,33 +11372,53 @@ - + - + - - - + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -11615,6 +11429,10 @@ + + + + @@ -11624,10 +11442,6 @@ - - - - @@ -11649,50 +11463,130 @@ - + + + + + + + + + + + + + + + + + + + + + - + - + + + - + - - - - - + - - + - - - + + + - + - + - + - + + + - + - + - + - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11734,18 +11628,8 @@ - - - - - - - - - - @@ -11754,9 +11638,8 @@ - + - @@ -11768,7 +11651,6 @@ - @@ -11778,9 +11660,8 @@ - + - @@ -11790,9 +11671,8 @@ - + - @@ -11802,9 +11682,8 @@ - + - @@ -11814,9 +11693,8 @@ - + - @@ -11826,9 +11704,8 @@ - + - @@ -11838,9 +11715,8 @@ - + - @@ -11850,9 +11726,8 @@ - + - @@ -11862,9 +11737,8 @@ - + - @@ -11874,9 +11748,8 @@ - + - @@ -11886,9 +11759,8 @@ - + - @@ -11898,9 +11770,8 @@ - + - @@ -11910,9 +11781,8 @@ - + - @@ -11922,9 +11792,8 @@ - + - @@ -11934,9 +11803,8 @@ - + - @@ -11946,9 +11814,8 @@ - + - @@ -11958,9 +11825,8 @@ - + - @@ -11970,9 +11836,8 @@ - + - @@ -11982,9 +11847,8 @@ - + - @@ -11995,6 +11859,15 @@ + + + + + + + + + @@ -12015,7 +11888,6 @@ - @@ -12026,7 +11898,6 @@ - @@ -12036,9 +11907,8 @@ - + - @@ -12048,9 +11918,8 @@ - + - @@ -12062,7 +11931,6 @@ - @@ -12072,9 +11940,8 @@ - + - @@ -12086,7 +11953,6 @@ - @@ -12096,9 +11962,8 @@ - + - @@ -12108,9 +11973,8 @@ - + - @@ -12120,9 +11984,19 @@ - + + + + + + + + + + + + - @@ -12134,7 +12008,6 @@ - @@ -12146,7 +12019,6 @@ - @@ -12156,9 +12028,19 @@ - + + + + + + + + + + + + - @@ -12170,7 +12052,6 @@ - @@ -12182,7 +12063,6 @@ - @@ -12190,105 +12070,276 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + - - - + - + - - - - + + + + - - - + + + - + - - - - + + + - - - + - + - - - - + + + + + + + - - - + - + - - - - + + + + - - - + + + - + - - - - + + + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -12300,30 +12351,11 @@ - + - - - - - - - - - - - - - - - - - - - @@ -12340,16 +12372,14 @@ - - - - - - - - - - + + + + + + + + @@ -12391,17 +12421,15 @@ - + - - - - + + - + @@ -12437,17 +12465,7 @@ - - - - - - - - - - - + @@ -12459,7 +12477,7 @@ - + @@ -12471,11 +12489,7 @@ - - - - - + @@ -12487,6 +12501,10 @@ + + + + @@ -12543,7 +12561,7 @@ - + @@ -12555,11 +12573,7 @@ - - - - - + @@ -12571,7 +12585,11 @@ - + + + + + @@ -12583,15 +12601,17 @@ - + + - - + + + - + @@ -12615,7 +12635,17 @@ - + + + + + + + + + + + @@ -12627,7 +12657,7 @@ - + @@ -12640,10 +12670,22 @@ - + - + + + + + + + + + + + + + @@ -12665,7 +12707,7 @@ - + @@ -12677,7 +12719,17 @@ - + + + + + + + + + + + @@ -12689,7 +12741,7 @@ - + @@ -12701,6 +12753,10 @@ + + + + @@ -12711,23 +12767,7 @@ - - - - - - - - - - - - - - - - - + @@ -12763,16 +12803,6 @@ - - - - - - - - - - @@ -12783,7 +12813,7 @@ - + @@ -12795,7 +12825,7 @@ - + @@ -12808,10 +12838,10 @@ - + - + @@ -12823,7 +12853,7 @@ - + @@ -12845,17 +12875,15 @@ - + - - - - + + - + @@ -12869,17 +12897,19 @@ - + + - - + + + - + - + @@ -12894,400 +12924,116 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -13296,7 +13042,7 @@ - + @@ -13308,7 +13054,7 @@ - + @@ -13320,7 +13066,7 @@ - + @@ -13332,7 +13078,7 @@ - + @@ -13344,7 +13090,7 @@ - + @@ -13356,7 +13102,7 @@ - + @@ -13369,15 +13115,14 @@ - + - - + @@ -13386,7 +13131,7 @@ - + @@ -13395,7 +13140,7 @@ - + @@ -13404,7 +13149,7 @@ - + @@ -13413,7 +13158,7 @@ - + @@ -13422,7 +13167,7 @@ - + @@ -13432,192 +13177,139 @@ - - - - - - - - - - - - - - - - - - - + - - - - - + - - + + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - - - - - - - - - - - - - - - - - - - + - - + + - - + + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - + + - + - + - @@ -13626,7 +13318,7 @@ - + @@ -13638,7 +13330,7 @@ - + @@ -13650,7 +13342,7 @@ - + @@ -13662,7 +13354,7 @@ - + @@ -13674,7 +13366,7 @@ - + @@ -13686,7 +13378,7 @@ - + @@ -13699,278 +13391,170 @@ - + - - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - - - - - + + - + + + - + - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -13979,83 +13563,241 @@ - - - - - - - - - + - + - + - + + - - + + + + + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14074,20 +13816,7 @@ - - - - - - - - - - - - - - + @@ -14096,7 +13825,7 @@ - + @@ -14114,15 +13843,6 @@ - - - - - - - - - @@ -14142,231 +13862,99 @@ - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + - + - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14375,71 +13963,20 @@ - - - - - - - - - - - - - - - - - - - - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -14448,1048 +13985,1047 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - + - + - + - + + + - - - - - - - - - - - - + + + + + + - - + - + - + - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + - - + - + - + - - + - + - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - + - + + - - + + + - + - + + - - + + + - + - + - - + - + - + - - + - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + - + - - - + + + - + + - + - - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + + - + - - - + - - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - - - - + + + - + + - + - - - + + + - + - - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + - - - + + + - + - - - + + + - + - - - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - + + + - + + - + - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + + - + - + - - - - - - - - - - - - + + + - + + - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + + - + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - - + + + - + + - + - - - - - - - - - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15502,47 +15038,19 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -15551,59 +15059,34 @@ - - - - - - - - - - - - - - - - - - - - - - - + - - + - - + - @@ -15612,7 +15095,7 @@ - + @@ -15627,70 +15110,64 @@ - + - - + - - + - + - - + - + - + - - + - + - - + - - + - + @@ -15698,27 +15175,24 @@ - - + - - + - + - - + @@ -15739,27 +15213,24 @@ - + - - + - + - - + - + - @@ -15768,7 +15239,7 @@ - + @@ -15786,29 +15257,26 @@ - + - - + - - + - - + @@ -15819,42 +15287,38 @@ - - + - - + - + - - + - + - + - @@ -15863,7 +15327,6 @@ - @@ -15872,7 +15335,6 @@ - @@ -15892,30 +15354,27 @@ - + - + - - + - + - - + - @@ -15924,7 +15383,7 @@ - + @@ -15932,25 +15391,22 @@ - - + - - + - @@ -15958,102 +15414,104 @@ - - - - - - - - - - - - - - + - - + - + - - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - - + - - + - - - - - - - - - - - - - @@ -16062,7 +15520,6 @@ - @@ -16071,7 +15528,6 @@ - @@ -16086,29 +15542,26 @@ - + - - + - - + - + - - + @@ -16131,7 +15584,6 @@ - @@ -16140,7 +15592,6 @@ - @@ -16149,7 +15600,6 @@ - @@ -16158,36 +15608,22 @@ - + - - - - - - - - - - - - - + - + - - + - @@ -16196,7 +15632,6 @@ - @@ -16204,41 +15639,34 @@ - + - + - - + - + - - + - - + - - - - @@ -16251,30 +15679,31 @@ - + + + + + - - + - - + - @@ -16282,21 +15711,23 @@ - + + + + + + + + + + + + + - - - - - - - - - - @@ -16305,390 +15736,585 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - - + + + + + + + - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - - + + - + - + - + @@ -16712,11 +16338,11 @@ - + - + @@ -16733,11 +16359,11 @@ - + - + @@ -16763,15 +16389,6 @@ - - - - - - - - - @@ -16796,58 +16413,19 @@ + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -16857,9 +16435,27 @@ + + + + + + + + + + + + + + + + + + @@ -16872,6 +16468,15 @@ + + + + + + + + + @@ -16890,11 +16495,11 @@ - + - + @@ -16917,24 +16522,15 @@ - - - - - - - - - - + - + - + @@ -16948,6 +16544,15 @@ + + + + + + + + + @@ -16957,11 +16562,11 @@ - + - + @@ -16975,6 +16580,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16984,59 +16628,41 @@ - + - + - - - - - - - - - - - - - - - - - - - + - + - + - + - + @@ -17059,17 +16685,14 @@ - + - - - - + - + @@ -17095,28 +16718,40 @@ - + - + - + + - + + + - + + + + + + + + + + @@ -17144,28 +16779,19 @@ - + - + - - - - - - - - - - + - + @@ -17177,19 +16803,19 @@ - + - + - + - + @@ -17201,7 +16827,7 @@ - + @@ -17217,38 +16843,38 @@ - + - - - - + - + - + + - + + + - + - + - + - + @@ -17262,19 +16888,19 @@ - + - + - + - + @@ -17295,16 +16921,16 @@ - + - + - + @@ -17315,134 +16941,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VCShared/DataSources/Internal.dso b/mappFramework/Logical/VCShared/DataSources/Internal.dso index 5bfa9c91..b94007a6 100644 --- a/mappFramework/Logical/VCShared/DataSources/Internal.dso +++ b/mappFramework/Logical/VCShared/DataSources/Internal.dso @@ -1,190 +1,276 @@ - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - - - - - - - + + + + + + + - - - - - - - + + + + + + - - + + - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + - - + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 575ebacc..6291a5f3 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 2a0f0375..0acb42ad 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + @@ -12,112 +12,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - + - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -132,8 +132,8 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index 42b15a43..2ba288ec 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -246,69 +246,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
    \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index 1de874ed..e31dabc5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 87b8beb6..17ebf852 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -5,69 +5,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index c0719fe6..cb9b151c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index c4ca5bb3..58749f44 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -5,57 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 0fe41f88..1657bfd5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -246,69 +246,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index c1baaff9..6e1f9350 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -66,24 +66,24 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index bc1eb3c3..fdd95df9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -66,24 +66,24 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index eff8f332..26a73e6f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -5,69 +5,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index a2ebec46..3a1966a2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index d79cd0c6..9a2d9099 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -5,27 +5,27 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index d8e3b9ed..ed16cc6d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -5,84 +5,84 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index f5a4280e..3cd87fce 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index 16a488fd..458a5c2d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index bbd135b5..de2f0185 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -5,96 +5,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index a6b3ce90..8791bde6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index dc3336f5..aac5f85b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -16,15 +16,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 32947a83..7d2425ff 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index 1757d926..bfdacd30 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -5,39 +5,39 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index 6ef00e7d..fe6a6b32 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -5,90 +5,99 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index c3bd3f01..779a4f76 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -5,33 +5,33 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 42934d4e..c88aca26 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index 26baab87..c6eea97d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -5,57 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index 4b74bf12..e9e6617b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index 5ec9e3a6..bcdc558d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -5,57 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index bbfebcd8..f5e2399c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -5,21 +5,21 @@ - - - - + + + + - - - - + + + + - - - - + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp index bc066e4f..8bad022a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp index c9070fa4..28f691a8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp @@ -5,108 +5,108 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp index 417e2622..781cdbba 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp @@ -246,69 +246,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp index b5e67162..38a18424 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp @@ -246,69 +246,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index 82b9269c..d1c7f8d0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -86,39 +86,39 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 04e30c96..7ce28405 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -46,18 +46,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index b54b0cab..f77c3bda 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -5,33 +5,33 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index 6021ba64..3c14a557 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -5,48 +5,48 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index e847b6cf..aceb388b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -46,99 +46,99 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index 47fb1c3f..6de86a6b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index 79f46747..ab82a538 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -5,72 +5,72 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index f046bc91..33aed38e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -162,21 +162,21 @@ - - - - + + + + - - - - + + + + - - - - + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index 9c8475e8..29a884e8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -5,60 +5,60 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index dc4ce9d0..a5a098fb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -222,27 +222,27 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index 034c8b00..f7ca3c8a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -5,21 +5,21 @@ - - - - + + + + - - - - + + + + - - - - + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index bd809c6f..7c25b5c4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -5,57 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index 104e8a65..b41ead58 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -5,57 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index c895eeab..3eff71fc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -5,33 +5,33 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index 6abce760..bdb56e5b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -5,42 +5,42 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index 1fc9be9a..781a15f4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -5,18 +5,18 @@ - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 1bb39903..474f2c65 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -5,63 +5,63 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 875fff16..453fbd4b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1482,168 +1482,168 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index 10ac29cf..ea13f3ec 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -5,33 +5,33 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index fa1ad4e7..87366d78 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -246,15 +246,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index 950ad11e..ba0148ed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index c067216c..2bdae103 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -5,33 +5,33 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index cc2050ef..9a3e412d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -246,69 +246,69 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index fc49ab86..9f6cbfef 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -5,30 +5,30 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index d5a35c1a..5e16e52a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -46,78 +46,81 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index f6dd7667..529b51ca 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -246,15 +246,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 8c591cb0..d667bb8e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -5,156 +5,156 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp index 972bc566..8a79c00e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp @@ -5,24 +5,24 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp index facf1ffb..f40256da 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp @@ -16,27 +16,27 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp index 31d96dc4..f20053b1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp @@ -5,81 +5,81 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp index b25096dc..ac0ebfaf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index 05fa1d8d..e9fe624a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -5,24 +5,24 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 5bc4fef2..77293ce2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -5,27 +5,27 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 2c97560f..676f43b0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index 4ac5aa86..3c0ab1b2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -5,39 +5,39 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index 6ae173e5..cd9d7f94 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -5,24 +5,24 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 6b57c4a5..05a7d662 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -5,36 +5,36 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index a495de81..d5f65928 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -5,141 +5,141 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index d36dd883..7c4ce322 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -42,33 +42,33 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 5fa6b5e0..cdbd7a9f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -30,165 +30,165 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 16fa06df..48965561 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -5,12 +5,12 @@ - + - + - + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index 7954eb02..f75fde4d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -5,15 +5,15 @@ - - + + - - + + - - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index 4b3cfb36..e2c7113e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -5,126 +5,126 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index 6f36239b..78073507 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -13,31 +13,31 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index ad19d93c..f01e3d51 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -13,31 +13,31 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index 7cb2a7a1..eca57799 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -13,37 +13,37 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index 771beaf0..61944214 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,7 +2,6 @@ - @@ -12,15 +11,7 @@ - - - - - - - - - + diff --git a/mappFramework/Physical/SimulationVC4/PC/Cpu.sw b/mappFramework/Physical/SimulationVC4/PC/Cpu.sw index 7be5aaba..7168bc69 100644 --- a/mappFramework/Physical/SimulationVC4/PC/Cpu.sw +++ b/mappFramework/Physical/SimulationVC4/PC/Cpu.sw @@ -15,7 +15,7 @@ - + @@ -39,13 +39,54 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -67,6 +108,11 @@ + + + + + @@ -108,5 +154,6 @@ + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index 09091b26..c67f3daa 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -11,22 +11,14 @@ - - - - - - - - From b407f9d3600a3110baca2116d71497ab4afbbc17 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 19 May 2023 12:30:23 -0400 Subject: [PATCH 103/159] Temporarily disable the requiremetn to change password --- .../Physical/Simulation/PC/mappServices/UserX/UserXCfg.mpuserx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mappFramework/Physical/Simulation/PC/mappServices/UserX/UserXCfg.mpuserx b/mappFramework/Physical/Simulation/PC/mappServices/UserX/UserXCfg.mpuserx index 557c8864..ed23bae7 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/UserX/UserXCfg.mpuserx +++ b/mappFramework/Physical/Simulation/PC/mappServices/UserX/UserXCfg.mpuserx @@ -1,11 +1,11 @@  + - From 42f012c8c4994d7bbf6e58b55df9cac37564b18b Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 19 May 2023 12:30:50 -0400 Subject: [PATCH 104/159] Remove pages that we will never implement in the framework --- .../Pages/MpComLoggerUI.page | 1122 -------- .../mappFrameworkVisu/Pages/MpEnergyUI.page | 2522 ----------------- .../Pages/MpTweetCoreUI_Alarm.page | 1421 ---------- .../Pages/MpTweetCoreUI_Receiver.page | 1189 -------- 4 files changed, 6254 deletions(-) delete mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page delete mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page delete mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page delete mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page deleted file mode 100644 index f6b237b8..00000000 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpComLoggerUI.page +++ /dev/null @@ -1,1122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page deleted file mode 100644 index 1d905e5c..00000000 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpEnergyUI.page +++ /dev/null @@ -1,2522 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page deleted file mode 100644 index 5f535962..00000000 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Alarm.page +++ /dev/null @@ -1,1421 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page deleted file mode 100644 index 1dbd89ef..00000000 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpTweetCoreUI_Receiver.page +++ /dev/null @@ -1,1189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From d309d7f5c2d400849413cd4c9940881ba042e509 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 19 May 2023 12:31:06 -0400 Subject: [PATCH 105/159] Updates to the start page --- .../Layers/MpPageControl.layer | 2 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 4 - .../Pages/mapp1StartPage.page | 296 +-- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 164 -- .../VCShared/DataSources/DataSource.dso | 1832 ++--------------- 5 files changed, 248 insertions(+), 2050 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index c1710dec..27738fd7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -167,7 +167,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index bb26ba33..1b342774 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -407,10 +407,8 @@ - - @@ -422,8 +420,6 @@ - - diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index 57e523b3..6b5d36e1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -56,96 +56,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -162,7 +72,7 @@ - + @@ -172,7 +82,7 @@ - + @@ -192,7 +102,7 @@ - + @@ -202,7 +112,7 @@ - + @@ -222,7 +132,7 @@ - + @@ -232,7 +142,7 @@ - + @@ -252,7 +162,7 @@ - + @@ -262,40 +172,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -312,7 +192,7 @@ - + @@ -322,40 +202,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -372,7 +222,7 @@ - + @@ -382,40 +232,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -432,7 +252,7 @@ - + @@ -442,7 +262,7 @@ - + @@ -462,7 +282,7 @@ - + @@ -472,7 +292,7 @@ - + @@ -492,7 +312,7 @@ - + @@ -502,25 +322,12 @@ - + - - - - - - - - - - - - - @@ -534,19 +341,6 @@ - - - - - - - - - - - - - @@ -586,45 +380,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -638,19 +393,6 @@ - - - - - - - - - - - - - @@ -668,7 +410,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 763b2780..df5834fa 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1746,18 +1746,10 @@ - - - - - - - - @@ -1774,18 +1766,6 @@ - - - - - - - - - - - - @@ -2126,10 +2106,6 @@ - - - - @@ -2818,10 +2794,6 @@ - - - - @@ -2834,10 +2806,6 @@ - - - - @@ -2958,10 +2926,6 @@ - - - - @@ -2970,14 +2934,6 @@ - - - - - - - - @@ -3026,10 +2982,6 @@ - - - - @@ -3046,14 +2998,6 @@ - - - - - - - - @@ -3146,22 +3090,6 @@ - - - - - - - - - - - - - - - - @@ -3234,30 +3162,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -3606,14 +3510,6 @@ - - - - - - - - @@ -3630,14 +3526,6 @@ - - - - - - - - @@ -3654,62 +3542,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 82c3fd35..45dd2669 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -2091,49 +2091,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2160,15 +2117,6 @@ - - - - - - - - - @@ -2187,99 +2135,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -2288,19 +2158,16 @@ - + - - - - + - + - + @@ -2309,586 +2176,133 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - + + - - - + + - + - - - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -3199,585 +2613,152 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - - - + + - + - + - + + - + - + - + + - + - + - - - - + + - + - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -9985,63 +8966,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -11223,70 +10147,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + + + + + - - - - + - + @@ -11353,7 +10235,7 @@ - + @@ -11374,7 +10256,7 @@ - + @@ -11386,7 +10268,7 @@ - + @@ -11398,7 +10280,7 @@ - + @@ -11408,27 +10290,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -11442,27 +10303,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -11470,7 +10310,7 @@ - + @@ -11541,7 +10381,7 @@ - + @@ -11553,7 +10393,7 @@ - + @@ -11563,21 +10403,9 @@ - - - - - - - - - - - - - + @@ -11591,34 +10419,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12117,30 +10917,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -12148,65 +10924,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12216,27 +10933,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -12250,27 +10946,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -12284,52 +10959,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12341,15 +10974,6 @@ - - - - - - - - - From 4c9eb5b401ef9b8c18151630837ba4ef29ad6ba1 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Fri, 19 May 2023 13:28:42 -0500 Subject: [PATCH 106/159] AAZN-625 - update landing page --- .../BitmapGroups/MpIcons.bmgrp | 20 +- .../Bitmaps/MpIcon_AlarmX.bminfo | 15 + .../Bitmaps/MpIcon_AlarmX.png | Bin 0 -> 712 bytes .../Bitmaps/MpIcon_Audit.bminfo | 15 + .../Bitmaps/MpIcon_Audit.png | Bin 0 -> 783 bytes .../Bitmaps/MpIcon_Axis.bminfo | 15 + .../mappFrameworkVisu/Bitmaps/MpIcon_Axis.png | Bin 0 -> 728 bytes .../Bitmaps/MpIcon_Backup.bminfo | 15 + .../Bitmaps/MpIcon_Backup.png | Bin 0 -> 535 bytes .../Bitmaps/MpIcon_FileExporer.bminfo | 15 + .../Bitmaps/MpIcon_FileExporer.png | Bin 0 -> 543 bytes .../Bitmaps/MpIcon_PackML.bminfo | 15 + .../Bitmaps/MpIcon_PackML.png | Bin 0 -> 426 bytes .../Bitmaps/MpIcon_Recipe.bminfo | 15 + .../Bitmaps/MpIcon_Recipe.png | Bin 0 -> 902 bytes .../Bitmaps/MpIcon_Report.bminfo | 15 + .../Bitmaps/MpIcon_Report.png | Bin 0 -> 1013 bytes .../Bitmaps/MpIcon_UserGroup.bminfo | 15 + .../Bitmaps/MpIcon_UserGroup.png | Bin 0 -> 854 bytes .../Bitmaps/mappFramework_logo.bminfo | 15 + .../Bitmaps/mappFramework_logo.png | Bin 0 -> 53733 bytes .../Layers/MpPageControl.layer | 371 +++++++++++++++++- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 12 +- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 12 +- .../Pages/MpFileManagerUI.page | 4 +- .../Pages/MpPackMLBasicUI.page | 180 ++++----- .../Pages/MpPackMLStatisticsUI.page | 12 +- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 47 +-- .../Pages/mapp1StartPage.page | 363 +---------------- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 78 ++-- .../VCShared/DataSources/DataSource.dso | 336 +--------------- mappFramework/Logical/VCShared/Package.vcp | 4 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 5 +- 33 files changed, 707 insertions(+), 887 deletions(-) create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Audit.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Audit.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.png diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp index a8006a02..9be0b75d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + @@ -35,6 +35,15 @@ + + + + + + + + + @@ -67,5 +76,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.bminfo new file mode 100644 index 00000000..6c160c0b --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_AlarmX.png new file mode 100644 index 0000000000000000000000000000000000000000..46696941fcc3e68c812c93b9e9ee659fa0938ce7 GIT binary patch literal 712 zcmV;(0yq7MP)QByC@3ujyXZzlMR4I#@d1L1fD6}(7%|i?{0DTY zOR?%k@UaY8`RGch6cnL8cBLp{i4?8Zg=fl_>C7;hq{)E`bIwh4GE z_zz%L<}Cp3(YTL?V>tT+Kak=4+|6VFm;hGggO3tS2G-dMuqA=>Saeo_$y5U-Ix8Ql z1I3hsdI2b<;6>92^=5$}%|I!#^iwI~yKS{5fITU^sfcDN)&S54EDG^6a^J@Y>o?=e z6kfr!Lhd5a7xx-Y0|PR@?7gp(96`c!Lzu=DNeuuul>qCn&{|SQ(%Ez2zskU`316>t zTm<|BjAsxW0gl<&pMgJa+G|Y$&H-nE2eL#zfj22j-%3mZy)r)sFi+zt?c|sbB91y8 uy^jAsEXu%+4i{enZn^Lzb}PF6@Aw}F@rjns9$hd10000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Audit.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Audit.png new file mode 100644 index 0000000000000000000000000000000000000000..3f593e739c0a3bfd8ac28b7b63dafc989ecdde3b GIT binary patch literal 783 zcmV+q1MvKbP)@-|psv;huNqobNkx?!1{R zGxZs+$6hQUJN8%cT{pzhwZOxeSI1#I*y9`FEZ*$#eU+J?b|-76UoZQh8{r1b7U7q$ z&^gR0>?)f_h|ZdGc(pV47+z^{|BDT+@rBI%sO^l1yUK8MVwhlf?^!RSn6!wjH7yCzx68ooVGZWg{Glg@xJkMd%sCaj;VCO&tlaQHt z5%-ShN@R~_=I_+A^pQ0PE=9yy94fzmYK!#=?pTB1wfMw;$f!5qc^t&)a{5~%;{MEBEdK49w7*=QH{b=l)uvgoAnwL{nx=aT_TT|5 zM#S#2XErkzBVt*TEW5BJBJRUZ10AK7G@oG~p2M?v2){(cQ=0a)59cG|5PrtfxJ}bV zw%`j~Sy6-$ag*j{FW`XY9e%9&Z(YLec)LV#1$UPDi<+yQ#dm#TV}iK3%zcfc9p5(m zR-(LIY=oH-?TBMVf^Xo@p~X|6_d}~KI9KedVoe`Js}=m=D)NtU{{vLCalwZ5lZF5Q N002ovPDHLkV1h%wc#Z%7 literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.bminfo new file mode 100644 index 00000000..6b0f8f48 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Axis.png new file mode 100644 index 0000000000000000000000000000000000000000..f234f1b14aed5ae3ecc9e92ebfec902b974f6489 GIT binary patch literal 728 zcmV;}0w?{6P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10%b`= zK~z|U?bp9+mRA(O@y|)Mp^9Q{iedzZT02#tK|2&GwVU9k{sm$Sb#T%k4qZD4nZztE z9a797h^3`C=pdG&NSA_WN{3d#9|R;Z5*x3>b6@-V=1HFW1R;g?z~SY2&bjA)&%NiK z`@E4-vYgVlth4_Q&;$?>zeGf8sdppdz1ISO$EAU~Kscs1rd=Tr4+3P_sD`P z5D|kBajR~byFqI7QADgO28f6^Bci{?_7S$V%LlASaSgz)xSh9RFCHQ_=)(rTp_Gym z?Zb9#%`m(0P6O~9M({q);CV@w5wSiZhO+L6h?N~%Ldq-fbwlRk*wUQ=j&<3m^Y5RS z$a)rQ@uVl#Nap~Q0-Ve~yKyK7{RU67eH3eOwP)O4*i;j5N>wjK0N-Z&@%((>{2G|T zXV{SKo%fSHtJJN-B>*!y=)Q*SNqB&FbKoZ5&Q`sAIDm6CPUkb+&BCC=s-iCOO$r=N zsP_ALVZiS*@Jxw+cPAXjZ|2KmY({C@?R3HE66coyDW!uMqE|NJp2G8viHKN@w_5=$ zBA=#|CUK<@;5&R?7#q!}U=AN*C!W>VyY*+)ReZU@Z+;Or^nq*W$9}IC;~d5?i$CxI zj}_6a7tDEr2rQfi@Bt);@2tv?te!A34j+R5?iDAFC}sS0000< KMNUMnLSTZm`c#(y literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.bminfo new file mode 100644 index 00000000..30a4b07b --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Backup.png new file mode 100644 index 0000000000000000000000000000000000000000..9a36eb5bd40f774e2111a39735cc480cc4d6e4e1 GIT binary patch literal 535 zcmV+y0_gpTP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10i;Pp zK~z|U&DXJN)Iku(@y~?AAh8fN58#Q47D;1eEEFO>fmrzlf~8g-v9lF?f;1A&(k@^X z3)3kGMw3Eot?r15Fc$Z}%m46F?w$h!^WXi$ci5f%?JO+g6$Z#kK0qJK(ZJ86heLJj zB%b0+2X}BUGhau_cOB}5s8-_EMXWCE7&Rw2Mue0rG?h`nL@mc%nWR_#?Fp| zg@6CAYn=*=UPSbco1FU!v=jJUk^5^Lw71|LUf^pqxz|8j z2~XoKt`uf|G!i0AufR$n_zs>qQrW9mos~eT?by!D$Jn05s!;=L5%CCXvnFdO;d6ZWi literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.bminfo new file mode 100644 index 00000000..0195f201 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_FileExporer.png new file mode 100644 index 0000000000000000000000000000000000000000..05f599ad60ac010f157b71fe77c889a42b4a668f GIT binary patch literal 543 zcmV+)0^t3LP)G0+l2-&{)}FXRxp}{s4)Ezk<#fj7D4aSD46BSQ$;!#zsnG zXJG}>V6*_N)UjYmHn24(F=Mr~x1G0#gkW7VvFcB7$GIT~*JMEMxJQZauE5^(2?^7C-O_zgu>F z53j3gwS%+x)3U&*xPWI#F0$|GQVY)(u#NYa9>M#2_|wLx!D3n=ncDAG|-Z+Cdm*!62;TNyB%S zn-*;&V58~xBFW9BMgQM>;3Ng?VR{1GGuZ9m6;_h4e_UV=n}-tSlPonXK97w<&*u8} z#tc?^+-9-XBkv!(x_#qQSNpN;xcnWgVs_ZPHi)p>V%}?t h$sZ`-Br)-0_!pHs_H6*u$y@*c002ovPDHLkV1mI#_H_UN literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.bminfo new file mode 100644 index 00000000..aca268af --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_PackML.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7ee422a3d5e03e45804a1bafccdcd70f7640b4 GIT binary patch literal 426 zcmV;b0agBqP)SYy8pQ%VbWPo>UwG|#)%Qc4e{ z(c5Zhr*XL<{5J;n8Ibg1X2k$Wvdr3RUk!0M(K>^b!KUNAx5iobf#1OB8Mqqw1_@fv Uap}>XlmGw#07*qoM6N<$g4J)aqyPW_ literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.bminfo new file mode 100644 index 00000000..1663f024 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Recipe.png new file mode 100644 index 0000000000000000000000000000000000000000..3f78bdfc017227c5bdc8610caf2fc932545da8f6 GIT binary patch literal 902 zcmV;119|+3P)8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10~1L^ zK~z|U#n-`WT}2ef@y{e_8kz2~T0X4Z|eU@Nu6-SBuX>NNpJ2))UMmp210(-{tENT$WG6lf}nm zkME9Fs*d86(kc9kHzH!TchgczTd)gvVFzx&SQ%czKll?r;e13aH~83#m#{M;o_0LExz||^HJXq`%Tuv#S!*`g)@AzB3c$UhX zF>J@pxE1%}zOs#5dsm{S)wKdI8$1D(9dAm)VZ2para{;$-o$Vth9!`Fc)Kidzl0Zy z&wagmbqel}h|X!4Qradb(0)83KSp-Zl{Zao8RunmKf`H!8WERjz8{E)uh131jEvUn z_$VS)dOa5u@4$q7q1;r4=5Y~!;g_ZtP)cbSQ#g(b5iyNM3(>W0+VE!zrAOh|AUXq?GQ&V={(&tf9E2Wp9_|x?s*4 zhMz>l&o!T0u|Fa{#8ni`;d%MCS}(&#af_VgyGws`gE>3#0?w&X(1zhEKF6yvyOSD< zigm<>%A6^@R(#cu_(lvb)%pn!73++rlxFdpwVQCUjBU4eBi=6GhU>kuFLrvhs1Mql z!sH4Lv|%`H@TJ+~8(~;4PUrg|I*<48q=r1|VA#|e%JV&Pa*fHQdA&Sekn`dP`9XTt cHI(Q70u$lpNwiyIi~s-t07*qoM6N<$g2=M0mjD0& literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.bminfo new file mode 100644 index 00000000..82faf267 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_Report.png new file mode 100644 index 0000000000000000000000000000000000000000..85560e14b7387504e7a1063a1227be147a65b5bf GIT binary patch literal 1013 zcmVT36*oH`!H06j2d`1X&r~ zbg^iZU{O{^SXhu$LPQW{T}T^Rp;;Qj7PXXXhD;adtUdeoyt^uFHZbq=J~MO9{Ljpp zIp+xsVwTfGgMq}<%sld6dX9)G7@pJ+yb}?<5wRsA&WVVP5ixhdfv6F{vCRA{A|^MV z6Xv)^pr^hMAR}T#IqEr47)E{)7vs-~^wvUWV&MO?2~QXGjHQf-Ik*{1aITW3{n(BV zGqY>jB4R%J(Ol%N%)D=001+`AYj7t%z{j`*Ut$Q4V|GM5l9?}c!SExV>Hu)4%`h<~ zGi4^s!&lgh^BeLvu&VLCOsSq1FnL7Y(D&h0+>4ob8EYE)Db@Es0IK00JlrzjC;(M9 z9XqhT#eN!Y#iAPNl~~#dpfd%}Vn=2^(Iu>-Lzg)e5i7AXB35MP)`of}t~WXbd+f;p@mAL5DSKsS2Y~&Z$T%hwIpDPGI~fYDVA!eBWji5wn#((3_c` zcCp!qlRiD05eS^obQ%$>BVs%DDdAoh5zD*Gb*#>D$^Z^xafj0zu}SF%%W*qiiHN&f z=IXNt*wE!dZt4~&&Jh=?Ag zaa~tMk7nj;5izNzqm70#b1)*#Rw`-ucm(Ro<|w(pYrH5l+U)>dY{(YjGko5{&(#QQ z{8tJZ6D+9V>c=@_IA5%Ey4O3#_u}#{+*fVpwx*yF-r0B(x8O~DgdcDgF2qgB@%$M2 z8|_y_T#Bc)m*g%yRP_&Hc+4wVM9ixomf$?4>y2DUwq@q;En}u(X^V3>l$pCCVgdGQ z+=^Q%Gxy?|v20qX5399DU?3uPE9cHy#<`N6A{|if4z0S(JQ@-2Hie@$VNK^f$|jtJ zJFs3^*$QmHLgnDufU8fWVp=wF>xE>5zE)1X!%9=>#c#@CwNv?^JzD?&bh068(rN!L j=uuWPJi(t~-DvP{sMi-7D4BY100000NkvXXu0mjf6rImg literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.bminfo new file mode 100644 index 00000000..c7858154 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.bminfo @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpIcon_UserGroup.png new file mode 100644 index 0000000000000000000000000000000000000000..79ca6255ddd12ec327ffab0ff852d7e1c6a99ea7 GIT binary patch literal 854 zcmV-c1F8IpP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10^>u@Sf7qY)Fg z$3L33y%P7~Oct`Y6av>`9~O(?y|^2v2PF6zd$0?;v-leRJ6wc!i@7uT&8%LAPw+U( zHu($g!o_;+S3HIXHBD(%#_hxUOuSg&*XHN%i@D|4f!PUMUrDmqC;1UPiJjQe5>2yp zJMlzb@p78#i-@xozI7A$rjl%4Q-nVjbEmKs@8OmT8C<3*+-bak=QXuJ(>>=~_)}dk zBd_US6ASpMcz*PP-iUC8rg-`ty_+*`OP>4ULJN3m!0HbaxG02PJ&d=@jp&8}zKs!a zd;YyuEp$on^Q9*LKdKQ!{`Y6;lYhx903!RPtyJdI;5%!1~7u%SzHi<}rl z#Fv`S@RA+F4>*`odZ{ele8*p_`J*z2Z&ONt=xW94*Esi+oUo_MYQ`C5ANUK~uo-t~ g&h|T + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a71a2abca5c6f29b094e996c25c016c9c19e5fe GIT binary patch literal 53733 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 - + @@ -118,6 +118,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -172,5 +424,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 1b342774..1e6d2837 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + @@ -374,6 +374,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index fbabced1..01b02bed 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + @@ -67,7 +67,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -131,7 +131,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index 5c9f2d96..b2f9786a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 5f86b6d4..f0d45b00 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + @@ -415,7 +415,7 @@ - + @@ -426,9 +426,9 @@ - + - + @@ -1190,7 +1190,7 @@ - + @@ -1200,7 +1200,7 @@ - + @@ -1210,7 +1210,7 @@ - + @@ -1220,7 +1220,7 @@ - + @@ -1231,7 +1231,7 @@ - + @@ -1242,106 +1242,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1364,7 +1364,7 @@ - + @@ -1387,7 +1387,7 @@ - + @@ -1410,7 +1410,7 @@ - + @@ -1433,7 +1433,7 @@ - + @@ -1456,61 +1456,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1533,7 +1533,7 @@ - + @@ -1556,16 +1556,16 @@ - + - + - + @@ -1588,25 +1588,25 @@ - + - + - + - + - + @@ -1629,7 +1629,7 @@ - + @@ -1653,7 +1653,7 @@ - + @@ -1676,34 +1676,34 @@ - + - + - + - + - + - + - + @@ -1726,25 +1726,25 @@ - + - + - + - + - + @@ -1767,43 +1767,43 @@ - + - + - + - + - + - + - + - + - + @@ -1826,27 +1826,27 @@ - + - + - + - + - + @@ -1869,7 +1869,7 @@ - + @@ -1892,7 +1892,7 @@ - + @@ -1903,7 +1903,7 @@ - + @@ -1926,7 +1926,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index c4b9e47d..9054ea12 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + @@ -168,7 +168,7 @@ - + @@ -179,9 +179,9 @@ - + - + @@ -2245,7 +2245,7 @@ - + @@ -2256,7 +2256,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index 7b6c2d4f..a6c34d08 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + @@ -563,51 +563,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index 6b5d36e1..c451e3b1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + @@ -44,369 +44,20 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index df5834fa..b60e749f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + @@ -1746,30 +1746,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -2330,10 +2306,6 @@ - - - - @@ -2590,10 +2562,6 @@ - - - - @@ -2730,10 +2698,6 @@ - - - - @@ -3110,10 +3074,6 @@ - - - - @@ -4346,4 +4306,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 45dd2669..1bacc4b7 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -2055,129 +2055,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2189,24 +2066,6 @@ - - - - - - - - - - - - - - - - - - @@ -2727,50 +2586,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -10133,44 +9948,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -10245,15 +10025,6 @@ - - - - - - - - - @@ -10291,19 +10062,6 @@ - - - - - - - - - - - - - @@ -10419,15 +10177,6 @@ - - - - - - - - - @@ -10659,33 +10408,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -10918,62 +10640,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 0acb42ad..05922590 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 7d2425ff..7a60a9eb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + @@ -24,6 +24,7 @@ + @@ -45,6 +46,7 @@ + @@ -66,5 +68,6 @@ + \ No newline at end of file From 7fb319b367f7c9b8b9f8ca9bdfd415d26b2d486c Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Fri, 19 May 2023 15:08:30 -0400 Subject: [PATCH 107/159] Fixed VNC connection to MpBasicUIConnect --- .../PackML/PackMLMgr/PackMLMgr.st | 2 +- .../PackML/PackMLMgr/StateMachine_Main.st | 1 - .../VC4/PackML/PackMLMgr/HMIActions.st | 43 ++- .../VC4/PackML/PackMLMgr/PackMLMgr.st | 2 +- .../VC4/PackML/PackMLMgr/StateMachine_Main.st | 34 ++ .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../Pages/MpPackMLBasicUI.page | 6 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 2 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 294 ++++++++++++++++++ mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 2 +- 14 files changed, 372 insertions(+), 24 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st index 490d3ce4..06298455 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.st @@ -26,8 +26,8 @@ END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions - HmiActions; StateMachine_Main; + HmiActions; // Assign MpLinks & UIConnects MpPackMLModule_Main.Parameters := ADR(MpPackMLModulePar_Main); diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st index 54294538..2b85118d 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/StateMachine_Main.st @@ -27,7 +27,6 @@ ACTION StateMachine_Main: // Add SUSPENDED actions here - mpPACKML_STATE_UNSUSPENDING: // Add UNSUSPENDING actions here diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st index c722ddd2..1cafaba3 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st @@ -1,20 +1,41 @@ ACTION HmiActions: - // Reset all commands on each state change IF HmiPackML.Status.LastState <> MpPackMLMode_0.StateCurrent THEN - MpPackMLBasicUIConnect.StateControl.Abort := MpPackMLMode_0.Abort := FALSE; - MpPackMLBasicUIConnect.StateControl.Clear := MpPackMLMode_0.Clear := FALSE; - MpPackMLBasicUIConnect.StateControl.Hold := MpPackMLMode_0.Hold := FALSE; - MpPackMLBasicUIConnect.StateControl.Reset := MpPackMLMode_0.Reset := FALSE; - MpPackMLBasicUIConnect.StateControl.Start := MpPackMLMode_0.Start := FALSE; - MpPackMLBasicUIConnect.StateControl.StateComplete := MpPackMLMode_0.StateComplete := FALSE; - MpPackMLBasicUIConnect.StateControl.Stop := MpPackMLMode_0.Stop := FALSE; - MpPackMLBasicUIConnect.StateControl.Suspend := MpPackMLMode_0.Suspend := FALSE; - MpPackMLBasicUIConnect.StateControl.Unhold := MpPackMLMode_0.Unhold := FALSE; - MpPackMLBasicUIConnect.StateControl.Unsuspend := MpPackMLMode_0.Unsuspend := FALSE; + // Reset all commands on each state change + MpPackMLBasicUIConnect.StateControl.Abort := MpPackMLMode_0.Abort := 0; + MpPackMLBasicUIConnect.StateControl.Clear := MpPackMLMode_0.Clear := 0; + MpPackMLBasicUIConnect.StateControl.Hold := MpPackMLMode_0.Hold := 0; + MpPackMLBasicUIConnect.StateControl.Reset := MpPackMLMode_0.Reset := 0; + MpPackMLBasicUIConnect.StateControl.Start := MpPackMLMode_0.Start := 0; + MpPackMLBasicUIConnect.StateControl.StateComplete := MpPackMLMode_0.StateComplete := 0; + MpPackMLBasicUIConnect.StateControl.Stop := MpPackMLMode_0.Stop := 0; + MpPackMLBasicUIConnect.StateControl.Suspend := MpPackMLMode_0.Suspend := 0; + MpPackMLBasicUIConnect.StateControl.Unhold := MpPackMLMode_0.Unhold := 0; + MpPackMLBasicUIConnect.StateControl.Unsuspend := MpPackMLMode_0.Unsuspend := 0; + + // Reset all ColorIndexes on each state change + MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopping := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Clearing := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborted := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborting := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Resetting := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Unsuspending := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspended := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspending := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Idle := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Starting := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Execute := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Completing := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Complete := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Unholding := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Held := 0; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Holding := 0; + HmiPackML.Status.LastState := MpPackMLMode_0.StateCurrent; + END_IF // Connect UIConnect Commands to function block diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st index f2918479..2dce80eb 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st @@ -33,8 +33,8 @@ END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions - HmiActions; StateMachine_Main; + HmiActions; // Assign MpLinks & UIConnects MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st index 3d1c6de0..1c601986 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st @@ -5,36 +5,48 @@ ACTION StateMachine_Main: mpPACKML_STATE_STOPPED: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 2; + // Add STOPPED actions here MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.Reset; mpPACKML_STATE_STARTING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Starting := 1; + // Add STARTING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_IDLE: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Idle := 2; + // Add IDLE actions here MpPackMLMode_0.Start := MpPackMLBasicUIConnect.StateControl.Start; mpPACKML_STATE_SUSPENDING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspending := 1; + // Add SUSPENDING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_SUSPENDED: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspended := 2; + // Add SUSPENDED actions here MpPackMLMode_0.Unsuspend := MpPackMLBasicUIConnect.StateControl.Unsuspend; mpPACKML_STATE_UNSUSPENDING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Unsuspending := 1; + // Add UNSUSPENDING actions here MpPackMLMode_0.StateComplete := TRUE; @@ -42,6 +54,8 @@ ACTION StateMachine_Main: mpPACKML_STATE_EXECUTE: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Execute := 3; + // Add EXECUTE actions here MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; @@ -50,42 +64,56 @@ ACTION StateMachine_Main: mpPACKML_STATE_STOPPING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopping := 1; + // Add STOPPING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_ABORTING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborting := 1; + // Add ABORTING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_ABORTED: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 2; + // Add ABORTED actions here MpPackMLMode_0.Clear := MpPackMLBasicUIConnect.StateControl.Clear; mpPACKML_STATE_HOLDING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Holding := 1; + // Add HOLDING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_HELD: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Held := 2; + // Add HELD actions here MpPackMLMode_0.Unhold := MpPackMLBasicUIConnect.StateControl.Unhold; mpPACKML_STATE_UNHOLDING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Unholding := 1; + // Add UNHOLDING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_COMPLETING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Completing := 1; + // Add COMPLETING actions here MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; @@ -93,18 +121,24 @@ ACTION StateMachine_Main: mpPACKML_STATE_COMPLETE: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Complete := 2; + // Add COMPLETE actions here MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.Reset; mpPACKML_STATE_RESETTING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Resetting := 1; + // Add RESETTING actions here MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_CLEARING: + MpPackMLBasicUIConnect.StateControl.ColorIndex.Clearing := 1; + // Add CLEARING actions here MpPackMLMode_0.StateComplete := TRUE; diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 9e955c27..05026594 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 31b284de..4744b76b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -56,7 +56,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -1854,7 +1854,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index d8d2d534..3822e03a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 06c7cac4..207533e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 2602c2e3..db67c030 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index a31ecc7c..a38ea2d2 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 0b22aeeb..08367ae6 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -10659,6 +10659,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 6291a5f3..eaebb8b4 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index d718cf5a..b7d80716 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,5 +1,5 @@ - + From e9d65151e2a2d755cf27c6416645fc484bf5b590 Mon Sep 17 00:00:00 2001 From: tclark-brautomation Date: Fri, 19 May 2023 16:14:56 -0400 Subject: [PATCH 108/159] Fixed bugs in DataSource --- .../VC4/PackML/PackMLMgr/HMIActions.st | 20 +- .../VC4/PackML/PackMLMgr/StateMachine_Main.st | 4 +- .../Pages/MpPackMLBasicUI.page | 56 ++- .../VCShared/DataSources/DataSource.dso | 374 ++---------------- mappFramework/Logical/VCShared/Package.vcp | 2 +- 5 files changed, 77 insertions(+), 379 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st index 1cafaba3..84831f1d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st @@ -4,16 +4,16 @@ ACTION HmiActions: IF HmiPackML.Status.LastState <> MpPackMLMode_0.StateCurrent THEN // Reset all commands on each state change - MpPackMLBasicUIConnect.StateControl.Abort := MpPackMLMode_0.Abort := 0; - MpPackMLBasicUIConnect.StateControl.Clear := MpPackMLMode_0.Clear := 0; - MpPackMLBasicUIConnect.StateControl.Hold := MpPackMLMode_0.Hold := 0; - MpPackMLBasicUIConnect.StateControl.Reset := MpPackMLMode_0.Reset := 0; - MpPackMLBasicUIConnect.StateControl.Start := MpPackMLMode_0.Start := 0; - MpPackMLBasicUIConnect.StateControl.StateComplete := MpPackMLMode_0.StateComplete := 0; - MpPackMLBasicUIConnect.StateControl.Stop := MpPackMLMode_0.Stop := 0; - MpPackMLBasicUIConnect.StateControl.Suspend := MpPackMLMode_0.Suspend := 0; - MpPackMLBasicUIConnect.StateControl.Unhold := MpPackMLMode_0.Unhold := 0; - MpPackMLBasicUIConnect.StateControl.Unsuspend := MpPackMLMode_0.Unsuspend := 0; + MpPackMLBasicUIConnect.StateControl.Abort := MpPackMLMode_0.Abort := FALSE; + MpPackMLBasicUIConnect.StateControl.Clear := MpPackMLMode_0.Clear := FALSE; + MpPackMLBasicUIConnect.StateControl.Hold := MpPackMLMode_0.Hold := FALSE; + MpPackMLBasicUIConnect.StateControl.Reset := MpPackMLMode_0.Reset := FALSE; + MpPackMLBasicUIConnect.StateControl.Start := MpPackMLMode_0.Start := FALSE; + MpPackMLBasicUIConnect.StateControl.StateComplete := MpPackMLMode_0.StateComplete := FALSE; + MpPackMLBasicUIConnect.StateControl.Stop := MpPackMLMode_0.Stop := FALSE; + MpPackMLBasicUIConnect.StateControl.Suspend := MpPackMLMode_0.Suspend := FALSE; + MpPackMLBasicUIConnect.StateControl.Unhold := MpPackMLMode_0.Unhold := FALSE; + MpPackMLBasicUIConnect.StateControl.Unsuspend := MpPackMLMode_0.Unsuspend := FALSE; // Reset all ColorIndexes on each state change MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 0; diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st index 1c601986..a8cb182e 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st @@ -80,7 +80,7 @@ ACTION StateMachine_Main: mpPACKML_STATE_ABORTED: - MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 2; + MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborted := 2; // Add ABORTED actions here @@ -116,6 +116,8 @@ ACTION StateMachine_Main: // Add COMPLETING actions here + // NOTE: To allow the state machine to move forward, the StateComplete command has been connected + // to the HMI button. The user should change this to set StateComplete to TRUE upon COMPLETING actions. MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 8fd41119..1b42c9d5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -194,6 +194,7 @@ + @@ -432,20 +433,22 @@ - + - + + + - - + + - + @@ -456,11 +459,11 @@ - + - + @@ -471,11 +474,11 @@ - + - + @@ -486,11 +489,24 @@ - + - + + + + + + + + + + + + + + @@ -501,11 +517,11 @@ - + - + @@ -516,11 +532,11 @@ - + - + @@ -546,7 +562,7 @@ - + @@ -636,7 +652,7 @@ - + @@ -651,7 +667,7 @@ - + @@ -1714,7 +1730,7 @@ - + @@ -1937,7 +1953,7 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 31e58095..2a0471bf 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,9 +1,5 @@ -<<<<<<< HEAD -======= - ->>>>>>> origin/develop @@ -9342,15 +9338,6 @@ - - - - - - - - - @@ -9360,15 +9347,6 @@ - - - - - - - - - @@ -9562,10 +9540,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9896,24 +9901,6 @@ - - - - - - - - - - - - - - - - - - @@ -9927,87 +9914,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -10165,34 +10071,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -14907,205 +14786,6 @@ -<<<<<<< HEAD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -======= ->>>>>>> origin/develop diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 05922590..d3a3c214 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,5 +1,5 @@ - + From eb47f2a1902338422f565bcd15ba19e9a7e9dc6c Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Mon, 22 May 2023 07:47:29 -0400 Subject: [PATCH 109/159] fix merge conflict in Cpu.sw from commit c3622dc7f2a798d682ea39c405d42b3ee9838cc9 --- mappFramework/Physical/Simulation/PC/Cpu.sw | 7 ------- 1 file changed, 7 deletions(-) diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index ade35ab1..66109c75 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,10 +2,7 @@ -<<<<<<< HEAD -======= ->>>>>>> VC4 @@ -15,7 +12,6 @@ -<<<<<<< HEAD @@ -26,9 +22,6 @@ -======= - ->>>>>>> VC4 From 0d849c4e71aa362485d2438ac8823baeef94f600 Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Mon, 22 May 2023 09:02:25 -0400 Subject: [PATCH 110/159] fix merge conflict in Cpu.sw for UnitTest configuration from commit c3622dc7f2a798d682ea39c405d42b3ee9838cc9 --- .../Physical/UnitTest/PC_any/Cpu.pkg | 44 +++++++++---------- mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 11 ----- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg index 1ba90ab9..8958190c 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.pkg @@ -1,23 +1,23 @@ - - - - - Cpu.sw - Cpu.per - IoMap.iom - PvMap.vvm - UnitTest - mappServices - TextSystem - mappMotion - AccessAndSecurity - - - - - - - - - + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + UnitTest + mappServices + TextSystem + mappMotion + AccessAndSecurity + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index d9e22d74..e71e8746 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -11,7 +11,6 @@ -<<<<<<< HEAD @@ -29,16 +28,6 @@ -======= - - - - - - - - ->>>>>>> VC4 From 9e26937386092dfb87b066d83e3040845c742fdb Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 24 May 2023 14:42:53 -0500 Subject: [PATCH 111/159] Fix broken CPU.sw after the VC4 merge --- mappFramework/Physical/Simulation/PC/Cpu.sw | 7 ------- 1 file changed, 7 deletions(-) diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index ade35ab1..66109c75 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,10 +2,7 @@ -<<<<<<< HEAD -======= ->>>>>>> VC4 @@ -15,7 +12,6 @@ -<<<<<<< HEAD @@ -26,9 +22,6 @@ -======= - ->>>>>>> VC4 From 46596f79d06f1faca869f25b1d1fe16b17368540 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Thu, 25 May 2023 16:20:38 +0300 Subject: [PATCH 112/159] PopUp problems solved. --- .../Layers/MpPageControl.layer | 104 ++++++++++++++++-- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../Pages/MpAuditCustomEventsUI.page | 2 +- .../Pages/MpAuditTrailUI.page | 16 +++ .../mappFrameworkVisu/Pages/MpAxisBasic.page | 2 +- .../Pages/MpFileManagerUI.page | 2 +- .../Pages/MpPackMLBasicUI.page | 2 +- .../Pages/MpPackMLStatisticsUI.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 2 +- .../Pages/mapp1StartPage.page | 2 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 2 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 2 +- mappFramework/Physical/Simulation/PC/Cpu.sw | 7 ++ 17 files changed, 134 insertions(+), 21 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index 4bcc6107..8937507a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + @@ -143,7 +143,7 @@ - + @@ -314,7 +314,7 @@ - + @@ -435,16 +435,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + @@ -454,23 +499,68 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index b7eb9d5f..7a28f6be 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index 39f5b0f3..814d398b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -56,7 +56,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index aaea3928..5b26925c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -43,6 +43,22 @@ + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index 01b02bed..aa8df07c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index b2f9786a..fac6ffde 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 1b42c9d5..f516e108 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index 9054ea12..66fa099b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index a6c34d08..433e604b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index c451e3b1..a7a1f7d8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index 3822e03a..d8d2d534 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 530799c0..a5d727be 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index db67c030..2602c2e3 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index a38ea2d2..a31ecc7c 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index eaebb8b4..6291a5f3 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index d3a3c214..ff574d38 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index 66109c75..ade35ab1 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,7 +2,10 @@ +<<<<<<< HEAD +======= +>>>>>>> VC4 @@ -12,6 +15,7 @@ +<<<<<<< HEAD @@ -22,6 +26,9 @@ +======= + +>>>>>>> VC4 From 534af92e0440611af5f324c7d58effc6b2dd22ad Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Thu, 25 May 2023 09:47:19 -0400 Subject: [PATCH 113/159] fix merge conflict from commit 46596f79d06f1faca869f25b1d1fe16b17368540 --- mappFramework/Physical/Simulation/PC/Cpu.sw | 7 ------- 1 file changed, 7 deletions(-) diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index ade35ab1..66109c75 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,10 +2,7 @@ -<<<<<<< HEAD -======= ->>>>>>> VC4 @@ -15,7 +12,6 @@ -<<<<<<< HEAD @@ -26,9 +22,6 @@ -======= - ->>>>>>> VC4 From 3183c3c982a0767d2535fcbe3f942851a5cc7824 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Tue, 30 May 2023 12:33:07 +0300 Subject: [PATCH 114/159] Detected some issues have been solved. --- .../Infrastructure/File/FileMgr/FileMgr.var | 2 +- .../Infrastructure/File/FileMgr/HMIActions.st | 10 +- .../VC4/AlarmX/AlarmMgr/AlarmMgr.var | 1 - .../VC4/File/FileMgr/FileMgr.var | 1 - .../VC4/Recipe/RecipeMgr/HMIActions.st | 68 ++-- .../VC4/Recipe/RecipeMgr/RecipeMgr.st | 2 +- .../VC4/Recipe/RecipeMgr/RecipeMgr.typ | 3 + .../BitmapGroups/MpIcons.bmgrp | 2 +- .../Layers/MpPageControl.layer | 15 +- .../Pages/MpFileManagerUI.page | 82 +++-- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 337 ++++++++++++++++-- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 24 ++ .../VCShared/DataSources/DataSource.dso | 53 ++- mappFramework/Logical/VCShared/Package.vcp | 2 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 2 +- .../MpFileManagerUIMessageBox.txtgrp | 4 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 3 + mappFramework/Physical/Simulation/PC/Cpu.sw | 7 + mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 11 + 19 files changed, 529 insertions(+), 100 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var index ef083693..59cb48fc 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var @@ -32,7 +32,6 @@ VAR USBOffset : USINT := 0; (*Device list offset where to add USB device*) MaxDeviceNameIndex : USINT; (*How many devices are configured*) tempIdx : USINT; (*FIFO handling support index variable*) - TempIdx : USINT; (*FIFO handling support index variable*) FileNameArraySize : USINT; (*FIFO handling support size of the array*) StartIndex : USINT; (*FIFO handling support *) Fifo_Count : USINT; (*FIFO handling support current file count*) @@ -42,4 +41,5 @@ VAR RETAIN END_VAR VAR NextOpenIndex : USINT; (*Index for the next open slot in mpFileManagerUICOnnect device list which populates table*) + index : USINT; (*Index for FOR loop cheking paths*) END_VAR diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 3f1c67f5..7039f488 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -24,16 +24,16 @@ ACTION FormatDeviceDataProvider: //Check initilized folder for existance and remove any from the device list that don't exist MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); NextOpenIndex := 0; - FOR Index := 0 TO MaxDeviceNameIndex DO - IdentStatus := ST_ident(ADR(PathCheck.PrgName[Index ]),0,ADR(Ident)); + FOR index := 0 TO MaxDeviceNameIndex DO + IdentStatus := ST_ident(ADR(PathCheck.PrgName[index]),0,ADR(Ident)); //Assign device name to next available slot in table according to if the path is valid IF (IdentStatus = 0) THEN //path is valid - MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[Index + 1]; + MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[index + 1]; NextOpenIndex := NextOpenIndex + 1; END_IF; //Clear the remaining index slots with invalid path checks - IF Index > NextOpenIndex THEN - MpFileManagerUIConnect.DeviceList.DeviceNames[Index ] := ''; + IF index > NextOpenIndex THEN + MpFileManagerUIConnect.DeviceList.DeviceNames[index] := ''; END_IF END_FOR; diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var index 355a8727..6846c012 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var @@ -30,6 +30,5 @@ VAR Alarms : {REDUND_UNREPLICABLE} ARRAY[0..99] OF BOOL; (*Array of monitored alarm bits*) CommissioningModeActive : {REDUND_UNREPLICABLE} BOOL; (*Boolean value to enable commissioning mode. By default, this inhibits the Alarms[0] alarm*) i : USINT; (*Index for loops*) - MaxIndex : USINT; (*Maximum index for the alarm list*) END_VAR (**) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var index 2fa54be4..ec646522 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var @@ -5,7 +5,6 @@ VAR R_TRIG_CheckStatus : R_TRIG; (*Trigger function block*) TON_Wait : TON; (*FIFO handling support*) TON_ScanFolder : TON; (*Timer to scan for folder*) - TON_EnterFolder : TON; (*Time to delay EnterFolder command so file list can refresh*) CurrentIndex : UDINT; (*FIFO handling support deleting more then 50 files*) DirRead_FolderSize : DirRead; (*FIFO handling support reading current folder size*) END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st index 5c59f276..fc62f360 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -7,6 +7,7 @@ ACTION HMIActions_Init: HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; HmiRecipe.Status.DuplicateLayer := HIDE; + HmiRecipe.Status.DefaultFilesCannotBeDeleteLayer := HIDE; HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; END_ACTION @@ -49,8 +50,6 @@ ACTION LoadStatus: END_ACTION ACTION LoadPreview: - - //invalid Recip Manager IF HmiRecipe.Status.InvalidRecipe THEN @@ -70,8 +69,7 @@ ACTION LoadPreview: IF EDGEPOS(HmiRecipe.Parameters.CategoryIndex = PARAMETERS_CATEGORY_INDEX) OR EDGEPOS(HmiRecipe.Parameters.CategoryIndex = MACH_CONFIG_CATEGORY_INDEX) THEN MpRecipeUIConnect.Recipe.Refresh := TRUE; - END_IF; - + END_IF; // Default recipe create Layer manager IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = HIDE AND HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = HIDE AND @@ -80,9 +78,7 @@ ACTION LoadPreview: HmiRecipe.Status.DefaultRecipeLayer.Status := DISPLAY; ELSE HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; - END_IF; - - + END_IF; // Create Recipe Layer manager IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN @@ -113,10 +109,7 @@ ACTION LoadPreview: HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; ELSE HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; - END_IF; - - - + END_IF; // File Duplicate manager IF HmiRecipe.Commands.CreateRecipe AND @@ -129,9 +122,6 @@ ACTION LoadPreview: ELSIF HmiRecipe.Commands.CreateRecipe THEN HmiRecipe.Status.DuplicateLayer := HIDE; END_IF; - - - // Preview Recipe Layer manager IF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN @@ -141,9 +131,7 @@ ACTION LoadPreview: ELSIF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := HIDE; HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := DISPLAY; - END_IF; - - + END_IF; // Active Recipe declare IF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN @@ -151,10 +139,7 @@ ACTION LoadPreview: ELSIF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN HmiRecipe.Status.ActiveRecipe := HmiRecipe.Status.LastLoadedConfigRecipe; - END_IF; - - - + END_IF; // Recipe Edit manager IF HmiRecipe.Status.EditRecipeLayer.Save THEN @@ -163,21 +148,13 @@ ACTION LoadPreview: HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; HmiRecipe.Commands.SaveSelectedRecipe := TRUE; - HmiRecipe.Commands.LoadRecipe := TRUE; END_IF; - - - - - - - - - - - + // Load preview when a recipe is selected - IF (MpRecipeUIConnect.Recipe.List.SelectedIndex <> HmiRecipe.Status.LastSelectedIndex) OR (HmiRecipe.Status.LastMaxSelection <> MpRecipeUIConnect.Recipe.List.MaxSelection) THEN + IF (MpRecipeUIConnect.Recipe.List.SelectedIndex <> HmiRecipe.Status.LastSelectedIndex) OR + (HmiRecipe.Status.LastMaxSelection <> MpRecipeUIConnect.Recipe.List.MaxSelection) OR + EDGENEG(HmiRecipe.Status.LastStatus = mpRECIPE_UI_STATUS_CREATE) THEN + // Check selected recipe name is not empty IF (brsstrlen(ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex])) > 0) THEN MpRecipe_0.FileName := ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]); @@ -322,6 +299,29 @@ ACTION RecipeHMIcommands: // IF NOT MpRecipe_0.CommandBusy AND brsstrcmp(ADR(HmiRecipe.Status.PreviousRecipe), ADR(HmiRecipe.Parameters.FileName)) <> 0 THEN // HmiRecipe.Parameters.FileName := HmiRecipe.Status.PreviousRecipe; // END_IF + + + + //default files cannot be deleted + IF HmiRecipe.Status.SelectedRecipe = 'Default.par' OR + HmiRecipe.Status.SelectedRecipe = 'Machine.mcfg' THEN + + HmiRecipe.Status.DefaultFilesDeleteButtonStatus := DISPLAY; + ELSE + HmiRecipe.Status.DefaultFilesDeleteButtonStatus := HIDE; + END_IF; + + //selected index should be equal active recipe + IF EDGEPOS(MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_IDLE) THEN + IF HmiRecipe.Status.RecipePageOpenedNow THEN + HmiRecipe.Status.RecipePageOpenedNow := FALSE; + FOR i := 0 TO 19 DO + IF MpRecipeUIConnect.Recipe.List.Names[i] = HmiRecipe.Status.ActiveRecipe THEN + MpRecipeUIConnect.Recipe.List.SelectedIndex := i; + END_IF; + END_FOR; + END_IF; + END_IF; // If the Edit or Create dialog boxes open, copy the Preview structure into the Edit structure. IF HmiRecipe.Status.EditDialogOpened OR HmiRecipe.Status.CreateDialogOpened THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st index d312542d..43d2922e 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st @@ -6,7 +6,7 @@ //*********************************************************************** PROGRAM _INIT - + // Create folder for this component on the user file device DirCreate_0(enable := TRUE, pDevice := ADR('mappRecipeFiles'), pName := ADR('/')); diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ index 1aeae2a4..da797ff3 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ @@ -21,6 +21,7 @@ TYPE FileName : STRING[255]; (*Recipe file name*) END_STRUCT; RecipeStatusType : STRUCT (*Structure to hold status information from the mapp View HMI*) + DefaultFilesDeleteButtonStatus : USINT; HMIcommand : RecipeHmiStepEnum; (*State machine step for HMI commands*) LastLoadedConfigRecipe : STRING[255]; (*Last loaded configuration recipe*) LastLoadedProductRecipe : STRING[255]; (*Last loaded product recipe*) @@ -51,6 +52,8 @@ TYPE DuplicateLayer : USINT; DeviceValid : BOOL; (*Flag for whether FileDevice is valid. Prevents user from being prompted to load default recipe.*) InvalidRecipeLayer : BOOL; + DefaultFilesCannotBeDeleteLayer : USINT; + RecipePageOpenedNow : BOOL; END_STRUCT; RecipeStatusDefRecLayerType : STRUCT Status : USINT; diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp index 9be0b75d..066e738a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index 8937507a..8c6da2e7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -467,7 +467,7 @@ - + @@ -538,7 +538,7 @@ - + @@ -560,10 +560,19 @@ - + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index fac6ffde..94326f8a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -2017,9 +2017,9 @@ - + - + @@ -2027,9 +2027,9 @@ - + - + @@ -2040,7 +2040,7 @@ - + @@ -2050,7 +2050,7 @@ - + @@ -2062,7 +2062,7 @@ - + @@ -2072,7 +2072,7 @@ - + @@ -2080,7 +2080,7 @@ - + @@ -2088,7 +2088,7 @@ - + @@ -2097,7 +2097,7 @@ - + @@ -2106,7 +2106,7 @@ - + @@ -2115,14 +2115,14 @@ - + - + @@ -2132,7 +2132,7 @@ - + @@ -2147,7 +2147,7 @@ - + @@ -2157,7 +2157,7 @@ - + @@ -2172,28 +2172,28 @@ - + - + - + - + @@ -2201,28 +2201,28 @@ - + - + - + - + @@ -2231,7 +2231,7 @@ - + @@ -2240,7 +2240,7 @@ - + @@ -2248,9 +2248,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index fbe12703..f1c9ceef 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -621,6 +621,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -793,6 +904,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1088,6 +1259,7 @@ + @@ -1103,6 +1275,7 @@ + @@ -1898,12 +2071,12 @@ - + - + @@ -2202,6 +2375,7 @@ + @@ -2220,6 +2394,7 @@ + @@ -2238,6 +2413,7 @@ + @@ -2312,6 +2488,7 @@ + @@ -2913,6 +3090,7 @@ + @@ -2931,6 +3109,7 @@ + @@ -2949,6 +3128,7 @@ + @@ -3398,24 +3578,6 @@ - - - - - - - - - - - - - - - - - - @@ -3771,6 +3933,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index a5d727be..befcb19d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -4342,4 +4342,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 2a0471bf..68e20bbb 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -3159,6 +3159,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9603,6 +9630,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index ff574d38..d6023b74 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 7a60a9eb..0eab785a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index f77c3bda..076d1aed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 2bdae103..a2778c5f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -13,6 +13,7 @@ + @@ -23,6 +24,7 @@ + @@ -33,5 +35,6 @@ + \ No newline at end of file diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index 66109c75..ade35ab1 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,7 +2,10 @@ +<<<<<<< HEAD +======= +>>>>>>> VC4 @@ -12,6 +15,7 @@ +<<<<<<< HEAD @@ -22,6 +26,9 @@ +======= + +>>>>>>> VC4 diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index e71e8746..d9e22d74 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -11,6 +11,7 @@ +<<<<<<< HEAD @@ -28,6 +29,16 @@ +======= + + + + + + + + +>>>>>>> VC4 From ce138ac0a1cb783ebba0eb3161b503b81803633e Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Tue, 30 May 2023 08:51:15 -0400 Subject: [PATCH 115/159] fix conflicts in commit 3183c3c982a0767d2535fcbe3f942851a5cc7824 --- mappFramework/Physical/Simulation/PC/Cpu.sw | 7 ------- mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 11 ----------- 2 files changed, 18 deletions(-) diff --git a/mappFramework/Physical/Simulation/PC/Cpu.sw b/mappFramework/Physical/Simulation/PC/Cpu.sw index ade35ab1..66109c75 100644 --- a/mappFramework/Physical/Simulation/PC/Cpu.sw +++ b/mappFramework/Physical/Simulation/PC/Cpu.sw @@ -2,10 +2,7 @@ -<<<<<<< HEAD -======= ->>>>>>> VC4 @@ -15,7 +12,6 @@ -<<<<<<< HEAD @@ -26,9 +22,6 @@ -======= - ->>>>>>> VC4 diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index d9e22d74..e71e8746 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -11,7 +11,6 @@ -<<<<<<< HEAD @@ -29,16 +28,6 @@ -======= - - - - - - - - ->>>>>>> VC4 From 9592f655dd51fff59a2a37ce1aef87bae1016166 Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Tue, 30 May 2023 10:00:08 -0400 Subject: [PATCH 116/159] fix compile issues introduced in commit 3183c3c982a0767d2535fcbe3f942851a5cc7824 --- .../Infrastructure/File/FileMgr/FileMgr.var | 3 +- .../Infrastructure/File/FileMgr/HMIActions.st | 30 +++++++++---------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var index 59cb48fc..77905654 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/FileMgr.var @@ -31,7 +31,7 @@ VAR FolderDepthCount : USINT; (*Keeps track of the folder depth location to determine whether or not the back button should be shown*) USBOffset : USINT := 0; (*Device list offset where to add USB device*) MaxDeviceNameIndex : USINT; (*How many devices are configured*) - tempIdx : USINT; (*FIFO handling support index variable*) + TempIdx : USINT; (*FIFO handling support index variable*) FileNameArraySize : USINT; (*FIFO handling support size of the array*) StartIndex : USINT; (*FIFO handling support *) Fifo_Count : USINT; (*FIFO handling support current file count*) @@ -41,5 +41,4 @@ VAR RETAIN END_VAR VAR NextOpenIndex : USINT; (*Index for the next open slot in mpFileManagerUICOnnect device list which populates table*) - index : USINT; (*Index for FOR loop cheking paths*) END_VAR diff --git a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st index 7039f488..c49b1575 100644 --- a/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/File/FileMgr/HMIActions.st @@ -2,38 +2,38 @@ ACTION FormatDeviceDataProvider: // Select CF device if USB device is not available FOR i := 0 TO IDX_USB_DEV_LIST DO - tempIdx := (i + USBOffset); + TempIdx := (i + USBOffset); IF gUSBAvailable[i] THEN - HmiFile.Status.DeviceDataProvider[tempIdx] := '{"value":"USB'; - brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); + HmiFile.Status.DeviceDataProvider[TempIdx] := '{"value":"USB'; + brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[TempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[TempIdx]))); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('","text":"USB')); - brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[tempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]))); - brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), ADR('"}')); + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[TempIdx]), ADR('","text":"USB')); + brsitoa(i + 1, ADR(HmiFile.Status.DeviceDataProvider[TempIdx]) + brsstrlen(ADR(HmiFile.Status.DeviceDataProvider[TempIdx]))); + brsstrcat(ADR(HmiFile.Status.DeviceDataProvider[TempIdx]), ADR('"}')); - PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; - brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); + PathCheck.DeviceList.DeviceNames[TempIdx] := 'USB'; + brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[TempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[TempIdx]))); ELSE - brsmemset(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[tempIdx])); - brsmemset(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[tempIdx])); + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[TempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[TempIdx])); + brsmemset(ADR(PathCheck.DeviceList.DeviceNames[TempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[TempIdx])); END_IF END_FOR //Check initilized folder for existance and remove any from the device list that don't exist MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); NextOpenIndex := 0; - FOR index := 0 TO MaxDeviceNameIndex DO - IdentStatus := ST_ident(ADR(PathCheck.PrgName[index]),0,ADR(Ident)); + FOR TempIdx := 0 TO MaxDeviceNameIndex DO + IdentStatus := ST_ident(ADR(PathCheck.PrgName[TempIdx]),0,ADR(Ident)); //Assign device name to next available slot in table according to if the path is valid IF (IdentStatus = 0) THEN //path is valid - MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[index + 1]; + MpFileManagerUIConnect.DeviceList.DeviceNames[NextOpenIndex] := PathCheck.DeviceList.DeviceNames[TempIdx + 1]; NextOpenIndex := NextOpenIndex + 1; END_IF; //Clear the remaining index slots with invalid path checks - IF index > NextOpenIndex THEN - MpFileManagerUIConnect.DeviceList.DeviceNames[index] := ''; + IF TempIdx > NextOpenIndex THEN + MpFileManagerUIConnect.DeviceList.DeviceNames[TempIdx] := ''; END_IF END_FOR; From 8006307e01c7f8572bd4324d5706b25d5ead9b2e Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 09:46:52 -0500 Subject: [PATCH 117/159] AAZM-652 VC4 multiselect - change selected background when multiselect in active AAZM-654 VC4 Backup dialog for new version missing --- .../VC4/Backup/BackupMgr/BackupMgr.st | 84 +-- .../VC4/Backup/BackupMgr/BackupMgr.typ | 3 + .../VC4/Backup/BackupMgr/HMIActions.st | 90 +++ .../VC4/Recipe/RecipeMgr/HMIActions.st | 28 +- .../MpAlarmAcknowledgeState.bmgrp | 2 +- .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 2 +- .../BitmapGroups/MpAlarmXStates.bmgrp | 2 +- .../BitmapGroups/MpAuditCheckbox.bmgrp | 2 +- .../BitmapGroups/MpAuditEventsID.bmgrp | 2 +- .../BitmapGroups/MpAxisAlarm.bmgrp | 2 +- .../BitmapGroups/MpAxisHomed.bmgrp | 2 +- .../BitmapGroups/MpAxisMoving.bmgrp | 2 +- .../BitmapGroups/MpAxisPower.bmgrp | 2 +- .../BitmapGroups/MpBorders.bmgrp | 2 +- .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 2 +- .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 2 +- .../BitmapGroups/MpDataLimitViolation.bmgrp | 2 +- .../BitmapGroups/MpFileFIFOIcons.bmgrp | 2 +- .../BitmapGroups/MpFileIcons.bmgrp | 2 +- .../BitmapGroups/MpIcons.bmgrp | 2 +- .../BitmapGroups/MpIconsClick.bmgrp | 2 +- .../BitmapGroups/MpListbox.bmgrp | 2 +- .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 2 +- .../BitmapGroups/MpPads.bmgrp | 2 +- .../BitmapGroups/MpTeachIcons.bmgrp | 2 +- .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 2 +- .../BitmapGroups/MpUserIcons.bmgrp | 2 +- .../Bitmaps/InstallInProgress.bminfo | 16 + .../Bitmaps/InstallInProgress.png | Bin 0 -> 4028 bytes .../Bitmaps/mappFramework_logo.bminfo | 2 +- .../ColorMaps/MpEnergyChartData.clm | 2 +- .../ColorMaps/MpFileMultiSel.clm | 17 + .../ColorMaps/MpPMLStateColors.clm | 2 +- .../mappFrameworkVisu/Fonts/MpButton.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpDefault.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader2.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpInput.fninfo | 2 +- .../Fonts/MpMenuButtons.fninfo | 2 +- .../Fonts/MpPackMLStateNames.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpPads.fninfo | 2 +- .../Layers/LockedMessageLayer.layer | 2 +- .../Layers/MpBackground.layer | 2 +- .../Layers/MpOeeControl.layer | 2 +- .../Layers/MpPageControl.layer | 20 +- .../Layers/MpUserXSign.layer | 2 +- .../Layers/MpUserXSignMessageBox.layer | 2 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 4 +- .../Pages/MpAlarmXHistory.page | 2 +- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 2 +- .../Pages/MpAlarmXListUI_Backtrace.page | 2 +- .../Pages/MpAlarmXQuery.page | 2 +- .../Pages/MpAuditCustomEventsUI.page | 2 +- .../Pages/MpAuditQueryUI.page | 2 +- .../Pages/MpAuditTrailUI.page | 2 +- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 703 ++++++++++++++---- .../Pages/MpDataStatisticsUI.page | 2 +- .../Pages/MpDataTableUI.page | 2 +- .../Pages/MpFileManagerUI.page | 18 +- .../mappFrameworkVisu/Pages/MpOeeCoreUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeListUI.page | 2 +- .../Pages/MpOeeTimelineUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeTrendUI.page | 2 +- .../Pages/MpPackMLBasicUI.page | 2 +- .../Pages/MpPackMLStatisticsUI.page | 2 +- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpSetup.page | 2 +- .../Pages/MpSystemDiagnostics.page | 2 +- .../Pages/MpUserXManagerUI_Roles.page | 2 +- .../Pages/MpUserXManagerUI_Users.page | 2 +- .../Pages/mapp1StartPage.page | 2 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 2 +- .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 2 +- .../TextGroups/ShiftGroup.txtgrp | 2 +- .../mappFrameworkVisu/Trends/MpOeeTrendUI.tre | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 18 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../AlarmGroups/MpAuditTrailAlarms.algrp | 2 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 2 +- .../AlarmGroups/MpDataRecorderAlarms.algrp | 2 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 2 +- .../AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 2 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 72 +- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 4 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 2 +- .../TextGroups/MpAlarmBasicUIText.txtgrp | 2 +- .../TextGroups/MpAlarmBypassState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 2 +- .../TextGroups/MpAlarmSeparator.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 2 +- .../TextGroups/MpAlarmXListCode.txtgrp | 2 +- .../TextGroups/MpAlarmXListEventID.txtgrp | 2 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 2 +- .../TextGroups/MpAlarmXListState.txtgrp | 2 +- .../TextGroups/MpAlarmXListStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIText.txtgrp | 2 +- .../MpAuditArchiveFileTypeDP.txtgrp | 2 +- .../MpAuditArchiveSettingsDP.txtgrp | 2 +- .../TextGroups/MpAuditEventsOutput.txtgrp | 2 +- .../TextGroups/MpAuditSignatureEvent.txtgrp | 2 +- .../TextGroups/MpAuditTrailUIText.txtgrp | 2 +- .../TextGroups/MpAuditTweetEvent.txtgrp | 2 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 2 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../TextGroups/MpAuditUserAction.txtgrp | 2 +- .../TextGroups/MpAuditUserIDText.txtgrp | 2 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 2 +- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 20 +- .../TextGroups/MpBackupUITexts.txtgrp | 8 +- .../TextGroups/MpComLoggerUIText.txtgrp | 2 +- .../MpDataStatisticsUIStatus.txtgrp | 2 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpDataTableHeader.txtgrp | 2 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 2 +- .../TextGroups/MpDataTableUIText.txtgrp | 2 +- .../TextGroups/MpDateTimeFormats.txtgrp | 2 +- .../TextGroups/MpEnergyCoreStatus.txtgrp | 2 +- .../TextGroups/MpEnergyCoreUIText.txtgrp | 2 +- .../TextGroups/MpEnergyForwardEnergy.txtgrp | 2 +- .../TextGroups/MpEnergyReverseEnergy.txtgrp | 2 +- .../TextGroups/MpFileManagerUIDevices.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 2 +- .../MpFileManagerUIMessageBox.txtgrp | 2 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 2 +- .../TextGroups/MpFileManagerUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpLanguages.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUIText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUITime.txtgrp | 2 +- .../TextGroups/MpOeeListUIText.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 2 +- .../MpOeeTimelineUIProductionState.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 2 +- .../TextGroups/MpOeeTrendUIText.txtgrp | 2 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 2 +- .../TextGroups/MpPackMLModesNames.txtgrp | 2 +- .../TextGroups/MpPackMLStateNames.txtgrp | 2 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 2 +- .../MpPackMLStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpRecipeAuditText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 2 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../TextGroups/MpReportUITexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 2 +- .../TextGroups/MpTweetCoreUITexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIType.txtgrp | 2 +- .../VCShared/TextGroups/MpUnits.txtgrp | 2 +- .../TextGroups/MpUserConfirmText.txtgrp | 2 +- .../TextGroups/MpUserDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 2 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 2 +- .../TextGroups/MpUserRightLevel.txtgrp | 2 +- .../TextGroups/MpUserUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUITexts.txtgrp | 2 +- .../TextGroups/MpUserXConfirmText.txtgrp | 2 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 2 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 2 +- .../TextGroups/MpUserXRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 2 +- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../TextGroups/MpUserXSignUIText.txtgrp | 2 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 2 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- .../VCShared/TextGroups/mappComponents.txtgrp | 2 +- .../VCShared/TextGroups/mappTopics.txtgrp | 2 +- .../Logical/VCShared/UnitGroups/Energy.vcug | 2 +- .../Logical/VCShared/UnitGroups/Length.vcug | 2 +- .../Logical/VCShared/UnitGroups/Mass.vcug | 2 +- .../Logical/VCShared/UnitGroups/Memory.vcug | 2 +- .../Logical/VCShared/UnitGroups/Power.vcug | 2 +- .../Logical/VCShared/UnitGroups/Pressure.vcug | 2 +- .../VCShared/UnitGroups/Temperatures.vcug | 2 +- .../Logical/VCShared/UnitGroups/Volume.vcug | 2 +- 212 files changed, 1037 insertions(+), 460 deletions(-) create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.bminfo create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.png create mode 100644 mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st index 98c50e37..9dc7f320 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st @@ -214,89 +214,7 @@ PROGRAM _CYCLIC END_IF FormatDeviceDataProvider; - - - //---------------------- VC4 ------------------------// - IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN - HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; - - ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 1 THEN - HmiBackup.Parameters.AutomaticBackup.Device := 'USB'; - - ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 2 THEN - HmiBackup.Parameters.AutomaticBackup.Device := ''; - - ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 3 THEN - HmiBackup.Parameters.AutomaticBackup.Device := ''; - END_IF; - - // Function is not available Layer manager - IF HmiBackup.Status.CmdButtonsPressed AND HmiBackup.Status.SimulationActive THEN - HmiBackup.Status.Layer.FuncNotAvailable := DISPLAY; - ELSE - HmiBackup.Status.Layer.FuncNotAvailable := HIDE; - END_IF; - - // Visibility creating layer - IF BackupState = BACKUP_CREATING THEN - HmiBackup.Status.Layer.Creating := DISPLAY; - ELSE - HmiBackup.Status.Layer.Creating := HIDE; - END_IF; - // Visibility UpDown buttons - IF HmiBackup.Status.FileOverMax THEN - HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := DISPLAY; - ELSE - HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := HIDE; - END_IF; - - // Operation Create Button - IF HmiBackup.Status.CreateAllowed AND NOT HmiBackup.Status.SimulationActive THEN - HmiBackup.Status.ButtonOperation.OperationCreate := OPERATION_ACTIVATED; - ELSE - HmiBackup.Status.ButtonOperation.OperationCreate := OPERATION_DEACTIVATED; - END_IF; - // Operation Restore Button - IF HmiBackup.Status.RestoreAllowed AND NOT HmiBackup.Status.SimulationActive THEN - HmiBackup.Status.ButtonOperation.OperationRestore := OPERATION_ACTIVATED; - ELSE - HmiBackup.Status.ButtonOperation.OperationRestore := OPERATION_DEACTIVATED; - END_IF; - // Operation Delete Button - IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN - HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_ACTIVATED; - ELSE - HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_DEACTIVATED; - END_IF; - // Operation Settings Button - IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN - HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_ACTIVATED; - ELSE - HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_DEACTIVATED; - END_IF; - - - //grpBobDetailsStatus Visible/Hide - IF HmiBackup.Status.BackupCtrlEnabled AND HmiBackup.Status.Info.Name <> '' THEN - HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(DISPLAY); - - ELSIF NOT HmiBackup.Status.BackupCtrlEnabled OR HmiBackup.Status.Info.Name = '' THEN - HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(HIDE); - END_IF; - - - //settings contents - IF HmiBackup.Parameters.AutomaticBackup.Enable THEN - HmiBackup.Status.SettingsContentsStatus := USINT_TO_BOOL(DISPLAY); - ELSE - HmiBackup.Status.SettingsContentsStatus := USINT_TO_BOOL(HIDE); - END_IF; - - //-----------------------------------------------------// - // // - //-----------------------------------------------------// - - + VC4Support; // Assign MpLinks MpBackupCore_0.MpLink := ADR(gMpLinkBackupCore); diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ index d912a927..7ad2eb31 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ @@ -53,6 +53,7 @@ TYPE OperationDelete : USINT; OperationRestore : USINT; OperationSettings : USINT; + CheckForUpdate : USINT; END_STRUCT; BackupHmiStatusLayerType : STRUCT Creating : USINT; @@ -61,6 +62,8 @@ TYPE Restore : USINT; Settings : USINT; FuncNotAvailable : USINT; + NewVersion : USINT; + Installing : USINT; END_STRUCT; AutomaticBackupType : STRUCT (*Automatic backup settings*) Enable : BOOL; (*Enable automatic backup feature*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st index bad11ef4..29500d0e 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st @@ -135,3 +135,93 @@ ACTION FileManager: END_IF END_ACTION + + +ACTION VC4Support: + //---------------------- VC4 ------------------------// + IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN + HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 1 THEN + HmiBackup.Parameters.AutomaticBackup.Device := 'USB'; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 2 THEN + HmiBackup.Parameters.AutomaticBackup.Device := ''; + + ELSIF HmiBackup.Status.DeviceDataProviderSelectedIndex = 3 THEN + HmiBackup.Parameters.AutomaticBackup.Device := ''; + END_IF; + + // Function is not available Layer manager + IF HmiBackup.Status.CmdButtonsPressed AND HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.Layer.FuncNotAvailable := DISPLAY; + ELSE + HmiBackup.Status.Layer.FuncNotAvailable := HIDE; + END_IF; + + // New version available Layer manager + IF HmiBackup.Status.Update.IsAvailable AND HmiBackup.Status.ButtonOperation.CheckForUpdate = 1 THEN + HmiBackup.Status.Layer.NewVersion := DISPLAY; + ELSE + HmiBackup.Status.Layer.NewVersion := HIDE; + END_IF; + + // Visibility creating layer + IF BackupState = BACKUP_CREATING THEN + HmiBackup.Status.Layer.Creating := DISPLAY; + ELSE + HmiBackup.Status.Layer.Creating := HIDE; + END_IF; + + // Visibility UpDown buttons + IF HmiBackup.Status.FileOverMax THEN + HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := DISPLAY; + ELSE + HmiBackup.Status.ButtonOperation.VisibilityPageUpDown := HIDE; + END_IF; + + // Operation Create Button + IF HmiBackup.Status.CreateAllowed AND NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationCreate := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationCreate := OPERATION_DEACTIVATED; + END_IF; + + // Operation Restore Button + IF HmiBackup.Status.RestoreAllowed AND NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationRestore := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationRestore := OPERATION_DEACTIVATED; + END_IF; + + // Operation Delete Button + IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_DEACTIVATED; + END_IF; + + // Operation Settings Button + IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN + HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_ACTIVATED; + ELSE + HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_DEACTIVATED; + END_IF; + + //grpBobDetailsStatus Visible/Hide + IF HmiBackup.Status.BackupCtrlEnabled AND HmiBackup.Status.Info.Name <> '' THEN + HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(DISPLAY); + + ELSIF NOT HmiBackup.Status.BackupCtrlEnabled OR HmiBackup.Status.Info.Name = '' THEN + HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(HIDE); + END_IF; + + //settings contents + IF HmiBackup.Parameters.AutomaticBackup.Enable THEN + HmiBackup.Status.SettingsContentsStatus := USINT_TO_BOOL(DISPLAY); + ELSE + HmiBackup.Status.SettingsContentsStatus := USINT_TO_BOOL(HIDE); + END_IF; + +END_ACTION + diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st index fc62f360..0cbfaf01 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -1,14 +1,14 @@ ACTION HMIActions_Init: - HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; - HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; - HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; - HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; - HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; - HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; - HmiRecipe.Status.DuplicateLayer := HIDE; - HmiRecipe.Status.DefaultFilesCannotBeDeleteLayer := HIDE; - HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; + HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DefaultRecipeLayer.Status := HIDE; + HmiRecipe.Status.RecipeLoadLayer.Status := HIDE; + HmiRecipe.Status.EditRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.EditRecipeLayer.MachConfigStatus := HIDE; + HmiRecipe.Status.DuplicateLayer := HIDE; + HmiRecipe.Status.DefaultFilesCannotBeDeleteLayer := HIDE; + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; END_ACTION @@ -103,12 +103,12 @@ ACTION LoadPreview: // Lock File name input in create layer IF HmiRecipe.Status.CreateRecipeLayer.ParsStatus = DISPLAY AND HmiRecipe.Status.ParameterRecipeMissing THEN - HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; ELSIF HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus = DISPLAY AND HmiRecipe.Status.MachineSettingsRecipeMissing THEN - HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := LOCK; ELSE - HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; + HmiRecipe.Status.CreateRecipeLayer.FileNameInputActive := UNLOCK; END_IF; // File Duplicate manager @@ -125,12 +125,12 @@ ACTION LoadPreview: // Preview Recipe Layer manager IF HmiRecipe.Parameters.Category = MACHINE_CONFIGURATION_CATEGORY THEN - HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := HIDE; + HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := HIDE; HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := DISPLAY; ELSIF HmiRecipe.Parameters.Category = PARAMETERS_CATEGORY THEN HmiRecipe.Status.PreviewRecipeLayer.MachConfigStatus := HIDE; - HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := DISPLAY; + HmiRecipe.Status.PreviewRecipeLayer.ParsStatus := DISPLAY; END_IF; // Active Recipe declare diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp index 2c76da2e..e45dc079 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp index 9275673d..797fbbd6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp index 7c092b71..720e726e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp index fdadfd8c..d85e8b31 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp index 6a8acaa4..a18fbb01 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp index 7637fa69..dd5c9bd3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp index 19d316f3..15ac1839 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp index bfd2cd39..5763ee8a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp index c4bf63be..5e940156 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp index e0430d00..68845d95 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp index afbf100c..d28df2c8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp index c5e655ce..646c8ac1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp index 70bcf4b1..1eb9e6ad 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp index 6be2b648..461f23b5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp index 9383b7c5..f2b8bbb5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp index 066e738a..9be0b75d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp index 0b94b76d..33d0656e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp index 980a87f3..0a6ead4d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp index 9130b02a..7e7edba7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp index 3347ee45..4811aa7a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp index 7f753a73..3ef2ba5b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp index e465685c..c5670294 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp index 5ad94c3f..afebd054 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.bminfo new file mode 100644 index 00000000..ede2a20a --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.bminfo @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/InstallInProgress.png new file mode 100644 index 0000000000000000000000000000000000000000..42ac75f61699e766d308ee2cacfe76b118b47a9d GIT binary patch literal 4028 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 VN2o9F{&PG$RV6LOa)@=ve*id!khlN< literal 0 HcmV?d00001 diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.bminfo index 8faaa0c9..08e68552 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/mappFramework_logo.bminfo @@ -10,6 +10,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm index 7dd49e69..2af80923 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm new file mode 100644 index 00000000..fcfebf79 --- /dev/null +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm index e53026de..db8a3d60 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo index 6869e9ae..a1c1f14a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo index 83d1917b..6b475256 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo index 764b9541..954b0139 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo index b2a902c5..97343d9e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo index 962c5086..dcb22252 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo index f08d1727..17c6cffc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo index cf68c914..36f1d34c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo index 0426fc60..287cdeb5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo index f692f2fc..055c52d0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo index 978d2c25..16de94a8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 07895333..a47fa2b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index 2bcc25b1..0f9819c4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer index 13c7aff0..3979242c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index 8c6da2e7..0de1b1cc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + @@ -542,6 +542,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer index b560ccee..c25545be 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer index 0db172e3..2a72c1ba 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 7a28f6be..765dc3d7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + @@ -384,6 +384,7 @@ + @@ -516,6 +517,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index d977d9d3..dd73cc0e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index 8ace5767..56b1c3e0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index 7a34b11d..3a6ce820 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index c50c439e..1e7607b2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index 814d398b..bbb12ff3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index a40889db..e2ca00d1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 5b26925c..14768b19 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index aa8df07c..01b02bed 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index 8e7595a1..e78ff57a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -1,5 +1,5 @@ - + @@ -59,7 +59,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -143,7 +143,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -278,7 +278,7 @@ - + @@ -301,7 +301,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -349,7 +349,7 @@ - + @@ -378,7 +378,7 @@ - + @@ -395,7 +395,7 @@ - + @@ -412,7 +412,7 @@ - + @@ -429,7 +429,7 @@ - + @@ -443,7 +443,7 @@ - + @@ -457,7 +457,7 @@ - + @@ -471,7 +471,7 @@ - + @@ -498,7 +498,7 @@ - + @@ -525,7 +525,7 @@ - + @@ -552,7 +552,7 @@ - + @@ -579,7 +579,7 @@ - + @@ -606,7 +606,7 @@ - + @@ -633,7 +633,7 @@ - + @@ -965,7 +965,7 @@ - + @@ -975,7 +975,7 @@ - + @@ -996,7 +996,7 @@ - + @@ -1017,7 +1017,7 @@ - + @@ -1035,7 +1035,7 @@ - + @@ -1061,7 +1061,7 @@ - + @@ -1087,7 +1087,7 @@ - + @@ -1104,7 +1104,7 @@ - + @@ -1121,7 +1121,7 @@ - + @@ -1138,7 +1138,7 @@ - + @@ -1155,7 +1155,7 @@ - + @@ -1182,7 +1182,7 @@ - + @@ -1198,7 +1198,7 @@ - + @@ -1215,7 +1215,7 @@ - + @@ -1242,7 +1242,7 @@ - + @@ -1259,7 +1259,7 @@ - + @@ -1286,7 +1286,7 @@ - + @@ -1306,7 +1306,7 @@ - + @@ -1326,7 +1326,7 @@ - + @@ -1346,7 +1346,7 @@ - + @@ -1506,7 +1506,7 @@ - + @@ -1516,7 +1516,7 @@ - + @@ -1537,7 +1537,7 @@ - + @@ -1558,7 +1558,7 @@ - + @@ -1576,7 +1576,7 @@ - + @@ -1710,7 +1710,7 @@ - + @@ -1720,7 +1720,7 @@ - + @@ -1741,7 +1741,7 @@ - + @@ -1762,7 +1762,7 @@ - + @@ -1780,7 +1780,7 @@ - + @@ -1925,7 +1925,7 @@ - + @@ -1942,12 +1942,12 @@ - + - + @@ -1958,7 +1958,7 @@ - + @@ -1975,7 +1975,7 @@ - + @@ -1984,7 +1984,7 @@ - + @@ -2079,6 +2079,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2093,7 +2180,7 @@ - + @@ -2112,7 +2199,7 @@ - + @@ -2122,7 +2209,7 @@ - + @@ -2140,7 +2227,7 @@ - + @@ -2236,6 +2323,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2250,7 +2674,7 @@ - + @@ -2269,7 +2693,7 @@ - + @@ -2279,13 +2703,12 @@ - + - @@ -2301,13 +2724,12 @@ - + - @@ -2323,7 +2745,7 @@ - + @@ -2341,12 +2763,11 @@ - + - @@ -2358,11 +2779,10 @@ - + - @@ -2455,81 +2875,84 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page index 14b41825..b867ef93 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page index 1fbabffe..856941d0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index 94326f8a..420fc548 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + @@ -1118,6 +1118,9 @@ + + + @@ -1125,6 +1128,7 @@ + @@ -1135,7 +1139,7 @@ - + @@ -2499,7 +2503,7 @@ - + @@ -2510,16 +2514,10 @@ - + - - - - - - diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page index 70950c90..f9ed848c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page index 54178780..266fa51b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page index 61451bdc..67f0ea84 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page index b02c7510..4cd7aebb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index f516e108..3259e48b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index 66fa099b..9054ea12 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index f1c9ceef..19298581 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index 433e604b..a6c34d08 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page index 218c95fd..827f3680 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page index 62009ab7..c5facfd7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index 0954fa42..df6622dc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index 4bb4d355..207831f4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index a7a1f7d8..c451e3b1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index d8d2d534..08981107 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp index 9cb0f78a..8c428770 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp index ffbf3fd7..03ffebb1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index c8fdaafb..6c7757ea 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp index a24c81c3..83db9970 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre index 4df74024..5ef8c942 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index befcb19d..d3c4dc14 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + @@ -4366,4 +4366,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 2602c2e3..1b79c3c0 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 4b870a86..58db8155 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 80a7db74..3b67ca27 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index a5bf5e89..a9b736b9 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index 4251e8bd..b8c59321 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index 18ecf16e..564f899f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index 29af5fe8..79f8ceff 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index a4914556..28deba3f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index fd9fd267..89fc13c1 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index 3bab4dc5..c6d87afd 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index c9e49e11..fa5f8c61 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 091fe6de..5dd61035 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index a16e98a9..894e5633 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 2667cab7..90a743a9 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index a31ecc7c..5aeb43d6 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 68e20bbb..229ca0cf 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -8229,6 +8229,15 @@ + + + + + + + + + @@ -8291,6 +8300,15 @@ + + + + + + + + + @@ -8358,6 +8376,24 @@ + + + + + + + + + + + + + + + + + + @@ -8449,6 +8485,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 6291a5f3..575ebacc 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index d6023b74..772d633a 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index a9f2a806..964e7625 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index c04608ff..b7ec8f39 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index 879fadd1..3de19132 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index 3850269c..d4d725e2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index e6d2ec97..6b1e3b38 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 1449a1f3..56a3ed46 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index 2ba288ec..d06df0e0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index e31dabc5..21eba335 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 17ebf852..3dd3336a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index cb9b151c..7c8f15aa 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index 58749f44..bbcc4a3e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 1657bfd5..8df24c02 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index 6e1f9350..04c2e676 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index fdd95df9..3438b865 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index 26a73e6f..777a4e56 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index 3a1966a2..eda91d0e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index 9a2d9099..db957943 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index ed16cc6d..1a0370cf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index 3cd87fce..07a55c58 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index 458a5c2d..09afa18d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index 11835474..4a151aa2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 154a479b..23d22f60 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index de2f0185..1c750991 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index ee0322c8..dca04c44 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index 8791bde6..7f41e57f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index aac5f85b..cca5121e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index db8f34bd..106886a9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index dae21557..c9f4b7c9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 0eab785a..7a60a9eb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index bfdacd30..8f6f3997 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -1,11 +1,11 @@ - + - + @@ -17,14 +17,14 @@ - - - - - - - - + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index fe6a6b32..89d63277 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -1,5 +1,5 @@ - + @@ -35,6 +35,8 @@ + + @@ -67,6 +69,8 @@ + + @@ -99,5 +103,7 @@ + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index 779a4f76..104b93c4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index c88aca26..9e2c39a1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index c6eea97d..796c424b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 55b4f7e3..92006277 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index e9e6617b..a8d141e8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index bcdc558d..8d68acc9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index f5e2399c..122e5f1b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp index 8bad022a..d5e311a6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp index 28f691a8..bf20b154 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp index 781cdbba..f13d8e58 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp index 38a18424..121d8faa 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index d1c7f8d0..c9ee3af7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 7ce28405..5b89dd09 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index 7e5ae185..f73f18c8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index 076d1aed..db93fb09 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index 3c14a557..4de9347e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index aceb388b..e33e6ae8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index 6de86a6b..46659412 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index dba63514..d4572444 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index ab82a538..03fc3230 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index 33aed38e..fb26b2e5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index 29a884e8..cc47ba5d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index a5a098fb..6c767549 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index f7ca3c8a..3623bbee 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index 7c25b5c4..a53c0024 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index b41ead58..dfa486c2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index 3eff71fc..120c07b7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index bdb56e5b..81ef8b3e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index 781a15f4..86bd699f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 474f2c65..1041c67e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 453fbd4b..4473d35b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index ea13f3ec..3d4e239d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index cb262c44..99683cbf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 87366d78..4701e8db 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index ba0148ed..df6f7598 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index a2778c5f..1c36cf85 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index 9a3e412d..d59dd3e0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index 9f6cbfef..a9acb53d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 5e16e52a..56f5d3e6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 529b51ca..9305cd06 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index d667bb8e..4243f369 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp index 8a79c00e..749854ab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp index f40256da..8df54a66 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp index f20053b1..58800b28 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp index ac0ebfaf..3c397ed9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 27b2fbfc..7f033aa3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index a6aab6bb..659c0859 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index a1576894..28ec13c3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index 863c1c34..5b3fe7d7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index 18c3a5af..649c65f4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index eaab3c24..98a3f0b8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index cb516990..8558a1e7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index 1d4af627..fc2988c6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 468c8dfd..0417cbe2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 69e9aa1f..0680964b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index 0f451903..ca62d6b3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index e9fe624a..e990c657 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 77293ce2..11b999dd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index bf622f23..08b6d425 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 676f43b0..24c8ab73 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index 4a3f8273..b0815a8d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index 3c0ab1b2..bfc7c79a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index cd9d7f94..8242db57 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 05a7d662..1b7ad448 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index 18f7ec2b..fe5ccfd0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index d50a4d0a..c6bb4ad8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index d5f65928..1c7bcba5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 7c4ce322..06ee284d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index cdbd7a9f..cc176aca 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 48965561..5ae93819 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index f75fde4d..ceead3ca 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index e2c7113e..70d94bba 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index fcff784d..da49b4bd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index 78073507..c6fbf9c9 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index c50e3d53..fa6652d7 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index de9e787d..88b6633f 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index b8da98f6..01303640 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index f01e3d51..0cfb3492 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index eb30e49c..66e164e2 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index eca57799..6df7ed6d 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index 5124e035..b07517ec 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -1,5 +1,5 @@ - + From ebb0527e79247df2c45dcdfe599b236ca0487858 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 10:04:18 -0500 Subject: [PATCH 118/159] AAZM-636 - remove unused variables from VC4 code --- .../Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var | 8 ++------ .../Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var | 2 -- .../Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var | 4 ---- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var index 2eb5ab26..1274705c 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var @@ -21,7 +21,6 @@ VAR AuditQuery : {REDUND_UNREPLICABLE} AuditQueryType; (*Query results and status*) AuditTrailConfig : MpAuditTrailConfigType; (*Configuration structure for changing archiving setup*) MpAuditTrailUIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) - MpAuditTrailUISetup : MpAuditTrailUISetupType; (*MpAuditUI setup connection to the HMI*) MpAuditTrail_CEvents_UIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) END_VAR (*Variables*) @@ -33,8 +32,5 @@ END_VAR VAR RETAIN ArchiveSettingsRetain : AuditArchiveParType; (*Store settings in retain memory to be applied after boot*) END_VAR -(**) -VAR CONSTANT - DISPLAY : USINT := 0; - HIDE : USINT := 1; -END_VAR + + diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var index 81a67076..9fca2163 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var @@ -1,8 +1,6 @@ (*Function Blocks*) VAR DirCreate_0 : DirCreate; (*DirCreate instance*) - MpPackMLModule_Main : MpPackMLModule; (*PackMLModule instance*) - MpPackMLModulePar_Main : MpPackMLModuleParType; (*PackMLModule Parameter instance*) MpPackMLCore_0 : MpPackMLCore; MpPackMLMode_0 : MpPackMLMode; END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var index ec8c9a4a..9e334636 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var @@ -11,10 +11,6 @@ END_VAR (*Constants*) VAR CONSTANT MAX_IDX_FILE_DEV : USINT := MAX_IDX_USB_DEV_LIST + 1; (*Maximum number of file devices *) - DEFAULT_PARAMETERS : STRING[20] := 'Default'; (*Default parameters recipe file name*) - PARAMETERS_FILE_EXTENSION : STRING[10] := '.par'; (*File extension for parameter recipe files*) - DEFAULT_MACHINE_CONFIGURATION : STRING[20] := 'Machine'; (*Default machine configuration recipe file name*) - MACHINE_CONFIG_FILE_EXTENSION : STRING[10] := '.mcfg'; (*File extension for machine configuration recipe files*) END_VAR VAR PARAMETERS_RECIPE : STRING[50] := 'Parameters'; (*Value of the DropDownBox selection for the Parameters category*) From b981a1aac3e868874286dbd0113005b4ddb53cb1 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 10:16:55 -0500 Subject: [PATCH 119/159] AAZM-658 - fix report delete styling and renaming widgets --- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 101 +++++++++++------- 1 file changed, 60 insertions(+), 41 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index a6c34d08..e8da1a2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -59,7 +59,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -143,7 +143,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -303,7 +303,7 @@ - + @@ -330,7 +330,7 @@ - + @@ -479,7 +479,8 @@ - + + @@ -488,7 +489,7 @@ - + @@ -506,7 +507,7 @@ - + @@ -548,7 +549,7 @@ - + @@ -587,7 +588,7 @@ - + @@ -597,7 +598,7 @@ - + @@ -639,7 +640,7 @@ - + @@ -653,7 +654,7 @@ - + @@ -668,7 +669,7 @@ - + @@ -682,7 +683,7 @@ - + @@ -697,7 +698,7 @@ - + @@ -712,7 +713,7 @@ - + @@ -738,7 +739,7 @@ - + @@ -752,7 +753,7 @@ - + @@ -778,7 +779,7 @@ - + @@ -792,6 +793,24 @@ + + + + + + + + + + + + + + + + + + @@ -878,29 +897,29 @@ - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + \ No newline at end of file From f4044f5b0be5c1426ada188bafb55d2177026deb Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 11:05:36 -0500 Subject: [PATCH 120/159] AAZM-659 German text cut off AAZM-664 Renaming widgets --- .../BitmapGroups/MpFileFIFOIcons.bmgrp | 4 +- .../{MpFileScan.bminfo => MpFile_Scan.bminfo} | 10 +-- .../{MpFileScan.png => MpFile_Scan.png} | Bin .../Borders/CheckBox_checked.bdr | 2 +- .../Borders/Mp_BitmapFrame.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_Button.bdr | 2 +- .../Borders/Mp_Button_Control.bdr | 2 +- .../Borders/Mp_Button_Control_pressed.bdr | 2 +- .../Borders/Mp_Button_Device_Select_Left.bdr | 2 +- .../Mp_Button_Device_Unselect_Left.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Down.bdr | 2 +- .../Mp_Button_Multi_Scroll_Dwn_press.bdr | 2 +- .../Borders/Mp_Button_Multi_Scroll_Up.bdr | 2 +- .../Mp_Button_Multi_Scroll_Up_press.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_Multi.bdr | 2 +- .../Mp_Button_Scroll_Left_Multi_pres.bdr | 2 +- .../Borders/Mp_Button_Scroll_Left_pressed.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right.bdr | 2 +- .../Borders/Mp_Button_Scroll_Right_Multi.bdr | 2 +- .../Mp_Button_Scroll_Right_Multi_pr.bdr | 2 +- .../Mp_Button_Scroll_Right_pressed.bdr | 2 +- .../Borders/Mp_Button_pressed.bdr | 2 +- .../Borders/Mp_CheckBox_checked.bdr | 2 +- .../Borders/Mp_DataNameFrame.bdr | 2 +- .../Borders/Mp_Flat_grey.bdr | 2 +- .../Borders/Mp_FrameInvisible.bdr | 2 +- .../Borders/Mp_GroupControl.bdr | 2 +- .../Borders/Mp_InputBorder.bdr | 2 +- .../Borders/Mp_LabelBorder.bdr | 2 +- .../Borders/Mp_LabelBorderDown.bdr | 2 +- .../Borders/Mp_LabelBorderSlim.bdr | 2 +- .../Borders/Mp_LabelBorder_Orange.bdr | 2 +- .../Borders/Mp_ListBoxCenter.bdr | 2 +- .../Borders/Mp_ListBoxLeft.bdr | 2 +- .../Borders/Mp_ListBoxRight.bdr | 2 +- .../Borders/Mp_OutputBorder.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_RangeBar.bdr | 2 +- .../Borders/Mp_SliderBorder09.bdr | 2 +- .../mappFrameworkVisu/Borders/Mp_SunkenNG.bdr | 2 +- .../Borders/Mp_SunkenNGgray.bdr | 2 +- .../Borders/Mp_TabActive.bdr | 2 +- .../Borders/Mp_TabSelect.bdr | 2 +- .../Borders/Mp_TabUnSelect.bdr | 2 +- .../Layers/LockedMessageLayer.layer | 12 +-- .../Layers/MpBackground.layer | 6 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../Pages/MpAlarmXQuery.page | 6 +- .../Pages/MpAuditCustomEventsUI.page | 50 ++++++------ .../Pages/MpAuditQueryUI.page | 44 +++++------ .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 4 +- .../Pages/MpFileManagerUI.page | 74 +++++++++--------- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 8 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 2 +- .../MpAuditArchiveFileTypeDP.txtgrp | 2 +- .../MpAuditArchiveSettingsDP.txtgrp | 2 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 2 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 2 +- .../TextGroups/MpBackupUITexts.txtgrp | 40 +++++----- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../TextGroups/MpReportUITexts.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- 68 files changed, 187 insertions(+), 183 deletions(-) rename mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/{MpFileScan.bminfo => MpFile_Scan.bminfo} (70%) rename mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/{MpFileScan.png => MpFile_Scan.png} (100%) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp index 461f23b5..98cc6da6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -2,10 +2,10 @@ - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.bminfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Scan.bminfo similarity index 70% rename from mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.bminfo rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Scan.bminfo index b11afd7d..2cc784fc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.bminfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Scan.bminfo @@ -1,8 +1,8 @@ - - - - + + + + @@ -10,6 +10,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.png b/mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Scan.png similarity index 100% rename from mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFileScan.png rename to mappFramework/Logical/VC4/mappFrameworkVisu/Bitmaps/MpFile_Scan.png diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr index 7592c19b..df5e28d4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr index f68624e1..7678681f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_BitmapFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr index 3a06a71e..daa034ab 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr index b1168cc6..7924a897 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr index ab1d23a2..ed446c2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Control_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr index f2774dfe..d06c55f6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Select_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr index 738127ff..40a2be33 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Device_Unselect_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr index c591fd13..29303810 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Down.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr index a8f40f22..84977485 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Dwn_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr index 84474499..76b59db1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr index cd05f67c..5a28f03f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Multi_Scroll_Up_press.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr index 6b4c45ac..bdece365 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr index cec2835e..6f458f89 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr index c584eb9a..be6dd5db 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_Multi_pres.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr index bb7632d6..50e3706f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Left_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr index cadb57e8..528ffb2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr index fad588eb..aad77720 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr index 4a66802b..12d3c25a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_Multi_pr.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr index 37a863c9..617786ff 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_Scroll_Right_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr index ebbe19fb..b5f4c27d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Button_pressed.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr index cb5bcdcf..dcc2f205 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_CheckBox_checked.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr index 66b2fd67..16a16701 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_DataNameFrame.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr index 155197b0..da4d224c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_Flat_grey.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr index 67903832..ba89734f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_FrameInvisible.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr index 9b73f4a4..d8153748 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_GroupControl.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr index 85b81a05..20e4df3b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_InputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr index 6f91edec..8d3a1961 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr index 74c03be6..4a63d258 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderDown.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr index b6f9b030..4706ef0b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorderSlim.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr index 771ebc66..f743062b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_LabelBorder_Orange.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr index ce3c0726..0ed59b8d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxCenter.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr index 6cf1e8e1..e47443bc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxLeft.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr index 29169210..a8b0c405 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_ListBoxRight.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr index 8dffa2b5..ac55a465 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_OutputBorder.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr index 5a937ebc..26268ea5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_RangeBar.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr index d94c3c6f..fa400860 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SliderBorder09.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr index 686e2f7d..193596e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNG.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr index 17365678..937e079d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_SunkenNGgray.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr index 05c57ac2..a3217c90 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabActive.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr index 2b96dadc..dfbea32b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr index 33453874..51a19583 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Borders/Mp_TabUnSelect.bdr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index a47fa2b0..99e06ef9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -26,12 +26,12 @@ - + - + @@ -43,18 +43,18 @@ - + - + - + @@ -76,7 +76,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index 0f9819c4..2f505769 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -73,14 +73,14 @@ - + - + @@ -97,7 +97,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 765dc3d7..61a7152b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -357,7 +357,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 1e7607b2..36889554 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -341,7 +341,7 @@ - + @@ -365,7 +365,7 @@ - + @@ -390,7 +390,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index bbb12ff3..2d19aae1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -59,7 +59,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -103,7 +103,7 @@ - + @@ -238,7 +238,7 @@ - + @@ -1165,57 +1165,57 @@ - - + + - - - + + + - - - + + + - + - + - + - + - - + + - - - + + + - - + + @@ -1234,7 +1234,7 @@ - + @@ -1251,6 +1251,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index e2ca00d1..a59e58a6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -59,7 +59,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -103,7 +103,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -148,7 +148,7 @@ - + @@ -175,7 +175,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -220,7 +220,7 @@ - + @@ -238,7 +238,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -1252,14 +1252,14 @@ - + - + @@ -1268,31 +1268,31 @@ - + - + - + - + - + @@ -1327,7 +1327,7 @@ - + @@ -1344,10 +1344,10 @@ - - - - + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index e78ff57a..116166d9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -1188,6 +1188,7 @@ + @@ -2228,6 +2229,7 @@ + @@ -2637,7 +2639,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index 420fc548..359f3017 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -2017,7 +2017,8 @@ - + + @@ -2026,7 +2027,7 @@ - + @@ -2036,7 +2037,7 @@ - + @@ -2058,7 +2059,7 @@ - + @@ -2080,7 +2081,7 @@ - + @@ -2097,7 +2098,7 @@ - + @@ -2115,7 +2116,7 @@ - + @@ -2129,7 +2130,7 @@ - + @@ -2154,7 +2155,7 @@ - + @@ -2179,7 +2180,7 @@ - + @@ -2193,7 +2194,7 @@ - + @@ -2208,7 +2209,7 @@ - + @@ -2222,7 +2223,7 @@ - + @@ -2240,7 +2241,7 @@ - + @@ -2255,7 +2256,8 @@ - + + @@ -2264,7 +2266,7 @@ - + @@ -2483,7 +2485,7 @@ - + @@ -2492,23 +2494,23 @@ - + - + - + - + @@ -2518,32 +2520,32 @@ - + - + - + - + - - + + - + - + - - + + @@ -2553,15 +2555,15 @@ - - - - + + + + - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index 19298581..ea3255f8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -353,7 +353,7 @@ - + @@ -362,7 +362,7 @@ - + @@ -1225,7 +1225,7 @@ - + @@ -1233,7 +1233,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index 21eba335..6bae86ba 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index db957943..ca99af71 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index 07a55c58..8e1122b2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index 09afa18d..8a98e99d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index 7f41e57f..3f415787 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index cca5121e..cd9e7e20 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index 8f6f3997..48f099c1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index 89d63277..a50c27a1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -2,7 +2,7 @@ - + @@ -41,36 +41,36 @@ - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - - + + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 5b89dd09..40e41d9e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 4701e8db..5e4a808e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index df6f7598..d9ed3b13 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index a9acb53d..01b047b6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 9305cd06..35b98a6a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 4243f369..364c08ab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -2,7 +2,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index ceead3ca..5d8ef5ff 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -2,7 +2,7 @@ - + From bd9ae5e4660b1db71cd67ea6525f0ee7958e4e3a Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 11:51:32 -0500 Subject: [PATCH 121/159] AAZM-664 - renaming widgets --- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 446 +++++++++--------- .../Pages/MpUserXManagerUI_Users.page | 5 +- 2 files changed, 226 insertions(+), 225 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index ea3255f8..d6de2f40 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -134,7 +134,7 @@ - + @@ -482,7 +482,7 @@ - + @@ -513,7 +513,7 @@ - + @@ -545,7 +545,7 @@ - + @@ -560,16 +560,16 @@ - + - + - + @@ -577,16 +577,16 @@ - + - + - + @@ -596,7 +596,7 @@ - + @@ -1091,7 +1091,7 @@ - + @@ -1193,7 +1193,7 @@ - + @@ -1218,7 +1218,7 @@ - + @@ -1235,7 +1235,7 @@ - + @@ -1252,7 +1252,7 @@ - + @@ -1268,7 +1268,7 @@ - + @@ -1284,7 +1284,7 @@ - + @@ -1348,7 +1348,7 @@ - + @@ -1373,7 +1373,7 @@ - + @@ -1387,7 +1387,7 @@ - + @@ -1405,7 +1405,7 @@ - + @@ -1423,7 +1423,7 @@ - + @@ -1437,7 +1437,7 @@ - + @@ -1451,7 +1451,7 @@ - + @@ -1465,7 +1465,7 @@ - + @@ -1479,7 +1479,7 @@ - + @@ -1497,7 +1497,7 @@ - + @@ -1515,7 +1515,7 @@ - + @@ -1533,7 +1533,7 @@ - + @@ -1551,7 +1551,7 @@ - + @@ -1569,7 +1569,7 @@ - + @@ -1587,7 +1587,7 @@ - + @@ -1604,7 +1604,7 @@ - + @@ -1621,7 +1621,7 @@ - + @@ -1677,7 +1677,7 @@ - + @@ -1702,7 +1702,7 @@ - + @@ -1716,7 +1716,7 @@ - + @@ -1728,7 +1728,7 @@ - + @@ -1746,7 +1746,7 @@ - + @@ -1764,7 +1764,7 @@ - + @@ -1782,7 +1782,7 @@ - + @@ -1796,7 +1796,7 @@ - + @@ -1810,7 +1810,7 @@ - + @@ -1824,7 +1824,7 @@ - + @@ -1838,7 +1838,7 @@ - + @@ -1850,7 +1850,7 @@ - + @@ -1868,7 +1868,7 @@ - + @@ -1886,7 +1886,7 @@ - + @@ -1904,7 +1904,7 @@ - + @@ -1921,7 +1921,7 @@ - + @@ -1938,7 +1938,7 @@ - + @@ -2360,7 +2360,7 @@ - + @@ -2431,7 +2431,7 @@ - + @@ -2445,7 +2445,7 @@ - + @@ -2459,7 +2459,7 @@ - + @@ -2473,7 +2473,7 @@ - + @@ -2506,7 +2506,7 @@ - + @@ -2675,14 +2675,14 @@ - + - + @@ -2700,11 +2700,11 @@ - + - + @@ -2714,13 +2714,13 @@ - + - + @@ -2733,13 +2733,13 @@ - + - + @@ -2752,13 +2752,13 @@ - + - + @@ -2771,11 +2771,11 @@ - + - + @@ -2785,11 +2785,11 @@ - + - + @@ -2799,11 +2799,11 @@ - + - + @@ -2813,11 +2813,11 @@ - + - + @@ -2827,7 +2827,7 @@ - + @@ -2841,7 +2841,7 @@ - + @@ -2856,7 +2856,7 @@ - + @@ -2870,13 +2870,13 @@ - + - + @@ -3371,14 +3371,14 @@ - + - + @@ -3396,11 +3396,11 @@ - + - + @@ -3410,25 +3410,25 @@ - + - + - + - + @@ -3441,13 +3441,13 @@ - + - + @@ -3460,13 +3460,13 @@ - + - + @@ -3479,11 +3479,11 @@ - + - + @@ -3493,11 +3493,11 @@ - + - + @@ -3507,11 +3507,11 @@ - + - + @@ -3521,11 +3521,11 @@ - + - + @@ -3535,7 +3535,7 @@ - + @@ -3549,7 +3549,7 @@ - + @@ -3564,7 +3564,7 @@ - + @@ -3613,7 +3613,7 @@ - + @@ -3670,7 +3670,7 @@ - + @@ -3726,7 +3726,7 @@ - + @@ -4070,185 +4070,185 @@ - - - - - + + + + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - + - - + + - - - - - + + + + + - + - - + + - - + + - - + + - - + + - + - + - - - - - + + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4260,6 +4260,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index 207831f4..f41cd91a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -828,6 +828,7 @@ + @@ -841,7 +842,7 @@ - + @@ -856,7 +857,7 @@ - + From 7879871af39f4127b83750b89390c8df0861798f Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 12:33:38 -0500 Subject: [PATCH 122/159] AAZM-668 - blurry images for certain user fixed --- .../Pages/MpUserXManagerUI_Users.page | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index f41cd91a..ea181edb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -1053,7 +1053,7 @@ - + @@ -1069,7 +1069,7 @@ - + @@ -1094,7 +1094,7 @@ - + @@ -1119,7 +1119,7 @@ - + @@ -1144,7 +1144,7 @@ - + @@ -1169,7 +1169,7 @@ - + @@ -1196,7 +1196,7 @@ - + From 8a568e19b7837dc737f6d777c900ac396d80d961 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 12:44:09 -0500 Subject: [PATCH 123/159] AAZM-664 - multiple tables misaligned with the separation lines --- .../Pages/MpAlarmXHistory.page | 42 ++++++------- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 63 +++++++++---------- .../Pages/MpAlarmXQuery.page | 24 +++---- 3 files changed, 62 insertions(+), 67 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index dd73cc0e..761b2a86 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -239,7 +239,7 @@ - + @@ -272,7 +272,7 @@ - + @@ -305,7 +305,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -577,7 +577,7 @@ - + @@ -595,7 +595,7 @@ - + @@ -613,7 +613,7 @@ - + @@ -631,7 +631,7 @@ - + @@ -649,7 +649,7 @@ - + @@ -667,7 +667,7 @@ - + @@ -685,7 +685,7 @@ - + @@ -703,7 +703,7 @@ - + @@ -821,7 +821,7 @@ - + @@ -873,10 +873,10 @@ - + - + @@ -893,30 +893,30 @@ - + - + - + - + - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index 56b1c3e0..e7cfcff1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -275,6 +275,7 @@ + @@ -288,7 +289,7 @@ - + @@ -320,7 +321,7 @@ - + @@ -591,7 +592,7 @@ - + @@ -609,7 +610,7 @@ - + @@ -627,7 +628,7 @@ - + @@ -645,7 +646,7 @@ - + @@ -663,7 +664,7 @@ - + @@ -681,7 +682,7 @@ - + @@ -699,7 +700,7 @@ - + @@ -717,7 +718,7 @@ - + @@ -833,7 +834,7 @@ - + @@ -865,7 +866,7 @@ - + @@ -897,10 +898,10 @@ - + - + @@ -917,10 +918,10 @@ - + - + @@ -937,30 +938,30 @@ - + - + - + - + - + - + @@ -1176,17 +1177,11 @@ - - - - - - - - + + - + @@ -1201,10 +1196,10 @@ - + - - + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 36889554..352f81ef 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -133,7 +133,7 @@ - + @@ -197,7 +197,7 @@ - + @@ -229,7 +229,7 @@ - + @@ -281,10 +281,10 @@ - + - - + + @@ -301,30 +301,30 @@ - + - + - + - + - + - + From 7748dc2ec90c26333e154fb278ed5a997341667d Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 14:28:44 -0500 Subject: [PATCH 124/159] AAZM-662 - Chinese language not selectable AAZM-660 - Language not assigned to Report, Audit and Alarm --- .../VC4/AlarmX/AlarmMgr/AlarmMgr.typ | 4 + .../VC4/AlarmX/AlarmMgr/HMIActions.st | 19 ++ .../VC4/Audit/AuditMgr/AuditMgr.st | 1 + .../VC4/Audit/AuditMgr/AuditMgr.typ | 1 + .../VC4/Audit/AuditMgr/HMIActions.st | 26 +++ .../VC4/Report/ReportMgr/HMIActions.st | 15 +- .../VC4/Report/ReportMgr/ReportMgr.typ | 1 + .../VC4/UserX/UserXMgr/UserXMgr.typ | 1 + .../mappFrameworkVisu/Fonts/MpButton.fninfo | 7 + .../mappFrameworkVisu/Fonts/MpDefault.fninfo | 7 + .../mappFrameworkVisu/Fonts/MpHeader.fninfo | 7 + .../mappFrameworkVisu/Fonts/MpHeader2.fninfo | 7 + .../mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo | 7 + .../VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo | 7 + .../mappFrameworkVisu/Fonts/MpInput.fninfo | 7 + .../Fonts/MpMenuButtons.fninfo | 7 + .../Fonts/MpPackMLStateNames.fninfo | 7 + .../VC4/mappFrameworkVisu/Fonts/MpPads.fninfo | 7 + .../Layers/LockedMessageLayer.layer | 1 + .../Layers/MpBackground.layer | 1 + .../Layers/MpOeeControl.layer | 1 + .../Layers/MpPageControl.layer | 3 +- .../Layers/MpUserXSign.layer | 1 + .../Layers/MpUserXSignMessageBox.layer | 1 + .../Pages/MpAlarmXHistory.page | 2 + .../mappFrameworkVisu/Pages/MpAlarmXList.page | 1 + .../Pages/MpAlarmXListUI_Backtrace.page | 1 + .../Pages/MpAlarmXQuery.page | 1 + .../Pages/MpAuditCustomEventsUI.page | 10 ++ .../Pages/MpAuditQueryUI.page | 11 ++ .../Pages/MpAuditTrailUI.page | 14 ++ .../mappFrameworkVisu/Pages/MpAxisBasic.page | 3 + .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 11 ++ .../Pages/MpDataStatisticsUI.page | 1 + .../Pages/MpDataTableUI.page | 1 + .../Pages/MpFileManagerUI.page | 4 + .../mappFrameworkVisu/Pages/MpOeeCoreUI.page | 3 + .../mappFrameworkVisu/Pages/MpOeeListUI.page | 17 ++ .../Pages/MpOeeTimelineUI.page | 5 + .../mappFrameworkVisu/Pages/MpOeeTrendUI.page | 5 + .../Pages/MpPackMLBasicUI.page | 3 + .../Pages/MpPackMLStatisticsUI.page | 1 + .../mappFrameworkVisu/Pages/MpRecipeUI.page | 56 ++++++ .../VC4/mappFrameworkVisu/Pages/MpReport.page | 3 + .../VC4/mappFrameworkVisu/Pages/MpSetup.page | 169 ++++++++++++++++-- .../Pages/MpSystemDiagnostics.page | 1 + .../Pages/MpUserXManagerUI_Roles.page | 6 + .../Pages/MpUserXManagerUI_Users.page | 18 ++ .../Pages/mapp1StartPage.page | 1 + .../TextGroups/MpAuditEventTextSetup.txtgrp | 16 ++ .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 1 + .../TextGroups/MpButtons_PageTexts.txtgrp | 29 +++ .../TextGroups/ShiftGroup.txtgrp | 12 ++ .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 113 ++++++++++++ .../AlarmGroups/MpAuditTrailAlarms.algrp | 5 + .../AlarmGroups/MpAxisBasicAlarms.algrp | 19 ++ .../VCShared/AlarmGroups/MpCncAlarms.algrp | 10 ++ .../AlarmGroups/MpDataRecorderAlarms.algrp | 5 + .../AlarmGroups/MpFileManagerAlarms.algrp | 6 + .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 6 + .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 6 + .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 7 + .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 10 ++ .../AlarmGroups/MpSpindleAlarms.algrp | 22 +++ .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 4 + .../VCShared/AlarmGroups/MpUserAlarms.algrp | 4 + .../VCShared/AlarmGroups/SystemAlarms.algrp | 11 ++ .../VCShared/DataSources/DataSource.dso | 40 +++++ mappFramework/Logical/VCShared/Languages.vcr | 7 + mappFramework/Logical/VCShared/Package.vcp | 2 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 10 ++ .../TextGroups/MpAlarmBasicUIText.txtgrp | 6 + .../TextGroups/MpAlarmBypassState.txtgrp | 6 + .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 14 ++ .../TextGroups/MpAlarmSeparator.txtgrp | 4 + .../VCShared/TextGroups/MpAlarmState.txtgrp | 6 + .../TextGroups/MpAlarmXHistoryCode.txtgrp | 22 +++ .../TextGroups/MpAlarmXHistoryExport.txtgrp | 5 + .../TextGroups/MpAlarmXHistoryState.txtgrp | 22 +++ .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 4 + .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 18 ++ .../TextGroups/MpAlarmXListCode.txtgrp | 22 +++ .../TextGroups/MpAlarmXListEventID.txtgrp | 7 + .../TextGroups/MpAlarmXListRecordID.txtgrp | 7 + .../TextGroups/MpAlarmXListState.txtgrp | 22 +++ .../TextGroups/MpAlarmXListStatus.txtgrp | 4 + .../TextGroups/MpAlarmXListUIQuery.txtgrp | 8 + .../TextGroups/MpAlarmXListUIText.txtgrp | 27 +++ .../MpAuditArchiveFileTypeDP.txtgrp | 5 + .../MpAuditArchiveSettingsDP.txtgrp | 5 + .../TextGroups/MpAuditEventsOutput.txtgrp | 22 +++ .../TextGroups/MpAuditSignatureEvent.txtgrp | 6 + .../TextGroups/MpAuditTrailUIText.txtgrp | 31 ++++ .../TextGroups/MpAuditTweetEvent.txtgrp | 4 + .../TextGroups/MpAuditUIErrorText.txtgrp | 5 + .../TextGroups/MpAuditUIMessageBox.txtgrp | 4 + .../TextGroups/MpAuditUserAction.txtgrp | 15 ++ .../TextGroups/MpAuditUserIDText.txtgrp | 7 + .../VCShared/TextGroups/MpAxisBasic.txtgrp | 22 +++ .../TextGroups/MpBackupIntervalUITexts.txtgrp | 12 ++ .../TextGroups/MpBackupUITexts.txtgrp | 34 ++++ .../TextGroups/MpComLoggerUIText.txtgrp | 10 ++ .../MpDataStatisticsUIStatus.txtgrp | 5 + .../TextGroups/MpDataStatisticsUIText.txtgrp | 18 ++ .../TextGroups/MpDataTableHeader.txtgrp | 12 ++ .../TextGroups/MpDataTableUIStatus.txtgrp | 5 + .../TextGroups/MpDataTableUIText.txtgrp | 18 ++ .../TextGroups/MpDateTimeFormats.txtgrp | 6 + .../TextGroups/MpEnergyCoreStatus.txtgrp | 4 + .../TextGroups/MpEnergyCoreUIText.txtgrp | 35 ++++ .../TextGroups/MpEnergyForwardEnergy.txtgrp | 22 +++ .../TextGroups/MpEnergyReverseEnergy.txtgrp | 22 +++ .../TextGroups/MpFileManagerUIDevices.txtgrp | 12 ++ .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 5 + .../TextGroups/MpFileManagerUIFiles.txtgrp | 12 ++ .../MpFileManagerUIMessageBox.txtgrp | 10 ++ .../TextGroups/MpFileManagerUIStatus.txtgrp | 15 ++ .../TextGroups/MpFileManagerUIText.txtgrp | 32 ++++ .../VCShared/TextGroups/MpLanguages.txtgrp | 8 + .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 23 +++ .../TextGroups/MpOeeCoreUIText.txtgrp | 23 +++ .../TextGroups/MpOeeCoreUITime.txtgrp | 6 + .../TextGroups/MpOeeListUIText.txtgrp | 19 ++ .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 8 + .../MpOeeTimelineUIProductionState.txtgrp | 6 + .../TextGroups/MpOeeTimelineUIText.txtgrp | 18 ++ .../TextGroups/MpOeeTrendUIText.txtgrp | 18 ++ .../TextGroups/MpPackMLBasicUIText.txtgrp | 10 ++ .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 13 ++ .../TextGroups/MpPackMLModesNames.txtgrp | 5 + .../TextGroups/MpPackMLStateNames.txtgrp | 20 +++ .../TextGroups/MpPackMLStatisticsText.txtgrp | 55 ++++++ .../MpPackMLStatisticsUIText.txtgrp | 10 ++ .../TextGroups/MpRecipeAuditText.txtgrp | 7 + .../TextGroups/MpRecipeUICategoryDD.txtgrp | 4 + .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 4 + .../TextGroups/MpRecipeUIMessageBox.txtgrp | 11 ++ .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 22 +++ .../TextGroups/MpRecipeUIStatus.txtgrp | 9 + .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 26 +++ .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 4 + .../TextGroups/MpReportUITexts.txtgrp | 51 ++++++ .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 7 + .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 8 + .../TextGroups/MpTweetCoreUITexts.txtgrp | 26 +++ .../TextGroups/MpTweetCoreUIType.txtgrp | 4 + .../VCShared/TextGroups/MpUnits.txtgrp | 4 + .../TextGroups/MpUserConfirmText.txtgrp | 7 + .../TextGroups/MpUserDialogHeader.txtgrp | 8 + .../VCShared/TextGroups/MpUserGroups.txtgrp | 12 ++ .../VCShared/TextGroups/MpUserNoYes.txtgrp | 4 + .../TextGroups/MpUserPasswordCriteria.txtgrp | 6 + .../VCShared/TextGroups/MpUserRight.txtgrp | 12 ++ .../TextGroups/MpUserRightLevel.txtgrp | 7 + .../TextGroups/MpUserUIErrorText.txtgrp | 38 ++++ .../TextGroups/MpUserUIMessageBox.txtgrp | 10 ++ .../VCShared/TextGroups/MpUserUITexts.txtgrp | 54 ++++++ .../TextGroups/MpUserXConfirmText.txtgrp | 7 + .../TextGroups/MpUserXDialogHeader.txtgrp | 8 + .../VCShared/TextGroups/MpUserXGroups.txtgrp | 12 ++ .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 4 + .../TextGroups/MpUserXPasswordCriteria.txtgrp | 6 + .../VCShared/TextGroups/MpUserXRight.txtgrp | 12 ++ .../TextGroups/MpUserXRightLevel.txtgrp | 7 + .../VCShared/TextGroups/MpUserXRoles.txtgrp | 11 ++ .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 3 + .../TextGroups/MpUserXSignUIText.txtgrp | 6 + .../TextGroups/MpUserXUIErrorText.txtgrp | 46 +++++ .../TextGroups/MpUserXUIMessageBox.txtgrp | 10 ++ .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 54 ++++++ .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 3 + .../TextGroups/UserLevelNotPermitted.txtgrp | 4 + .../VCShared/TextGroups/mappComponents.txtgrp | 41 +++++ .../VCShared/TextGroups/mappTopics.txtgrp | 26 +++ .../Logical/VCShared/UnitGroups/Energy.vcug | 9 + .../Logical/VCShared/UnitGroups/Length.vcug | 19 ++ .../Logical/VCShared/UnitGroups/Mass.vcug | 11 ++ .../Logical/VCShared/UnitGroups/Memory.vcug | 11 ++ .../Logical/VCShared/UnitGroups/Power.vcug | 9 + .../Logical/VCShared/UnitGroups/Pressure.vcug | 17 ++ .../VCShared/UnitGroups/Temperatures.vcug | 11 ++ .../Logical/VCShared/UnitGroups/Volume.vcug | 13 ++ .../SimulationVC4/PC/TextSystem/Package.pkg | 4 +- 183 files changed, 2391 insertions(+), 18 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ index edf55909..277f8f95 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ @@ -3,8 +3,12 @@ TYPE AlarmHmiInterfaceType : STRUCT (*Structure to hold commands and status from the HMI*) Commands : AlarmCommandsType; (*HMI commands*) + Parameters : AlarmParType; (*HMI parameters*) Status : {REDUND_UNREPLICABLE} AlarmStatusType; (*HMI status*) END_STRUCT; + AlarmParType : STRUCT (*Structure to hold the parameters for the HMI*) + Language : USINT; (*Current VC4 language*) + END_STRUCT; AlarmCommandsType : STRUCT (*Structure to hold the commands from the HMI*) ExportAlarms : BOOL; (*Triggers an alarm export of the alarm history. Connected to a button on the HMI. *) RunQuery : BOOL; (*Triggers the query to run. Connected to a button on the HMI. *) diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st index 7a9e9a84..c982cd2a 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st @@ -13,4 +13,23 @@ ACTION HMIActions: HmiAlarmX.Status.HistoryExportLayer := DISPLAY; END_IF + //language assignments + + CASE HmiAlarmX.Parameters.Language OF + + 0://English + MpAlarmXListUIConnect.Language := 'en'; + MpAlarmXHistory_0.Language := ADR('en'); + MpAlarmXHistoryUIConnect.Language := 'en'; + 1://German + MpAlarmXListUIConnect.Language := 'de'; + MpAlarmXHistory_0.Language := ADR('de'); + MpAlarmXHistoryUIConnect.Language := 'de'; + 2://Chinese + MpAlarmXListUIConnect.Language := 'ch'; + MpAlarmXHistory_0.Language := ADR('ch'); + MpAlarmXHistoryUIConnect.Language := 'ch'; + + END_CASE + END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st index 71111ef9..1c5a843f 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st @@ -99,6 +99,7 @@ PROGRAM _CYCLIC ArchiveExport; ArchiveSettings; ChangeConfiguration; + VC4Support; // Sample code for how custom events can be triggered. Use custom events as needed around the application for debugging purposes. IF EDGEPOS(CustomEvent[0].Set) THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ index 5fc1840d..aee43d42 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ @@ -59,6 +59,7 @@ TYPE AuditParType : STRUCT (*Structure to hold parameter data for the HMI*) ArchiveSettings : AuditArchiveParType; (*Parameter for archive configuration*) QuerySelection : ARRAY[0..MAX_QUERIES]OF STRING[10]; (*The selection in the query dropdown on the query tab of the Audit content*) + Language : USINT; (*Current VC4 language*) END_STRUCT; AuditArchiveParType : STRUCT (*Automatic archive settings*) Enable : BOOL; (*Enable automatic archive feature*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st index cb2e239c..e6ba8001 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st @@ -78,3 +78,29 @@ ACTION QueryTableConfig: brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR('}')); END_ACTION + +ACTION VC4Support: + + //language assignments + + CASE HmiAudit.Parameters.Language OF + + 0://English + MpAuditTrail_0.Language := ADR('en'); + MpAuditTrailUI_0.Language := ADR('en'); + MpAuditTrail_CEvents.Language := ADR('en'); + MpAuditTrail_CEvents_UI_0.Language := ADR('en'); + 1://German + MpAuditTrail_0.Language := ADR('de'); + MpAuditTrailUI_0.Language := ADR('de'); + MpAuditTrail_CEvents.Language := ADR('de'); + MpAuditTrail_CEvents_UI_0.Language := ADR('de'); + 2://Chinese + MpAuditTrail_0.Language := ADR('ch'); + MpAuditTrailUI_0.Language := ADR('ch'); + MpAuditTrail_CEvents.Language := ADR('ch'); + MpAuditTrail_CEvents_UI_0.Language := ADR('ch'); + + END_CASE + +END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st index 8b6df114..45c23c4b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -102,10 +102,6 @@ ACTION ReportFileExplorer: MpReportCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); - - - - //VC4 IF HmiReport.Status.Error THEN HmiReport.Status.Layer.ReportCreate := HIDE; @@ -121,6 +117,17 @@ ACTION ReportFileExplorer: HmiReport.Status.PageUpDownVisibility := HIDE; END_IF; + //language assignments + + CASE HmiReport.Parameters.Language OF + + 0://English + MpReportCore_0.Language := ADR('en'); + 1://German + MpReportCore_0.Language := ADR('de'); + 2://Chinese + MpReportCore_0.Language := ADR('ch'); + END_CASE END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ index f63da6cd..06e9f79d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ @@ -15,6 +15,7 @@ TYPE UseAdvancedFormat : BOOL; (*Whether or not the report should use the advanced format*) PathOfReportToView : STRING[255]; (*The file path of the selected report*) SelectedLanguage : STRING[10] := 'en'; (*Selected language*) + Language : USINT; (*Current VC4 language*) END_STRUCT; ReportStatusType : STRUCT (*Structure to hold the status information from the HMI*) ViewAllowed : BOOL; (*Bit to indicate it is allowable to view a report right now*) diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ index cb90100a..e8a5169f 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ @@ -18,5 +18,6 @@ TYPE FileDuplicateLayerStatus : USINT; ButtonLockedMessageLayer : USINT; ButtonLockingLayer : USINT; + SelectedLanguage : USINT; END_STRUCT; END_TYPE diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo index a1c1f14a..a1c3c4eb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo index 6b475256..c757dccf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo index 954b0139..90bb0120 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo index 97343d9e..e0db5524 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo index dcb22252..0487fc76 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo index 17c6cffc..9699a7a0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo index 36f1d34c..f260749f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo index 287cdeb5..4bd73755 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo index 055c52d0..5fef978a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo index 16de94a8..ad002d61 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 99e06ef9..76dfb022 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -11,6 +11,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index 2f505769..b7f47299 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -11,6 +11,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer index 3979242c..271bd00f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer @@ -11,6 +11,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index 0de1b1cc..71a8a3e4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -11,6 +11,7 @@ + @@ -556,7 +557,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer index c25545be..29195f01 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer @@ -11,6 +11,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer index 2a72c1ba..752b3c20 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer @@ -11,6 +11,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index 761b2a86..c348ad2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -40,6 +40,7 @@ + @@ -1158,6 +1159,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index e7cfcff1..b8da4bae 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -40,6 +40,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index 3a6ce820..aaa3780e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -52,6 +52,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 352f81ef..866e9862 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -40,6 +40,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index 2d19aae1..8edc2d24 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -40,6 +40,7 @@ + @@ -378,6 +379,14 @@ + + + + + + + + @@ -1021,6 +1030,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index a59e58a6..c9a636ce 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -40,6 +40,7 @@ + @@ -362,6 +363,14 @@ + + + + + + + + @@ -1005,6 +1014,7 @@ + @@ -1165,6 +1175,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 14768b19..18f779f0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -40,6 +40,7 @@ + @@ -500,6 +501,14 @@ + + + + + + + + @@ -1143,6 +1152,7 @@ + @@ -1307,6 +1317,9 @@ + + + @@ -1744,6 +1757,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index 01b02bed..39cd6086 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -52,6 +52,7 @@ + @@ -190,6 +191,7 @@ + @@ -865,6 +867,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index 116166d9..a2424053 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -39,6 +39,7 @@ + @@ -948,6 +949,9 @@ + + + @@ -1492,6 +1496,7 @@ + @@ -1696,6 +1701,7 @@ + @@ -1900,6 +1906,7 @@ + @@ -2098,6 +2105,7 @@ + @@ -2185,6 +2193,7 @@ + @@ -2343,6 +2352,7 @@ + @@ -2680,6 +2690,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page index b867ef93..f2de2518 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page @@ -39,6 +39,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page index 856941d0..6b4d124b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page @@ -39,6 +39,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index 359f3017..3c61eb0d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -39,6 +39,7 @@ + @@ -1866,6 +1867,7 @@ + @@ -2014,6 +2016,7 @@ + @@ -2336,6 +2339,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page index f9ed848c..55c8a501 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page @@ -56,6 +56,9 @@ + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page index 266fa51b..9b341e1f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page @@ -69,6 +69,22 @@ + + + + + + + + + + + + + + + + @@ -1952,6 +1968,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page index 67f0ea84..35609745 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page @@ -45,6 +45,10 @@ + + + + @@ -1348,6 +1352,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page index 4cd7aebb..cf1622ae 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page @@ -45,6 +45,10 @@ + + + + @@ -508,6 +512,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 3259e48b..38edadeb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -39,6 +39,7 @@ + @@ -691,6 +692,7 @@ + @@ -1240,6 +1242,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index 9054ea12..34487b2b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -40,6 +40,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index d6de2f40..8d54c7dd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -39,6 +39,7 @@ + @@ -984,6 +985,7 @@ + @@ -1190,6 +1192,7 @@ + @@ -1338,6 +1341,14 @@ + + + + + + + + @@ -1667,6 +1678,14 @@ + + + + + + + + @@ -1970,6 +1989,7 @@ + @@ -2130,6 +2150,7 @@ + @@ -2251,6 +2272,13 @@ + + + + + + + @@ -2589,6 +2617,15 @@ + + + + + + + + + @@ -2954,6 +2991,13 @@ + + + + + + + @@ -3285,6 +3329,15 @@ + + + + + + + + + @@ -3631,6 +3684,7 @@ + @@ -3803,6 +3857,7 @@ + @@ -3951,6 +4006,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index e8da1a2c..172b61de 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -39,6 +39,7 @@ + @@ -476,6 +477,7 @@ + @@ -585,6 +587,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page index 827f3680..e806b76c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page @@ -39,6 +39,7 @@ + @@ -475,6 +476,7 @@ + @@ -483,7 +485,7 @@ - + @@ -493,11 +495,12 @@ - - + + + @@ -506,7 +509,7 @@ - + @@ -516,13 +519,48 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + @@ -532,9 +570,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -544,16 +618,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page index c5facfd7..db9ee8a6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page @@ -39,6 +39,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index df6622dc..906b49b1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -43,6 +43,9 @@ + + + @@ -969,6 +972,7 @@ + @@ -1645,6 +1649,7 @@ + @@ -2306,6 +2311,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index ea181edb..a244a903 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -49,6 +49,12 @@ + + + + + + @@ -1059,6 +1065,7 @@ + @@ -1328,6 +1335,7 @@ + @@ -1631,6 +1639,7 @@ + @@ -2321,6 +2330,7 @@ + @@ -3029,6 +3039,7 @@ + @@ -3178,6 +3189,7 @@ + @@ -3503,6 +3515,7 @@ + @@ -3769,6 +3782,9 @@ + + + @@ -3916,6 +3932,7 @@ + @@ -4073,6 +4090,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index c451e3b1..48e13983 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -39,6 +39,7 @@ + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp index 8c428770..e759c67c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -36,6 +36,22 @@ + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp index 03ffebb1..d630d14f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -6,5 +6,6 @@ + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index 6c7757ea..49607b37 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -62,6 +62,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp index 83db9970..87c5da9d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp @@ -28,6 +28,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index d3c4dc14..78b116fd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -10,6 +10,7 @@ + @@ -22,6 +23,7 @@ + @@ -34,6 +36,7 @@ + @@ -46,6 +49,7 @@ + @@ -58,6 +62,7 @@ + @@ -70,6 +75,7 @@ + @@ -82,6 +88,7 @@ + @@ -94,6 +101,7 @@ + @@ -106,6 +114,7 @@ + @@ -118,6 +127,7 @@ + @@ -130,6 +140,7 @@ + @@ -142,6 +153,7 @@ + @@ -154,6 +166,7 @@ + @@ -166,6 +179,7 @@ + @@ -178,6 +192,7 @@ + @@ -190,6 +205,7 @@ + @@ -202,6 +218,7 @@ + @@ -214,6 +231,7 @@ + @@ -226,6 +244,7 @@ + @@ -238,6 +257,7 @@ + @@ -250,6 +270,7 @@ + @@ -262,6 +283,7 @@ + @@ -274,6 +296,7 @@ + @@ -286,6 +309,7 @@ + @@ -298,6 +322,7 @@ + @@ -310,6 +335,7 @@ + @@ -322,6 +348,7 @@ + @@ -334,6 +361,7 @@ + @@ -346,6 +374,7 @@ + @@ -358,6 +387,7 @@ + @@ -370,6 +400,7 @@ + @@ -382,6 +413,7 @@ + @@ -394,6 +426,7 @@ + @@ -406,6 +439,7 @@ + @@ -418,6 +452,7 @@ + @@ -430,6 +465,7 @@ + @@ -442,6 +478,7 @@ + @@ -454,6 +491,7 @@ + @@ -466,6 +504,7 @@ + @@ -478,6 +517,7 @@ + @@ -490,6 +530,7 @@ + @@ -502,6 +543,7 @@ + @@ -514,6 +556,7 @@ + @@ -526,6 +569,7 @@ + @@ -538,6 +582,7 @@ + @@ -550,6 +595,7 @@ + @@ -562,6 +608,7 @@ + @@ -574,6 +621,7 @@ + @@ -586,6 +634,7 @@ + @@ -598,6 +647,7 @@ + @@ -610,6 +660,7 @@ + @@ -622,6 +673,7 @@ + @@ -634,6 +686,7 @@ + @@ -646,6 +699,7 @@ + @@ -658,6 +712,7 @@ + @@ -670,6 +725,7 @@ + @@ -682,6 +738,7 @@ + @@ -694,6 +751,7 @@ + @@ -706,6 +764,7 @@ + @@ -718,6 +777,7 @@ + @@ -730,6 +790,7 @@ + @@ -742,6 +803,7 @@ + @@ -754,6 +816,7 @@ + @@ -766,6 +829,7 @@ + @@ -778,6 +842,7 @@ + @@ -790,6 +855,7 @@ + @@ -802,6 +868,7 @@ + @@ -814,6 +881,7 @@ + @@ -826,6 +894,7 @@ + @@ -838,6 +907,7 @@ + @@ -850,6 +920,7 @@ + @@ -862,6 +933,7 @@ + @@ -874,6 +946,7 @@ + @@ -886,6 +959,7 @@ + @@ -898,6 +972,7 @@ + @@ -910,6 +985,7 @@ + @@ -922,6 +998,7 @@ + @@ -934,6 +1011,7 @@ + @@ -946,6 +1024,7 @@ + @@ -958,6 +1037,7 @@ + @@ -970,6 +1050,7 @@ + @@ -982,6 +1063,7 @@ + @@ -994,6 +1076,7 @@ + @@ -1006,6 +1089,7 @@ + @@ -1018,6 +1102,7 @@ + @@ -1703,6 +1788,7 @@ + @@ -4023,6 +4109,7 @@ + @@ -4035,6 +4122,7 @@ + @@ -4047,6 +4135,7 @@ + @@ -4059,6 +4148,7 @@ + @@ -4071,6 +4161,7 @@ + @@ -4083,6 +4174,7 @@ + @@ -4095,6 +4187,7 @@ + @@ -4107,6 +4200,7 @@ + @@ -4119,6 +4213,7 @@ + @@ -4131,6 +4226,7 @@ + @@ -4143,6 +4239,7 @@ + @@ -4382,4 +4479,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 58db8155..7b4aff42 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -87,6 +87,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 3b67ca27..ae11a0a0 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -409,6 +409,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index a9b736b9..b141d44b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -238,6 +238,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index b8c59321..9448c87b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -87,6 +87,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index 564f899f..ecf026f2 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -110,6 +110,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index 79f8ceff..d287911e 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -110,6 +110,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index 28deba3f..f0a54221 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -110,6 +110,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index 89fc13c1..40df221e 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -142,6 +142,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index c6d87afd..29d32452 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -238,6 +238,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index fa5f8c61..e73a2c7f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -478,6 +478,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 5dd61035..196e1559 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -64,6 +64,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index 894e5633..db1ecafe 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -64,6 +64,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 90a743a9..9944cefe 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -146,6 +146,17 @@ + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index 229ca0cf..c37ee2f5 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -5920,6 +5920,15 @@ + + + + + + + + + @@ -6142,6 +6151,15 @@ + + + + + + + + + @@ -7040,6 +7058,19 @@ + + + + + + + + + + + + + @@ -9361,6 +9392,15 @@ + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 575ebacc..ee3bc574 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -17,4 +17,11 @@ + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 772d633a..53300878 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -3,7 +3,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index 964e7625..80457ae6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -24,6 +24,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index b7ec8f39..adb32fd7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index 3de19132..40cf1c1b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index d4d725e2..3b7ffcd7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -32,6 +32,20 @@ + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index 6b1e3b38..32d76583 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 56a3ed46..020c528d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index d06df0e0..079e96f5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -289,6 +289,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index 6bae86ba..53b83213 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 3dd3336a..f1b36bb3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -48,6 +48,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index 7c8f15aa..92be39ea 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index bbcc4a3e..0a470743 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -40,6 +40,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 8df24c02..45af8f9d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -289,6 +289,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index 04c2e676..76faa53b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -79,6 +79,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index 3438b865..c3f93fa9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -79,6 +79,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index 777a4e56..88b462ef 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -48,6 +48,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index eda91d0e..bd3d10f7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index ca99af71..bcd97d0a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -20,6 +20,14 @@ + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index 1a0370cf..1f50f2b3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -58,6 +58,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index 8e1122b2..e5c67d7f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index 8a98e99d..ab61a6d1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index 4a151aa2..a0a4c618 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -209,6 +209,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 23d22f60..291c3ded 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index 1c750991..a4eeb92f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -66,6 +66,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index dca04c44..6abf188f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index 3f415787..ab4acd5b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index cd9e7e20..140d5526 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -23,6 +23,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index 106886a9..822fa4dd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -34,6 +34,21 @@ + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index c9f4b7c9..ff05abb6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 7a60a9eb..b311dd6b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -48,6 +48,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index 48f099c1..b15e5a1f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -28,6 +28,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index a50c27a1..d51ac713 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -72,6 +72,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index 104b93c4..fc93e21a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -24,6 +24,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 9e2c39a1..11f4dd8e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index 796c424b..c7edc5de 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -40,6 +40,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 92006277..5f831d44 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -269,6 +269,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index a8d141e8..a585676b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index 8d68acc9..e0f6b2e5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -40,6 +40,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index 122e5f1b..9917b577 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp index d5e311a6..4f0270eb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp index bf20b154..9bd2eb0c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp @@ -74,6 +74,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp index f13d8e58..b55393be 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp @@ -289,6 +289,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp index 121d8faa..a045fef4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp @@ -289,6 +289,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index c9ee3af7..3cfea275 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -109,6 +109,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 40e41d9e..4433e8e7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -55,6 +55,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index f73f18c8..f5585c36 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -109,6 +109,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index db93fb09..11357b9f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -24,6 +24,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index 4de9347e..930d6c26 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -34,6 +34,21 @@ + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index e33e6ae8..00df2a0d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -109,6 +109,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index 46659412..b53b7d75 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -7,13 +7,21 @@ + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index d4572444..10049355 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -50,6 +50,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index 03fc3230..1a2e22d8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -50,6 +50,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index fb26b2e5..1b00a4e4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -173,6 +173,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index cc47ba5d..ed975c63 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -42,6 +42,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index 6c767549..1d99ae8c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -237,6 +237,14 @@ + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index 3623bbee..4ff61c2d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index a53c0024..9afe19cb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -40,6 +40,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index dfa486c2..34ba4365 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -40,6 +40,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index 120c07b7..ac7912bb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -24,6 +24,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index 81ef8b3e..a70478a9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -30,6 +30,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index 86bd699f..a78d1657 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -14,6 +14,11 @@ + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 1041c67e..00f3b89e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -44,6 +44,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 4473d35b..237e4194 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1591,6 +1591,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index 3d4e239d..6e0c8b5a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -24,6 +24,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index 99683cbf..f9a74a32 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 5e4a808e..d8a1caf1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -253,6 +253,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index d9ed3b13..9607aa76 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 1c36cf85..9f6896cb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -26,6 +26,17 @@ + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index d59dd3e0..8644b66c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -289,6 +289,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index 01b047b6..c4d135d6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -22,6 +22,15 @@ + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 56f5d3e6..acbf9d98 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -97,6 +97,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 35b98a6a..e964c191 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -253,6 +253,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 364c08ab..d4cde1d0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -106,6 +106,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp index 749854ab..8e2178c5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp index 8df54a66..499d0c8a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp @@ -31,6 +31,14 @@ + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp index 58800b28..63f12ecf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp @@ -56,6 +56,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp index 3c397ed9..af59f8fc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 7f033aa3..17275af2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index 659c0859..6331df7f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index 28ec13c3..d3526975 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -20,6 +20,14 @@ + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index 5b3fe7d7..6b1bbacd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -109,6 +109,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index 649c65f4..02c3e9ec 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index 98a3f0b8..0bd6288b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index 8558a1e7..ab5ef403 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -28,6 +28,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index fc2988c6..684c54d6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 0417cbe2..490665a7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -80,6 +80,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 0680964b..23a37c32 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -61,6 +61,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index ca62d6b3..85d92a46 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -147,6 +147,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index e990c657..c676d89c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 11b999dd..09c977b4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -20,6 +20,14 @@ + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index 08b6d425..d36580bd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -109,6 +109,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 24c8ab73..8b930df3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index b0815a8d..c59bada9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index bfc7c79a..a32d43f7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -28,6 +28,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index 8242db57..23649b63 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -18,6 +18,13 @@ + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 1b7ad448..ea97cf78 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -26,6 +26,17 @@ + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index fe5ccfd0..f7b9c73d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -21,6 +21,9 @@ + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index c6bb4ad8..a4befa17 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -16,6 +16,12 @@ + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index 1c7bcba5..9f193b65 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -96,6 +96,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 06ee284d..6fe43cb9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -61,6 +61,16 @@ + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index cc176aca..59a31ea2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -137,6 +137,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 5ae93819..45be0cf4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -10,6 +10,9 @@ + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index 5d8ef5ff..6f46f258 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -12,6 +12,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index 70d94bba..e3d0ea5f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -86,6 +86,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index da49b4bd..14cb9e54 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -56,6 +56,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index c6fbf9c9..a5a2e612 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -30,6 +30,15 @@ + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index fa6652d7..34935b2b 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -50,6 +50,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index 88b6633f..11c9a395 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -34,6 +34,17 @@ + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index 01303640..6a478eb5 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -34,6 +34,17 @@ + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index 0cfb3492..38694895 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -30,6 +30,15 @@ + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index 66e164e2..e03a38de 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -46,6 +46,23 @@ + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index 6df7ed6d..adebd6ea 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -34,6 +34,17 @@ + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index b07517ec..e71ebd86 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -38,6 +38,19 @@ + + + + + + + + + + + + + diff --git a/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg index 24b827e6..97f7177b 100644 --- a/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/TextSystem/Package.pkg @@ -1,5 +1,7 @@  - + + \Physical\Simulation\PC\TextSystem\TC.textconfig + \ No newline at end of file From 8ac379ea6611de527948d11d74e056386f6581fb Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 15:14:33 -0500 Subject: [PATCH 125/159] AAZM-646 - FIFO device reset - removed code --- .../Infrastructure/VC4/File/FileMgr/FIFOOperations.st | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st index 718a25a0..fbcd7bd6 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st @@ -8,15 +8,9 @@ ACTION FIFOOperation: HmiFile.Commands.CheckFolder := HmiFile.Parameters.Fifo.Enable; END_IF - // FIFO dropdown device should be same selected device - IF EDGEPOS(HmiFile.Status.FIFOLayerStatus = DISPLAY) THEN - HmiFile.Parameters.Fifo.SelectedDevice := MpFileManagerUIConnect.DeviceList.SelectedIndex; - END_IF; - //device name declare HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Parameters.Fifo.SelectedDevice]; - - + IF HmiFile.Status.FIFOLayerStatus = DISPLAY THEN brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO @@ -27,7 +21,6 @@ ACTION FIFOOperation: END_FOR END_IF - // Autodelete oldest files based on scanning option CASE HmiFile.Status.DeleteStep OF FILE_DISABLED: From 0142f543bafc75007e42c536a5a935f5d2249fec Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 15:53:27 -0500 Subject: [PATCH 126/159] AAZM-657 - assigned file name based on selected index in code --- .../Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st index cf456bb2..ec7d0ef1 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st @@ -39,6 +39,10 @@ ACTION HMIAction: USERX_FINISH: END_CASE + + // assign file name based on selected index + UserXMgrUIConnect.Import.Dialog.FileName := UserXMgrUIConnect.Import.Dialog.List.FileNames[UserXMgrUIConnect.Import.Dialog.List.SelectedIndex]; + // If new updates are made via export execute a check IF UserXMgrUIConnect.Export.ShowDialog THEN UserXCheckState := USERX_NEW_EXPORT; From a16ec06f74d668fdd950113910346f4727091987 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 16:15:49 -0500 Subject: [PATCH 127/159] AAZM-644 - Batch # missing - variable not available in OpcUa --- .../Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg | 4 +++- .../Physical/SimulationVC4/PC/mappServices/Package.pkg | 2 +- .../PC/mappServices/{Records => Report}/Package.pkg | 0 3 files changed, 4 insertions(+), 2 deletions(-) rename mappFramework/Physical/SimulationVC4/PC/mappServices/{Records => Report}/Package.pkg (100%) diff --git a/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg index 2f38cef0..38adad84 100644 --- a/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg @@ -1,5 +1,7 @@  - + + \Physical\Simulation\PC\Connectivity\OpcUA\ReportMgr.uad + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg index c9975d7e..a31099d9 100644 --- a/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/Package.pkg @@ -9,7 +9,7 @@ File Recipe UserX - Records + Report PackML \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/Records/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/Report/Package.pkg similarity index 100% rename from mappFramework/Physical/SimulationVC4/PC/mappServices/Records/Package.pkg rename to mappFramework/Physical/SimulationVC4/PC/mappServices/Report/Package.pkg From b8ec68add50e391cf020fda398147a4659f3e20b Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Wed, 31 May 2023 16:43:05 -0500 Subject: [PATCH 128/159] AAZM-651 - reversed a changed that broke the advance report --- .../Logical/Infrastructure/Report/ReportMgr/HMIActions.st | 1 - 1 file changed, 1 deletion(-) diff --git a/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st index 010d0b74..0232f74b 100644 --- a/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/Report/ReportMgr/HMIActions.st @@ -12,7 +12,6 @@ ACTION ReportFormat: HmiReport.Parameters.Name := 'SimpleReport'; HmiReport.Status.CurrentFormat := FORMAT_SIMPLE; ELSE - MpReportCore_0.MpLink := ADR(gMpLinkSimpleReport); MpReportCore_0.Enable := TRUE; END_IF From 13a5147c46595413062f2510277e612c62694e6f Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Thu, 1 Jun 2023 14:18:28 -0500 Subject: [PATCH 129/159] Fixed Alarm txt file inconsistency with alarm 8 & 9 names --- mappFramework/Logical/Infrastructure/AlarmX/Alarms.tmx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/AlarmX/Alarms.tmx b/mappFramework/Logical/Infrastructure/AlarmX/Alarms.tmx index 062bb3a5..f69b56f8 100644 --- a/mappFramework/Logical/Infrastructure/AlarmX/Alarms.tmx +++ b/mappFramework/Logical/Infrastructure/AlarmX/Alarms.tmx @@ -315,7 +315,7 @@ Mon unité - + Alarm 8 @@ -329,7 +329,7 @@ Mon unité - + Alarm 9 From 4359925e1f83e8fd8b1a8204030823253d39cbc4 Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Thu, 1 Jun 2023 14:20:04 -0500 Subject: [PATCH 130/159] Fixed Active alarm list table formatting --- .../Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index b8da4bae..ca482b5a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -354,7 +354,7 @@ - + From f53969a0a216cc519d773e57abc22c77a8b3bd10 Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Thu, 1 Jun 2023 14:21:20 -0500 Subject: [PATCH 131/159] Revert "Fixed Active alarm list table formatting" This reverts commit 4359925e1f83e8fd8b1a8204030823253d39cbc4. --- .../Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index ca482b5a..b8da4bae 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -354,7 +354,7 @@ - + From 5aeb33cbb91891c8c52dd0029d9746464fbd1833 Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Thu, 1 Jun 2023 14:31:25 -0500 Subject: [PATCH 132/159] VC4 Active alarms formatting fix --- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index b8da4bae..b2d6f0a1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + @@ -58,7 +58,7 @@ - + @@ -354,7 +354,7 @@ - + @@ -665,7 +665,7 @@ - + @@ -683,7 +683,7 @@ - + @@ -701,7 +701,7 @@ - + @@ -719,7 +719,7 @@ - + @@ -840,7 +840,7 @@ - + @@ -899,10 +899,10 @@ - + - + @@ -1185,7 +1185,7 @@ - + From ea13c9c8e9d5d66745ad5f7671af859a43fc4a6e Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Thu, 1 Jun 2023 16:05:39 -0500 Subject: [PATCH 133/159] VC4 aazm 656 Alarm query issues fixed and minor formating of positions --- .../VC4/AlarmX/AlarmMgr/ExecuteQuery.st | 40 +++++++++++-------- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 4 +- .../Pages/MpAlarmXQuery.page | 12 +++--- .../VCShared/DataSources/DataSource.dso | 9 +++++ 4 files changed, 41 insertions(+), 24 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st index fb0a52bb..cd1096ce 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st @@ -26,8 +26,29 @@ ACTION ExecuteQuery: IF ((QueryActiveAlarms_0.CommandDone = TRUE) AND (QueryActiveAlarms_0.Info.HasMoreRows = FALSE)) THEN QueryActiveAlarms_0.Execute := FALSE; QueryActiveAlarms_0.Next := FALSE; - AlarmQuery.State := ACTIVE_ALARM_WAIT; - // If the number of query results is more than MAX_QUERY_RESULTS, then query the next set of results + AlarmQuery.State := ACTIVE_ALARM_WAIT; + // If the number of query results is more than MAX_QUERY_RESULTS, then query the next set of results + // Convert the query results into arrays that can be displacyed in VC4 + FOR i := 0 TO MAX_QUERY_RESULTS DO + HmiAlarmX.Status.Query.Active[i] := AlarmQuery.Alarms[i].Active; + HmiAlarmX.Status.Query.Acknowledged[i] := AlarmQuery.Alarms[i].Acknowledged; + HmiAlarmX.Status.Query.Scope[i] := AlarmQuery.Alarms[i].Scope; + HmiAlarmX.Status.Query.Name[i] := AlarmQuery.Alarms[i].Name; + HmiAlarmX.Status.Query.Message[i] := AlarmQuery.Alarms[i].Message; + HmiAlarmX.Status.Query.AdditionalInfo[i] := AlarmQuery.Alarms[i].AdditionalInfo; + + HmiAlarmX.Status.Query.TimeStamp[i] := DT_TO_STRING(AlarmQuery.Alarms[i].TimeStamp); + HmiAlarmX.Status.Query.TimeStamp[i] := RIGHT(HmiAlarmX.Status.Query.TimeStamp[i], 19); + + HmiAlarmX.Status.Query.Severity[i] := AlarmQuery.Alarms[i].Severity; + END_FOR + HmiAlarmX.Status.Query.QueryCount := 0; + FOR i := 0 TO MAX_QUERY_RESULTS DO + IF HmiAlarmX.Status.Query.Message[i] <> "" THEN + HmiAlarmX.Status.Query.QueryCount := i + 1; + END_IF + END_FOR + ELSIF ((QueryActiveAlarms_0.CommandDone = TRUE) AND (QueryActiveAlarms_0.Info.HasMoreRows = TRUE)) THEN QueryActiveAlarms_0.Next := FALSE; AlarmQuery.State := ACTIVE_ALARM_NEXT; @@ -46,20 +67,7 @@ ACTION ExecuteQuery: END_IF END_CASE - // Convert the query results into arrays that can easily be bound to the Table widget in mapp View - FOR i := 0 TO MAX_QUERY_RESULTS DO - HmiAlarmX.Status.Query.Active[i] := AlarmQuery.Alarms[i].Active; - HmiAlarmX.Status.Query.Acknowledged[i] := AlarmQuery.Alarms[i].Acknowledged; - HmiAlarmX.Status.Query.Scope[i] := AlarmQuery.Alarms[i].Scope; - HmiAlarmX.Status.Query.Name[i] := AlarmQuery.Alarms[i].Name; - HmiAlarmX.Status.Query.Message[i] := AlarmQuery.Alarms[i].Message; - HmiAlarmX.Status.Query.AdditionalInfo[i] := AlarmQuery.Alarms[i].AdditionalInfo; - - HmiAlarmX.Status.Query.TimeStamp[i] := DT_TO_STRING(AlarmQuery.Alarms[i].TimeStamp); - HmiAlarmX.Status.Query.TimeStamp[i] := RIGHT(HmiAlarmX.Status.Query.TimeStamp[i], 19); - - HmiAlarmX.Status.Query.Severity[i] := AlarmQuery.Alarms[i].Severity; - END_FOR + END_ACTION diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index b2d6f0a1..321d61bd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -840,7 +840,7 @@ - + @@ -1185,7 +1185,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 866e9862..97519263 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + @@ -124,7 +124,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -220,7 +220,7 @@ - + @@ -272,10 +272,10 @@ - + - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index c37ee2f5..c0bca659 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -7025,6 +7025,15 @@ + + + + + + + + + From e3d96b421393572b86065868df052ef42b5c7879 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Thu, 1 Jun 2023 17:37:56 -0500 Subject: [PATCH 134/159] AAZM-665 - VC4 code clean up --- .../VC4/AlarmX/AlarmMgr/AlarmMgr.var | 2 - .../VC4/AlarmX/AlarmMgr/ExecuteQuery.st | 1 - .../VC4/AlarmX/AlarmMgr/HMIActions.st | 13 ++--- .../VC4/Audit/AuditMgr/AuditMgr.st | 3 +- .../VC4/Audit/AuditMgr/HMIActions.st | 8 ++-- .../VC4/Backup/BackupMgr/BackupMgr.st | 2 - .../VC4/Backup/BackupMgr/BackupMgr.typ | 48 +++++++++---------- .../VC4/Backup/BackupMgr/BackupMgr.var | 10 +--- .../VC4/Backup/BackupMgr/HMIActions.st | 40 ---------------- .../VC4/File/FileMgr/FileMgr.typ | 16 +++---- .../VC4/File/FileMgr/FileMgr.var | 4 -- .../Infrastructure/VC4/File/Package.pkg | 2 +- .../Logical/Infrastructure/VC4/Package.pkg | 1 + .../VC4/Recipe/RecipeMgr/RecipeMgr.var | 10 ---- .../VC4/Report/ReportMgr/HMIActions.st | 8 ++-- .../VC4/Report/ReportMgr/ReportMgr.var | 5 -- .../VC4/UserX/UserXMgr/UserXMgr.var | 5 -- .../Infrastructure/VC4/mappFrameworkVC4.var | 9 ++++ 18 files changed, 60 insertions(+), 127 deletions(-) create mode 100644 mappFramework/Logical/Infrastructure/VC4/mappFrameworkVC4.var diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var index 6846c012..2c9cd023 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var @@ -13,8 +13,6 @@ VAR CONSTANT MAX_QUERY_RESULTS : USINT := 19; (*Maximum number of query results (Value+1)*) MAX_SAFETY_DOOR : UINT := 5; (*Maximum number of safety doors (Value+1)*) MAX_ESTOP : UINT := 2; (*Maximum number of emergency stops (Value+1)*) - DISPLAY : USINT := 0; - HIDE : USINT := 1; END_VAR (*Structure Types*) VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st index fb0a52bb..88391bca 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st @@ -4,7 +4,6 @@ ACTION ExecuteQuery: QueryActiveAlarms_0.MpLink := ADR(gMpLinkAlarmXCore); QueryActiveAlarms_0.Enable := TRUE; QueryActiveAlarms_0.Name := ADR('ActiveAlarms'); - QueryActiveAlarms_0.Language := ADR('en'); QueryActiveAlarms_0(); CASE (AlarmQuery.State) OF diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st index c982cd2a..162f5b8f 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st @@ -13,23 +13,24 @@ ACTION HMIActions: HmiAlarmX.Status.HistoryExportLayer := DISPLAY; END_IF - //language assignments - + // Language assignments CASE HmiAlarmX.Parameters.Language OF 0://English MpAlarmXListUIConnect.Language := 'en'; MpAlarmXHistory_0.Language := ADR('en'); MpAlarmXHistoryUIConnect.Language := 'en'; + QueryActiveAlarms_0.Language := ADR('en'); 1://German MpAlarmXListUIConnect.Language := 'de'; MpAlarmXHistory_0.Language := ADR('de'); MpAlarmXHistoryUIConnect.Language := 'de'; + QueryActiveAlarms_0.Language := ADR('de'); 2://Chinese - MpAlarmXListUIConnect.Language := 'ch'; - MpAlarmXHistory_0.Language := ADR('ch'); - MpAlarmXHistoryUIConnect.Language := 'ch'; - + MpAlarmXListUIConnect.Language := 'zh'; + MpAlarmXHistory_0.Language := ADR('zh'); + MpAlarmXHistoryUIConnect.Language := 'zh'; + QueryActiveAlarms_0.Language := ADR('zh'); END_CASE END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st index 1c5a843f..5cde4b88 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st @@ -84,8 +84,7 @@ PROGRAM _INIT HmiAudit.Status.DeviceDataProviderVC4[0] := 'User Events Query'; END_IF - - + // Restored the retained values to the archive settings HmiAudit.Parameters.ArchiveSettings := ArchiveSettingsRetain; diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st index e6ba8001..fd4c0151 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st @@ -96,10 +96,10 @@ ACTION VC4Support: MpAuditTrail_CEvents.Language := ADR('de'); MpAuditTrail_CEvents_UI_0.Language := ADR('de'); 2://Chinese - MpAuditTrail_0.Language := ADR('ch'); - MpAuditTrailUI_0.Language := ADR('ch'); - MpAuditTrail_CEvents.Language := ADR('ch'); - MpAuditTrail_CEvents_UI_0.Language := ADR('ch'); + MpAuditTrail_0.Language := ADR('zh'); + MpAuditTrailUI_0.Language := ADR('zh'); + MpAuditTrail_CEvents.Language := ADR('zh'); + MpAuditTrail_CEvents_UI_0.Language := ADR('zh'); END_CASE diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st index 9dc7f320..b2918d9c 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st @@ -33,7 +33,6 @@ PROGRAM _INIT MpBackupCoreConfig_0(); - HmiBackup.Status.DeviceDataProvider[0] := '{"value":"mappBackupFiles","text":"CF/PLC"}'; HmiBackup.Status.DeviceDataProviderVC4[0] := 'CF/PLC'; // Restored the retained values to the backup settings @@ -213,7 +212,6 @@ PROGRAM _CYCLIC ChangeConfiguration; END_IF - FormatDeviceDataProvider; VC4Support; // Assign MpLinks diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ index 7ad2eb31..0f957d3e 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ @@ -31,39 +31,37 @@ TYPE TimeStampsString : ARRAY[0..49]OF STRING[80]; (*Time stamps for existing backups*) Size : {REDUND_UNREPLICABLE} ARRAY[0..49]OF UDINT; (*Sizes of existing backup files*) Info : MpBackupProjectInfoRequestType; (*Project information (name, configuration ID, configuration version)*) - DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for file device dropdown on automatic backup configuration pop-up*) DeviceDataProviderVC4 : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for file device dropdown on automatic backup configuration pop-up*) - DeviceDataProviderSelectedIndex : USINT; - TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available backups*) + DeviceDataProviderSelectedIndex : USINT; (*Data provider for file device *) SimulationActive : BOOL; (*Flag for if simulation is active*) SelectedIndex : USINT; (*Index of the selected backup file*) LastSelectedIndex : USINT := 255; (*Index of the last selected backup file*) LastSelectedDeviceIndex : UINT; (*Index of the last selected file device. Compared with MpFileManagerUIConnect.DeviceList.SelectedIndex*) FileOverMax : BOOL; (*Active when more than 50 items detected*) - Update : MpBackupAutoUpdateInfoType; - Layer : BackupHmiStatusLayerType; - ButtonOperation : BackupHmiStatusButtonOperatiType; - CmdButtonsPressed : BOOL; - grpBobDetailsStatus : BOOL; - SettingsContentsStatus : BOOL; + Update : MpBackupAutoUpdateInfoType; (*Backup update details*) + Layer : BackupHmiStatusLayerType; (*VC4 layer control structure*) + ButtonOperation : BackupHmiStatusButtonOperatiType; (*VC4 button control*) + CmdButtonsPressed : BOOL; (*VC4 button control*) + grpBobDetailsStatus : BOOL; (*VC4 detail group visibilty *) + SettingsContentsStatus : BOOL; (*VC4 access control *) END_STRUCT; - BackupHmiStatusButtonOperatiType : STRUCT - VisibilityPageUpDown : USINT; - OperationCreate : USINT; - OperationDelete : USINT; - OperationRestore : USINT; - OperationSettings : USINT; - CheckForUpdate : USINT; + BackupHmiStatusButtonOperatiType : STRUCT (*Structure for VC4 button handling*) + VisibilityPageUpDown : USINT; (*VC4 visibility for up down*) + OperationCreate : USINT; (*VC4 control create*) + OperationDelete : USINT; (*VC4 control delete*) + OperationRestore : USINT; (*VC4 control to restore*) + OperationSettings : USINT; (*VC4 control to open settings*) + CheckForUpdate : USINT; (*VC4 control check for new update*) END_STRUCT; - BackupHmiStatusLayerType : STRUCT - Creating : USINT; - Create : USINT; - Delete : USINT; - Restore : USINT; - Settings : USINT; - FuncNotAvailable : USINT; - NewVersion : USINT; - Installing : USINT; + BackupHmiStatusLayerType : STRUCT (*Structure to control layer visibility *) + Creating : USINT; (*VC4 control creating backup layer*) + Create : USINT; (*VC4 control create layer*) + Delete : USINT; (*VC4 control delete layer*) + Restore : USINT; (*VC4 control restore layer*) + Settings : USINT; (*VC4 control settings layer*) + FuncNotAvailable : USINT; (*VC4 control function not available in sim layer*) + NewVersion : USINT; (*VC4 control new version layer*) + Installing : USINT; (*VC4 control installing new version layer*) END_STRUCT; AutomaticBackupType : STRUCT (*Automatic backup settings*) Enable : BOOL; (*Enable automatic backup feature*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var index 1cf8b2c6..39b9e647 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var @@ -23,15 +23,9 @@ END_VAR VAR i : USINT; (*Index for loops*) DeviceCount : USINT; (*Counter for available file devices*) - ItemCount : UDINT; + ItemCount : UDINT; (*Counter for items*) END_VAR VAR RETAIN - AutomaticBackupRetain : AutomaticBackupType; + AutomaticBackupRetain : AutomaticBackupType; (*Store backup settings in retain*) END_VAR (**) -VAR CONSTANT - DISPLAY : USINT := 0; - HIDE : USINT := 1; - OPERATION_ACTIVATED : USINT := 1; - OPERATION_DEACTIVATED : USINT := 0; -END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st index 29500d0e..c922329c 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st @@ -1,43 +1,3 @@ -ACTION FormatDeviceDataProvider: - - // Select CF device if USB device is not available - FOR i := 0 TO ((SIZEOF(gUSBAvailable) / SIZEOF(gUSBAvailable[0])) - 1) DO - IF gUSBAvailable[i] THEN - HmiBackup.Status.DeviceDataProvider[i + 1] := '{"value":"USB'; - brsitoa(i + 1, ADR(HmiBackup.Status.DeviceDataProvider[i + 1]) + brsstrlen(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]))); - brsstrcat(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), ADR('","text":"USB')); - brsitoa(i + 1, ADR(HmiBackup.Status.DeviceDataProvider[i + 1]) + brsstrlen(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]))); - brsstrcat(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), ADR('"}')); - MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1] := 'USB'; - brsitoa(i + 1, ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]) + brsstrlen(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]))); - HmiBackup.Status.DeviceDataProviderVC4[i + 1] := 'USB'; - ELSE - brsmemset(ADR(HmiBackup.Status.DeviceDataProvider[i + 1]), 0, SIZEOF(HmiBackup.Status.DeviceDataProvider[i + 1])); - brsmemset(ADR(HmiBackup.Status.DeviceDataProviderVC4[i + 1]), 0, SIZEOF(HmiBackup.Status.DeviceDataProviderVC4[i + 1])); - brsmemset(ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1]), 0, SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[i + 1])); - END_IF - END_FOR - - // Configure visible device list - HmiBackup.Status.TableConfig[0] := '{ "specRows": [{"from":'; - FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO - IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN - DeviceCount := i + 1; - END_IF - END_FOR - brsitoa((DeviceCount), ADR(HmiBackup.Status.TableConfig[0]) + brsstrlen(ADR(HmiBackup.Status.TableConfig[0]))); - brsstrcat(ADR(HmiBackup.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); - - // Configure visible file list - ItemCount := MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount; - HmiBackup.Status.TableConfig[1] := '{ "specRows": [{"from":'; - brsitoa((ItemCount), ADR(HmiBackup.Status.TableConfig[1]) + brsstrlen(ADR(HmiBackup.Status.TableConfig[1]))); - brsstrcat(ADR(HmiBackup.Status.TableConfig[1]), ADR(',"to":50, "visible":false}]}')); - - HmiBackup.Status.FileOverMax := ItemCount > (SIZEOF(MpFileManagerUIConnect.File.List.Items)/SIZEOF(MpFileManagerUIConnect.File.List.Items[0])); - -END_ACTION - ACTION SaveBackupConfiguration: MpBackupConfiguration.AutomaticBackup.Enabled := HmiBackup.Parameters.AutomaticBackup.Enable; diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ index 2e91b00d..4f323f72 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ @@ -47,17 +47,17 @@ TYPE FolderSize : REAL; (*Size of currently selected folder*) SelectedIndex : USINT; (*Selected index in the file list*) FifoConfigEnable : BOOL; (*Disable FIFO access or change confirmation when FIFO is active*) - FIFOLayerStatus : USINT; - FIFOLayerObjects : FileHmiStatusFIFOLayerObjType; + FIFOLayerStatus : USINT; (*VC4 FIFO layer status*) + FIFOLayerObjects : FileHmiStatusFIFOLayerOptType; (*VC4 FIFO option visibility control*) DefaultFileSelected : BOOL; (*The default recipe is selected*) END_STRUCT; - FileHmiStatusFIFOLayerObjType : STRUCT - MaxNumberOfFilesVisiblity : USINT; - MaxFolderSizeVisiblity : USINT; + FileHmiStatusFIFOLayerOptType : STRUCT (*VC4 FIFO option visibility control*) + MaxNumberOfFilesVisiblity : USINT; (*VC4 max number of files option*) + MaxFolderSizeVisiblity : USINT; (*VC4 folder size option*) END_STRUCT; - FileHmiStatusInfoFileType : STRUCT - isSelected : ARRAY[0..49]OF STRING[1]; - Type : ARRAY[0..49]OF STRING[80]; + FileHmiStatusInfoFileType : STRUCT (*VC4 structure for file type information details*) + isSelected : ARRAY[0..49]OF STRING[1]; (*VC4 file is selected*) + Type : ARRAY[0..49]OF STRING[80]; (*VC4 file is of type*) END_STRUCT; FileHmiParaFifoType : STRUCT (*Parameters for the FIFO feature (first-in-first-out)*) Enable : BOOL; (*FIFO enable*) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var index ec646522..3f1613bb 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var @@ -40,9 +40,5 @@ VAR RETAIN FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) END_VAR (**) -VAR CONSTANT - DISPLAY : USINT := 0; - HIDE : USINT := 1; -END_VAR (**) (**) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg index 2d4e65f1..5b254ea4 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg +++ b/mappFramework/Logical/Infrastructure/VC4/File/Package.pkg @@ -2,7 +2,7 @@ - FileAlarms.tmx FileMgr + FileAlarms.tmx \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/Package.pkg b/mappFramework/Logical/Infrastructure/VC4/Package.pkg index faf51466..2faab384 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Package.pkg +++ b/mappFramework/Logical/Infrastructure/VC4/Package.pkg @@ -2,6 +2,7 @@ + mappFrameworkVC4.var AlarmX Backup File diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var index 9e334636..08301ef9 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.var @@ -35,13 +35,3 @@ VAR i : USINT; (*Index to loop through file devices*) temp : STRING[260]; (*Temporary recipe name, used to check for duplicates when creating a new recipe*) END_VAR -(**) -VAR CONSTANT - DISPLAY : USINT := 0; - HIDE : USINT := 1; -END_VAR -(**) -VAR CONSTANT - LOCK : USINT := 0; - UNLOCK : USINT := 1; -END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st index 45c23c4b..9165aefa 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -104,12 +104,12 @@ ACTION ReportFileExplorer: //VC4 IF HmiReport.Status.Error THEN - HmiReport.Status.Layer.ReportCreate := HIDE; + HmiReport.Status.Layer.ReportCreate := USINT_TO_BOOL(HIDE); END_IF; IF HmiReport.Status.DeleteAllowed THEN - HmiReport.Status.DeleteButtonEnableStatus := HIDE; + HmiReport.Status.DeleteButtonEnableStatus := USINT_TO_BOOL(HIDE); ELSE - HmiReport.Status.DeleteButtonEnableStatus := DISPLAY; + HmiReport.Status.DeleteButtonEnableStatus := USINT_TO_BOOL(DISPLAY); END_IF; IF HmiReport.Status.FileOverMax THEN HmiReport.Status.PageUpDownVisibility := DISPLAY; @@ -126,7 +126,7 @@ ACTION ReportFileExplorer: 1://German MpReportCore_0.Language := ADR('de'); 2://Chinese - MpReportCore_0.Language := ADR('ch'); + MpReportCore_0.Language := ADR('zh'); END_CASE diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var index d6453c4b..d41da3dc 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var @@ -24,8 +24,3 @@ VAR ItemCount : UDINT; (*Counter for available files*) END_VAR (**) -VAR CONSTANT - DISPLAY : BOOL := FALSE; - HIDE : BOOL := TRUE; -END_VAR -(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var index 866a3043..6a0778ca 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var @@ -7,12 +7,7 @@ VAR END_VAR (*Constants*) VAR CONSTANT - DISPLAY : USINT := 0; - HIDE : USINT := 1; USER_ADMIN_LEVEL : USINT := 100; -END_VAR -(**) -VAR CONSTANT USER_LIST_MAX_SELECTION : USINT := 20; (*Maxiumum selections on the User List *) USER_LIST_RANGE_START : USINT := 0; (*Range start (used for UserXMgrUIConnect)*) USER_LIST_RANGE_END : USINT := 20; (*Range end (used for UserXMgrUIConnect)*) diff --git a/mappFramework/Logical/Infrastructure/VC4/mappFrameworkVC4.var b/mappFramework/Logical/Infrastructure/VC4/mappFrameworkVC4.var new file mode 100644 index 00000000..43a2c971 --- /dev/null +++ b/mappFramework/Logical/Infrastructure/VC4/mappFrameworkVC4.var @@ -0,0 +1,9 @@ +(*Constants*) +VAR CONSTANT + DISPLAY : USINT := 0; (*VC4 visibility control*) + HIDE : USINT := 1; (*VC4 visibility control*) + OPERATION_ACTIVATED : USINT := 1; (*VC4 access control*) + OPERATION_DEACTIVATED : USINT := 0; (*VC4 access control*) + LOCK : USINT := 0; (*VC4 lock control*) + UNLOCK : USINT := 1; (*VC4 unlock control*) +END_VAR From 44393392653ed00adefa6d379831a9b42326a223 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Thu, 1 Jun 2023 18:34:02 -0500 Subject: [PATCH 135/159] AAZM-665 - VC4 code clean up, replaced structure variables --- .../VC4/Backup/BackupMgr/BackupMgr.typ | 2 +- .../VC4/Backup/BackupMgr/HMIActions.st | 4 ++-- .../Infrastructure/VC4/File/FileMgr/FileMgr.typ | 2 +- .../VC4/File/FileMgr/HMIActions.st | 6 +++--- .../VC4/Report/ReportMgr/HMIActions.st | 6 +++--- .../mappFrameworkVisu/Pages/MpAlarmXQuery.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 16 ++++++++-------- .../mappFrameworkVisu/Pages/MpFileManagerUI.page | 2 +- .../Logical/VCShared/DataSources/DataSource.dso | 13 +++++++++++-- 9 files changed, 31 insertions(+), 22 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ index 0f957d3e..ea217ff1 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.typ @@ -42,7 +42,7 @@ TYPE Layer : BackupHmiStatusLayerType; (*VC4 layer control structure*) ButtonOperation : BackupHmiStatusButtonOperatiType; (*VC4 button control*) CmdButtonsPressed : BOOL; (*VC4 button control*) - grpBobDetailsStatus : BOOL; (*VC4 detail group visibilty *) + BackupDetailsStatus : UINT; (*VC4 backup detail visibilty *) SettingsContentsStatus : BOOL; (*VC4 access control *) END_STRUCT; BackupHmiStatusButtonOperatiType : STRUCT (*Structure for VC4 button handling*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st index c922329c..d7045932 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st @@ -170,10 +170,10 @@ ACTION VC4Support: //grpBobDetailsStatus Visible/Hide IF HmiBackup.Status.BackupCtrlEnabled AND HmiBackup.Status.Info.Name <> '' THEN - HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(DISPLAY); + HmiBackup.Status.BackupDetailsStatus := DISPLAY; ELSIF NOT HmiBackup.Status.BackupCtrlEnabled OR HmiBackup.Status.Info.Name = '' THEN - HmiBackup.Status.grpBobDetailsStatus := USINT_TO_BOOL(HIDE); + HmiBackup.Status.BackupDetailsStatus := HIDE; END_IF; //settings contents diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ index 4f323f72..063bc43d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ @@ -56,7 +56,7 @@ TYPE MaxFolderSizeVisiblity : USINT; (*VC4 folder size option*) END_STRUCT; FileHmiStatusInfoFileType : STRUCT (*VC4 structure for file type information details*) - isSelected : ARRAY[0..49]OF STRING[1]; (*VC4 file is selected*) + IsSelected : ARRAY[0..49]OF STRING[1]; (*VC4 file is selected*) Type : ARRAY[0..49]OF STRING[80]; (*VC4 file is of type*) END_STRUCT; FileHmiParaFifoType : STRUCT (*Parameters for the FIFO feature (first-in-first-out)*) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st index 3e4eafa2..3a2d42ee 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st @@ -113,9 +113,9 @@ ACTION FileManager: HmiFile.Status.InfoFile.Type[i] := 'FILE'; END_IF IF MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN - HmiFile.Status.InfoFile.isSelected[i] := '+'; + HmiFile.Status.InfoFile.IsSelected[i] := '+'; ELSE - HmiFile.Status.InfoFile.isSelected[i] := '-'; + HmiFile.Status.InfoFile.IsSelected[i] := '-'; END_IF @@ -123,7 +123,7 @@ ACTION FileManager: IF HmiFile.Status.FileNames[i] = '' THEN HmiFile.Status.TimeStamps[i] := ''; HmiFile.Status.Size[i] := ''; - HmiFile.Status.InfoFile.isSelected[i] := ''; + HmiFile.Status.InfoFile.IsSelected[i] := ''; HmiFile.Status.InfoFile.Type[i] := ''; END_IF; diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st index 9165aefa..6ca4b17d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -105,17 +105,17 @@ ACTION ReportFileExplorer: //VC4 IF HmiReport.Status.Error THEN HmiReport.Status.Layer.ReportCreate := USINT_TO_BOOL(HIDE); - END_IF; + END_IF IF HmiReport.Status.DeleteAllowed THEN HmiReport.Status.DeleteButtonEnableStatus := USINT_TO_BOOL(HIDE); ELSE HmiReport.Status.DeleteButtonEnableStatus := USINT_TO_BOOL(DISPLAY); - END_IF; + END_IF IF HmiReport.Status.FileOverMax THEN HmiReport.Status.PageUpDownVisibility := DISPLAY; ELSE HmiReport.Status.PageUpDownVisibility := HIDE; - END_IF; + END_IF //language assignments diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 97519263..2c8063e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index a2424053..b6291d25 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -360,7 +360,7 @@ - + @@ -374,7 +374,7 @@ - + @@ -388,7 +388,7 @@ - + @@ -405,7 +405,7 @@ - + @@ -422,7 +422,7 @@ - + @@ -438,7 +438,7 @@ - + @@ -452,7 +452,7 @@ - + @@ -466,7 +466,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index 3c61eb0d..e3808b75 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1145,7 +1145,7 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index c0bca659..d8938547 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -6381,7 +6381,7 @@ - + @@ -8499,7 +8499,7 @@ - + @@ -8559,6 +8559,15 @@ + + + + + + + + + From 0c668a6f51d10970d47d9125dd922e3f11e9bdc1 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Fri, 2 Jun 2023 10:00:12 -0500 Subject: [PATCH 136/159] AAZM-665 - VC4 code clean up, standardize VC action names --- .../VC4/AlarmX/AlarmMgr/AlarmMgr.st | 7 +- .../VC4/AlarmX/AlarmMgr/AlarmMgr.typ | 2 +- .../VC4/AlarmX/AlarmMgr/AlarmMgr.var | 1 - .../VC4/AlarmX/AlarmMgr/ExecuteQuery.st | 5 +- .../VC4/AlarmX/AlarmMgr/HMIActions.st | 6 +- .../VC4/Audit/AuditMgr/AuditMgr.st | 3 +- .../VC4/Audit/AuditMgr/AuditMgr.typ | 7 +- .../VC4/Audit/AuditMgr/HMIActions.st | 29 +--- .../VC4/Backup/BackupMgr/BackupMgr.st | 3 +- .../VC4/Backup/BackupMgr/BackupMgr.var | 3 - .../VC4/Backup/BackupMgr/HMIActions.st | 4 +- .../VC4/File/FileMgr/FileMgr.st | 4 +- .../VC4/File/FileMgr/FileMgr.typ | 19 ++- .../VC4/File/FileMgr/FileMgr.var | 4 - .../VC4/File/FileMgr/HMIActions.st | 137 ++++++++---------- .../VC4/PackML/PackMLMgr/HMIActions.st | 2 +- .../VC4/PackML/PackMLMgr/PackMLMgr.st | 2 +- .../VC4/Recipe/RecipeMgr/HMIActions.st | 12 +- .../VC4/Recipe/RecipeMgr/RecipeMgr.st | 4 +- .../VC4/Recipe/RecipeMgr/RecipeMgr.typ | 1 - .../VC4/Report/ReportMgr/HMIActions.st | 19 +-- .../VC4/Report/ReportMgr/ReportMgr.typ | 23 +-- .../VC4/Report/ReportMgr/ReportMgr.var | 2 - .../VC4/UserX/UserXMgr/HMIAction.st | 4 +- .../VC4/UserX/UserXMgr/UserXMgr.st | 7 +- .../PC/Connectivity/OpcUA/Package.pkg | 2 +- .../PC/Connectivity/OpcUA/ReportMgr.uad | 64 ++++++++ 27 files changed, 170 insertions(+), 206 deletions(-) create mode 100644 mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/ReportMgr.uad diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st index 741df90c..62645e77 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st @@ -14,10 +14,9 @@ PROGRAM _INIT IF DirCreate_0.status = fiERR_DIR_ALREADY_EXIST THEN DirCreate_0(enable := FALSE); END_IF - - // if the system has been opened just now - HMIAction_Init; + // Initial visibility setup + VC4_Init; // Call action to intialize alarm samples AlarmSampleInit; @@ -62,7 +61,7 @@ PROGRAM _CYCLIC AlarmHandling; ExecuteQuery; AlarmSampleFub; - HMIActions; + VC4_Cyclic; // Check if any reactions are active. diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ index 277f8f95..9039a2f6 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.typ @@ -15,7 +15,7 @@ TYPE END_STRUCT; AlarmStatusType : STRUCT (*Structure to hold status information to the mapp View HMI. (This structure is not compatible/relevant if you are using a VC4 visualization)*) Query : AlarmQueryHMIType; (*Structure which rearranges the query data from AlarmQuery into a structure of arrays for easy connection to the Table widget*) - HistoryExportLayer : USINT; + HistoryExportLayer : USINT; (*VC4 layer control*) END_STRUCT; AlarmQueryType : STRUCT (*Structure for query results and status*) State : ActiveAlarmStateEnum; (*State variable for the query state machine*) diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var index 2c9cd023..27a9aeeb 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.var @@ -29,4 +29,3 @@ VAR CommissioningModeActive : {REDUND_UNREPLICABLE} BOOL; (*Boolean value to enable commissioning mode. By default, this inhibits the Alarms[0] alarm*) i : USINT; (*Index for loops*) END_VAR -(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st index 56603e86..e68dfd2b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st @@ -64,9 +64,6 @@ ACTION ExecuteQuery: QueryActiveAlarms_0.Next := TRUE; AlarmQuery.State := ACTIVE_ALARM_QUERY; END_IF - END_CASE - - - + END_CASE END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st index 162f5b8f..a968e15a 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st @@ -1,12 +1,12 @@ -ACTION HMIAction_Init: - +ACTION VC4_Init: + // Initial layer visibility setup HmiAlarmX.Status.HistoryExportLayer := HIDE; END_ACTION -ACTION HMIActions: +ACTION VC4_Cyclic: // AlarmHistory Export process has been completed IF ((MpAlarmXHistory_0.Export = TRUE) AND (MpAlarmXHistory_0.CommandDone = TRUE)) THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st index 5cde4b88..62a100c3 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st @@ -94,11 +94,10 @@ PROGRAM _CYCLIC // Call all cyclic actions ExecuteQuery; - QueryTableConfig; ArchiveExport; ArchiveSettings; ChangeConfiguration; - VC4Support; + VC4_Cyclic; // Sample code for how custom events can be triggered. Use custom events as needed around the application for debugging purposes. IF EDGEPOS(CustomEvent[0].Set) THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ index aee43d42..aa6ffe6e 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ @@ -44,7 +44,6 @@ TYPE AuditStatusType : STRUCT (*Structure to hold status information from the mapp View HMI. (This structure is not compatible/relevant if you are using a VC4 visualization)*) AuditSortCfg : STRING[1000]; (*Sort configuration for the AuditList widget*) AuditFilterCfg : STRING[1000]; (*Filter configuration for the AuditList widget*) - TableConfig : ARRAY[0..1]OF STRING[255]; (*Table configuration for the Audit query Table*) Query : AuditQueryHMIType; (*Structure which rearranges the query data from AuditQuery into a structure of arrays for easy connection to the Table widget*) CustomEventSortCfg : STRING[1000]; (*Sort configuration for the AuditList Custom Events widget*) CustomEventsFilterCfg : STRING[1000]; (*Filter configuration for the AuditList Custom Events widget*) @@ -52,9 +51,9 @@ TYPE NumberOfArchives : UINT; (*How many archives are available for export*) DeviceDataProvider : ARRAY[0..1]OF STRING[100]; (*Data provider for the file device selector*) DeviceDataProviderVC4 : ARRAY[0..1]OF STRING[100]; (*Data provider for the file device selector*) - ArchiveSetupLayer : USINT; - ArchiveSetupTimeOfDayVisibility : USINT; - ArchiveSetupVisibility : USINT; + ArchiveSetupLayer : USINT; (*VC4 visibility control*) + ArchiveSetupTimeOfDayVisibility : USINT; (*VC4 visibility control*) + ArchiveSetupVisibility : USINT; (*VC4 visibility control*) END_STRUCT; AuditParType : STRUCT (*Structure to hold parameter data for the HMI*) ArchiveSettings : AuditArchiveParType; (*Parameter for archive configuration*) diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st index fd4c0151..e66a202d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st @@ -55,34 +55,9 @@ ACTION LoadAuditConfiguration: END_ACTION -ACTION QueryTableConfig: - - // Configure visible list - HmiAudit.Status.TableConfig[0] := '{ "specRows": [{"from":'; - HmiAudit.Status.Query.QueryCount := 0; - FOR i := 0 TO 9 DO - IF HmiAudit.Status.Query.Text[i] <> "" THEN - HmiAudit.Status.Query.QueryCount := i + 1; - END_IF - END_FOR - brsitoa((HmiAudit.Status.Query.QueryCount), ADR(HmiAudit.Status.TableConfig[0]) + brsstrlen(ADR(HmiAudit.Status.TableConfig[0]))); - brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR(',"to":19, "visible":false}]')); - - // Hide operator column for the recipe query - IF (HmiAudit.Status.Query.Option = 0) THEN - brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR(', "specColumns": [ {"from":1, "to":1, "visible":true}]')); - ELSIF (HmiAudit.Status.Query.Option = 1) THEN - brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR(', "specColumns": [ {"from":1, "to":1, "visible":false}]')); - END_IF - - brsstrcat(ADR(HmiAudit.Status.TableConfig[0]), ADR('}')); - -END_ACTION - -ACTION VC4Support: +ACTION VC4_Cyclic: - //language assignments - + //language assignments CASE HmiAudit.Parameters.Language OF 0://English diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st index b2918d9c..906fc4e5 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st @@ -208,12 +208,11 @@ PROGRAM _CYCLIC // Call all actions FileManager; + VC4_Cylic; IF NOT DiagCpuIsARsim() THEN ChangeConfiguration; END_IF - VC4Support; - // Assign MpLinks MpBackupCore_0.MpLink := ADR(gMpLinkBackupCore); MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIBackup); diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var index 39b9e647..1434b44b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.var @@ -22,10 +22,7 @@ END_VAR (*Variables*) VAR i : USINT; (*Index for loops*) - DeviceCount : USINT; (*Counter for available file devices*) - ItemCount : UDINT; (*Counter for items*) END_VAR VAR RETAIN AutomaticBackupRetain : AutomaticBackupType; (*Store backup settings in retain*) END_VAR -(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st index d7045932..c4b00672 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st @@ -97,7 +97,7 @@ ACTION FileManager: END_ACTION -ACTION VC4Support: +ACTION VC4_Cylic: //---------------------- VC4 ------------------------// IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; @@ -168,7 +168,7 @@ ACTION VC4Support: HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_DEACTIVATED; END_IF; - //grpBobDetailsStatus Visible/Hide + //BackupDetailsStatus Visible/Hide IF HmiBackup.Status.BackupCtrlEnabled AND HmiBackup.Status.Info.Name <> '' THEN HmiBackup.Status.BackupDetailsStatus := DISPLAY; diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st index c6b8ce36..60149bca 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st @@ -84,7 +84,7 @@ PROGRAM _INIT HmiFile.Parameters.Fifo := FifoSettingsRetain; // if the system has been opened just now - HMIActions_Init; + VC4_Init; END_PROGRAM @@ -92,7 +92,7 @@ PROGRAM _CYCLIC // Call all actions FormatDeviceDataProvider; - FileManager; + VC4_Cyclic; FIFOOperation; // Error reset diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ index 063bc43d..5dcae25d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ @@ -11,14 +11,14 @@ TYPE FolderUp : BOOL; (*Move back/up a folder*) EnterFolder : BOOL; (*Move forward/down a folder*) CheckFolder : BOOL; (*Run the FIFO check to determine if old files should be deleted*) - FileList : FileHmiCommandsFileListType; + FileList : FileHmiCommandsFileListType; (*VC4 structure of commands*) END_STRUCT; - FileHmiCommandsFileListType : STRUCT - PageDown : BOOL; - PageUp : BOOL; - StepDown : BOOL; - StepUp : BOOL; - Clicked : BOOL; + FileHmiCommandsFileListType : STRUCT (*Structure of VC4 commands*) + PageDown : BOOL; (*VC4 button PageDown*) + PageUp : BOOL; (*VC4 button PageUp*) + StepDown : BOOL; (*VC4 button StepDown*) + StepUp : BOOL; (*VC4 button StepUp*) + Clicked : BOOL; (*VC4 button clicked*) END_STRUCT; END_TYPE @@ -32,14 +32,13 @@ TYPE FileHmiStatusType : STRUCT (*Structure to hold status information from the mapp View HMI*) FileNames : ARRAY[0..49]OF STRING[80]; (*List of file names*) TimeStamps : ARRAY[0..49]OF STRING[80]; (*List of time stamps for file names*) - InfoFile : FileHmiStatusInfoFileType; + InfoFile : FileHmiStatusInfoFileType; (*VC4 info about selected file*) Type : ARRAY[0..49]OF DINT; (*List of file types*) Size : ARRAY[0..49]OF STRING[80]; (*List of file sizes*) DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*Data provider for the file device selector*) FifoSelect : ARRAY[0..MAX_IDX_FILE_DEV]OF DINT; (*Indicate FIFO selected file device*) DeviceName : STRING[50]; (*File device name*) FileName : STRING[255]; (*Fille name*) - TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the file explorer (table widget) on the mapp View HMI*) IsFolder : BOOL; (*Flag for whether the item is a folder (versus a file)*) BackButton : BOOL; (*Flag for whether the back button should be shown*) DeleteStep : FileDeleteStepEnum; (*Enumeration for automatic file deletion steps*) @@ -89,7 +88,7 @@ TYPE FILE_SORT_BY_DATE, (*Sort by date so the oldest files are at the end*) FILE_SORT_BY_DATE_WAIT, (*Wait step switching sorting mode*) FILE_GO_TO_END, (*Pages down until at the end of the file list*) - FILE_GO_TO_END_1, + FILE_GO_TO_END_1, (*Pages down until at the end of the file list*) FILE_CHECK_FOR_FILTER, (*Check which delete filter is active*) FILE_SELECT_OLDEST_FILES_0, (*Scan and select all file over the filter setting*) FILE_CALC_FOLDER_SIZE, (*Calculate the overall file size in the open folder*) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var index 3f1613bb..11106684 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var @@ -24,7 +24,6 @@ END_VAR VAR i : USINT; (*Index for FOR loops*) DeviceListCount : USINT; (*Counter for accessible file devices*) - DeviceCount : USINT; (*Counter for available file devices*) Ident : UDINT; (*Ident of a program on target*) IdentStatus : UINT; (*Status variable if a program exists on target*) Index : USINT; (*Index for avaliable devices*) @@ -39,6 +38,3 @@ END_VAR VAR RETAIN FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) END_VAR -(**) -(**) -(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st index 3a2d42ee..1255ad88 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st @@ -1,4 +1,4 @@ -ACTION HMIActions_Init: +ACTION VC4_Init: brsmemset(ADR(HmiFile.Status.FifoSelect[0]), 0, SIZEOF(HmiFile.Status.FifoSelect)); IF HmiFile.Parameters.Fifo.Enable THEN @@ -8,78 +8,7 @@ ACTION HMIActions_Init: HmiFile.Status.FIFOLayerStatus := HIDE; END_ACTION - -ACTION FormatDeviceDataProvider: - - // Select CF device if USB device is not available - FOR i := 0 TO IDX_USB_DEV_LIST DO - tempIdx := (i + USBOffset); - - IF gUSBAvailable[i] THEN - PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; - brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); - ELSE - brsmemset(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[tempIdx])); - brsmemset(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[tempIdx])); - END_IF - END_FOR - - MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); - //Check initilized folder for existance and remove any from the device list that don't exist - IF (IdentStatus = 0) THEN - // copy device name from source list into the actual device list - MpFileManagerUIConnect.DeviceList.DeviceNames[Index] := PathCheck.DeviceList.DeviceNames[DeviceListCount]; - Index := Index + 1; - DeviceListCount := DeviceListCount + 1; - - IF (DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1)) THEN - DeviceListCount := 0; - END_IF - IF (Index > MaxDeviceNameIndex) THEN - Index := 0; - END_IF - ELSIF (IdentStatus = 3324) THEN - DeviceListCount := DeviceListCount + 1; - IF DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1) THEN - //Delete entries past the actual number of devices found - FOR i:=Index TO MaxDeviceNameIndex DO - MpFileManagerUIConnect.DeviceList.DeviceNames[i] := ''; - END_FOR - DeviceListCount := 0; - Index := 0; - END_IF - END_IF - - IdentStatus := ST_ident(ADR(PathCheck.PrgName[DeviceListCount]),0,ADR(Ident)); - - // Configure visible device list - HmiFile.Status.TableConfig[0] := '{ "specRows": [{"from":'; - FOR i := 0 TO MaxDeviceNameIndex DO - IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN - DeviceCount := i + 1; - END_IF - END_FOR - brsitoa((DeviceCount), ADR(HmiFile.Status.TableConfig[0]) + brsstrlen(ADR(HmiFile.Status.TableConfig[0]))); - brsstrcat(ADR(HmiFile.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); - - // Configure visible file list - HmiFile.Status.TableConfig[1] := '{ "specRows": [{"from":'; - brsitoa((MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount), ADR(HmiFile.Status.TableConfig[1]) + brsstrlen(ADR(HmiFile.Status.TableConfig[1]))); - brsstrcat(ADR(HmiFile.Status.TableConfig[1]), ADR(',"to":49, "visible":false}]}')); - - - // Create device data provider for FIFO drop down - FOR i := 0 TO MaxDeviceNameIndex DO - IF (MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '') THEN - HmiFile.Status.DeviceDataProvider[i] := MpFileManagerUIConnect.DeviceList.DeviceNames[i]; - ELSE - brsmemset(ADR(HmiFile.Status.DeviceDataProvider[i]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[i])); - END_IF - END_FOR - -END_ACTION - -ACTION FileManager: +ACTION VC4_Cyclic: MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIFile); MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); @@ -92,7 +21,7 @@ ACTION FileManager: HmiFile.Status.TimeStamps[i] := DT_TO_STRING(MpFileManagerUIConnect.File.List.Items[i].LastModified); HmiFile.Status.TimeStamps[i] := RIGHT(HmiFile.Status.TimeStamps[i], 19); - // file size + // File size HmiFile.Status.Size[i] := REAL_TO_STRING(UDINT_TO_REAL(MpFileManagerUIConnect.File.List.Items[i].Size) * 0.001); // Set image array based on item type @@ -102,9 +31,7 @@ ACTION FileManager: HmiFile.Status.Type[i] := FILE_SELECTED; ELSE HmiFile.Status.Type[i] := FILE; - END_IF - - + END_IF // Fill file info string arrays IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN @@ -116,8 +43,7 @@ ACTION FileManager: HmiFile.Status.InfoFile.IsSelected[i] := '+'; ELSE HmiFile.Status.InfoFile.IsSelected[i] := '-'; - END_IF - + END_IF // if file not exist clear objects IF HmiFile.Status.FileNames[i] = '' THEN @@ -195,6 +121,59 @@ ACTION FileManager: HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Default.par') OR (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Machine.mcfg')) AND MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + +END_ACTION + +ACTION FormatDeviceDataProvider: + + // Select CF device if USB device is not available + FOR i := 0 TO IDX_USB_DEV_LIST DO + tempIdx := (i + USBOffset); + + IF gUSBAvailable[i] THEN + PathCheck.DeviceList.DeviceNames[tempIdx] := 'USB'; + brsitoa(i + 1, ADR(PathCheck.DeviceList.DeviceNames[tempIdx]) + brsstrlen(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]))); + ELSE + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[tempIdx]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[tempIdx])); + brsmemset(ADR(PathCheck.DeviceList.DeviceNames[tempIdx]), 0, SIZEOF(PathCheck.DeviceList.DeviceNames[tempIdx])); + END_IF + END_FOR + + MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); + //Check initilized folder for existance and remove any from the device list that don't exist + IF (IdentStatus = 0) THEN + // copy device name from source list into the actual device list + MpFileManagerUIConnect.DeviceList.DeviceNames[Index] := PathCheck.DeviceList.DeviceNames[DeviceListCount]; + Index := Index + 1; + DeviceListCount := DeviceListCount + 1; + + IF (DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1)) THEN + DeviceListCount := 0; + END_IF + IF (Index > MaxDeviceNameIndex) THEN + Index := 0; + END_IF + ELSIF (IdentStatus = 3324) THEN + DeviceListCount := DeviceListCount + 1; + IF DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1) THEN + //Delete entries past the actual number of devices found + FOR i:=Index TO MaxDeviceNameIndex DO + MpFileManagerUIConnect.DeviceList.DeviceNames[i] := ''; + END_FOR + DeviceListCount := 0; + Index := 0; + END_IF + END_IF + IdentStatus := ST_ident(ADR(PathCheck.PrgName[DeviceListCount]),0,ADR(Ident)); + + // Create device data provider for FIFO drop down + FOR i := 0 TO MaxDeviceNameIndex DO + IF (MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '') THEN + HmiFile.Status.DeviceDataProvider[i] := MpFileManagerUIConnect.DeviceList.DeviceNames[i]; + ELSE + brsmemset(ADR(HmiFile.Status.DeviceDataProvider[i]), 0, SIZEOF(HmiFile.Status.DeviceDataProvider[i])); + END_IF + END_FOR END_ACTION \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st index 84831f1d..8efef011 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st @@ -1,5 +1,5 @@ -ACTION HmiActions: +ACTION VC4_Cyclic: IF HmiPackML.Status.LastState <> MpPackMLMode_0.StateCurrent THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st index 2dce80eb..9b995223 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st @@ -34,7 +34,7 @@ PROGRAM _CYCLIC // Call all cyclic actions StateMachine_Main; - HmiActions; + VC4_Cyclic; // Assign MpLinks & UIConnects MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st index 0cbfaf01..0f2f00d9 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -1,4 +1,4 @@ -ACTION HMIActions_Init: +ACTION VC4_Init: HmiRecipe.Status.CreateRecipeLayer.ParsStatus := HIDE; HmiRecipe.Status.CreateRecipeLayer.MachConfigStatus := HIDE; @@ -34,15 +34,7 @@ ACTION FormatDeviceDataProvider: END_ACTION ACTION LoadStatus: - // Configure visible recipe list - IF MpRecipeUIConnect.Recipe.List.Names[0] = '' THEN - HmiRecipe.Status.TableConfig := '{ "specRows": [{"from":0,"to":19, "visible":false}]}'; - ELSE - HmiRecipe.Status.TableConfig := '{ "specRows": [{"from":'; - brsitoa(MpRecipeUIConnect.Recipe.List.MaxSelection + 1, ADR(HmiRecipe.Status.TableConfig) + brsstrlen(ADR(HmiRecipe.Status.TableConfig))); - brsstrcat(ADR(HmiRecipe.Status.TableConfig), ADR(',"to":19, "visible":false}]}')); - END_IF - + // Configure recipe actions HmiRecipe.Status.FilesAvailable := (MpRecipeUIConnect.Recipe.List.Names[0] <> ''); HmiRecipe.Status.LoadAllowed := HmiRecipe.Status.FilesAvailable AND NOT HmiRecipe.Status.InvalidRecipe; HmiRecipe.Status.DeviceValid := (MpFileManagerUI_0.StatusID <> mpFILE_ERR_INVALID_FILE_DEV); diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st index 43d2922e..0bec0112 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st @@ -141,9 +141,7 @@ PROGRAM _INIT HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; - HMIActions_Init; - - + VC4_Init; END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ index da797ff3..e58b2c77 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ @@ -41,7 +41,6 @@ TYPE ParameterRecipeMissing : BOOL; (*Flag for if the default parameters recipe is not present*) LoadAllowed : BOOL; (*Flag for whether you can load a recipe. Recipe must exist and be valid. *) DeviceDataProvider : ARRAY[0..MAX_IDX_FILE_DEV]OF STRING[100]; (*File device data provider*) - TableConfig : STRING[120]; (*Table configuration *) SelectedRecipe : STRING[255]; (*The name of the selected recipe*) ActiveRecipe : STRING[255]; DefaultRecipeLayer : RecipeStatusDefRecLayerType; diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st index 6ca4b17d..88a87416 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -79,29 +79,12 @@ ACTION ReportFileExplorer: HmiReport.Status.LastSelectedIndex := HmiReport.Status.LastSelectedIndex + 1; END_IF - // Configure device list so that only the rows with entries will show - HmiReport.Status.TableConfig[0] := '{ "specRows": [{"from":'; - FOR i := 0 TO ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames)/SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1) DO - IF MpFileManagerUIConnect.DeviceList.DeviceNames[i] <> '' THEN - DeviceCount := i + 1; - END_IF - END_FOR - brsitoa((DeviceCount), ADR(HmiReport.Status.TableConfig[0]) + brsstrlen(ADR(HmiReport.Status.TableConfig[0]))); - brsstrcat(ADR(HmiReport.Status.TableConfig[0]), ADR(',"to":9, "visible":false}]}')); - - // Configure file list so that only the rows with entries will show - ItemCount := MpFileManagerUIConnect.File.PathInfo.FileCount + MpFileManagerUIConnect.File.PathInfo.FolderCount; - HmiReport.Status.TableConfig[1] := '{ "specRows": [{"from":'; - brsitoa((ItemCount), ADR(HmiReport.Status.TableConfig[1]) + brsstrlen(ADR(HmiReport.Status.TableConfig[1]))); - brsstrcat(ADR(HmiReport.Status.TableConfig[1]), ADR(',"to":50, "visible":false}]}')); - // If more than 50 items exist, set the File OverMax flag (used for page up/down buttons) HmiReport.Status.FileOverMax := ItemCount > 50; // Set file device to selected MpReportCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); - - + //VC4 IF HmiReport.Status.Error THEN HmiReport.Status.Layer.ReportCreate := USINT_TO_BOOL(HIDE); diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ index 06e9f79d..3e02a1bd 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.typ @@ -34,11 +34,10 @@ TYPE SelectedIndex : USINT; (*Index of the selected file*) LastSelectedIndex : USINT := 255; (*Index of the last selected report file*) LastSelectedDeviceIndex : UINT; (*Index of the last selected file device. Compared with MpFileManagerUIConnect.DeviceList.SelectedIndex*) - TableConfig : ARRAY[0..1]OF STRING[120]; (*Table configuration for the list of available reports*) FilterString : STRING[1000]; (*String used to filter out any file that is not a PDF*) - Layer : ReportStatusLayerType; - PageUpDownVisibility : USINT; - DeleteButtonEnableStatus : BOOL; + Layer : ReportStatusLayerType; (*VC4 visibility control structure*) + PageUpDownVisibility : USINT; (*VC4 visibility control*) + DeleteButtonEnableStatus : BOOL; (*VC4 access control*) END_STRUCT; ReportExampleType : STRUCT (*Structure for the example data used by the two types of reports*) SimpleReport : SimpleReportDataType; (*Structure for the simple report's example data*) @@ -64,6 +63,10 @@ TYPE TimeStamp : ARRAY[0..NUM_TEMP_SAMPLES]OF INT; (*The time the temperature sample was taken*) Value : ARRAY[0..NUM_TEMP_SAMPLES]OF REAL; (*The actual temperature reading*) END_STRUCT; + ReportStatusLayerType : STRUCT (*VC4 visibility control structure*) + ReportCreate : BOOL; (*VC4 visibility control*) + ReportDelete : BOOL; (*VC4 visibility control*) + END_STRUCT; END_TYPE (*Enumerations*) @@ -75,15 +78,3 @@ TYPE FORMAT_ADVANCED (*An advanced report to showcase some features of mapp Report*) ); END_TYPE - -(**) - -TYPE - ReportStatusLayerType : STRUCT - ReportCreate : BOOL; - ReportDelete : BOOL; - END_STRUCT; -END_TYPE - -(**) -(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var index d41da3dc..79e14293 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.var @@ -20,7 +20,5 @@ VAR i : USINT; (*Index*) TimeIndex : INT; (*Index to loop through file devices*) tempDeviceIndex : USINT; (*Temporary index for identifying USB devices*) - DeviceCount : USINT; (*Counter for available file devices*) ItemCount : UDINT; (*Counter for available files*) END_VAR -(**) diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st index ec7d0ef1..b9157955 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st @@ -1,4 +1,4 @@ -ACTION HMIAction_Init: +ACTION VC4_Init: HmiUserX.FileDuplicateLayerStatus := HIDE; HmiUserX.ButtonLockedMessageLayer := HIDE; @@ -7,7 +7,7 @@ ACTION HMIAction_Init: END_ACTION -ACTION HMIAction: +ACTION VC4_Cylic: CASE UserXCheckState OF USERX_START: diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st index 0177a2da..61611d34 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st @@ -15,8 +15,8 @@ PROGRAM _INIT DirCreate_0(enable := FALSE); END_IF - // if the system has been opened just now - HMIAction_Init; + // Initial visibility setup + VC4_Init; // Initialize mapp function blocks UserXMgrUIConnect.User.Create.Lock := FALSE; @@ -60,7 +60,8 @@ PROGRAM _CYCLIC MpUserXLogin_0.ErrorReset := FALSE; END_IF - HMIAction; + // Cyclic action calls + VC4_Cylic; // Assign MpLinks MpUserXManagerUI_0.MpLink := ADR(gMpLinkUserXLogin); diff --git a/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg index 38adad84..1f332b62 100644 --- a/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/Package.pkg @@ -2,6 +2,6 @@ - \Physical\Simulation\PC\Connectivity\OpcUA\ReportMgr.uad + ReportMgr.uad \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/ReportMgr.uad b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/ReportMgr.uad new file mode 100644 index 00000000..81969179 --- /dev/null +++ b/mappFramework/Physical/SimulationVC4/PC/Connectivity/OpcUA/ReportMgr.uad @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 19b79eefa6fe073c32401efbf46e2f1c5df4a146 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 2 Jun 2023 11:43:15 -0400 Subject: [PATCH 137/159] Starting AAZM-671 --- mappFramework/Logical/VCShared/Languages.vcr | 4 +-- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 12 +++++++ .../TextGroups/MpBackupUITexts.txtgrp | 32 +++++++++++++++++++ .../VCShared/TextGroups/MpLanguages.txtgrp | 4 +++ 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index ee3bc574..7eb28b05 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index b15e5a1f..e62fdd28 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -40,6 +40,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index d51ac713..5920767d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -106,6 +106,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index b53b7d75..c6297912 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -19,6 +19,10 @@ + + + + From cc7b5d5a1fe323a4cad46fc340e7bbc0277af9fe Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 2 Jun 2023 11:44:36 -0400 Subject: [PATCH 138/159] Attempting AAZM-671 --- .../AlarmGroups/MpAuditTrailAlarms.algrp | 6 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 34 ++++---- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 16 ++-- .../AlarmGroups/MpDataRecorderAlarms.algrp | 6 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 8 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 8 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 8 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 10 +-- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 16 ++-- .../AlarmGroups/MpSpindleAlarms.algrp | 40 +++++----- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 4 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 4 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 20 ++--- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 12 +++ .../TextGroups/MpBackupUITexts.txtgrp | 32 ++++++++ .../VCShared/TextGroups/MpLanguages.txtgrp | 4 + .../VCShared/TextGroups/mappComponents.txtgrp | 78 +++++++++---------- 17 files changed, 177 insertions(+), 129 deletions(-) diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 7b4aff42..3b6d33d4 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -88,8 +88,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index ae11a0a0..592d14c8 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -410,22 +410,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index b141d44b..085efcfa 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -239,13 +239,13 @@ - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index 9448c87b..a56adc5b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -88,8 +88,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index ecf026f2..dd24a592 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -111,9 +111,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index d287911e..a61e0f36 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -111,9 +111,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index f0a54221..49ad28b3 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -111,9 +111,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index 40df221e..67722a91 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -143,10 +143,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index 29d32452..15f17b77 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -239,13 +239,13 @@ - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index e73a2c7f..06af261a 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -479,25 +479,25 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 196e1559..1986e40e 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -65,7 +65,7 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index db1ecafe..370b8216 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -65,7 +65,7 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 9944cefe..91519abc 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + @@ -147,15 +147,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index e62fdd28..c4a7b27e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -52,6 +52,18 @@ + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index 5920767d..06ba6ff7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -138,6 +138,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index c6297912..94cf420c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -23,6 +23,10 @@ + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index e3d0ea5f..881e2a5e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + @@ -88,44 +88,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 2cff3ee2d9ea8c18e72d7ff8b04b53b5bdd03ab8 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 2 Jun 2023 13:56:59 -0400 Subject: [PATCH 139/159] AAZM-671 -- Working on Chinese VC4 texts --- .../MpAlarmAcknowledgeState.bmgrp | 2 +- .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 2 +- .../BitmapGroups/MpAlarmXStates.bmgrp | 2 +- .../BitmapGroups/MpAuditCheckbox.bmgrp | 2 +- .../BitmapGroups/MpAuditEventsID.bmgrp | 2 +- .../BitmapGroups/MpAxisAlarm.bmgrp | 2 +- .../BitmapGroups/MpAxisHomed.bmgrp | 2 +- .../BitmapGroups/MpAxisMoving.bmgrp | 2 +- .../BitmapGroups/MpAxisPower.bmgrp | 2 +- .../BitmapGroups/MpBorders.bmgrp | 2 +- .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 2 +- .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 2 +- .../BitmapGroups/MpDataLimitViolation.bmgrp | 2 +- .../BitmapGroups/MpFileFIFOIcons.bmgrp | 2 +- .../BitmapGroups/MpFileIcons.bmgrp | 2 +- .../BitmapGroups/MpIcons.bmgrp | 2 +- .../BitmapGroups/MpIconsClick.bmgrp | 2 +- .../BitmapGroups/MpListbox.bmgrp | 2 +- .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 2 +- .../BitmapGroups/MpPads.bmgrp | 2 +- .../BitmapGroups/MpTeachIcons.bmgrp | 2 +- .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 2 +- .../BitmapGroups/MpUserIcons.bmgrp | 2 +- .../ColorMaps/MpEnergyChartData.clm | 2 +- .../ColorMaps/MpFileMultiSel.clm | 2 +- .../ColorMaps/MpPMLStateColors.clm | 2 +- .../mappFrameworkVisu/Fonts/MpButton.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpDefault.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader2.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpInput.fninfo | 2 +- .../Fonts/MpMenuButtons.fninfo | 2 +- .../Fonts/MpPackMLStateNames.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpPads.fninfo | 2 +- .../Layers/LockedMessageLayer.layer | 2 +- .../Layers/MpBackground.layer | 2 +- .../Layers/MpOeeControl.layer | 2 +- .../Layers/MpPageControl.layer | 2 +- .../Layers/MpUserXSign.layer | 2 +- .../Layers/MpUserXSignMessageBox.layer | 2 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../Pages/MpAlarmXHistory.page | 2 +- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 2 +- .../Pages/MpAlarmXListUI_Backtrace.page | 2 +- .../Pages/MpAlarmXQuery.page | 2 +- .../Pages/MpAuditCustomEventsUI.page | 2 +- .../Pages/MpAuditQueryUI.page | 2 +- .../Pages/MpAuditTrailUI.page | 2 +- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 2 +- .../Pages/MpDataStatisticsUI.page | 2 +- .../Pages/MpDataTableUI.page | 2 +- .../Pages/MpFileManagerUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeCoreUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeListUI.page | 2 +- .../Pages/MpOeeTimelineUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeTrendUI.page | 2 +- .../Pages/MpPackMLBasicUI.page | 2 +- .../Pages/MpPackMLStatisticsUI.page | 2 +- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpSetup.page | 2 +- .../Pages/MpSystemDiagnostics.page | 2 +- .../Pages/MpUserXManagerUI_Roles.page | 2 +- .../Pages/MpUserXManagerUI_Users.page | 2 +- .../Pages/mapp1StartPage.page | 2 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 2 +- .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 2 +- .../TextGroups/ShiftGroup.txtgrp | 2 +- .../mappFrameworkVisu/Trends/MpOeeTrendUI.tre | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 2 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../AlarmGroups/MpAuditTrailAlarms.algrp | 2 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 2 +- .../AlarmGroups/MpDataRecorderAlarms.algrp | 2 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 2 +- .../AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 2 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- mappFramework/Logical/VCShared/Languages.vcr | 4 +- mappFramework/Logical/VCShared/Package.vcp | 12 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 18 +- .../TextGroups/MpAlarmBasicUIText.txtgrp | 10 +- .../TextGroups/MpAlarmBypassState.txtgrp | 10 +- .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 26 +- .../TextGroups/MpAlarmSeparator.txtgrp | 6 +- .../VCShared/TextGroups/MpAlarmState.txtgrp | 10 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 42 +-- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 8 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 42 +-- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 6 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 18 +- .../TextGroups/MpAlarmXListCode.txtgrp | 42 +-- .../TextGroups/MpAlarmXListEventID.txtgrp | 12 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 12 +- .../TextGroups/MpAlarmXListState.txtgrp | 42 +-- .../TextGroups/MpAlarmXListStatus.txtgrp | 6 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 14 +- .../TextGroups/MpAlarmXListUIText.txtgrp | 42 +-- .../MpAuditArchiveFileTypeDP.txtgrp | 8 +- .../MpAuditArchiveSettingsDP.txtgrp | 8 +- .../TextGroups/MpAuditEventsOutput.txtgrp | 42 +-- .../TextGroups/MpAuditSignatureEvent.txtgrp | 10 +- .../TextGroups/MpAuditTrailUIText.txtgrp | 60 ++-- .../TextGroups/MpAuditTweetEvent.txtgrp | 6 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 8 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 6 +- .../TextGroups/MpAuditUserAction.txtgrp | 50 +-- .../TextGroups/MpAuditUserIDText.txtgrp | 12 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 42 +-- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 42 +-- .../TextGroups/MpBackupUITexts.txtgrp | 130 ++----- .../TextGroups/MpComLoggerUIText.txtgrp | 14 +- .../MpDataStatisticsUIStatus.txtgrp | 8 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 18 +- .../TextGroups/MpDataTableHeader.txtgrp | 22 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 8 +- .../TextGroups/MpDataTableUIText.txtgrp | 16 +- .../TextGroups/MpDateTimeFormats.txtgrp | 10 +- .../TextGroups/MpEnergyCoreStatus.txtgrp | 23 -- .../TextGroups/MpEnergyCoreUIText.txtgrp | 147 -------- .../TextGroups/MpEnergyForwardEnergy.txtgrp | 336 ------------------ .../TextGroups/MpEnergyReverseEnergy.txtgrp | 336 ------------------ .../TextGroups/MpFileManagerUIDevices.txtgrp | 22 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 6 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 22 +- .../MpFileManagerUIMessageBox.txtgrp | 16 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 28 +- .../TextGroups/MpFileManagerUIText.txtgrp | 62 ++-- .../VCShared/TextGroups/MpLanguages.txtgrp | 16 +- .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUIText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUITime.txtgrp | 2 +- .../TextGroups/MpOeeListUIText.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 2 +- .../MpOeeTimelineUIProductionState.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 2 +- .../TextGroups/MpOeeTrendUIText.txtgrp | 2 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 10 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 24 +- .../TextGroups/MpPackMLModesNames.txtgrp | 8 +- .../TextGroups/MpPackMLStateNames.txtgrp | 38 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 108 +++--- .../MpPackMLStatisticsUIText.txtgrp | 12 +- .../TextGroups/MpRecipeAuditText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 2 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../TextGroups/MpReportUITexts.txtgrp | 2 +- .../TextGroups/MpTweetCoreUIErrorTexts.txtgrp | 35 -- .../TextGroups/MpTweetCoreUIMessageBox.txtgrp | 50 --- .../TextGroups/MpTweetCoreUITexts.txtgrp | 111 ------ .../TextGroups/MpTweetCoreUIType.txtgrp | 23 -- .../VCShared/TextGroups/MpUnits.txtgrp | 2 +- .../TextGroups/MpUserConfirmText.txtgrp | 2 +- .../TextGroups/MpUserDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 2 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 2 +- .../TextGroups/MpUserRightLevel.txtgrp | 2 +- .../TextGroups/MpUserUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUITexts.txtgrp | 2 +- .../TextGroups/MpUserXConfirmText.txtgrp | 2 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 2 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 2 +- .../TextGroups/MpUserXRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 2 +- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../TextGroups/MpUserXSignUIText.txtgrp | 2 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 2 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- .../VCShared/TextGroups/mappComponents.txtgrp | 2 +- .../VCShared/TextGroups/mappTopics.txtgrp | 94 ++--- .../Logical/VCShared/UnitGroups/Energy.vcug | 2 +- .../Logical/VCShared/UnitGroups/Length.vcug | 2 +- .../Logical/VCShared/UnitGroups/Mass.vcug | 2 +- .../Logical/VCShared/UnitGroups/Memory.vcug | 2 +- .../Logical/VCShared/UnitGroups/Power.vcug | 2 +- .../Logical/VCShared/UnitGroups/Pressure.vcug | 2 +- .../VCShared/UnitGroups/Temperatures.vcug | 2 +- .../Logical/VCShared/UnitGroups/Volume.vcug | 2 +- mappFramework/mappFramework.apj | 2 +- 205 files changed, 775 insertions(+), 1940 deletions(-) delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp delete mode 100644 mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp index e45dc079..fe849a00 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp index 797fbbd6..0d39a6fe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp index 720e726e..588598cc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp index d85e8b31..f9a9a6a7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp index a18fbb01..7170eeda 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp index dd5c9bd3..9632eedb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp index 15ac1839..7f76c5ec 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp index 5763ee8a..55f24b40 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp index 5e940156..b5c7a9d0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp index 68845d95..05e8f429 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp index d28df2c8..4e60a3b2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp index 646c8ac1..118c3742 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp index 1eb9e6ad..3e816e42 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp index 98cc6da6..2a5cdd44 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp index f2b8bbb5..947576fe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp index 9be0b75d..83a0f08b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp index 33d0656e..b8941f39 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp index 0a6ead4d..18e0eb9a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp index 7e7edba7..9068f808 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp index 4811aa7a..c1d89c52 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp index 3ef2ba5b..f926f3b6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp index c5670294..cdf0fcb6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp index afebd054..031f3abb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm index 2af80923..b04aa93f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm index fcfebf79..9c0e9ede 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm index db8a3d60..0e11da3e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo index a1c3c4eb..e50221b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo index c757dccf..cfeb94ec 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo index 90bb0120..76da0311 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo index e0db5524..c9bbb050 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo index 0487fc76..1a9f48ca 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo index 9699a7a0..ea87241a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo index f260749f..9782e272 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo index 4bd73755..cf705259 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo index 5fef978a..f66c6fbd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo index ad002d61..8da6a139 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 76dfb022..7ac63ea7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index b7f47299..f18ce7b4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer index 271bd00f..42eec4ac 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index 71a8a3e4..dd783cd6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer index 29195f01..e16cff67 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer index 752b3c20..7052e517 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 61a7152b..3df94720 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index c348ad2c..3bdc1160 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index 321d61bd..1a958899 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index aaa3780e..92f0218a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 2c8063e5..49905b80 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index 8edc2d24..a5a6dcb9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index c9a636ce..b3e22829 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 18f779f0..160c9220 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index 39cd6086..cb37445d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index b6291d25..533b8297 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page index f2de2518..5940f5c6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page index 6b4d124b..d4f96cf4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index e3808b75..31324cc6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page index 55c8a501..40e89013 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page index 9b341e1f..be011211 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page index 35609745..cb4c7f41 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page index cf1622ae..e260efb7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 38edadeb..dfb8700a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index 34487b2b..c01ca550 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index 8d54c7dd..a7ee5b2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index 172b61de..7e3c04b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page index e806b76c..86660bd1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page index db9ee8a6..113e547e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index 906b49b1..57dc15c3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index a244a903..3a21180a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index 48e13983..0a314944 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index 08981107..3822e03a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp index e759c67c..7ed2b3a6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp index d630d14f..09c3d9f8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index 49607b37..879d5a40 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp index 87c5da9d..d034a8a9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre index 5ef8c942..42b942f8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 78b116fd..9be9e7fb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index 1b79c3c0..db67c030 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 3b6d33d4..46f9d9b6 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 592d14c8..c920969c 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index 085efcfa..83116802 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index a56adc5b..93cdd0b3 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index dd24a592..6348289f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index a61e0f36..86d31d4a 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index 49ad28b3..1455c272 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index 67722a91..3e924403 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index 15f17b77..20d2a3e6 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index 06af261a..b869594a 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 1986e40e..fc8847d4 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index 370b8216..5aa59d48 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 91519abc..8e7a4d68 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index 5aeb43d6..a38ea2d2 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index 7eb28b05..c45d3b11 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 53300878..0047a2d8 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,5 +1,5 @@ - + @@ -23,7 +23,6 @@ - @@ -58,8 +57,6 @@ - - @@ -77,9 +74,6 @@ - - - @@ -95,8 +89,6 @@ - - @@ -107,9 +99,9 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index 80457ae6..966be2cc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -1,5 +1,5 @@ - + @@ -25,14 +25,14 @@ - - - - - - - - + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index adb32fd7..8f6c4580 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index 40cf1c1b..f8281faf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -1,5 +1,5 @@ - + @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index 3b7ffcd7..47835ba6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -1,5 +1,5 @@ - + @@ -33,18 +33,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index 32d76583..fa7c1b38 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -1,5 +1,5 @@ - + @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 020c528d..181fe086 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -1,5 +1,5 @@ - + @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index 079e96f5..ce761eb3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -1,5 +1,5 @@ - + @@ -290,26 +290,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index 53b83213..7f4fa251 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index f1b36bb3..301bcc8a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -1,5 +1,5 @@ - + @@ -49,26 +49,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index 92be39ea..edf41959 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -1,5 +1,5 @@ - + @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index 0a470743..1b8ae332 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -41,18 +41,18 @@ - - - + + + - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 45af8f9d..1ad29af4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -1,5 +1,5 @@ - + @@ -290,26 +290,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index 76faa53b..c64b6ebc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -1,5 +1,5 @@ - + @@ -80,11 +80,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index c3f93fa9..097642ce 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -1,5 +1,5 @@ - + @@ -80,11 +80,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index 88b462ef..0b02c2ad 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -1,5 +1,5 @@ - + @@ -49,26 +49,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index bd3d10f7..8823ef63 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -1,5 +1,5 @@ - + @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index bcd97d0a..6af51c32 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -1,5 +1,5 @@ - + @@ -21,12 +21,12 @@ - - - - - - + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index 1f50f2b3..95f6030b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -59,31 +59,31 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index e5c67d7f..21c7d30d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index ab61a6d1..3ab65210 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index a0a4c618..7efaeabe 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -1,5 +1,5 @@ - + @@ -210,26 +210,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 291c3ded..181fcc33 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -1,5 +1,5 @@ - + @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index a4eeb92f..01336c27 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -67,35 +67,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index 6abf188f..f6745580 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -1,5 +1,5 @@ - + @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index ab4acd5b..fb194c41 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index 140d5526..8a1b7079 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + @@ -24,8 +24,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index 822fa4dd..8fba6b84 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -1,5 +1,5 @@ - + @@ -20,33 +20,33 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index ff05abb6..adf93675 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -1,5 +1,5 @@ - + @@ -19,11 +19,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index b311dd6b..555edf60 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + @@ -49,26 +49,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index c4a7b27e..791dd313 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -1,5 +1,5 @@ - + @@ -29,38 +29,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index 06ba6ff7..d84a2bd9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -1,5 +1,5 @@ - + @@ -73,102 +73,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index fc93e21a..861635d3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -25,12 +25,12 @@ - - - - - - + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 11f4dd8e..809ff82a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index c7edc5de..198962b8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -41,14 +41,14 @@ - - - - - - - - + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 5f831d44..2644958b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -1,5 +1,5 @@ - + @@ -270,16 +270,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index a585676b..8cae9bdf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index e0f6b2e5..fdafdbc5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -41,13 +41,13 @@ - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index 9917b577..c44d1e2d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -1,5 +1,5 @@ - + @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp deleted file mode 100644 index 4f0270eb..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreStatus.txtgrp +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp deleted file mode 100644 index 9bd2eb0c..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyCoreUIText.txtgrp +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp deleted file mode 100644 index b55393be..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyForwardEnergy.txtgrp +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp deleted file mode 100644 index a045fef4..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpEnergyReverseEnergy.txtgrp +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index 3cfea275..1f77267c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -1,5 +1,5 @@ - + @@ -110,16 +110,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 4433e8e7..aaa8ec59 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -1,5 +1,5 @@ - + @@ -56,8 +56,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index f5585c36..b7e46d4e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -1,5 +1,5 @@ - + @@ -110,16 +110,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index 11357b9f..2679587c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + @@ -26,13 +26,13 @@ - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index 930d6c26..e2a3ff31 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -1,5 +1,5 @@ - + @@ -35,19 +35,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index 00df2a0d..b8c99c86 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -110,36 +110,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index 94cf420c..92b88b08 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,17 +15,9 @@ - - - - - - - - - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index 10049355..6033fd10 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index 1a2e22d8..d211081a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index 1b00a4e4..7683ac2e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index ed975c63..cde05dda 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index 1d99ae8c..1cdce70f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index 4ff61c2d..bc236981 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index 9afe19cb..a9ea2393 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index 34ba4365..b23db937 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index ac7912bb..a893831d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -25,10 +25,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index a70478a9..43a6bef9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -1,5 +1,5 @@ - + @@ -31,17 +31,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index a78d1657..2d4947c9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 00f3b89e..453711c7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -1,5 +1,5 @@ - + @@ -45,24 +45,24 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 237e4194..12d9756b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1,5 +1,5 @@ - + @@ -1592,59 +1592,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index 6e0c8b5a..ded74bc9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + @@ -25,11 +25,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index f9a74a32..df302541 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index d8a1caf1..1c00e51b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index 9607aa76..fdf54384 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 9f6896cb..ce02f746 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index 8644b66c..db960ea7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index c4d135d6..03c04386 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index acbf9d98..f795335d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index e964c191..175c59d6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index d4cde1d0..3ea94bab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp deleted file mode 100644 index 8e2178c5..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIErrorTexts.txtgrp +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp deleted file mode 100644 index 499d0c8a..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIMessageBox.txtgrp +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp deleted file mode 100644 index 63f12ecf..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUITexts.txtgrp +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp deleted file mode 100644 index af59f8fc..00000000 --- a/mappFramework/Logical/VCShared/TextGroups/MpTweetCoreUIType.txtgrp +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 17275af2..666f1e38 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index 6331df7f..d708cab3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index d3526975..070ca3fe 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index 6b1bbacd..e51688f4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index 02c3e9ec..d0875df9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index 0bd6288b..ed592169 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index ab5ef403..3f8e14be 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index 684c54d6..3d384b93 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 490665a7..23459d2b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 23a37c32..fb7ce87b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index 85d92a46..98450ec6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index c676d89c..60c568ab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 09c977b4..c1c7acf9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index d36580bd..933c6340 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 8b930df3..095ce7ec 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index c59bada9..31ea29ab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index a32d43f7..44f1bced 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index 23649b63..033b9ea7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index ea97cf78..95d608e9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index f7b9c73d..9986192a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index a4befa17..aef50051 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index 9f193b65..92ba5cb2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 6fe43cb9..53e57b71 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 59a31ea2..8e552ea5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 45be0cf4..93b20d19 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index 6f46f258..d1bdd7eb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index 881e2a5e..acbb4309 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index 14cb9e54..001ea764 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -1,5 +1,5 @@ - + @@ -32,55 +32,55 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index a5a2e612..d31d913f 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index 34935b2b..76541418 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index 11c9a395..48b65e61 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index 6a478eb5..8cd8527b 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index 38694895..ba8b5376 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index e03a38de..d6134b86 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index adebd6ea..848e82e7 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index e71ebd86..32057bb8 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/mappFramework.apj b/mappFramework/mappFramework.apj index 9d0c52ba..ee179c8f 100644 --- a/mappFramework/mappFramework.apj +++ b/mappFramework/mappFramework.apj @@ -1,5 +1,5 @@  - + From d0ccdbffa0d47ad2b48fb98645336290fa1825d7 Mon Sep 17 00:00:00 2001 From: Wesley Buchanan Date: Fri, 2 Jun 2023 15:08:48 -0400 Subject: [PATCH 140/159] fix compile error about text snipets --- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 1046 ++++++++-------- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 518 ++++---- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 38 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 900 +++++++------- .../AlarmGroups/MpSpindleAlarms.algrp | 1050 ++++++++--------- .../Logical/VCShared/ControlVersion.cvinfo | 498 ++++---- mappFramework/Logical/VCShared/Languages.vcr | 52 +- mappFramework/Logical/VCShared/Package.vcp | 260 ++-- .../Physical/SimulationVC4/PC/Cpu.pkg | 58 +- 9 files changed, 2210 insertions(+), 2210 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index 3df94720..a64ab7cf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,524 +1,524 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index 3822e03a..7e7f182e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,260 +1,260 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index db67c030..dee5eb8b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,20 +1,20 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index c920969c..c4c3adc5 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,451 +1,451 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index b869594a..e1b30afb 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,526 +1,526 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index a38ea2d2..034aff4f 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,250 +1,250 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index c45d3b11..a42959ae 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,27 +1,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 0047a2d8..1ae22efd 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,131 +1,131 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg b/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg index de823723..62ba8c8b 100644 --- a/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/Cpu.pkg @@ -1,30 +1,30 @@ - - - - - Cpu.sw - Cpu.per - IoMap.iom - PvMap.vvm - Connectivity - TextSystem - UnitSystem - AccessAndSecurity - mappControl - mappMotion - mappServices - mappSafety - mappView - mappVision - mappCockpit - VC - - - - - - - - - + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + Connectivity + TextSystem + UnitSystem + AccessAndSecurity + mappControl + mappMotion + mappServices + mappSafety + mappView + mappVision + mappCockpit + VC + + + + + + + + + \ No newline at end of file From 853b6df6c090596b6b401b403e8adbedbcacae12 Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Fri, 2 Jun 2023 15:13:26 -0500 Subject: [PATCH 141/159] AAZM-656 VC4 execute alarm query task cleaned up and fixed alarm query to work as expected --- .../VC4/AlarmX/AlarmMgr/ExecuteQuery.st | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st index cd1096ce..783ce07d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/ExecuteQuery.st @@ -26,9 +26,8 @@ ACTION ExecuteQuery: IF ((QueryActiveAlarms_0.CommandDone = TRUE) AND (QueryActiveAlarms_0.Info.HasMoreRows = FALSE)) THEN QueryActiveAlarms_0.Execute := FALSE; QueryActiveAlarms_0.Next := FALSE; - AlarmQuery.State := ACTIVE_ALARM_WAIT; - // If the number of query results is more than MAX_QUERY_RESULTS, then query the next set of results - // Convert the query results into arrays that can be displacyed in VC4 + AlarmQuery.State := ACTIVE_ALARM_WAIT; + // Convert the query results into arrays that can be displayed in VC4 FOR i := 0 TO MAX_QUERY_RESULTS DO HmiAlarmX.Status.Query.Active[i] := AlarmQuery.Alarms[i].Active; HmiAlarmX.Status.Query.Acknowledged[i] := AlarmQuery.Alarms[i].Acknowledged; @@ -36,19 +35,18 @@ ACTION ExecuteQuery: HmiAlarmX.Status.Query.Name[i] := AlarmQuery.Alarms[i].Name; HmiAlarmX.Status.Query.Message[i] := AlarmQuery.Alarms[i].Message; HmiAlarmX.Status.Query.AdditionalInfo[i] := AlarmQuery.Alarms[i].AdditionalInfo; - HmiAlarmX.Status.Query.TimeStamp[i] := DT_TO_STRING(AlarmQuery.Alarms[i].TimeStamp); HmiAlarmX.Status.Query.TimeStamp[i] := RIGHT(HmiAlarmX.Status.Query.TimeStamp[i], 19); - HmiAlarmX.Status.Query.Severity[i] := AlarmQuery.Alarms[i].Severity; END_FOR + //Update the count of active alarms HmiAlarmX.Status.Query.QueryCount := 0; FOR i := 0 TO MAX_QUERY_RESULTS DO IF HmiAlarmX.Status.Query.Message[i] <> "" THEN - HmiAlarmX.Status.Query.QueryCount := i + 1; + HmiAlarmX.Status.Query.QueryCount := i; END_IF END_FOR - + // If the number of query results is more than MAX_QUERY_RESULTS, then query the next set of results ELSIF ((QueryActiveAlarms_0.CommandDone = TRUE) AND (QueryActiveAlarms_0.Info.HasMoreRows = TRUE)) THEN QueryActiveAlarms_0.Next := FALSE; AlarmQuery.State := ACTIVE_ALARM_NEXT; From fadebfdecd15b201f63196e7f9177e586ef76870 Mon Sep 17 00:00:00 2001 From: Will_Marberry Date: Fri, 2 Jun 2023 15:37:42 -0500 Subject: [PATCH 142/159] AAZM635 packML navigation icon showing up when not imported fixed --- .../mappView/Visualization/Pages/DemoPage/Navigation.content | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content b/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content index 0b0c41ea..186ef0cf 100644 --- a/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content +++ b/mappFramework/Logical/mappView/Visualization/Pages/DemoPage/Navigation.content @@ -12,7 +12,7 @@ - + From db2ec955dac20d51dd5af99e2ac466e73188cb60 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 2 Jun 2023 17:16:51 -0400 Subject: [PATCH 143/159] AAZM-671 - Finished adding Chinese to VC4 --- .../mappFrameworkVisu/Fonts/MpButton.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpDefault.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader2.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpInput.fninfo | 2 +- .../Fonts/MpMenuButtons.fninfo | 2 +- .../Fonts/MpPackMLStateNames.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpPads.fninfo | 2 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 28 ++--- .../TextGroups/MpButtons_PageTexts.txtgrp | 40 +++---- .../TextGroups/ShiftGroup.txtgrp | 32 +++--- .../AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../TextGroups/MpRecipeAuditText.txtgrp | 10 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 4 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 4 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 16 +-- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 40 +++---- .../TextGroups/MpRecipeUIStatus.txtgrp | 14 +-- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 48 ++++----- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 4 +- .../TextGroups/MpReportUITexts.txtgrp | 56 +++++----- .../VCShared/TextGroups/MpUnits.txtgrp | 4 +- .../TextGroups/MpUserConfirmText.txtgrp | 10 +- .../TextGroups/MpUserDialogHeader.txtgrp | 10 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 20 ++-- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 4 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 8 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 20 ++-- .../TextGroups/MpUserRightLevel.txtgrp | 8 +- .../TextGroups/MpUserUIErrorText.txtgrp | 72 ++++++------- .../TextGroups/MpUserUIMessageBox.txtgrp | 12 +-- .../TextGroups/MpUserXConfirmText.txtgrp | 10 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 10 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 20 ++-- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 4 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 8 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 20 ++-- .../TextGroups/MpUserXRightLevel.txtgrp | 8 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 18 ++-- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../TextGroups/MpUserXSignUIText.txtgrp | 8 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 88 +++++++-------- .../TextGroups/MpUserXUIMessageBox.txtgrp | 12 +-- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 102 +++++++++--------- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 4 +- 49 files changed, 402 insertions(+), 402 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo index e50221b0..cf9f1238 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo index cfeb94ec..f9f0c91e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo index 76da0311..1190e4b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo index c9bbb050..6753419d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo index 1a9f48ca..65cd93f3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo index ea87241a..068ca537 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo index 9782e272..7cd50e52 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo index cf705259..9c1bc5b6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo index f66c6fbd..c0ce8674 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo index 8da6a139..289e07f9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo @@ -20,7 +20,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp index 7ed2b3a6..92931fda 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -37,20 +37,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index 879d5a40..5028a842 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -63,31 +63,31 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp index d034a8a9..a5904695 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp @@ -17,26 +17,26 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index c920969c..5464d397 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -416,7 +416,7 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index b869594a..f1d7b09b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -485,7 +485,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index df302541..08ee0d40 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -19,11 +19,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 1c00e51b..6e91495c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -254,8 +254,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index fdf54384..6bf4539d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index ce02f746..2bb9cb19 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -27,15 +27,15 @@ - - - + + + - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index db960ea7..a84a536e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -290,26 +290,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index 03c04386..1a8a6faa 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -23,13 +23,13 @@ - - - - - - - + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index f795335d..059eded4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -98,30 +98,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 175c59d6..da4a4071 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -254,8 +254,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 3ea94bab..7a9670e3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -107,34 +107,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 666f1e38..3e18c743 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index d708cab3..86881546 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -19,11 +19,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index 070ca3fe..ed6f7133 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -21,12 +21,12 @@ - - - - + + + + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index e51688f4..bc22f83f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -110,16 +110,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index d0875df9..ed6f77b5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index ed592169..a316d65b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index 3f8e14be..3b2d24b1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -29,16 +29,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index 3d384b93..44d32266 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -19,10 +19,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 23459d2b..38ad8068 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -81,42 +81,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index fb7ce87b..4cb3765c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -62,14 +62,14 @@ - - - - - + + + + + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index 60c568ab..cbe3e158 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -19,11 +19,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index c1c7acf9..3603d087 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -21,12 +21,12 @@ - - - - + + + + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index 933c6340..c080aa13 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -110,16 +110,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 095ce7ec..8f775a64 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -13,8 +13,8 @@ - - + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index 31ea29ab..52849a96 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index 44f1bced..4dc3fca4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -29,16 +29,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index 033b9ea7..bbb62f68 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -19,10 +19,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 95d608e9..5e8d3271 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -27,15 +27,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index 9986192a..80063ffb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -22,7 +22,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index aef50051..5c2a5393 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index 92ba5cb2..08558cd9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -97,50 +97,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 53e57b71..1d269b98 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -62,14 +62,14 @@ - - - - - + + + + + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 8e552ea5..d2d9cd53 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -138,57 +138,57 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 93b20d19..d36f5353 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -11,7 +11,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index d1bdd7eb..f25ca157 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -13,8 +13,8 @@ - - + + From 9c28310c63d0dd29e2fdcc6386cb4307191850e0 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Fri, 2 Jun 2023 18:23:45 -0500 Subject: [PATCH 144/159] AAZM-645 - PackML not working, --- .../VC4/PackML/PackMLMgr/HMIActions.st | 50 - .../VC4/PackML/PackMLMgr/IEC.prg | 1 - .../VC4/PackML/PackMLMgr/PackMLMgr.st | 21 +- .../VC4/PackML/PackMLMgr/PackMLMgr.var | 5 + .../VC4/PackML/PackMLMgr/StateMachine_Main.st | 111 +- .../MpAlarmAcknowledgeState.bmgrp | 2 +- .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 2 +- .../BitmapGroups/MpAlarmXStates.bmgrp | 2 +- .../BitmapGroups/MpAuditCheckbox.bmgrp | 2 +- .../BitmapGroups/MpAuditEventsID.bmgrp | 2 +- .../BitmapGroups/MpAxisAlarm.bmgrp | 2 +- .../BitmapGroups/MpAxisHomed.bmgrp | 2 +- .../BitmapGroups/MpAxisMoving.bmgrp | 2 +- .../BitmapGroups/MpAxisPower.bmgrp | 2 +- .../BitmapGroups/MpBorders.bmgrp | 2 +- .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 2 +- .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 2 +- .../BitmapGroups/MpDataLimitViolation.bmgrp | 2 +- .../BitmapGroups/MpFileFIFOIcons.bmgrp | 2 +- .../BitmapGroups/MpFileIcons.bmgrp | 2 +- .../BitmapGroups/MpIcons.bmgrp | 2 +- .../BitmapGroups/MpIconsClick.bmgrp | 2 +- .../BitmapGroups/MpListbox.bmgrp | 2 +- .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 2 +- .../BitmapGroups/MpPads.bmgrp | 2 +- .../BitmapGroups/MpTeachIcons.bmgrp | 2 +- .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 2 +- .../BitmapGroups/MpUserIcons.bmgrp | 2 +- .../ColorMaps/MpEnergyChartData.clm | 2 +- .../ColorMaps/MpFileMultiSel.clm | 2 +- .../ColorMaps/MpPMLStateColors.clm | 2 +- .../mappFrameworkVisu/Fonts/MpButton.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpDefault.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHeader2.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpInput.fninfo | 2 +- .../Fonts/MpMenuButtons.fninfo | 2 +- .../Fonts/MpPackMLStateNames.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpPads.fninfo | 2 +- .../Layers/LockedMessageLayer.layer | 2 +- .../Layers/MpBackground.layer | 2 +- .../Layers/MpOeeControl.layer | 2 +- .../Layers/MpPageControl.layer | 2 +- .../Layers/MpUserXSign.layer | 2 +- .../Layers/MpUserXSignMessageBox.layer | 2 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../Pages/MpAlarmXHistory.page | 2 +- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 2 +- .../Pages/MpAlarmXListUI_Backtrace.page | 2 +- .../Pages/MpAlarmXQuery.page | 2 +- .../Pages/MpAuditCustomEventsUI.page | 2 +- .../Pages/MpAuditQueryUI.page | 2 +- .../Pages/MpAuditTrailUI.page | 2 +- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 2 +- .../Pages/MpDataStatisticsUI.page | 2 +- .../Pages/MpDataTableUI.page | 2 +- .../Pages/MpFileManagerUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeCoreUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeListUI.page | 2 +- .../Pages/MpOeeTimelineUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeTrendUI.page | 2 +- .../Pages/MpPackMLBasicUI.page | 43 +- .../Pages/MpPackMLStatisticsUI.page | 82 +- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpReport.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpSetup.page | 2 +- .../Pages/MpSystemDiagnostics.page | 2 +- .../Pages/MpUserXManagerUI_Roles.page | 2 +- .../Pages/MpUserXManagerUI_Users.page | 2 +- .../Pages/mapp1StartPage.page | 2 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 2 +- .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 2 +- .../TextGroups/ShiftGroup.txtgrp | 2 +- .../mappFrameworkVisu/Trends/MpOeeTrendUI.tre | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 2 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../AlarmGroups/MpAuditTrailAlarms.algrp | 2 +- .../AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 2 +- .../AlarmGroups/MpDataRecorderAlarms.algrp | 2 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 2 +- .../AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 2 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 8157 ++++++++--------- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 4 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 2 +- .../TextGroups/MpAlarmBasicUIText.txtgrp | 2 +- .../TextGroups/MpAlarmBypassState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 2 +- .../TextGroups/MpAlarmSeparator.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 2 +- .../TextGroups/MpAlarmXListCode.txtgrp | 2 +- .../TextGroups/MpAlarmXListEventID.txtgrp | 2 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 2 +- .../TextGroups/MpAlarmXListState.txtgrp | 2 +- .../TextGroups/MpAlarmXListStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIText.txtgrp | 2 +- .../MpAuditArchiveFileTypeDP.txtgrp | 2 +- .../MpAuditArchiveSettingsDP.txtgrp | 2 +- .../TextGroups/MpAuditEventsOutput.txtgrp | 2 +- .../TextGroups/MpAuditSignatureEvent.txtgrp | 2 +- .../TextGroups/MpAuditTrailUIText.txtgrp | 2 +- .../TextGroups/MpAuditTweetEvent.txtgrp | 2 +- .../TextGroups/MpAuditUIErrorText.txtgrp | 2 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../TextGroups/MpAuditUserAction.txtgrp | 2 +- .../TextGroups/MpAuditUserIDText.txtgrp | 2 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 2 +- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 2 +- .../TextGroups/MpBackupUITexts.txtgrp | 2 +- .../TextGroups/MpComLoggerUIText.txtgrp | 2 +- .../MpDataStatisticsUIStatus.txtgrp | 2 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpDataTableHeader.txtgrp | 2 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 2 +- .../TextGroups/MpDataTableUIText.txtgrp | 2 +- .../TextGroups/MpDateTimeFormats.txtgrp | 2 +- .../TextGroups/MpFileManagerUIDevices.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 2 +- .../MpFileManagerUIMessageBox.txtgrp | 2 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 2 +- .../TextGroups/MpFileManagerUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpLanguages.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUIText.txtgrp | 2 +- .../TextGroups/MpOeeCoreUITime.txtgrp | 2 +- .../TextGroups/MpOeeListUIText.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 2 +- .../MpOeeTimelineUIProductionState.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 2 +- .../TextGroups/MpOeeTrendUIText.txtgrp | 2 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 2 +- .../TextGroups/MpPackMLModesNames.txtgrp | 10 +- .../TextGroups/MpPackMLStateNames.txtgrp | 2 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 248 +- .../MpPackMLStatisticsUIText.txtgrp | 2 +- .../TextGroups/MpRecipeAuditText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 2 +- .../TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../TextGroups/MpReportUITexts.txtgrp | 2 +- .../VCShared/TextGroups/MpUnits.txtgrp | 2 +- .../TextGroups/MpUserConfirmText.txtgrp | 2 +- .../TextGroups/MpUserDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 2 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 2 +- .../TextGroups/MpUserRightLevel.txtgrp | 2 +- .../TextGroups/MpUserUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUITexts.txtgrp | 2 +- .../TextGroups/MpUserXConfirmText.txtgrp | 2 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 2 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 2 +- .../TextGroups/MpUserXRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 2 +- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../TextGroups/MpUserXSignUIText.txtgrp | 2 +- .../TextGroups/MpUserXUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 2 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- .../VCShared/TextGroups/mappComponents.txtgrp | 2 +- .../VCShared/TextGroups/mappTopics.txtgrp | 2 +- .../Logical/VCShared/UnitGroups/Energy.vcug | 2 +- .../Logical/VCShared/UnitGroups/Length.vcug | 2 +- .../Logical/VCShared/UnitGroups/Mass.vcug | 2 +- .../Logical/VCShared/UnitGroups/Memory.vcug | 2 +- .../Logical/VCShared/UnitGroups/Power.vcug | 2 +- .../Logical/VCShared/UnitGroups/Pressure.vcug | 2 +- .../VCShared/UnitGroups/Temperatures.vcug | 2 +- .../Logical/VCShared/UnitGroups/Volume.vcug | 2 +- .../PackML/PackMLCfg.mppackmlcore | 3 + .../PackML/PackMLMain.mppackmlmodule | 13 - .../PC/mappServices/PackML/Package.pkg | 1 - 205 files changed, 4429 insertions(+), 4702 deletions(-) delete mode 100644 mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st delete mode 100644 mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st deleted file mode 100644 index 8efef011..00000000 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/HMIActions.st +++ /dev/null @@ -1,50 +0,0 @@ - -ACTION VC4_Cyclic: - - IF HmiPackML.Status.LastState <> MpPackMLMode_0.StateCurrent THEN - - // Reset all commands on each state change - MpPackMLBasicUIConnect.StateControl.Abort := MpPackMLMode_0.Abort := FALSE; - MpPackMLBasicUIConnect.StateControl.Clear := MpPackMLMode_0.Clear := FALSE; - MpPackMLBasicUIConnect.StateControl.Hold := MpPackMLMode_0.Hold := FALSE; - MpPackMLBasicUIConnect.StateControl.Reset := MpPackMLMode_0.Reset := FALSE; - MpPackMLBasicUIConnect.StateControl.Start := MpPackMLMode_0.Start := FALSE; - MpPackMLBasicUIConnect.StateControl.StateComplete := MpPackMLMode_0.StateComplete := FALSE; - MpPackMLBasicUIConnect.StateControl.Stop := MpPackMLMode_0.Stop := FALSE; - MpPackMLBasicUIConnect.StateControl.Suspend := MpPackMLMode_0.Suspend := FALSE; - MpPackMLBasicUIConnect.StateControl.Unhold := MpPackMLMode_0.Unhold := FALSE; - MpPackMLBasicUIConnect.StateControl.Unsuspend := MpPackMLMode_0.Unsuspend := FALSE; - - // Reset all ColorIndexes on each state change - MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopping := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Clearing := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborted := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborting := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Resetting := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Unsuspending := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspended := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspending := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Idle := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Starting := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Execute := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Completing := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Complete := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Unholding := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Held := 0; - MpPackMLBasicUIConnect.StateControl.ColorIndex.Holding := 0; - - HmiPackML.Status.LastState := MpPackMLMode_0.StateCurrent; - - END_IF - - // Connect UIConnect Commands to function block - MpPackMLMode_0.Abort := MpPackMLBasicUIConnect.StateControl.Abort; - MpPackMLMode_0.Stop := MpPackMLBasicUIConnect.StateControl.Stop; - - MpPackMLBasicUIConnect.ModeCurrent := MpPackMLMode_0.ModeID; - MpPackMLBasicUIConnect.StateCurrent := MpPackMLMode_0.StateCurrent; - -END_ACTION - - diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg index 4660f09e..fe2ad3ca 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg @@ -5,7 +5,6 @@ PackMLMgr.st PackMLMgr.typ PackMLMgr.var - HMIActions.st StateMachine_Main.st \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st index 9b995223..94109772 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st @@ -28,21 +28,34 @@ PROGRAM _INIT MpPackMLMode_0.ModeID := 1; MpPackMLMode_0(); + MpPackMLBasicUI_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLBasicUI_0.Enable := TRUE; + MpPackMLBasicUI_0.UIConnect := ADR(MpPackMLBasicUIConnect); + MpPackMLBasicUI_0(); + + MpPackMLStatisticsUI_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLStatisticsUI_0.Enable := TRUE; + MpPackMLStatisticsUI_0.UIConnect := ADR(MpPackMLStatisticsUIConnect); + MpPackMLStatisticsUI_0(); + END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions StateMachine_Main; - VC4_Cyclic; // Assign MpLinks & UIConnects MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); MpPackMLMode_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLBasicUI_0.MpLink := ADR(gMpLinkPackMLCore); + MpPackMLStatisticsUI_0.MpLink := ADR(gMpLinkPackMLCore); // Call function blocks MpPackMLCore_0(); MpPackMLMode_0(); + MpPackMLBasicUI_0(); + MpPackMLStatisticsUI_0(); END_PROGRAM @@ -50,9 +63,15 @@ PROGRAM _EXIT // Disable the function blocks to unlink the MpLinks MpPackMLCore_0.Enable := FALSE; + MpPackMLMode_0.Enable := FALSE; + MpPackMLBasicUI_0.Enable := FALSE; + MpPackMLStatisticsUI_0.Enable := TRUE; // Call function blocks MpPackMLCore_0(); + MpPackMLMode_0(); + MpPackMLBasicUI_0(); + MpPackMLStatisticsUI_0(); END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var index 9fca2163..b9d20fc5 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var @@ -3,6 +3,8 @@ VAR DirCreate_0 : DirCreate; (*DirCreate instance*) MpPackMLCore_0 : MpPackMLCore; MpPackMLMode_0 : MpPackMLMode; + MpPackMLBasicUI_0 : MpPackMLBasicUI; + MpPackMLStatisticsUI_0 : MpPackMLStatisticsUI; END_VAR (*Constants*) (*Structure Types*) @@ -11,3 +13,6 @@ VAR HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) END_VAR (*Variables*) +VAR + MpPackMLStatisticsUIConnect : MpPackMLStatisticsUIConnectType; +END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st index a8cb182e..2e3404e0 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st @@ -4,146 +4,93 @@ ACTION StateMachine_Main: CASE MpPackMLCore_0.StateCurrent OF mpPACKML_STATE_STOPPED: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopped := 2; - + // Add STOPPED actions here - - MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.Reset; - + mpPACKML_STATE_STARTING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Starting := 1; - + // Add STARTING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_IDLE: - MpPackMLBasicUIConnect.StateControl.ColorIndex.Idle := 2; - // Add IDLE actions here - - MpPackMLMode_0.Start := MpPackMLBasicUIConnect.StateControl.Start; - + mpPACKML_STATE_SUSPENDING: - MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspending := 1; - // Add SUSPENDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_SUSPENDED: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Suspended := 2; - + // Add SUSPENDED actions here - MpPackMLMode_0.Unsuspend := MpPackMLBasicUIConnect.StateControl.Unsuspend; - mpPACKML_STATE_UNSUSPENDING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Unsuspending := 1; - + // Add UNSUSPENDING actions here - MpPackMLMode_0.StateComplete := TRUE; - + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_EXECUTE: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Execute := 3; - + // Add EXECUTE actions here - MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; - MpPackMLMode_0.Suspend := MpPackMLBasicUIConnect.StateControl.Suspend; - MpPackMLMode_0.Hold := MpPackMLBasicUIConnect.StateControl.Hold; - mpPACKML_STATE_STOPPING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Stopping := 1; - + // Add STOPPING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_ABORTING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborting := 1; - + // Add ABORTING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_ABORTED: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Aborted := 2; - + // Add ABORTED actions here - - MpPackMLMode_0.Clear := MpPackMLBasicUIConnect.StateControl.Clear; - + mpPACKML_STATE_HOLDING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Holding := 1; - + // Add HOLDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_HELD: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Held := 2; - + // Add HELD actions here - - MpPackMLMode_0.Unhold := MpPackMLBasicUIConnect.StateControl.Unhold; - + mpPACKML_STATE_UNHOLDING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Unholding := 1; - + // Add UNHOLDING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_COMPLETING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Completing := 1; - + // Add COMPLETING actions here // NOTE: To allow the state machine to move forward, the StateComplete command has been connected // to the HMI button. The user should change this to set StateComplete to TRUE upon COMPLETING actions. - MpPackMLMode_0.StateComplete := MpPackMLBasicUIConnect.StateControl.StateComplete; - mpPACKML_STATE_COMPLETE: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Complete := 2; - + // Add COMPLETE actions here - MpPackMLMode_0.Reset := MpPackMLBasicUIConnect.StateControl.Reset; - mpPACKML_STATE_RESETTING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Resetting := 1; - + // Add RESETTING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_CLEARING: - - MpPackMLBasicUIConnect.StateControl.ColorIndex.Clearing := 1; - + // Add CLEARING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; mpPACKML_STATE_UNDEFINED: @@ -163,7 +110,7 @@ ACTION StateMachine_Main: // Add ACTIVATING actions here - MpPackMLMode_0.StateComplete := TRUE; + MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; END_CASE diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp index fe849a00..e45dc079 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp index 0d39a6fe..797fbbd6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp index 588598cc..720e726e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp index f9a9a6a7..d85e8b31 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp index 7170eeda..a18fbb01 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp index 9632eedb..dd5c9bd3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp index 7f76c5ec..15ac1839 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp index 55f24b40..5763ee8a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp index b5c7a9d0..5e940156 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp index 05e8f429..68845d95 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp index 4e60a3b2..d28df2c8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp index 118c3742..646c8ac1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp index 3e816e42..1eb9e6ad 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp index 2a5cdd44..98cc6da6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp index 947576fe..f2b8bbb5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp index 83a0f08b..9be0b75d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp index b8941f39..33d0656e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp index 18e0eb9a..0a6ead4d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp index 9068f808..7e7edba7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp index c1d89c52..4811aa7a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp index f926f3b6..3ef2ba5b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp index cdf0fcb6..c5670294 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp index 031f3abb..afebd054 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm index b04aa93f..2af80923 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm index 9c0e9ede..fcfebf79 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm index 0e11da3e..db8a3d60 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo index cf9f1238..74ffe145 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo index f9f0c91e..553060a6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo index 1190e4b0..a4226571 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo index 6753419d..b750c502 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo index 65cd93f3..e5a13683 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo index 068ca537..4b7fb3aa 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo index 7cd50e52..8b7224c7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo index 9c1bc5b6..d6ed0856 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo index c0ce8674..850bbdf0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo index 289e07f9..b08f6d95 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 7ac63ea7..76dfb022 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index f18ce7b4..b7f47299 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer index 42eec4ac..271bd00f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index dd783cd6..71a8a3e4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer index e16cff67..29195f01 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer index 7052e517..752b3c20 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index a64ab7cf..f00d0132 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index 3bdc1160..c348ad2c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index 1a958899..ce3309c0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index 92f0218a..aaa3780e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 49905b80..2c8063e5 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index a5a6dcb9..8edc2d24 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index b3e22829..c9a636ce 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 160c9220..18f779f0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index cb37445d..39cd6086 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index 533b8297..b6291d25 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page index 5940f5c6..f2de2518 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page index d4f96cf4..6b4d124b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index 31324cc6..e3808b75 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page index 40e89013..55c8a501 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page index be011211..9b341e1f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page index cb4c7f41..35609745 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page index e260efb7..cf1622ae 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index dfb8700a..4f6ba077 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + @@ -183,11 +183,11 @@ - + - + @@ -195,7 +195,6 @@ - @@ -213,7 +212,7 @@ - + @@ -715,7 +714,7 @@ - + @@ -745,7 +744,7 @@ - + @@ -775,7 +774,7 @@ - + @@ -805,7 +804,7 @@ - + @@ -835,7 +834,7 @@ - + @@ -865,7 +864,7 @@ - + @@ -895,7 +894,7 @@ - + @@ -925,7 +924,7 @@ - + @@ -956,7 +955,7 @@ - + @@ -986,7 +985,7 @@ - + @@ -1016,7 +1015,7 @@ - + @@ -1046,7 +1045,7 @@ - + @@ -1076,7 +1075,7 @@ - + @@ -1106,7 +1105,7 @@ - + @@ -1136,7 +1135,7 @@ - + @@ -1166,7 +1165,7 @@ - + @@ -1196,7 +1195,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index c01ca550..cfacc09c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + @@ -82,7 +82,7 @@ - + @@ -114,7 +114,7 @@ - + @@ -1328,12 +1328,12 @@ - + - + @@ -1377,12 +1377,12 @@ - + - + @@ -1408,12 +1408,12 @@ - + - + @@ -1439,12 +1439,12 @@ - + - + @@ -1470,12 +1470,12 @@ - + - + @@ -1501,12 +1501,12 @@ - + - + @@ -1532,12 +1532,12 @@ - + - + @@ -1563,12 +1563,12 @@ - + - + @@ -1594,12 +1594,12 @@ - + - + @@ -1625,12 +1625,12 @@ - + - + @@ -1656,12 +1656,12 @@ - + - + @@ -1687,12 +1687,12 @@ - + - + @@ -1718,12 +1718,12 @@ - + - + @@ -1749,12 +1749,12 @@ - + - + @@ -2013,12 +2013,12 @@ - + - + @@ -2043,12 +2043,12 @@ - + - + @@ -2074,12 +2074,12 @@ - + - + @@ -2148,7 +2148,7 @@ - + @@ -2211,12 +2211,12 @@ - + - + @@ -2275,7 +2275,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index a7ee5b2c..8d54c7dd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index 7e3c04b0..172b61de 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page index 86660bd1..e806b76c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page index 113e547e..db9ee8a6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index 57dc15c3..906b49b1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index 3a21180a..a244a903 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index 0a314944..48e13983 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index 7e7f182e..2e18d098 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp index 92931fda..dc4ab05c 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp index 09c3d9f8..d630d14f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index 5028a842..8833e937 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp index a5904695..56b12c38 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre index 42b942f8..5ef8c942 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 9be9e7fb..78b116fd 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index dee5eb8b..a52e171b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index 46f9d9b6..fe230ce7 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 5464d397..2c96f384 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index 83116802..21f5e46c 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index 93cdd0b3..3a937909 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index 6348289f..e61653f1 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index 86d31d4a..0b08efd9 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index 1455c272..c3bdfb48 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index 3e924403..4ac19002 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index 20d2a3e6..b5504430 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index f1d7b09b..ef08ecfd 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index fc8847d4..54f96111 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index 5aa59d48..35e60d24 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index 8e7a4d68..ebfe1d6b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index 034aff4f..d94e3024 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index d8938547..cf6fb95c 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -2052,22 +2052,6 @@ - - - - - - - - - - - - - - - - @@ -9735,6 +9719,24 @@ + + + + + + + + + + + + + + + + + + @@ -9755,1875 +9757,1563 @@ - - - - - - - - - - - - - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - + - - - - + + - + - - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - @@ -11671,1318 +11361,1352 @@ + + + + + + + + - + - + + - - + + + + + + + + + + + + + + - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + - + - + + - + + + - + - + - + + - + + + - + - + - + + - + + + - + - - + + + + + + + + - + + + - - - - - - - - - - - + + + + + + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + + + + + + + + + + + + + - + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + - + - + - - + + + - + - + - + - - + + + - + - + - + - - + + + - + - - - - - - - - - - - - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - - - - - - - - - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + + + + + + + + + + + + - - + - - - + + + - + - - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - - - - - - - - - - - - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - + - - + - - - + + + - - - - - - - - - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + - + - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + + - + - + + + + + + + + + + + + + - + + - + - + + - + + + - + - + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + - + + - + + + - + - + + - + + + - + - + + + + + + + + + + + - + + - + - + + - + + + - + - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - + - + + - + + + - + - + + - + + + - + - - - - - + - + + - + - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + - + + - + + + - + + + + + + + + + + + + + - + + + + + - + + - + - + + - + + + - + - + + - + + + - + - + + - + + + - + - - - - - + - + + - + - + + - + + + - + - + + - + + + - + - + + + + + + - + + + - + - + + - + + + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + - + + - + + + - + - - - - - + + - + + + - + - + + - + + + - + - + - + - + - - - - - + + - + + + - + @@ -12996,584 +12720,504 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13582,270 +13226,190 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - + - + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + - - + - + - + - - - + - - - - - - - - - - - - - - - + + + - - - - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + @@ -13856,40 +13420,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -13900,96 +13432,44 @@ - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + @@ -14000,87 +13480,136 @@ - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - - + + + - + - - + + + - - + + + - - - - - - + + + - - + + + - + - + - - + + + @@ -14088,268 +13617,395 @@ - - + + - - - - + - + - - - - - - - - - - - - - - - + + - - - - + - + - + - - + + + - + - - + + + - - + + + - + - - - - - - + + + - + - + - - + + + - - + + + - + - + + + + + + + + + + + + + + + + + + + - + - - + + + - + - - + + + - + - + - - + + + + + + + - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - + - - + + + - - + + + - + - - + + + - + - - - - - - - - - - + + + - - + + + - + - + - - + + + - + - + - - + + + - + - - + + + - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + - + - - + + + - - + + + @@ -14357,613 +14013,772 @@ - - + + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - + + + - + - + - - + + + - + - - - - - - - - - - - - - + - - - - - - - - - - + + + - + - + - - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + - - - - - - - - - - + + + - + + - + - - + + + - + + - + - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + + - + - - + - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + - + - - + + + - + - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + - + - - + + + - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + + - + - + - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + + - + - - - - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + + - + - - - - - - - - - - - - - + - - - - - - - - - - + + + - + + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + + - + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + + + + + + + + - - - + + + + + + - + - + - + + - - - + + + + + + + + + + + + + + + - - - - + + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index a42959ae..afbf7216 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 1ae22efd..0a577443 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,9 +1,9 @@ - + - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index 966be2cc..f95c1eea 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index 8f6c4580..2cf9e1ff 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index f8281faf..aaa437c9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index 47835ba6..ee3cdb40 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index fa7c1b38..ba302b30 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 181fe086..548d73ef 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index ce761eb3..723e78c0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index 7f4fa251..e58d1e1d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 301bcc8a..2c4e10f9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index edf41959..a55124b9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index 1b8ae332..6c75504e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index 1ad29af4..ae418f68 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index c64b6ebc..696e39cd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index 097642ce..0fa0acf9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index 0b02c2ad..39133cd9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index 8823ef63..635d00f5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index 6af51c32..82f8e454 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index 95f6030b..33c263a5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index 21c7d30d..cd30b813 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index 3ab65210..dd82b084 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index 7efaeabe..b5b09049 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 181fcc33..847f52c1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index 01336c27..4844758b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index f6745580..a517a6fb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index fb194c41..b7c16dbf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index 8a1b7079..2807f3ae 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index 8fba6b84..1d7312ba 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index adf93675..9811d346 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 555edf60..7d5bfae6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index 791dd313..31cfa501 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index d84a2bd9..aec8fc7b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index 861635d3..fbc1c013 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 809ff82a..17a61997 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index 198962b8..333d1c15 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 2644958b..8c2d3ac5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index 8cae9bdf..82df1ef1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index fdafdbc5..2f2e0e77 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index c44d1e2d..daff4dc1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index 1f77267c..5307a009 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index aaa8ec59..1fb44ffc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index b7e46d4e..90e5a5a8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index 2679587c..9b74564e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index e2a3ff31..a98a5460 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index b8c99c86..a1fb237e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index 92b88b08..eee1115e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index 6033fd10..10049355 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index d211081a..1a2e22d8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index 7683ac2e..1b00a4e4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index cde05dda..ed975c63 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index 1cdce70f..1d99ae8c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index bc236981..4ff61c2d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index a9ea2393..9afe19cb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index b23db937..34ba4365 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index a893831d..feda143b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index 43a6bef9..5a480016 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index 2d4947c9..adc26f67 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -1,5 +1,5 @@ - + @@ -8,20 +8,24 @@ + + + - + - + + \ No newline at end of file diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index 453711c7..cb6bc5e7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 12d9756b..734c6fed 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1,5 +1,5 @@ - + @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -248,7 +248,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -272,7 +272,7 @@ - + @@ -284,7 +284,7 @@ - + @@ -296,7 +296,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -320,7 +320,7 @@ - + @@ -332,7 +332,7 @@ - + @@ -344,7 +344,7 @@ - + @@ -356,7 +356,7 @@ - + @@ -368,7 +368,7 @@ - + @@ -380,7 +380,7 @@ - + @@ -392,7 +392,7 @@ - + @@ -404,7 +404,7 @@ - + @@ -416,7 +416,7 @@ - + @@ -428,7 +428,7 @@ - + @@ -440,7 +440,7 @@ - + @@ -452,7 +452,7 @@ - + @@ -464,7 +464,7 @@ - + @@ -476,7 +476,7 @@ - + @@ -488,7 +488,7 @@ - + @@ -500,7 +500,7 @@ - + @@ -512,7 +512,7 @@ - + @@ -524,7 +524,7 @@ - + @@ -536,7 +536,7 @@ - + @@ -548,7 +548,7 @@ - + @@ -560,7 +560,7 @@ - + @@ -572,7 +572,7 @@ - + @@ -584,7 +584,7 @@ - + @@ -596,7 +596,7 @@ - + @@ -608,7 +608,7 @@ - + @@ -620,7 +620,7 @@ - + @@ -632,7 +632,7 @@ - + @@ -644,7 +644,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -668,7 +668,7 @@ - + @@ -680,7 +680,7 @@ - + @@ -692,7 +692,7 @@ - + @@ -704,7 +704,7 @@ - + @@ -716,7 +716,7 @@ - + @@ -728,7 +728,7 @@ - + @@ -740,7 +740,7 @@ - + @@ -752,7 +752,7 @@ - + @@ -764,7 +764,7 @@ - + @@ -776,7 +776,7 @@ - + @@ -788,7 +788,7 @@ - + @@ -800,7 +800,7 @@ - + @@ -812,7 +812,7 @@ - + @@ -824,7 +824,7 @@ - + @@ -836,7 +836,7 @@ - + @@ -848,7 +848,7 @@ - + @@ -860,7 +860,7 @@ - + @@ -872,7 +872,7 @@ - + @@ -884,7 +884,7 @@ - + @@ -896,7 +896,7 @@ - + @@ -908,7 +908,7 @@ - + @@ -920,7 +920,7 @@ - + @@ -932,7 +932,7 @@ - + @@ -944,7 +944,7 @@ - + @@ -956,7 +956,7 @@ - + @@ -968,7 +968,7 @@ - + @@ -980,7 +980,7 @@ - + @@ -992,7 +992,7 @@ - + @@ -1004,7 +1004,7 @@ - + @@ -1016,7 +1016,7 @@ - + @@ -1028,7 +1028,7 @@ - + @@ -1040,7 +1040,7 @@ - + @@ -1052,7 +1052,7 @@ - + @@ -1064,7 +1064,7 @@ - + @@ -1076,7 +1076,7 @@ - + @@ -1088,7 +1088,7 @@ - + @@ -1100,7 +1100,7 @@ - + @@ -1112,7 +1112,7 @@ - + @@ -1124,7 +1124,7 @@ - + @@ -1136,7 +1136,7 @@ - + @@ -1148,7 +1148,7 @@ - + @@ -1160,7 +1160,7 @@ - + @@ -1172,7 +1172,7 @@ - + @@ -1184,7 +1184,7 @@ - + @@ -1196,7 +1196,7 @@ - + @@ -1208,7 +1208,7 @@ - + @@ -1220,7 +1220,7 @@ - + @@ -1232,7 +1232,7 @@ - + @@ -1244,7 +1244,7 @@ - + @@ -1256,7 +1256,7 @@ - + @@ -1268,7 +1268,7 @@ - + @@ -1280,7 +1280,7 @@ - + @@ -1292,7 +1292,7 @@ - + @@ -1304,7 +1304,7 @@ - + @@ -1316,7 +1316,7 @@ - + @@ -1328,7 +1328,7 @@ - + @@ -1340,7 +1340,7 @@ - + @@ -1352,7 +1352,7 @@ - + @@ -1364,7 +1364,7 @@ - + @@ -1376,7 +1376,7 @@ - + @@ -1388,7 +1388,7 @@ - + @@ -1400,7 +1400,7 @@ - + @@ -1412,7 +1412,7 @@ - + @@ -1424,7 +1424,7 @@ - + @@ -1436,7 +1436,7 @@ - + @@ -1448,7 +1448,7 @@ - + @@ -1460,7 +1460,7 @@ - + @@ -1472,7 +1472,7 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index ded74bc9..9ccba432 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index 08ee0d40..77da9193 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 6e91495c..1f45a7d0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index 6bf4539d..133499d2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 2bb9cb19..9ae7d900 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index a84a536e..5381ed4a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index 1a8a6faa..158c28fd 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 059eded4..93d2fcca 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index da4a4071..4020d758 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 7a9670e3..68f27f13 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index 3e18c743..e8ba00d9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index 86881546..8d2a43ac 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index ed6f7133..c6c263f2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index bc22f83f..d4336b17 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index ed6f77b5..62560076 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index a316d65b..c77dc3b7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index 3b2d24b1..3b7d206e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index 44d32266..bb406cab 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index 38ad8068..eaafd75c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 4cb3765c..270f6c58 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index 98450ec6..85d92a46 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index cbe3e158..ceec046c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 3603d087..46bbb4db 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index c080aa13..c84950a3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index 8f775a64..c9565906 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index 52849a96..1fc5ae86 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index 4dc3fca4..a4c6afe0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index bbb62f68..dc6f172d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index 5e8d3271..d7d1d427 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index 80063ffb..34db20e3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index 5c2a5393..81e4f903 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index 08558cd9..74bfc278 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 1d269b98..59b9c1e3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index d2d9cd53..1f543c84 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index d36f5353..7fbb29da 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index f25ca157..7c01bf6c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index acbb4309..f9a1bfe0 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index 001ea764..0393ee44 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index d31d913f..a5a2e612 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index 76541418..34935b2b 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index 48b65e61..11c9a395 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index 8cd8527b..6a478eb5 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index ba8b5376..38694895 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index d6134b86..e03a38de 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index 848e82e7..adebd6ea 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index 32057bb8..e71ebd86 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore index d8e6c84c..ffc35d2b 100644 --- a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLCfg.mppackmlcore @@ -2,6 +2,9 @@ + + + diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule deleted file mode 100644 index e762dc21..00000000 --- a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/PackMLMain.mppackmlmodule +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg index 66309cc5..8cee59ad 100644 --- a/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg +++ b/mappFramework/Physical/SimulationVC4/PC/mappServices/PackML/Package.pkg @@ -3,6 +3,5 @@ PackMLCfg.mppackmlcore - PackMLMain.mppackmlmodule \ No newline at end of file From 4516d67fda79f2681403963a119bd89815c885c5 Mon Sep 17 00:00:00 2001 From: Marcel Voigt Date: Mon, 5 Jun 2023 16:17:04 -0500 Subject: [PATCH 145/159] AAZM-645 - PackML not behaving correctly, fixed --- .../VC4/PackML/PackMLMgr/PackMLMgr.st | 3 + .../VC4/PackML/PackMLMgr/StateMachine_Main.st | 68 +++++++++---------- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st index 94109772..fe25d7a3 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st @@ -38,6 +38,9 @@ PROGRAM _INIT MpPackMLStatisticsUI_0.UIConnect := ADR(MpPackMLStatisticsUIConnect); MpPackMLStatisticsUI_0(); + // Assign Production mode as selected Index since it's the start mode and preselected + MpPackMLBasicUIConnect.ModeControl.SelectedIndex := 1; + END_PROGRAM PROGRAM _CYCLIC diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st index 2e3404e0..2b2bf1ce 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st @@ -5,73 +5,73 @@ ACTION StateMachine_Main: mpPACKML_STATE_STOPPED: - // Add STOPPED actions here + // Add STOPPED actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_STARTING: - // Add STARTING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; - + // Add STARTING actions here + MpPackMLMode_0.StateComplete := TRUE; + mpPACKML_STATE_IDLE: // Add IDLE actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_SUSPENDING: - // Add SUSPENDING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + // Add SUSPENDING actions here + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_SUSPENDED: - // Add SUSPENDED actions here + // Add SUSPENDED actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_UNSUSPENDING: // Add UNSUSPENDING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; - + MpPackMLMode_0.StateComplete := TRUE; + mpPACKML_STATE_EXECUTE: - // Add EXECUTE actions here + // Add EXECUTE actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_STOPPING: - // Add STOPPING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + // Add STOPPING actions here + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_ABORTING: - // Add ABORTING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + // Add ABORTING actions here + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_ABORTED: - // Add ABORTED actions here + // Add ABORTED actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_HOLDING: - // Add HOLDING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + // Add HOLDING actions here + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_HELD: - // Add HELD actions here + // Add HELD actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_UNHOLDING: // Add UNHOLDING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; - + MpPackMLMode_0.StateComplete := TRUE; + mpPACKML_STATE_COMPLETING: // Add COMPLETING actions here + MpPackMLMode_0.StateComplete := TRUE; // NOTE: To allow the state machine to move forward, the StateComplete command has been connected // to the HMI button. The user should change this to set StateComplete to TRUE upon COMPLETING actions. @@ -79,23 +79,21 @@ ACTION StateMachine_Main: mpPACKML_STATE_COMPLETE: // Add COMPLETE actions here + MpPackMLMode_0.StateComplete := FALSE; mpPACKML_STATE_RESETTING: - // Add RESETTING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + // Add RESETTING actions here + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_CLEARING: // Add CLEARING actions here - - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + MpPackMLMode_0.StateComplete := TRUE; mpPACKML_STATE_UNDEFINED: - // Add UNDEFINED actions here - + // Add UNDEFINED actions here MpPackMLMode_0.Activate := TRUE; mpPACKML_STATE_DEACTIVATING: @@ -110,7 +108,7 @@ ACTION StateMachine_Main: // Add ACTIVATING actions here - MpPackMLBasicUIConnect.StateControl.StateComplete := TRUE; + MpPackMLMode_0.StateComplete := TRUE; END_CASE From 0b0f005560a20166e0e4274a9227d94c80e55e1e Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Tue, 6 Jun 2023 13:29:19 -0400 Subject: [PATCH 146/159] Updated font for Chinese language in Advanced report --- .../Simulation/PC/mappServices/Report/AdvCfg.mpreportcore | 1 + 1 file changed, 1 insertion(+) diff --git a/mappFramework/Physical/Simulation/PC/mappServices/Report/AdvCfg.mpreportcore b/mappFramework/Physical/Simulation/PC/mappServices/Report/AdvCfg.mpreportcore index b30dd543..bc5642e3 100644 --- a/mappFramework/Physical/Simulation/PC/mappServices/Report/AdvCfg.mpreportcore +++ b/mappFramework/Physical/Simulation/PC/mappServices/Report/AdvCfg.mpreportcore @@ -14,6 +14,7 @@ + From fa47f3900f0aaaa7c196827eaba63736c600e01b Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Tue, 6 Jun 2023 16:12:06 -0400 Subject: [PATCH 147/159] AAZM-664 - Cleaning up some names in VC4 --- .../Layers/MpPageControl.layer | 49 +----- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../Pages/MpAlarmXHistory.page | 6 +- .../mappFrameworkVisu/Pages/MpAlarmXList.page | 6 +- .../Pages/MpAlarmXListUI_Backtrace.page | 4 +- .../Pages/MpAlarmXQuery.page | 2 +- .../Pages/MpAuditCustomEventsUI.page | 2 +- .../Pages/MpAuditQueryUI.page | 18 +-- .../Pages/MpAuditTrailUI.page | 140 +++++++++--------- .../mappFrameworkVisu/Pages/MpAxisBasic.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpBackup.page | 12 +- .../Pages/MpDataStatisticsUI.page | 2 +- .../Pages/MpDataTableUI.page | 2 +- .../Pages/MpFileManagerUI.page | 8 +- .../mappFrameworkVisu/Pages/MpOeeCoreUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeListUI.page | 2 +- .../Pages/MpOeeTimelineUI.page | 2 +- .../mappFrameworkVisu/Pages/MpOeeTrendUI.page | 2 +- .../Pages/MpPackMLBasicUI.page | 2 +- .../Pages/MpPackMLStatisticsUI.page | 2 +- .../mappFrameworkVisu/Pages/MpRecipeUI.page | 94 ++++++------ .../VC4/mappFrameworkVisu/Pages/MpReport.page | 2 +- .../VC4/mappFrameworkVisu/Pages/MpSetup.page | 2 +- .../Pages/MpSystemDiagnostics.page | 2 +- .../Pages/MpUserXManagerUI_Roles.page | 2 +- .../Pages/MpUserXManagerUI_Users.page | 2 +- .../Pages/mapp1StartPage.page | 2 +- .../Logical/VC4/mappFrameworkVisu/Palette.vcr | 2 +- .../VC4/mappFrameworkVisu/VirtualKeys.vcvk | 6 +- .../VCShared/AlarmGroups/AlarmSystem.alcfg | 2 +- .../Logical/VCShared/ControlVersion.cvinfo | 2 +- .../VCShared/DataSources/DataSource.dso | 11 +- mappFramework/Logical/VCShared/Languages.vcr | 2 +- mappFramework/Logical/VCShared/Package.vcp | 2 +- 34 files changed, 183 insertions(+), 217 deletions(-) diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer index 71a8a3e4..964351e9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpPageControl.layer @@ -1,5 +1,5 @@ - + @@ -29,7 +29,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -93,32 +93,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -231,7 +205,7 @@ - + @@ -259,7 +233,7 @@ - + @@ -412,19 +386,6 @@ - - - - - - - - - - - - - diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index f00d0132..a64ab7cf 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page index c348ad2c..b550c40b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXHistory.page @@ -1,5 +1,5 @@ - + @@ -920,7 +920,7 @@ - + @@ -984,7 +984,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page index ce3309c0..f099afd1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXList.page @@ -1,5 +1,5 @@ - + @@ -965,7 +965,7 @@ - + @@ -1004,7 +1004,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page index aaa3780e..275a5ae7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXListUI_Backtrace.page @@ -1,5 +1,5 @@ - + @@ -521,7 +521,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page index 2c8063e5..49905b80 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAlarmXQuery.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page index 8edc2d24..a5a6dcb9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditCustomEventsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page index c9a636ce..571a7489 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditQueryUI.page @@ -1,5 +1,5 @@ - + @@ -1179,7 +1179,7 @@ - + @@ -1202,7 +1202,7 @@ - + @@ -1264,10 +1264,10 @@ - - - - + + + + @@ -1335,7 +1335,7 @@ - + @@ -1359,6 +1359,6 @@ - + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page index 18f779f0..c6edfe16 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAuditTrailUI.page @@ -1,5 +1,5 @@ - + @@ -201,7 +201,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -268,7 +268,7 @@ - + @@ -294,7 +294,7 @@ - + @@ -312,7 +312,7 @@ - + @@ -1389,7 +1389,7 @@ - + @@ -1415,7 +1415,7 @@ - + @@ -1430,7 +1430,7 @@ - + @@ -1459,7 +1459,7 @@ - + @@ -1475,7 +1475,7 @@ - + @@ -1491,7 +1491,7 @@ - + @@ -1507,7 +1507,7 @@ - + @@ -1524,7 +1524,7 @@ - + @@ -1550,7 +1550,7 @@ - + @@ -1567,7 +1567,7 @@ - + @@ -1593,7 +1593,7 @@ - + @@ -1612,7 +1612,7 @@ - + @@ -1632,7 +1632,7 @@ - + @@ -1844,107 +1844,107 @@ - - - + + + - + - - - - + + + + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - + - + - - - - - + + + + + - + - - - - + + + + - - - - - + + + + + - - - - - + + + + + @@ -1960,11 +1960,11 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page index 39cd6086..cb37445d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpAxisBasic.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page index b6291d25..0c8409c9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpBackup.page @@ -1,5 +1,5 @@ - + @@ -1307,7 +1307,7 @@ - + @@ -1922,7 +1922,7 @@ - + @@ -2210,7 +2210,7 @@ - + @@ -2254,14 +2254,14 @@ - + - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page index f2de2518..5940f5c6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page index 6b4d124b..d4f96cf4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpDataTableUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page index e3808b75..57bd3549 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpFileManagerUI.page @@ -1,5 +1,5 @@ - + @@ -2343,7 +2343,7 @@ - + @@ -2370,7 +2370,7 @@ - + @@ -2397,7 +2397,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page index 55c8a501..40e89013 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeCoreUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page index 9b341e1f..be011211 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeListUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page index 35609745..cb4c7f41 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTimelineUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page index cf1622ae..e260efb7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpOeeTrendUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page index 4f6ba077..d13b65af 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLBasicUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page index cfacc09c..d1972f98 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpPackMLStatisticsUI.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page index 8d54c7dd..4f746464 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpRecipeUI.page @@ -1,5 +1,5 @@ - + @@ -622,7 +622,7 @@ - + @@ -650,7 +650,7 @@ - + @@ -678,7 +678,7 @@ - + @@ -706,7 +706,7 @@ - + @@ -989,7 +989,7 @@ - + @@ -1016,7 +1016,7 @@ - + @@ -1043,7 +1043,7 @@ - + @@ -1070,7 +1070,7 @@ - + @@ -3082,7 +3082,7 @@ - + @@ -3107,7 +3107,7 @@ - + @@ -3121,7 +3121,7 @@ - + @@ -3133,7 +3133,7 @@ - + @@ -3152,7 +3152,7 @@ - + @@ -3171,7 +3171,7 @@ - + @@ -3190,7 +3190,7 @@ - + @@ -3204,7 +3204,7 @@ - + @@ -3218,7 +3218,7 @@ - + @@ -3232,7 +3232,7 @@ - + @@ -3246,7 +3246,7 @@ - + @@ -3254,7 +3254,7 @@ - + @@ -4128,7 +4128,7 @@ - + @@ -4141,32 +4141,32 @@ - - + + - - + + - - + + - + - - + + @@ -4193,10 +4193,10 @@ - + - + @@ -4204,31 +4204,31 @@ - + - + - + - + - + @@ -4241,25 +4241,25 @@ - + - + - + - + @@ -4306,11 +4306,11 @@ - - - - - + + + + + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page index 172b61de..7e3c04b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpReport.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page index e806b76c..86660bd1 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSetup.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page index db9ee8a6..113e547e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpSystemDiagnostics.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page index 906b49b1..57dc15c3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Roles.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page index a244a903..3a21180a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/MpUserXManagerUI_Users.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page index 48e13983..0a314944 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Pages/mapp1StartPage.page @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr index 2e18d098..7e7f182e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Palette.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk index 78b116fd..66c5189f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/VirtualKeys.vcvk @@ -1,5 +1,5 @@ - + @@ -3600,10 +3600,6 @@ - - - - diff --git a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg index a52e171b..dee5eb8b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg +++ b/mappFramework/Logical/VCShared/AlarmGroups/AlarmSystem.alcfg @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/ControlVersion.cvinfo b/mappFramework/Logical/VCShared/ControlVersion.cvinfo index d94e3024..034aff4f 100644 --- a/mappFramework/Logical/VCShared/ControlVersion.cvinfo +++ b/mappFramework/Logical/VCShared/ControlVersion.cvinfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/DataSources/DataSource.dso b/mappFramework/Logical/VCShared/DataSources/DataSource.dso index cf6fb95c..02bf03f8 100644 --- a/mappFramework/Logical/VCShared/DataSources/DataSource.dso +++ b/mappFramework/Logical/VCShared/DataSources/DataSource.dso @@ -1,5 +1,5 @@ - + @@ -8602,6 +8602,15 @@ + + + + + + + + + diff --git a/mappFramework/Logical/VCShared/Languages.vcr b/mappFramework/Logical/VCShared/Languages.vcr index afbf7216..a42959ae 100644 --- a/mappFramework/Logical/VCShared/Languages.vcr +++ b/mappFramework/Logical/VCShared/Languages.vcr @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/Package.vcp b/mappFramework/Logical/VCShared/Package.vcp index 0a577443..37e3db11 100644 --- a/mappFramework/Logical/VCShared/Package.vcp +++ b/mappFramework/Logical/VCShared/Package.vcp @@ -1,5 +1,5 @@ - + From 18f7b86c10304e805410404da400f11ab62acfc7 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Tue, 6 Jun 2023 16:47:06 -0400 Subject: [PATCH 148/159] Small clean-up changes for coding guidelines --- .../Infrastructure/LoggerDemo/ANSIC.prg | 11 ------- .../Infrastructure/LoggerDemo/LoggerDemo.typ | 14 -------- .../Infrastructure/LoggerDemo/LoggerDemo.var | 27 --------------- .../LoggerDemo/LoggerDemoCyclic.c | 26 --------------- .../LoggerDemo/LoggerDemoExit.c | 24 -------------- .../LoggerDemo/LoggerDemoInit.c | 33 ------------------- .../PackML/PackMLMgr/PackMLMgr.var | 6 ++-- .../Logical/Infrastructure/Package.pkg | 3 +- .../VC4/AlarmX/AlarmMgr/AlarmMgr.st | 2 +- .../VC4/AlarmX/AlarmMgr/HMIActions.st | 13 +++++--- .../VC4/Audit/AuditMgr/AuditMgr.st | 2 +- .../VC4/Audit/AuditMgr/AuditMgr.typ | 16 +++++---- .../VC4/Audit/AuditMgr/AuditMgr.var | 10 +++--- .../VC4/Audit/AuditMgr/ChangeConfiguration.st | 2 +- .../VC4/Audit/AuditMgr/ExecuteQuery.st | 2 +- .../VC4/Audit/AuditMgr/HMIActions.st | 11 ++++--- .../VC4/Backup/BackupMgr/BackupMgr.st | 7 ++-- .../Backup/BackupMgr/ChangeConfiguration.st | 3 ++ .../VC4/Backup/BackupMgr/HMIActions.st | 10 ++++-- .../VC4/File/FileMgr/FIFOOperations.st | 12 ++++--- .../VC4/File/FileMgr/FileMgr.st | 5 ++- .../VC4/File/FileMgr/FileMgr.typ | 5 --- .../VC4/File/FileMgr/FileMgr.var | 10 +++--- .../VC4/File/FileMgr/HMIActions.st | 18 +++++----- .../VC4/PackML/PackMLMgr/IEC.prg | 2 +- .../VC4/PackML/PackMLMgr/PackMLMgr.st | 4 +-- .../{StateMachine_Main.st => StateMachine.st} | 2 +- .../VC4/Recipe/RecipeMgr/HMIActions.st | 13 +++----- .../VC4/Recipe/RecipeMgr/RecipeMgr.st | 2 +- .../VC4/Recipe/RecipeMgr/RecipeMgr.typ | 5 --- .../VC4/Report/ReportMgr/HMIActions.st | 14 ++++---- .../VC4/Report/ReportMgr/ReportMgr.st | 8 ++--- .../VC4/UserX/UserXMgr/HMIAction.st | 22 ++++++------- .../VC4/UserX/UserXMgr/UserXMgr.st | 2 +- .../VC4/UserX/UserXMgr/UserXMgr.typ | 24 +++++++++----- .../VC4/UserX/UserXMgr/UserXMgr.var | 6 ++-- mappFramework/Physical/UnitTest/PC_any/Cpu.sw | 1 - 37 files changed, 125 insertions(+), 252 deletions(-) delete mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/ANSIC.prg delete mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ delete mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var delete mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c delete mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c delete mode 100644 mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c rename mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/{StateMachine_Main.st => StateMachine.st} (98%) diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/ANSIC.prg b/mappFramework/Logical/Infrastructure/LoggerDemo/ANSIC.prg deleted file mode 100644 index af6ab130..00000000 --- a/mappFramework/Logical/Infrastructure/LoggerDemo/ANSIC.prg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - LoggerDemo.typ - LoggerDemo.var - LoggerDemoInit.c - LoggerDemoCyclic.c - LoggerDemoExit.c - - \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ deleted file mode 100644 index 77ebf780..00000000 --- a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.typ +++ /dev/null @@ -1,14 +0,0 @@ -(******************************************************************** - * COPYRIGHT -- B&R - ******************************************************************** - * Program: loadLogger - * File: loadLogger.typ - * Author: buchananw - * Created: August 20, 2009 - ******************************************************************** - * Local data types of program loadLogger - ********************************************************************) - -TYPE - -END_TYPE diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var deleted file mode 100644 index cb28d341..00000000 --- a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemo.var +++ /dev/null @@ -1,27 +0,0 @@ -(******************************************************************** - * COPYRIGHT -- B&R - ******************************************************************** - * Program: loadLogger - * File: loadLogger.var - * Author: buchananw - * Created: August 20, 2009 - ******************************************************************** - * Local variables of program loadLogger - ********************************************************************) -VAR - myString : STRING[255] := ''; - testDebug : BOOL := FALSE; - testInfo : BOOL := FALSE; - testWarn : BOOL := FALSE; - testError : BOOL := FALSE; - testFatal : BOOL := FALSE; - enableTest : BOOL := FALSE; - AsLoggerLogBook_0 : AsLoggerLogBook := (0); - AsLoggerFile_0 : AsLoggerFile := (0); - AsLoggerServer_0 : AsLoggerServer := (0); - testFloat : REAL := 1.65; - testInt : INT := 0; - testString : STRING[50] := 'Hello World'; - testBool : BOOL := TRUE; - arguments : ARRAY[0..8] OF UDINT := [9(0)]; -END_VAR diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c deleted file mode 100644 index ea0665c7..00000000 --- a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoCyclic.c +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************** - * COPYRIGHT -- B&R - ******************************************************************** - * Program: LoggerDemo - * File: LoggerDemoCyclic.c - * Author: buchananw - * Created: August 20, 2009 - ******************************************************************** - * Implementation of program loadLogger - ********************************************************************/ - -#include - -#ifdef _DEFAULT_INCLUDES -#include -#endif - -#include -#include - -void _CYCLIC loadLoggerCyclic( void ) -{ - AsLoggerServer(&AsLoggerServer_0); -// AsLoggerFile(&AsLoggerFile_0); -// AsLoggerLogBook(&AsLoggerLogBook_0); -} diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c deleted file mode 100644 index 7851204d..00000000 --- a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoExit.c +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************** - * COPYRIGHT -- B&R - ******************************************************************** - * Program: LoggerDemo - * File: LoggerDemoExit.c - * Author: buchananw - * Created: August 20, 2009 - *******************************************************************/ - -#include -#ifdef _DEFAULT_INCLUDES - #include -#endif - -#include - -void _EXIT logServerExit( void ) -{ - AsLoggerServer_0.disconnect = true; - do - { - AsLoggerServer(&AsLoggerServer_0); - }while (AsLoggerServer_0.status == 65535); -} diff --git a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c b/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c deleted file mode 100644 index 55056df1..00000000 --- a/mappFramework/Logical/Infrastructure/LoggerDemo/LoggerDemoInit.c +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************** - * COPYRIGHT -- B&R - ******************************************************************** - * Program: LoggerDemo - * File: lLoggerDemoInit.c - * Author: buchananw - * Created: August 20, 2009 - ******************************************************************** - * Implementation of program loadLogger - ********************************************************************/ - -#include - -#ifdef _DEFAULT_INCLUDES - #include -#endif - -void _INIT loadLoggerInit( void ) -{ - AsLoggerServer_0.port = 15622; - AsLoggerServer_0.level = LOG_LEVEL_DEBUG; - - strcpy(AsLoggerFile_0.delimiter, ","); - strcpy(AsLoggerFile_0.device,"C"); - strcpy(AsLoggerFile_0.fileExtension,"csv"); - strcpy(AsLoggerFile_0.fileName,"logTest"); - AsLoggerFile_0.maxFiles = 10; - AsLoggerFile_0.maxFileSize = 100000; - AsLoggerFile_0.level = LOG_LEVEL_DEBUG; - - AsLoggerLogBook_0.level = LOG_LEVEL_DEBUG; - -} diff --git a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var index ac3ff8b3..1ebfa468 100644 --- a/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/PackML/PackMLMgr/PackMLMgr.var @@ -7,12 +7,10 @@ VAR END_VAR (*Constants*) (*Structure Types*) -VAR - HmiPackML : PackMLHmiInterfaceType := (Parameters:=(StateEnabled:=(Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=TRUE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=TRUE,Unsuspending:=TRUE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE))); (*HMI interface structure*) -END_VAR -(*Variables*) VAR Manual : PackMLStateEnabledType := (Clearing:=FALSE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=FALSE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=FALSE,Held:=FALSE,Unholding:=FALSE,Suspending:=FALSE,Unsuspending:=FALSE,Resetting:=TRUE,Completing:=FALSE,Complete:=FALSE); (*State active / inactive control*) Maintenance : PackMLStateEnabledType := (Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=FALSE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=FALSE,Unsuspending:=FALSE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE); (*State active / inactive control*) AutomaticMode : PackMLStateEnabledType := (Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=TRUE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=TRUE,Unsuspending:=TRUE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE); (*State active / inactive control*) + HmiPackML : PackMLHmiInterfaceType := (Parameters:=(StateEnabled:=(Clearing:=TRUE,Stopped:=TRUE,Starting:=TRUE,Idle:=TRUE,Suspended:=TRUE,Execute:=TRUE,Stopping:=TRUE,Aborting:=TRUE,Aborted:=TRUE,Holding:=TRUE,Held:=TRUE,Unholding:=TRUE,Suspending:=TRUE,Unsuspending:=TRUE,Resetting:=TRUE,Completing:=TRUE,Complete:=TRUE))); (*HMI interface structure*) END_VAR +(*Variables*) diff --git a/mappFramework/Logical/Infrastructure/Package.pkg b/mappFramework/Logical/Infrastructure/Package.pkg index a4971a7a..4dc05d1f 100644 --- a/mappFramework/Logical/Infrastructure/Package.pkg +++ b/mappFramework/Logical/Infrastructure/Package.pkg @@ -13,8 +13,7 @@ UserX Audit Report - VC4 - LoggerDemo PackML + VC4 \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st index 62645e77..54bcc756 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/AlarmMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: April 12, 2022 -// Description: Tasks for alarm management. +// Description: Tasks for alarm management with VC4 front-end. //*********************************************************************** PROGRAM _INIT diff --git a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st index a968e15a..236c6bdc 100644 --- a/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/AlarmX/AlarmMgr/HMIActions.st @@ -1,11 +1,10 @@ ACTION VC4_Init: + // Initial layer visibility setup HmiAlarmX.Status.HistoryExportLayer := HIDE; END_ACTION - - ACTION VC4_Cyclic: // AlarmHistory Export process has been completed @@ -16,21 +15,25 @@ ACTION VC4_Cyclic: // Language assignments CASE HmiAlarmX.Parameters.Language OF - 0://English + // English + 0: MpAlarmXListUIConnect.Language := 'en'; MpAlarmXHistory_0.Language := ADR('en'); MpAlarmXHistoryUIConnect.Language := 'en'; QueryActiveAlarms_0.Language := ADR('en'); - 1://German + // German + 1: MpAlarmXListUIConnect.Language := 'de'; MpAlarmXHistory_0.Language := ADR('de'); MpAlarmXHistoryUIConnect.Language := 'de'; QueryActiveAlarms_0.Language := ADR('de'); - 2://Chinese + // Chinese + 2: MpAlarmXListUIConnect.Language := 'zh'; MpAlarmXHistory_0.Language := ADR('zh'); MpAlarmXHistoryUIConnect.Language := 'zh'; QueryActiveAlarms_0.Language := ADR('zh'); + END_CASE END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st index 62a100c3..3f4cc489 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: Sept 1, 2022 -// Description: Task for audit management. +// Description: Task for audit management with VC4 front-end. //*********************************************************************** PROGRAM _INIT diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ index aa6ffe6e..281b57ef 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.typ @@ -1,3 +1,4 @@ +(*Structure types*) TYPE AuditQueryHMIType : STRUCT (*Datatype for the structure which rearranges the query data from AuditQuery into a structure of arrays for easy connection to the Table widget in mapp View*) @@ -11,12 +12,6 @@ TYPE Option : USINT; (*Index value of the selected query type in the dropdown on the query tab*) DPSelectedIndex : USINT; END_STRUCT; - ActiveAuditStateEnum : - ( (*Enumeration for the state for the query state machine*) - ACTIVE_AUDIT_WAIT, (*Wait state*) - ACTIVE_AUDIT_QUERY, (*State to query the Audit data*) - ACTIVE_AUDIT_NEXT (*State to check if more Audits meet the query criteria and need to be queried*) - ); AuditCustomEventType : STRUCT (*Structure for custom events handling*) Set : BOOL; (*Trigger the assigned function*) Type : WSTRING[100]; (*Entered when creating the entry under %typ*) @@ -77,3 +72,12 @@ TYPE END_TYPE (*Enumerations*) + +TYPE + ActiveAuditStateEnum : + ( (*Enumeration for the state for the query state machine*) + ACTIVE_AUDIT_WAIT, (*Wait state*) + ACTIVE_AUDIT_QUERY, (*State to query the Audit data*) + ACTIVE_AUDIT_NEXT (*State to check if more Audits meet the query criteria and need to be queried*) + ); +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var index 1274705c..7e26ef22 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/AuditMgr.var @@ -21,6 +21,11 @@ VAR AuditQuery : {REDUND_UNREPLICABLE} AuditQueryType; (*Query results and status*) AuditTrailConfig : MpAuditTrailConfigType; (*Configuration structure for changing archiving setup*) MpAuditTrailUIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) +END_VAR +VAR RETAIN + ArchiveSettingsRetain : AuditArchiveParType; (*Store settings in retain memory to be applied after boot*) +END_VAR +VAR MpAuditTrail_CEvents_UIConnect : MpAuditTrailUIConnectType; (*MpAuditUI connection to the HMI*) END_VAR (*Variables*) @@ -29,8 +34,3 @@ VAR ident : UDINT; (*Identifier for task deployment*) VariableMonitorExample : REAL; (*Used for the variable monitor example*) END_VAR -VAR RETAIN - ArchiveSettingsRetain : AuditArchiveParType; (*Store settings in retain memory to be applied after boot*) -END_VAR - - diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st index 346df19a..7ee6faac 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ChangeConfiguration.st @@ -19,7 +19,7 @@ ACTION ChangeConfiguration: IF (MpAuditTrailConfig_0.Load = TRUE) THEN LoadAuditConfiguration; END_IF - // after save the AuditTrail needs to restart + // After save the AuditTrail needs to restart IF (MpAuditTrailConfig_0.Save = TRUE) THEN MpAuditTrail_0.Enable := FALSE; END_IF diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st index 8caf46ce..af5e271b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/ExecuteQuery.st @@ -71,7 +71,7 @@ ACTION ExecuteQuery: END_FOR - //VC4 + // VC4 IF HmiAudit.Status.Query.DPSelectedIndex = 0 THEN HmiAudit.Status.Query.Name := 'UserEvents'; ELSIF HmiAudit.Status.Query.DPSelectedIndex = 1 THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st index e66a202d..08e1de32 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Audit/AuditMgr/HMIActions.st @@ -57,20 +57,23 @@ END_ACTION ACTION VC4_Cyclic: - //language assignments + // Language assignments CASE HmiAudit.Parameters.Language OF - 0://English + //English + 0: MpAuditTrail_0.Language := ADR('en'); MpAuditTrailUI_0.Language := ADR('en'); MpAuditTrail_CEvents.Language := ADR('en'); MpAuditTrail_CEvents_UI_0.Language := ADR('en'); - 1://German + // German + 1: MpAuditTrail_0.Language := ADR('de'); MpAuditTrailUI_0.Language := ADR('de'); MpAuditTrail_CEvents.Language := ADR('de'); MpAuditTrail_CEvents_UI_0.Language := ADR('de'); - 2://Chinese + // Chinese + 2: MpAuditTrail_0.Language := ADR('zh'); MpAuditTrailUI_0.Language := ADR('zh'); MpAuditTrail_CEvents.Language := ADR('zh'); diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st index 906fc4e5..52e80532 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/BackupMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: April 12, 2022 -// Description: Task for backup management. +// Description: Task for backup management with VC4 front-end. //*********************************************************************** PROGRAM _INIT @@ -119,7 +119,7 @@ PROGRAM _CYCLIC BACKUP_REFRESHING_LIST: IF MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_REFRESH THEN - // Wait for the list to be refreshed with the newly created backup file + // Wait for the list to be refreshed with the newly created backup file ELSIF MpFileManagerUIConnect.Status = mpFILE_UI_STATUS_IDLE THEN HmiBackup.Status.LastSelectedIndex := HmiBackup.Status.LastSelectedIndex + 1; BackupState := BACKUP_IDLE; @@ -170,7 +170,7 @@ PROGRAM _CYCLIC BACKUP_ERROR: MpBackupCore_0.Create := FALSE; MpBackupCore_0.Install := FALSE; - IF MpBackupCore_0.Info.Diag.StatusID.ID <> 0 THEN //-1064159486 + IF MpBackupCore_0.Info.Diag.StatusID.ID <> 0 THEN HmiBackup.Status.Error := TRUE; END_IF IF HmiBackup.Commands.Reset OR (MpBackupCore_0.Info.Diag.StatusID.ID = -1064159486) THEN @@ -222,6 +222,7 @@ PROGRAM _CYCLIC MpBackupCore_0(); MpFileManagerUI_0(); MpBackupCoreConfig_0(); + END_PROGRAM PROGRAM _EXIT diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st index e6fd70f5..27fb4f8b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/ChangeConfiguration.st @@ -2,6 +2,7 @@ ACTION ChangeConfiguration: MpBackupCoreConfig_0.MpLink := ADR(gMpLinkBackupCore); MpBackupCoreConfig_0.Configuration := ADR(MpBackupConfiguration); + IF (MpBackupCoreConfig_0.Error = TRUE) THEN // Loading currently always throws an error about failed to write Auditing.Type IF (MpBackupCoreConfig_0.StatusID = mpBACKUP_ERR_CONFIG_LOAD) THEN @@ -12,8 +13,10 @@ ACTION ChangeConfiguration: MpBackupCoreConfig_0.Save := FALSE; MpBackupCoreConfig_0.ErrorReset := TRUE; END_IF + MpBackupCoreConfig_0(); MpBackupCoreConfig_0.ErrorReset := FALSE; + IF (MpBackupCoreConfig_0.CommandDone = TRUE) THEN IF (MpBackupCoreConfig_0.Load = TRUE) THEN LoadBackupConfiguration; diff --git a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st index c4b00672..e10b1a2f 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Backup/BackupMgr/HMIActions.st @@ -5,6 +5,7 @@ ACTION SaveBackupConfiguration: MpBackupConfiguration.AutomaticBackup.DeviceName := HmiBackup.Parameters.AutomaticBackup.Device; MpBackupConfiguration.AutomaticBackup.OverwriteOldest := HmiBackup.Parameters.AutomaticBackup.OverwriteOldest; MpBackupConfiguration.AutomaticBackup.Mode.Time := UDINT_TO_TOD((((USINT_TO_UDINT(HmiBackup.Parameters.AutomaticBackup.Mode.Hour) * 60) + HmiBackup.Parameters.AutomaticBackup.Mode.Minute) * 60) * 1000); + CASE HmiBackup.Parameters.AutomaticBackup.Mode.Interval OF BACKUP_EVERYDAY: MpBackupConfiguration.AutomaticBackup.Mode.Interval := mpBACKUP_INTERVAL_DAILY; @@ -44,6 +45,7 @@ ACTION LoadBackupConfiguration: HmiBackup.Parameters.AutomaticBackup.OverwriteOldest := MpBackupConfiguration.AutomaticBackup.OverwriteOldest; HmiBackup.Parameters.AutomaticBackup.Mode.Hour := UDINT_TO_USINT(TOD_TO_UDINT(MpBackupConfiguration.AutomaticBackup.Mode.Time) / 1000 / 60 / 60); HmiBackup.Parameters.AutomaticBackup.Mode.Minute := UDINT_TO_USINT(TOD_TO_UDINT(MpBackupConfiguration.AutomaticBackup.Mode.Time) / 1000 / 60) - (HmiBackup.Parameters.AutomaticBackup.Mode.Hour * 60); + CASE MpBackupConfiguration.AutomaticBackup.Mode.Interval OF mpBACKUP_INTERVAL_DAILY: HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_EVERYDAY; @@ -65,6 +67,7 @@ ACTION LoadBackupConfiguration: HmiBackup.Parameters.AutomaticBackup.Mode.Interval := BACKUP_SUNDAY; END_CASE END_CASE + END_ACTION ACTION FileManager: @@ -72,6 +75,7 @@ ACTION FileManager: MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIBackup); MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); MpFileManagerUI_0(); + FOR i := 0 TO ((SIZEOF(HmiBackup.Status.FileNames)/SIZEOF(HmiBackup.Status.FileNames[0])) - 1) DO HmiBackup.Status.FileNames[i] := MpFileManagerUIConnect.File.List.Items[i].Name; HmiBackup.Status.TimeStamps[i] := MpFileManagerUIConnect.File.List.Items[i].LastModified; @@ -98,7 +102,7 @@ END_ACTION ACTION VC4_Cylic: - //---------------------- VC4 ------------------------// + IF HmiBackup.Status.DeviceDataProviderSelectedIndex = 0 THEN HmiBackup.Parameters.AutomaticBackup.Device := 'mappBackupFiles'; @@ -155,14 +159,14 @@ ACTION VC4_Cylic: END_IF; // Operation Delete Button - IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN + IF NOT HmiBackup.Status.SimulationActive THEN HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_ACTIVATED; ELSE HmiBackup.Status.ButtonOperation.OperationDelete := OPERATION_DEACTIVATED; END_IF; // Operation Settings Button - IF (*admin AND*) NOT HmiBackup.Status.SimulationActive THEN + IF NOT HmiBackup.Status.SimulationActive THEN HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_ACTIVATED; ELSE HmiBackup.Status.ButtonOperation.OperationSettings := OPERATION_DEACTIVATED; diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st index fbcd7bd6..8e73d681 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FIFOOperations.st @@ -8,7 +8,7 @@ ACTION FIFOOperation: HmiFile.Commands.CheckFolder := HmiFile.Parameters.Fifo.Enable; END_IF - //device name declare + // Device name declare HmiFile.Parameters.Fifo.DeviceName := HmiFile.Status.DeviceDataProvider[HmiFile.Parameters.Fifo.SelectedDevice]; IF HmiFile.Status.FIFOLayerStatus = DISPLAY THEN @@ -63,7 +63,7 @@ ACTION FIFOOperation: END_IF END_FOR IF (HmiFile.Parameters.Fifo.DeviceName <> MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames[MpFileManagerUIConnect_FIFO.DeviceList.SelectedIndex]) THEN - // file device not found + // File device not found HmiFile.Status.DeleteStep := FILE_DELETE_WAIT; ELSIF (MpFileManagerUIConnect_FIFO.Status = mpFILE_UI_STATUS_IDLE) THEN MpFileManagerUIConnect_FIFO.File.Refresh := TRUE; @@ -120,7 +120,7 @@ ACTION FIFOOperation: IF (TON_Wait.Q = TRUE) THEN TON_Wait.IN := FALSE; Fifo_Count := Fifo_Count + 1; - // in case we are stuck trying to get to the last page + // In case we are stuck trying to get to the last page HmiFile.Status.DeleteStep := SEL(Fifo_Count > 10, FILE_GO_TO_END, FILE_DELETE_WAIT); END_IF TON_Wait(); @@ -143,7 +143,7 @@ ACTION FIFOOperation: MpFileManagerUIConnect_FIFO.File.MultiSelect := TRUE; END_IF HmiFile.Status.AutoDeleteSelected := 0; - // start from the first file to delete and select everything after + // Start from the first file to delete and select everything after // e.g. if there are 100 files and we want to keep 60 files around then we'd start at 60 + 0 MOD 50 = 10 and go to index 49 FileNameArraySize := SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items)/SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0]); IF (HmiFile.Parameters.Fifo.MaxNumberOfFiles >= FileNameArraySize) THEN @@ -239,7 +239,7 @@ ACTION FIFOOperation: IF (HmiFile.Parameters.Fifo.FifoType = FILE_FIFO_SIZE_OF_FOLDER) THEN HmiFile.Status.DeleteStep := SEL((HmiFile.Status.FolderSize > (HmiFile.Parameters.Fifo.MaxFolderSize*1024)), FILE_RESET_SORT_BY, FILE_GO_TO_END); ELSE - // if more files need to be deleted then go back to select the oldest files + // If more files need to be deleted then go back to select the oldest files HmiFile.Status.DeleteStep := SEL((MpFileManagerUIConnect_FIFO.File.PathInfo.FileCount > HmiFile.Parameters.Fifo.MaxNumberOfFiles), FILE_RESET_SORT_BY, FILE_GO_TO_END); END_IF END_IF @@ -288,10 +288,12 @@ ACTION FIFOOperation: MpFileManagerUIConnect_FIFO.DeviceList.DeviceNames[0] := HmiFile.Parameters.Fifo.DeviceName; MpFileManagerUI_FIFO.UIConnect := ADR(MpFileManagerUIConnect_FIFO); + // Assign MpLink MpFileManagerUI_FIFO.MpLink := ADR(gMpLinkFileManagerUIFile_FIFO); MpFileManagerUI_FIFO.UISetup.FileListSize := SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items) / SIZEOF(MpFileManagerUIConnect_FIFO.File.List.Items[0]); + // Call function block MpFileManagerUI_FIFO(); diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st index 60149bca..d44319bd 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: April 12, 2022 -// Description: Task for file management +// Description: Task for file management with VC4 front-end. //*********************************************************************** PROGRAM _INIT @@ -43,7 +43,6 @@ PROGRAM _INIT HmiFile.Parameters.Fifo.ScanInterval := 60; END_IF - // Initialize which folders should exist PathCheck.DeviceList := MpFileManagerUIConnect.DeviceList; @@ -83,7 +82,7 @@ PROGRAM _INIT // Restored the retained values to the FIFO settings HmiFile.Parameters.Fifo := FifoSettingsRetain; - // if the system has been opened just now + // Handle retained FIFO settings VC4_Init; END_PROGRAM diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ index 5dcae25d..dcd56ca4 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.typ @@ -20,11 +20,6 @@ TYPE StepUp : BOOL; (*VC4 button StepUp*) Clicked : BOOL; (*VC4 button clicked*) END_STRUCT; -END_TYPE - -(**) - -TYPE FileHmiParametersType : STRUCT (*Structure to hold parameters for the mapp View HMI*) OldSortOrder : MpFileManagerUISortOrderEnum; (*Previous sord order*) Fifo : FileHmiParaFifoType; (*Parameters for the FIFO feature (first-in-first-out)*) diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var index 11106684..1e29f30e 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/FileMgr.var @@ -5,7 +5,6 @@ VAR R_TRIG_CheckStatus : R_TRIG; (*Trigger function block*) TON_Wait : TON; (*FIFO handling support*) TON_ScanFolder : TON; (*Timer to scan for folder*) - CurrentIndex : UDINT; (*FIFO handling support deleting more then 50 files*) DirRead_FolderSize : DirRead; (*FIFO handling support reading current folder size*) END_VAR (*Constants*) @@ -18,10 +17,16 @@ VAR MpFileManagerUIConnect_FIFO : {REDUND_UNREPLICABLE} MpFileManagerUIConnectType; (*File manager connection to the HMI*) HmiFile : FileHmiInterfaceType; (*HMI interface structure*) PathCheck : FilePathCheckType; (*Parameter structure controlling the visible file device based on available folders*) +END_VAR +VAR RETAIN + FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) +END_VAR +VAR DirectoryData : fiDIR_READ_DATA; (*FIFO handling support reading current folder size*) END_VAR (*Variables*) VAR + CurrentIndex : UDINT; (*FIFO handling support deleting more then 50 files*) i : USINT; (*Index for FOR loops*) DeviceListCount : USINT; (*Counter for accessible file devices*) Ident : UDINT; (*Ident of a program on target*) @@ -35,6 +40,3 @@ VAR StartIndex : USINT; (*FIFO handling support *) Fifo_Count : USINT; (*FIFO handling support current file count*) END_VAR -VAR RETAIN - FifoSettingsRetain : {REDUND_UNREPLICABLE} FileHmiParaFifoType; (*Store FIFO settings in retain memory to be applied after boot*) -END_VAR diff --git a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st index 1255ad88..f76cb42b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/File/FileMgr/HMIActions.st @@ -6,6 +6,7 @@ ACTION VC4_Init: END_IF; HmiFile.Status.FIFOLayerStatus := HIDE; + END_ACTION ACTION VC4_Cyclic: @@ -36,7 +37,7 @@ ACTION VC4_Cyclic: // Fill file info string arrays IF MpFileManagerUIConnect.File.List.Items[i].IsFolder THEN HmiFile.Status.InfoFile.Type[i] := 'FOLDER'; - ELSE (* file *) + ELSE HmiFile.Status.InfoFile.Type[i] := 'FILE'; END_IF IF MpFileManagerUIConnect.File.List.Items[i].IsSelected THEN @@ -45,7 +46,7 @@ ACTION VC4_Cyclic: HmiFile.Status.InfoFile.IsSelected[i] := '-'; END_IF - // if file not exist clear objects + // If file does not exist, clear objects IF HmiFile.Status.FileNames[i] = '' THEN HmiFile.Status.TimeStamps[i] := ''; HmiFile.Status.Size[i] := ''; @@ -53,10 +54,8 @@ ACTION VC4_Cyclic: HmiFile.Status.InfoFile.Type[i] := ''; END_IF; - END_FOR - // Mutli selection IF (MpFileManagerUIConnect.File.MultiSelect = FALSE) THEN MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].IsSelected := TRUE; @@ -95,7 +94,6 @@ ACTION VC4_Cyclic: HmiFile.Status.BackButton := (FolderDepthCount > 0); - // File SelectedIndex manager IF HmiFile.Commands.FileList.PageUp THEN HmiFile.Commands.FileList.PageUp := FALSE; @@ -119,8 +117,8 @@ ACTION VC4_Cyclic: END_IF HmiFile.Status.DefaultFileSelected := ((MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Default.par') OR - (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Machine.mcfg')) AND - MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; + (MpFileManagerUIConnect.File.List.Items[HmiFile.Status.SelectedIndex].Name = 'Machine.mcfg')) AND + MpFileManagerUIConnect.DeviceList.SelectedIndex = 0; END_ACTION @@ -140,9 +138,9 @@ ACTION FormatDeviceDataProvider: END_FOR MaxDeviceNameIndex := ((SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames) / SIZEOF(MpFileManagerUIConnect.DeviceList.DeviceNames[0])) - 1); - //Check initilized folder for existance and remove any from the device list that don't exist + // Check initilized folder for existance and remove any from the device list that don't exist IF (IdentStatus = 0) THEN - // copy device name from source list into the actual device list + // Copy device name from source list into the actual device list MpFileManagerUIConnect.DeviceList.DeviceNames[Index] := PathCheck.DeviceList.DeviceNames[DeviceListCount]; Index := Index + 1; DeviceListCount := DeviceListCount + 1; @@ -156,7 +154,7 @@ ACTION FormatDeviceDataProvider: ELSIF (IdentStatus = 3324) THEN DeviceListCount := DeviceListCount + 1; IF DeviceListCount > ((SIZEOF(PathCheck.DeviceList.DeviceNames) / SIZEOF(PathCheck.DeviceList.DeviceNames[0])) - 1) THEN - //Delete entries past the actual number of devices found + // Delete entries past the actual number of devices found FOR i:=Index TO MaxDeviceNameIndex DO MpFileManagerUIConnect.DeviceList.DeviceNames[i] := ''; END_FOR diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg index fe2ad3ca..acced1bc 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/IEC.prg @@ -5,6 +5,6 @@ PackMLMgr.st PackMLMgr.typ PackMLMgr.var - StateMachine_Main.st + StateMachine.st \ No newline at end of file diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st index fe25d7a3..00fdd695 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: June 1, 2023 -// Description: Task for handling PackML control. +// Description: Task for handling PackML control with VC4 front-end. //*********************************************************************** PROGRAM _INIT @@ -46,7 +46,7 @@ END_PROGRAM PROGRAM _CYCLIC // Call all cyclic actions - StateMachine_Main; + StateMachine; // Assign MpLinks & UIConnects MpPackMLCore_0.MpLink := ADR(gMpLinkPackMLCore); diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine.st similarity index 98% rename from mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st rename to mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine.st index 2b2bf1ce..49e7e19b 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine_Main.st +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/StateMachine.st @@ -1,5 +1,5 @@ -ACTION StateMachine_Main: +ACTION StateMachine: CASE MpPackMLCore_0.StateCurrent OF diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st index 0f2f00d9..c6a24ff9 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -34,6 +34,7 @@ ACTION FormatDeviceDataProvider: END_ACTION ACTION LoadStatus: + // Configure recipe actions HmiRecipe.Status.FilesAvailable := (MpRecipeUIConnect.Recipe.List.Names[0] <> ''); HmiRecipe.Status.LoadAllowed := HmiRecipe.Status.FilesAvailable AND NOT HmiRecipe.Status.InvalidRecipe; @@ -43,7 +44,7 @@ END_ACTION ACTION LoadPreview: - //invalid Recip Manager + // Invalid Recip Manager IF HmiRecipe.Status.InvalidRecipe THEN HmiRecipe.Status.InvalidRecipeLayer := USINT_TO_BOOL(DISPLAY); ELSE @@ -287,14 +288,8 @@ ACTION RecipeHMIcommands: HmiRecipe.Status.HMIcommand := REC_HMI_WAIT; END_CASE - - // IF NOT MpRecipe_0.CommandBusy AND brsstrcmp(ADR(HmiRecipe.Status.PreviousRecipe), ADR(HmiRecipe.Parameters.FileName)) <> 0 THEN - // HmiRecipe.Parameters.FileName := HmiRecipe.Status.PreviousRecipe; - // END_IF - - - //default files cannot be deleted + // Default files cannot be deleted IF HmiRecipe.Status.SelectedRecipe = 'Default.par' OR HmiRecipe.Status.SelectedRecipe = 'Machine.mcfg' THEN @@ -303,7 +298,7 @@ ACTION RecipeHMIcommands: HmiRecipe.Status.DefaultFilesDeleteButtonStatus := HIDE; END_IF; - //selected index should be equal active recipe + // Selected index should be equal active recipe IF EDGEPOS(MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_IDLE) THEN IF HmiRecipe.Status.RecipePageOpenedNow THEN HmiRecipe.Status.RecipePageOpenedNow := FALSE; diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st index 0bec0112..8127c5ca 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: Jan 1, 2022 -// Description: Tasks for recipe control. +// Description: Tasks for recipe control with VC4 front-end. //*********************************************************************** PROGRAM _INIT diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ index e58b2c77..6b8fe7c8 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ @@ -74,11 +74,6 @@ TYPE MachConfigStatus : USINT; Save : BOOL; END_STRUCT; -END_TYPE - -(**) - -TYPE ParametersType : STRUCT (*Demo / starter structure for machine parameters*) AddParametersHere1 : BOOL; (*Add your parameteres here *) AddParametersHere2 : STRING[80]; (*Add your parameteres here *) diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st index 88a87416..f421ab30 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/HMIActions.st @@ -85,7 +85,7 @@ ACTION ReportFileExplorer: // Set file device to selected MpReportCore_0.DeviceName := ADR(MpFileManagerUIConnect.DeviceList.DeviceNames[MpFileManagerUIConnect.DeviceList.SelectedIndex]); - //VC4 + // VC4 IF HmiReport.Status.Error THEN HmiReport.Status.Layer.ReportCreate := USINT_TO_BOOL(HIDE); END_IF @@ -100,15 +100,17 @@ ACTION ReportFileExplorer: HmiReport.Status.PageUpDownVisibility := HIDE; END_IF - //language assignments - + // Language assignments CASE HmiReport.Parameters.Language OF - 0://English + // English + 0: MpReportCore_0.Language := ADR('en'); - 1://German + // German + 1: MpReportCore_0.Language := ADR('de'); - 2://Chinese + // Chinese + 2: MpReportCore_0.Language := ADR('zh'); END_CASE diff --git a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st index c318e9ad..02a6d70d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/Report/ReportMgr/ReportMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: Dec 1, 2022 -// Description: Task for generating reports. +// Description: Task for generating reports with VC4 front-end. //*********************************************************************** PROGRAM _INIT @@ -15,7 +15,7 @@ PROGRAM _INIT DirCreate_0(enable := FALSE); END_IF - //Parameterize the report function block with the simple report + // Parameterize the report function block with the simple report MpReportCore_0.Language := ADR('en'); MpReportCore_0.DeviceName := ADR('mappReportFiles'); MpReportCore_0.MpLink := ADR(gMpLinkSimpleReport); @@ -23,14 +23,14 @@ PROGRAM _INIT HmiReport.Parameters.Name := 'SimpleReport'; MpReportCore_0(); - //Parameterize the file mangement function block + // Parameterize the file mangement function block MpFileManagerUI_0.MpLink := ADR(gMpLinkFileManagerUIReport); MpFileManagerUI_0.UIConnect := ADR(MpFileManagerUIConnect); MpFileManagerUI_0.UISetup.FileListSize := SIZEOF(MpFileManagerUIConnect.File.List.Items) / SIZEOF(MpFileManagerUIConnect.File.List.Items[0]); MpFileManagerUI_0.Enable := TRUE; MpFileManagerUI_0(); - //Fill an array to create example data for the example report + // Fill an array to create example data for the example report TimeIndex := 0; FOR i:=0 TO ((SIZEOF(ReportExample.SimpleReport.OeeLine[0].TemperatureSample.TimeStamp)/SIZEOF(ReportExample.SimpleReport.OeeLine[0].TemperatureSample.TimeStamp[0])) - 1) DO ReportExample.SimpleReport.OeeLine[0].TemperatureSample.TimeStamp[i] := TimeIndex; diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st index b9157955..26e3c112 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st @@ -1,7 +1,7 @@ ACTION VC4_Init: - HmiUserX.FileDuplicateLayerStatus := HIDE; - HmiUserX.ButtonLockedMessageLayer := HIDE; + HmiUserX.FileDuplicateLayerStatus := HIDE; + HmiUserX.ButtonLockedMessageLayer := HIDE; UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := HIDE; END_ACTION @@ -40,7 +40,7 @@ ACTION VC4_Cylic: END_CASE - // assign file name based on selected index + // Assign file name based on selected index UserXMgrUIConnect.Import.Dialog.FileName := UserXMgrUIConnect.Import.Dialog.List.FileNames[UserXMgrUIConnect.Import.Dialog.List.SelectedIndex]; // If new updates are made via export execute a check @@ -49,7 +49,7 @@ ACTION VC4_Cylic: END_IF - //check User is Admin + // Check User is Admin IF UserXLoginUIConnect.UserLevel = USER_ADMIN_LEVEL THEN HmiUserX.ButtonLockingLayer := HIDE; ELSE @@ -58,7 +58,7 @@ ACTION VC4_Cylic: - //Duplicate file checks + // Duplicate file checks HmiUserX.FileDuplicate := FALSE; FOR i := 0 TO ((SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames) / SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames[0])) - 1) DO temp := UserXMgrUIConnect.Export.Dialog.FileName; @@ -89,29 +89,27 @@ ACTION VC4_Cylic: - // Manage FileExport Layer - (*Close*) + // Manage FileExport Layer - close IF UserXMgrUIConnect.Export.Dialog.Cancel OR HmiUserX.Export THEN UserXMgrUIConnect.Export.Dialog.LayerStatus := HIDE; END_IF - // Manage FileDupliacte Layer - (*Close*) + // Manage FileDupliacte Layer - close IF HmiUserX.CancelOverwrite OR HmiUserX.ConfirmOverwrite THEN HmiUserX.CancelOverwrite := FALSE; HmiUserX.ConfirmOverwrite := FALSE; HmiUserX.FileDuplicateLayerStatus := HIDE; END_IF - (*Open*) + + // Manage FileDupliacte Layer - open IF HmiUserX.Export AND HmiUserX.FileDuplicate THEN HmiUserX.FileDuplicateLayerStatus := DISPLAY; END_IF; - //Password change require manage + // Password change require manage IF EDGENEG(UserXLoginUIConnect.MessageBox.ErrorNumber = 28690) THEN IF UserXLoginUIConnect.MessageBox.Confirm THEN - UserXLoginUIConnect.ChangePassword.Dialog.LayerStatus := DISPLAY; UserXLoginUIConnect.ChangePassword.ShowDialog := TRUE; END_IF diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st index 61611d34..932c1d8a 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.st @@ -2,7 +2,7 @@ // Copyright: B&R Industrial Automation GmbH // Author: B&R Industrial Automation GmbH // Created: April 12, 2022 -// Description: Tasks for user management. +// Description: Tasks for user management with VC4 front-end. //*********************************************************************** PROGRAM _INIT diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ index e8a5169f..34a1ea67 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ @@ -1,14 +1,6 @@ +(*Structure types*) TYPE - enumCheckState : - ( - USERX_START := 0, - USERX_WAIT_FOR_DIALOG := 1, - USERX_SET_RESPONSE := 2, - USERX_CONFIRM_RESPONSE := 3, - USERX_NEW_EXPORT := 4, - USERX_FINISH := 5 - ); HMIUser_Typ : STRUCT NewFileName : STRING[255]; Export : BOOL; @@ -21,3 +13,17 @@ TYPE SelectedLanguage : USINT; END_STRUCT; END_TYPE + +(*Enumerations*) + +TYPE + enumCheckState : + ( + USERX_START := 0, + USERX_WAIT_FOR_DIALOG := 1, + USERX_SET_RESPONSE := 2, + USERX_CONFIRM_RESPONSE := 3, + USERX_NEW_EXPORT := 4, + USERX_FINISH := 5 + ); +END_TYPE diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var index 6a0778ca..fc47032d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.var @@ -16,12 +16,14 @@ END_VAR VAR UserXMgrUIConnect : MpUserXMgrUIConnectType; (*UserX manager connection to the HMI*) UserXLoginUIConnect : MpUserXLoginUIConnectType; (*UserL login connection to the HMI*) - i : USINT; HmiUserX : HMIUser_Typ; END_VAR (*Enumerations*) -(*Variables*) VAR UserXCheckState : enumCheckState; +END_VAR +(*Variables*) +VAR + i : USINT; temp : STRING[255]; (*Temporary string holder for checking file names*) END_VAR diff --git a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw index e71e8746..78ef782a 100644 --- a/mappFramework/Physical/UnitTest/PC_any/Cpu.sw +++ b/mappFramework/Physical/UnitTest/PC_any/Cpu.sw @@ -27,7 +27,6 @@ - From b74544958465fa48972cd5c880206ffc669a22c7 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Tue, 6 Jun 2023 17:00:17 -0400 Subject: [PATCH 149/159] Fixed some duplicates in the internal data source file for VC4 --- .../Logical/VCShared/DataSources/Internal.dso | 111 +----------------- 1 file changed, 1 insertion(+), 110 deletions(-) diff --git a/mappFramework/Logical/VCShared/DataSources/Internal.dso b/mappFramework/Logical/VCShared/DataSources/Internal.dso index b94007a6..e0c78c3a 100644 --- a/mappFramework/Logical/VCShared/DataSources/Internal.dso +++ b/mappFramework/Logical/VCShared/DataSources/Internal.dso @@ -15,7 +15,7 @@ - + @@ -110,55 +110,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -185,66 +136,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From cc6f5c3e23f2058fb60932a1c922f9d8d644ff40 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Tue, 6 Jun 2023 17:00:39 -0400 Subject: [PATCH 150/159] Removed the PackML HMI structure and variable for the VC4 task since they aren't needed (everything is done through the UI) --- .../VC4/PackML/PackMLMgr/PackMLMgr.typ | 31 ------------------- .../VC4/PackML/PackMLMgr/PackMLMgr.var | 1 - 2 files changed, 32 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ index f23ab22a..4cf98f3d 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.typ @@ -1,33 +1,2 @@ (*Structure types*) - -TYPE - PackMLHmiInterfaceType : STRUCT - Commands : PackMLCommandsType; - Parameters : PackMLParametersType; - Status : PackMLStatusType; - Activate : BOOL; - END_STRUCT; - PackMLCommandsType : STRUCT - Reset : BOOL; - Start : BOOL; - Stop : BOOL; - Hold : BOOL; - Unhold : BOOL; - Suspend : BOOL; - Unsuspend : BOOL; - Abort : BOOL; - Clear : BOOL; - Complete : BOOL; - END_STRUCT; - PackMLParametersType : STRUCT - Par : USINT; - END_STRUCT; - PackMLStatusType : STRUCT - LastState : MpPackMLStateEnum; - CurrentPackMLState : USINT; - CurrentMode : DINT; - DownTimeReason : STRING[255]; - END_STRUCT; -END_TYPE - (*Enumerations*) diff --git a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var index b9d20fc5..ecf95ec8 100644 --- a/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var +++ b/mappFramework/Logical/Infrastructure/VC4/PackML/PackMLMgr/PackMLMgr.var @@ -10,7 +10,6 @@ END_VAR (*Structure Types*) VAR MpPackMLBasicUIConnect : MpPackMLBasicUIConnectType; - HmiPackML : PackMLHmiInterfaceType; (*HMI interface structure*) END_VAR (*Variables*) VAR From 375eb99f33894e210da900c3942ce556c99bcb31 Mon Sep 17 00:00:00 2001 From: arifkayabr Date: Wed, 7 Jun 2023 10:47:43 +0300 Subject: [PATCH 151/159] Recipe preview values updated bug fixed. --- .../VC4/Recipe/RecipeMgr/HMIActions.st | 29 ++++++++++++++----- .../VC4/Recipe/RecipeMgr/RecipeMgr.typ | 1 + mappFramework/mappFramework.apj | 2 +- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st index c6a24ff9..63ffdad7 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/HMIActions.st @@ -34,7 +34,6 @@ ACTION FormatDeviceDataProvider: END_ACTION ACTION LoadStatus: - // Configure recipe actions HmiRecipe.Status.FilesAvailable := (MpRecipeUIConnect.Recipe.List.Names[0] <> ''); HmiRecipe.Status.LoadAllowed := HmiRecipe.Status.FilesAvailable AND NOT HmiRecipe.Status.InvalidRecipe; @@ -44,7 +43,7 @@ END_ACTION ACTION LoadPreview: - // Invalid Recip Manager + //Invalid Recip Manager IF HmiRecipe.Status.InvalidRecipe THEN HmiRecipe.Status.InvalidRecipeLayer := USINT_TO_BOOL(DISPLAY); ELSE @@ -146,8 +145,7 @@ ACTION LoadPreview: // Load preview when a recipe is selected IF (MpRecipeUIConnect.Recipe.List.SelectedIndex <> HmiRecipe.Status.LastSelectedIndex) OR (HmiRecipe.Status.LastMaxSelection <> MpRecipeUIConnect.Recipe.List.MaxSelection) OR - EDGENEG(HmiRecipe.Status.LastStatus = mpRECIPE_UI_STATUS_CREATE) THEN - + EDGENEG(HmiRecipe.Status.LastStatus = mpRECIPE_UI_STATUS_CREATE) THEN // Check selected recipe name is not empty IF (brsstrlen(ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex])) > 0) THEN MpRecipe_0.FileName := ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]); @@ -289,7 +287,7 @@ ACTION RecipeHMIcommands: END_CASE - // Default files cannot be deleted + //default files cannot be deleted IF HmiRecipe.Status.SelectedRecipe = 'Default.par' OR HmiRecipe.Status.SelectedRecipe = 'Machine.mcfg' THEN @@ -298,7 +296,10 @@ ACTION RecipeHMIcommands: HmiRecipe.Status.DefaultFilesDeleteButtonStatus := HIDE; END_IF; - // Selected index should be equal active recipe + //selected index should be equal active recipe + IF HmiRecipe.Status.RecipePageOpenedNow THEN + HmiRecipe.Status.LoadPreviewAfterPageOpened := TRUE; + END_IF; IF EDGEPOS(MpRecipeUIConnect.Status = mpRECIPE_UI_STATUS_IDLE) THEN IF HmiRecipe.Status.RecipePageOpenedNow THEN HmiRecipe.Status.RecipePageOpenedNow := FALSE; @@ -306,9 +307,23 @@ ACTION RecipeHMIcommands: IF MpRecipeUIConnect.Recipe.List.Names[i] = HmiRecipe.Status.ActiveRecipe THEN MpRecipeUIConnect.Recipe.List.SelectedIndex := i; END_IF; - END_FOR; + END_FOR; END_IF; END_IF; + IF HmiRecipe.Status.LoadPreviewAfterPageOpened THEN + HmiRecipe.Status.LoadPreviewAfterPageOpened := FALSE; + // Check selected recipe name is not empty + IF (brsstrlen(ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex])) > 0) THEN + MpRecipe_0.FileName := ADR(MpRecipeUIConnect.Recipe.List.Names[MpRecipeUIConnect.Recipe.List.SelectedIndex]); + MpRecipe_0.Category := ADR(HmiRecipe.Parameters.Category); + MpRecipe_0.Load := TRUE; + HmiRecipe.Status.LastSelectedIndex := MpRecipeUIConnect.Recipe.List.SelectedIndex; + HmiRecipe.Status.LastMaxSelection := MpRecipeUIConnect.Recipe.List.MaxSelection; + HmiRecipe.Status.InvalidRecipe := FALSE; + END_IF + END_IF; + + // If the Edit or Create dialog boxes open, copy the Preview structure into the Edit structure. IF HmiRecipe.Status.EditDialogOpened OR HmiRecipe.Status.CreateDialogOpened THEN diff --git a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ index 6b8fe7c8..fc5369cd 100644 --- a/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/Recipe/RecipeMgr/RecipeMgr.typ @@ -53,6 +53,7 @@ TYPE InvalidRecipeLayer : BOOL; DefaultFilesCannotBeDeleteLayer : USINT; RecipePageOpenedNow : BOOL; + LoadPreviewAfterPageOpened : BOOL; END_STRUCT; RecipeStatusDefRecLayerType : STRUCT Status : USINT; diff --git a/mappFramework/mappFramework.apj b/mappFramework/mappFramework.apj index ee179c8f..9d0c52ba 100644 --- a/mappFramework/mappFramework.apj +++ b/mappFramework/mappFramework.apj @@ -1,5 +1,5 @@  - + From 49c2fc5d8082320ccf0e3f15463ee33697cf3f13 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Wed, 7 Jun 2023 09:25:26 -0400 Subject: [PATCH 152/159] AAZM-661 - VC4 language changes according to user preference --- .../VC4/UserX/UserXMgr/HMIAction.st | 15 +++++++++------ .../BitmapGroups/MpAlarmAcknowledgeState.bmgrp | 2 +- .../BitmapGroups/MpAlarmXHistoryStates.bmgrp | 2 +- .../BitmapGroups/MpAlarmXStates.bmgrp | 2 +- .../BitmapGroups/MpAuditCheckbox.bmgrp | 2 +- .../BitmapGroups/MpAuditEventsID.bmgrp | 2 +- .../BitmapGroups/MpAxisAlarm.bmgrp | 2 +- .../BitmapGroups/MpAxisHomed.bmgrp | 2 +- .../BitmapGroups/MpAxisMoving.bmgrp | 2 +- .../BitmapGroups/MpAxisPower.bmgrp | 2 +- .../BitmapGroups/MpBorders.bmgrp | 2 +- .../BitmapGroups/MpComFacilitiesEnum.bmgrp | 2 +- .../BitmapGroups/MpComSeveritiesEnum.bmgrp | 2 +- .../BitmapGroups/MpDataLimitViolation.bmgrp | 2 +- .../BitmapGroups/MpFileFIFOIcons.bmgrp | 2 +- .../BitmapGroups/MpFileIcons.bmgrp | 2 +- .../mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp | 2 +- .../BitmapGroups/MpIconsClick.bmgrp | 2 +- .../BitmapGroups/MpListbox.bmgrp | 2 +- .../BitmapGroups/MpPMLStatesGraphics.bmgrp | 2 +- .../mappFrameworkVisu/BitmapGroups/MpPads.bmgrp | 2 +- .../BitmapGroups/MpTeachIcons.bmgrp | 2 +- .../BitmapGroups/MpUserCriteriaCheck.bmgrp | 2 +- .../BitmapGroups/MpUserIcons.bmgrp | 2 +- .../ColorMaps/MpEnergyChartData.clm | 2 +- .../ColorMaps/MpFileMultiSel.clm | 2 +- .../ColorMaps/MpPMLStateColors.clm | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpButton.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpInput.fninfo | 2 +- .../mappFrameworkVisu/Fonts/MpMenuButtons.fninfo | 2 +- .../Fonts/MpPackMLStateNames.fninfo | 2 +- .../VC4/mappFrameworkVisu/Fonts/MpPads.fninfo | 2 +- .../Layers/LockedMessageLayer.layer | 2 +- .../mappFrameworkVisu/Layers/MpBackground.layer | 2 +- .../mappFrameworkVisu/Layers/MpOeeControl.layer | 2 +- .../mappFrameworkVisu/Layers/MpUserXSign.layer | 2 +- .../Layers/MpUserXSignMessageBox.layer | 2 +- .../Logical/VC4/mappFrameworkVisu/Package.vcp | 2 +- .../TextGroups/MpAuditEventTextSetup.txtgrp | 2 +- .../TextGroups/MpAuditUserDefinedEvent.txtgrp | 2 +- .../TextGroups/MpButtons_PageTexts.txtgrp | 2 +- .../TextGroups/ShiftGroup.txtgrp | 2 +- .../VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre | 2 +- .../VCShared/AlarmGroups/MpAuditTrailAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpAxisBasicAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpCncAlarms.algrp | 2 +- .../AlarmGroups/MpDataRecorderAlarms.algrp | 2 +- .../AlarmGroups/MpFileManagerAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpOeeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpPackMLAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRecipeAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpRobotAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpSpindleAlarms.algrp | 2 +- .../AlarmGroups/MpTeachPointsUIAlarms.algrp | 2 +- .../VCShared/AlarmGroups/MpUserAlarms.algrp | 2 +- .../VCShared/AlarmGroups/SystemAlarms.algrp | 2 +- .../TextGroups/MpAlarmAcknowledgeState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmBasicUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmBypassState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmEvent.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmSeparator.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryCode.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryExport.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryState.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXHistoryUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmXListCode.txtgrp | 2 +- .../TextGroups/MpAlarmXListEventID.txtgrp | 2 +- .../TextGroups/MpAlarmXListRecordID.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmXListState.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmXListStatus.txtgrp | 2 +- .../TextGroups/MpAlarmXListUIQuery.txtgrp | 2 +- .../VCShared/TextGroups/MpAlarmXListUIText.txtgrp | 2 +- .../TextGroups/MpAuditArchiveFileTypeDP.txtgrp | 2 +- .../TextGroups/MpAuditArchiveSettingsDP.txtgrp | 2 +- .../TextGroups/MpAuditEventsOutput.txtgrp | 2 +- .../TextGroups/MpAuditSignatureEvent.txtgrp | 2 +- .../VCShared/TextGroups/MpAuditTrailUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpAuditTweetEvent.txtgrp | 2 +- .../VCShared/TextGroups/MpAuditUIErrorText.txtgrp | 2 +- .../TextGroups/MpAuditUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpAuditUserAction.txtgrp | 2 +- .../VCShared/TextGroups/MpAuditUserIDText.txtgrp | 2 +- .../VCShared/TextGroups/MpAxisBasic.txtgrp | 2 +- .../TextGroups/MpBackupIntervalUITexts.txtgrp | 2 +- .../VCShared/TextGroups/MpBackupUITexts.txtgrp | 2 +- .../VCShared/TextGroups/MpComLoggerUIText.txtgrp | 2 +- .../TextGroups/MpDataStatisticsUIStatus.txtgrp | 2 +- .../TextGroups/MpDataStatisticsUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpDataTableHeader.txtgrp | 2 +- .../TextGroups/MpDataTableUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpDataTableUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpDateTimeFormats.txtgrp | 2 +- .../TextGroups/MpFileManagerUIDevices.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFIFOText.txtgrp | 2 +- .../TextGroups/MpFileManagerUIFiles.txtgrp | 2 +- .../TextGroups/MpFileManagerUIMessageBox.txtgrp | 2 +- .../TextGroups/MpFileManagerUIStatus.txtgrp | 2 +- .../TextGroups/MpFileManagerUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpLanguages.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreText.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeCoreUITime.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeListUIText.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIDuration.txtgrp | 2 +- .../MpOeeTimelineUIProductionState.txtgrp | 2 +- .../TextGroups/MpOeeTimelineUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpOeeTrendUIText.txtgrp | 2 +- .../TextGroups/MpPackMLBasicUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLCmds.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLModesNames.txtgrp | 2 +- .../VCShared/TextGroups/MpPackMLStateNames.txtgrp | 2 +- .../TextGroups/MpPackMLStatisticsText.txtgrp | 2 +- .../TextGroups/MpPackMLStatisticsUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeAuditText.txtgrp | 2 +- .../TextGroups/MpRecipeUICategoryDD.txtgrp | 2 +- .../TextGroups/MpRecipeUIDefaultCreate.txtgrp | 2 +- .../TextGroups/MpRecipeUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUISize.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIStatus.txtgrp | 2 +- .../VCShared/TextGroups/MpRecipeUIText.txtgrp | 2 +- .../TextGroups/MpRecipeUITrueFalseDD.txtgrp | 2 +- .../VCShared/TextGroups/MpReportUITexts.txtgrp | 2 +- .../Logical/VCShared/TextGroups/MpUnits.txtgrp | 2 +- .../VCShared/TextGroups/MpUserConfirmText.txtgrp | 2 +- .../VCShared/TextGroups/MpUserDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserNoYes.txtgrp | 2 +- .../TextGroups/MpUserPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRight.txtgrp | 2 +- .../VCShared/TextGroups/MpUserRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUIErrorText.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserUITexts.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXConfirmText.txtgrp | 2 +- .../TextGroups/MpUserXDialogHeader.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXGroups.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXNoYes.txtgrp | 2 +- .../TextGroups/MpUserXPasswordCriteria.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRight.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRightLevel.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXRoles.txtgrp | 2 +- .../TextGroups/MpUserXSignUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXSignUIText.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUIErrorText.txtgrp | 2 +- .../TextGroups/MpUserXUIMessageBox.txtgrp | 2 +- .../VCShared/TextGroups/MpUserXUITexts.txtgrp | 2 +- .../VCShared/TextGroups/Mp_httpURL_SDM.txtgrp | 2 +- .../TextGroups/UserLevelNotPermitted.txtgrp | 2 +- .../VCShared/TextGroups/mappComponents.txtgrp | 2 +- .../Logical/VCShared/TextGroups/mappTopics.txtgrp | 2 +- .../Logical/VCShared/UnitGroups/Energy.vcug | 2 +- .../Logical/VCShared/UnitGroups/Length.vcug | 2 +- .../Logical/VCShared/UnitGroups/Mass.vcug | 2 +- .../Logical/VCShared/UnitGroups/Memory.vcug | 2 +- .../Logical/VCShared/UnitGroups/Power.vcug | 2 +- .../Logical/VCShared/UnitGroups/Pressure.vcug | 2 +- .../Logical/VCShared/UnitGroups/Temperatures.vcug | 2 +- .../Logical/VCShared/UnitGroups/Volume.vcug | 2 +- 165 files changed, 173 insertions(+), 170 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st index 26e3c112..475f73ee 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st @@ -48,7 +48,6 @@ ACTION VC4_Cylic: UserXCheckState := USERX_NEW_EXPORT; END_IF - // Check User is Admin IF UserXLoginUIConnect.UserLevel = USER_ADMIN_LEVEL THEN HmiUserX.ButtonLockingLayer := HIDE; @@ -56,8 +55,6 @@ ACTION VC4_Cylic: HmiUserX.ButtonLockingLayer := DISPLAY; END_IF; - - // Duplicate file checks HmiUserX.FileDuplicate := FALSE; FOR i := 0 TO ((SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames) / SIZEOF(UserXMgrUIConnect.Import.Dialog.List.FileNames[0])) - 1) DO @@ -87,14 +84,11 @@ ACTION VC4_Cylic: HmiUserX.Export := FALSE; END_IF - - // Manage FileExport Layer - close IF UserXMgrUIConnect.Export.Dialog.Cancel OR HmiUserX.Export THEN UserXMgrUIConnect.Export.Dialog.LayerStatus := HIDE; END_IF - // Manage FileDupliacte Layer - close IF HmiUserX.CancelOverwrite OR HmiUserX.ConfirmOverwrite THEN HmiUserX.CancelOverwrite := FALSE; @@ -115,6 +109,15 @@ ACTION VC4_Cylic: END_IF END_IF + // Check and set current language datapoint based on user preference + IF UserXLoginUIConnect.Language = 'en' THEN + HmiUserX.SelectedLanguage := 0; + ELSIF UserXLoginUIConnect.Language = 'de' THEN + HmiUserX.SelectedLanguage := 1; + ELSIF UserXLoginUIConnect.Language = 'zh' THEN + HmiUserX.SelectedLanguage := 2; + END_IF + END_ACTION diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp index e45dc079..fe849a00 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmAcknowledgeState.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp index 797fbbd6..0d39a6fe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXHistoryStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp index 720e726e..588598cc 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAlarmXStates.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp index d85e8b31..f9a9a6a7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditCheckbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp index a18fbb01..7170eeda 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAuditEventsID.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp index dd5c9bd3..9632eedb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisAlarm.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp index 15ac1839..7f76c5ec 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisHomed.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp index 5763ee8a..55f24b40 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisMoving.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp index 5e940156..b5c7a9d0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpAxisPower.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp index 68845d95..05e8f429 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpBorders.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp index d28df2c8..4e60a3b2 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComFacilitiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp index 646c8ac1..118c3742 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpComSeveritiesEnum.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp index 1eb9e6ad..3e816e42 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpDataLimitViolation.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp index 98cc6da6..2a5cdd44 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileFIFOIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp index f2b8bbb5..947576fe 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpFileIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp index 9be0b75d..83a0f08b 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp index 33d0656e..b8941f39 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpIconsClick.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp index 0a6ead4d..18e0eb9a 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpListbox.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp index 7e7edba7..9068f808 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPMLStatesGraphics.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp index 4811aa7a..c1d89c52 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpPads.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp index 3ef2ba5b..f926f3b6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpTeachIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp index c5670294..cdf0fcb6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserCriteriaCheck.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp index afebd054..031f3abb 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/BitmapGroups/MpUserIcons.bmgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm index 2af80923..b04aa93f 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpEnergyChartData.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm index fcfebf79..9c0e9ede 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpFileMultiSel.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm index db8a3d60..0e11da3e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/ColorMaps/MpPMLStateColors.clm @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo index 74ffe145..cf9f1238 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpButton.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo index 553060a6..f9f0c91e 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpDefault.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo index a4226571..1190e4b0 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo index b750c502..6753419d 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHeader2.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo index e5a13683..65cd93f3 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpHtml_SDM.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo index 4b7fb3aa..068ca537 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInfo.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo index 8b7224c7..7cd50e52 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpInput.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo index d6ed0856..9c1bc5b6 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpMenuButtons.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo index 850bbdf0..c0ce8674 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPackMLStateNames.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo index b08f6d95..289e07f9 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Fonts/MpPads.fninfo @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer index 76dfb022..7ac63ea7 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/LockedMessageLayer.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer index b7f47299..f18ce7b4 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpBackground.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer index 271bd00f..42eec4ac 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpOeeControl.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer index 29195f01..e16cff67 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSign.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer index 752b3c20..7052e517 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Layers/MpUserXSignMessageBox.layer @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp index a64ab7cf..2deae931 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Package.vcp @@ -24,7 +24,7 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp index dc4ab05c..92931fda 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditEventTextSetup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp index d630d14f..09c3d9f8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpAuditUserDefinedEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp index 8833e937..5028a842 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/MpButtons_PageTexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp index 56b12c38..a5904695 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/TextGroups/ShiftGroup.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre index 5ef8c942..42b942f8 100644 --- a/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre +++ b/mappFramework/Logical/VC4/mappFrameworkVisu/Trends/MpOeeTrendUI.tre @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp index fe230ce7..46f9d9b6 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAuditTrailAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp index 2c96f384..5464d397 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpAxisBasicAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp index 21f5e46c..83116802 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpCncAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp index 3a937909..93cdd0b3 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpDataRecorderAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp index e61653f1..6348289f 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpFileManagerAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp index 0b08efd9..86d31d4a 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpOeeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp index c3bdfb48..1455c272 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpPackMLAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp index 4ac19002..3e924403 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRecipeAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp index b5504430..20d2a3e6 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpRobotAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp index ef08ecfd..f1d7b09b 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpSpindleAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp index 54f96111..fc8847d4 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpTeachPointsUIAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp index 35e60d24..5aa59d48 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/MpUserAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp index ebfe1d6b..8e7a4d68 100644 --- a/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp +++ b/mappFramework/Logical/VCShared/AlarmGroups/SystemAlarms.algrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp index f95c1eea..966be2cc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmAcknowledgeState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp index 2cf9e1ff..8f6c4580 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp index aaa437c9..f8281faf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmBypassState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp index ee3cdb40..47835ba6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp index ba302b30..fa7c1b38 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmSeparator.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp index 548d73ef..181fe086 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp index 723e78c0..ce761eb3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp index e58d1e1d..7f4fa251 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryExport.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp index 2c4e10f9..301bcc8a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp index a55124b9..edf41959 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp index 6c75504e..1b8ae332 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXHistoryUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp index ae418f68..1ad29af4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListCode.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp index 696e39cd..c64b6ebc 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListEventID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp index 0fa0acf9..097642ce 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListRecordID.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp index 39133cd9..0b02c2ad 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp index 635d00f5..8823ef63 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp index 82f8e454..6af51c32 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIQuery.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp index 33c263a5..95f6030b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAlarmXListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp index cd30b813..21c7d30d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveFileTypeDP.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp index dd82b084..3ab65210 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditArchiveSettingsDP.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp index b5b09049..7efaeabe 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditEventsOutput.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp index 847f52c1..181fcc33 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditSignatureEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp index 4844758b..01336c27 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTrailUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp index a517a6fb..f6745580 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditTweetEvent.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp index b7c16dbf..fb194c41 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp index 2807f3ae..8a1b7079 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp index 1d7312ba..8fba6b84 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserAction.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp index 9811d346..adf93675 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAuditUserIDText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp index 7d5bfae6..555edf60 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpAxisBasic.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp index 31cfa501..791dd313 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupIntervalUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp index aec8fc7b..d84a2bd9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpBackupUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp index fbc1c013..861635d3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpComLoggerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp index 17a61997..809ff82a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp index 333d1c15..198962b8 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp index 8c2d3ac5..2644958b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp index 82df1ef1..8cae9bdf 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp index 2f2e0e77..fdafdbc5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDataTableUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp index daff4dc1..c44d1e2d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpDateTimeFormats.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp index 5307a009..1f77267c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIDevices.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp index 1fb44ffc..aaa8ec59 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFIFOText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp index 90e5a5a8..b7e46d4e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIFiles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp index 9b74564e..2679587c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp index a98a5460..e2a3ff31 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp index a1fb237e..b8c99c86 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpFileManagerUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp index eee1115e..92b88b08 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpLanguages.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp index 10049355..6033fd10 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp index 1a2e22d8..d211081a 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp index 1b00a4e4..7683ac2e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeCoreUITime.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp index ed975c63..cde05dda 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeListUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp index 1d99ae8c..1cdce70f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIDuration.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp index 4ff61c2d..bc236981 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIProductionState.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp index 9afe19cb..a9ea2393 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTimelineUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp index 34ba4365..b23db937 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpOeeTrendUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp index feda143b..a893831d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLBasicUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp index 5a480016..43a6bef9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLCmds.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp index adc26f67..8a7d38e3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLModesNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp index cb6bc5e7..453711c7 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStateNames.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp index 734c6fed..fac3ccf2 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp index 9ccba432..ded74bc9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpPackMLStatisticsUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp index 77da9193..08ee0d40 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeAuditText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp index 1f45a7d0..6e91495c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUICategoryDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp index 133499d2..6bf4539d 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIDefaultCreate.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp index 9ae7d900..2bb9cb19 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp index 5381ed4a..a84a536e 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUISize.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp index 158c28fd..1a8a6faa 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIStatus.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp index 93d2fcca..059eded4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp index 4020d758..da4a4071 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpRecipeUITrueFalseDD.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp index 68f27f13..7a9670e3 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpReportUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp index e8ba00d9..3e18c743 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUnits.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp index 8d2a43ac..86881546 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp index c6c263f2..ed6f7133 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp index d4336b17..bc22f83f 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp index 62560076..ed6f77b5 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp index c77dc3b7..a316d65b 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp index 3b7d206e..3b2d24b1 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp index bb406cab..44d32266 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp index eaafd75c..38ad8068 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp index 270f6c58..4cb3765c 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp index 85d92a46..98450ec6 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp index ceec046c..cbe3e158 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXConfirmText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp index 46bbb4db..3603d087 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXDialogHeader.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp index c84950a3..c080aa13 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXGroups.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp index c9565906..8f775a64 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXNoYes.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp index 1fc5ae86..52849a96 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXPasswordCriteria.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp index a4c6afe0..4dc3fca4 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRight.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp index dc6f172d..bbb62f68 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRightLevel.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp index d7d1d427..5e8d3271 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXRoles.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp index 34db20e3..80063ffb 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp index 81e4f903..5c2a5393 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXSignUIText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp index 74bfc278..08558cd9 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIErrorText.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp index 59b9c1e3..1d269b98 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUIMessageBox.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp index 1f543c84..d2d9cd53 100644 --- a/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/MpUserXUITexts.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp index 7fbb29da..d36f5353 100644 --- a/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/Mp_httpURL_SDM.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp index 7c01bf6c..f25ca157 100644 --- a/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/UserLevelNotPermitted.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp index f9a1bfe0..acbb4309 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappComponents.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp index 0393ee44..001ea764 100644 --- a/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp +++ b/mappFramework/Logical/VCShared/TextGroups/mappTopics.txtgrp @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug index a5a2e612..d31d913f 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Energy.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug index 34935b2b..76541418 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Length.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Length.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug index 11c9a395..48b65e61 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Mass.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug index 6a478eb5..8cd8527b 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Memory.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug index 38694895..ba8b5376 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Power.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Power.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug index e03a38de..d6134b86 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Pressure.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug index adebd6ea..848e82e7 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Temperatures.vcug @@ -1,5 +1,5 @@ - + diff --git a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug index e71ebd86..32057bb8 100644 --- a/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug +++ b/mappFramework/Logical/VCShared/UnitGroups/Volume.vcug @@ -1,5 +1,5 @@ - + From f0ac6bb46afb2ba81513bffbd090670fca609a25 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 9 Jun 2023 10:31:49 -0400 Subject: [PATCH 153/159] AAZM-661 - Fix so that you can still update the language manually even if a preferred language is set for the user (VC4) --- .../VC4/UserX/UserXMgr/HMIAction.st | 15 +++++++++------ .../VC4/UserX/UserXMgr/UserXMgr.typ | 1 + mappFramework/mappFramework.apj | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st index 475f73ee..bed5c6b4 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/HMIAction.st @@ -110,12 +110,15 @@ ACTION VC4_Cylic: END_IF // Check and set current language datapoint based on user preference - IF UserXLoginUIConnect.Language = 'en' THEN - HmiUserX.SelectedLanguage := 0; - ELSIF UserXLoginUIConnect.Language = 'de' THEN - HmiUserX.SelectedLanguage := 1; - ELSIF UserXLoginUIConnect.Language = 'zh' THEN - HmiUserX.SelectedLanguage := 2; + IF UserXLoginUIConnect.CurrentUser <> HmiUserX.PreviousUser THEN + HmiUserX.PreviousUser := UserXLoginUIConnect.CurrentUser; + IF UserXLoginUIConnect.Language = 'en' THEN + HmiUserX.SelectedLanguage := 0; + ELSIF UserXLoginUIConnect.Language = 'de' THEN + HmiUserX.SelectedLanguage := 1; + ELSIF UserXLoginUIConnect.Language = 'zh' THEN + HmiUserX.SelectedLanguage := 2; + END_IF END_IF END_ACTION diff --git a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ index 34a1ea67..f81e5112 100644 --- a/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ +++ b/mappFramework/Logical/Infrastructure/VC4/UserX/UserXMgr/UserXMgr.typ @@ -11,6 +11,7 @@ TYPE ButtonLockedMessageLayer : USINT; ButtonLockingLayer : USINT; SelectedLanguage : USINT; + PreviousUser : WSTRING[50]; END_STRUCT; END_TYPE diff --git a/mappFramework/mappFramework.apj b/mappFramework/mappFramework.apj index 9d0c52ba..ee179c8f 100644 --- a/mappFramework/mappFramework.apj +++ b/mappFramework/mappFramework.apj @@ -1,5 +1,5 @@  - + From c05a8532a3079161077ccf3ee2f2ffabbdfb5584 Mon Sep 17 00:00:00 2001 From: "BRGLOBAL\\langstonb" Date: Fri, 9 Jun 2023 10:44:48 -0400 Subject: [PATCH 154/159] AAZM-676 - Updated the Chinese Help --- .../Logical/ChineseHelp/mappFramework.chm | Bin 1099596 -> 1101146 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mappFramework/Logical/ChineseHelp/mappFramework.chm b/mappFramework/Logical/ChineseHelp/mappFramework.chm index 31b3193a7dfed0478cae0110f033f31a30c488dd..d18a2235a878b487a2d321600d0ca4939d78e58f 100644 GIT binary patch literal 1101146 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¥ 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 literal 1099596 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 z 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 z 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 ?GeRNhv!hBsZBOtBJd{3$1W+UAGxnx>)17 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�}<>SW9|;rshHm@-^&i$k`J}-svyjV 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

    !EUJn7l@Ukdj4cGQi-+zQi|*qym6z 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

    Mv`o{IBBfi(y&)9bhBnjxW5fA_XA^_7CGY5S? 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�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�WLn@OSph3*a%$pV!cJkBW~fEK(1$-FICl#goeUBOTK%?+@R(+3}_ts|T6t z-sfN3&Q`WUfitZ&Z`EROi~9Q!7o8`qh<2X#0uq^N%dZ(w0N<~$#dh)MEQvj;7cbHw zv=thg&Bk1sAjTAYWkH>*GLuBMj710=XW~P|8(-$CnBOs#GcH4)5u=~K5=hle9wm1` zlNf$1UeKR|f9}fyH*y*F)JQgZ*s_NVb#<2;zsOi)s}EuG(wD?k`cep&V$n~>_kC

    >N1?wL;?LR+)Vk^-uUxG(8{J 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%0A$zo;tHe?iSO?7V0}xRGU5lQXSlFPT>UweeN_j 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

    slnJ!i;N$7Pum!CzR>S`9)5K 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%0AJoO%{E3J1Rejb}BdCSMDx!mHbv5Ycm` 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