diff options
138 files changed, 6284 insertions, 953 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/Sys_PinOut_Config/MCU_MAIN_pinout.c b/Software/Embedded_SW/Embedded/Common/Sys_PinOut_Config/MCU_MAIN_pinout.c index 93ce6cf51..fcede699f 100644 --- a/Software/Embedded_SW/Embedded/Common/Sys_PinOut_Config/MCU_MAIN_pinout.c +++ b/Software/Embedded_SW/Embedded/Common/Sys_PinOut_Config/MCU_MAIN_pinout.c @@ -859,9 +859,14 @@ PinoutSet(void) // Configure the GPIO Pin Mux for PR0 // for I2C1SCL // - MAP_GPIOPinConfigure(GPIO_PR0_I2C1SCL); - MAP_GPIOPinTypeI2CSCL(GPIO_PORTR_BASE, GPIO_PIN_0); + //MAP_GPIOPinConfigure(GPIO_PR0_I2C1SCL); + //MAP_GPIOPinTypeI2CSCL(GPIO_PORTR_BASE, GPIO_PIN_0); + #ifdef USE_UART4_FOR_BTSR + // Configure the GPIO Pin PR0 for BTSR RS485 UART - Set as output to change to uart4 RS485 Direction: + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTR_BASE, GPIO_PIN_0); + ROM_GPIOPinWrite(GPIO_PORTR_BASE, GPIO_PIN_0, 0); + #endif // // Configure the GPIO Pin Mux for PR1 // for I2C1SDA diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 291c94e9d..1bed505f2 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -20,7 +20,7 @@ #define NO_INITIAL_HEATING #define MAX_STRING_LEN 255 //Embedded version + filter.c -#define WATCHDOG +//#define WATCHDOG //#define DISPESER_TEST //#define FPGA_WATCHDOG_DISABLE @@ -32,7 +32,11 @@ #ifdef FOUR_WINDERS #define BTSR_NO_FEEDER_TFU #define BTSR_NO_PULLER_TFU +#define BTSR_ROTATED_WINDER_TFU #endif +//#define BTSR_ROTATED_WINDER_TFU + +#define USE_UART4_FOR_BTSR // need change in FRPGA FPGA_1 yy > 0x20 + jumpers in main board need to read HW Version //#define USE_RFID_STUB //stub only. to use it undef USE_RFID_LOGIC //#define RFID_READ_ONLY // @@ -152,6 +156,9 @@ typedef enum #define TX 0 #define RX 1 #define TXRX 2 +#define TX_FIRST_BYTE 3 //for BTSR +#define TX_NOT_FIRST_BYTE 4 //for BTSR + #define ODD 0 #define EVEN 1 diff --git a/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c b/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c index 66f209421..632dfb0d5 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c +++ b/Software/Embedded_SW/Embedded/Drivers/Flash_Memory/FATFS/ff.c @@ -98,7 +98,9 @@ #include "ff.h" /* FatFs configurations and declarations */ //#include "diskio.h" /* Declarations of low level disk I/O functions */ +#include <DataDef.h> #include "third_party/fatfs/src/diskio.h" +#include "Common/report/report.h" /*-------------------------------------------------------------------------- @@ -894,7 +896,10 @@ FRESULT put_fat ( if (clst < 2 || clst >= fs->n_fatent) { /* Check range */ - res = FR_INT_ERR; + { + res = FR_INT_ERR; + Report("put_fat FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fs->n_fatent,0); + } } else { switch (fs->fs_type) { @@ -929,6 +934,8 @@ FRESULT put_fat ( default : res = FR_INT_ERR; + Report("put_fat FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fs->fs_type,0); + } fs->wflag = 1; } @@ -958,13 +965,16 @@ FRESULT remove_chain ( if (clst < 2 || clst >= fs->n_fatent) { /* Check range */ res = FR_INT_ERR; - + Report("remove_chain FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fs->n_fatent,0); } else { res = FR_OK; while (clst < fs->n_fatent) { /* Not a last link? */ nxt = get_fat(fs, clst); /* Get cluster status */ if (nxt == 0) break; /* Empty cluster? */ - if (nxt == 1) { res = FR_INT_ERR; break; } /* Internal error? */ + if (nxt == 1) { + res = FR_INT_ERR; + Report("remove_chain FR_INT_ERR",__FILE__,__LINE__,(int)res,RpWarning,(int)fs->n_fatent,0); + break; } /* Internal error? */ if (nxt == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } /* Disk error? */ res = put_fat(fs, clst, 0); /* Mark the cluster "empty" */ if (res != FR_OK) break; @@ -1097,14 +1107,20 @@ FRESULT dir_sdi ( dj->index = idx; clst = dj->sclust; if (clst == 1 || clst >= dj->fs->n_fatent) /* Check start cluster range */ + { + Report("dir_sdi FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)dj->fs->n_fatent,0); return FR_INT_ERR; + } if (!clst && dj->fs->fs_type == FS_FAT32) /* Replace cluster# 0 with root cluster# if in FAT32 */ clst = dj->fs->dirbase; if (clst == 0) { /* Static table (root-dir in FAT12/16) */ dj->clust = clst; if (idx >= dj->fs->n_rootdir) /* Index is out of range */ - return FR_INT_ERR; + { + Report("dir_sdi FR_INT_ERR",__FILE__,__LINE__,(int)idx,RpWarning,(int)dj->fs->n_rootdir,0); + return FR_INT_ERR; + } dj->sect = dj->fs->dirbase + idx / (SS(dj->fs) / SZ_DIR); /* Sector# */ } else { /* Dynamic table (sub-dirs or root-dir in FAT32) */ @@ -1113,7 +1129,10 @@ FRESULT dir_sdi ( clst = get_fat(dj->fs, clst); /* Get next cluster */ if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ if (clst < 2 || clst >= dj->fs->n_fatent) /* Reached to end of table or int error */ + { + Report("dir_sdi FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)dj->fs->n_fatent,0); return FR_INT_ERR; + } idx -= ic; } dj->clust = clst; @@ -2558,7 +2577,10 @@ FRESULT f_write ( res = validate(fp); /* Check validity */ if (res != FR_OK) LEAVE_FF(fp->fs, res); if (fp->flag & FA__ERROR) /* Aborted file? */ + { + Report("f_write FR_INT_ERR",__FILE__,__LINE__,(int)fp->flag,RpWarning,(int)btw,0); LEAVE_FF(fp->fs, FR_INT_ERR); + } if (!(fp->flag & FA_WRITE)) /* Check access mode */ LEAVE_FF(fp->fs, FR_DENIED); if ((DWORD)(fp->fsize + btw) < fp->fsize) btw = 0; /* File size cannot reach 4GB */ @@ -2596,7 +2618,11 @@ FRESULT f_write ( } #endif sect = clust2sect(fp->fs, fp->clust); /* Get current sector */ - if (!sect) ABORT(fp->fs, FR_INT_ERR); + if (!sect) + { + Report("f_write FR_INT_ERR",__FILE__,__LINE__,(int)sect,RpWarning,(int)btw,0); + ABORT(fp->fs, FR_INT_ERR); + } sect += csect; cc = btw / SS(fp->fs); /* When remaining bytes >= sector size, */ if (cc) { /* Write maximum contiguous sectors directly */ @@ -2886,7 +2912,10 @@ FRESULT f_lseek ( res = validate(fp); /* Check validity of the object */ if (res != FR_OK) LEAVE_FF(fp->fs, res); if (fp->flag & FA__ERROR) /* Check abort flag */ + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)fp->flag,RpWarning,(int)FA__ERROR,0); LEAVE_FF(fp->fs, FR_INT_ERR); + } #if _USE_FASTSEEK if (fp->cltbl) { /* Fast seek */ @@ -2969,7 +2998,11 @@ FRESULT f_lseek ( #if !_FS_READONLY if (clst == 0) { /* If no cluster chain, create a new chain */ clst = create_chain(fp->fs, 0); - if (clst == 1) ABORT(fp->fs, FR_INT_ERR); + if (clst == 1) + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)FA__ERROR,0); + ABORT(fp->fs, FR_INT_ERR); + } if (clst == 0xFFFFFFFF) ABORT(fp->fs, FR_DISK_ERR); fp->sclust = clst; } @@ -2988,7 +3021,11 @@ FRESULT f_lseek ( #endif clst = get_fat(fp->fs, clst); /* Follow cluster chain if not in write mode */ if (clst == 0xFFFFFFFF) ABORT(fp->fs, FR_DISK_ERR); - if (clst <= 1 || clst >= fp->fs->n_fatent) ABORT(fp->fs, FR_INT_ERR); + if (clst <= 1 || clst >= fp->fs->n_fatent) + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)clst,RpWarning,(int)fp->fs->n_fatent,0); + ABORT(fp->fs, FR_INT_ERR); + } fp->clust = clst; fp->fptr += bcs; ofs -= bcs; @@ -2996,7 +3033,11 @@ FRESULT f_lseek ( fp->fptr += ofs; if (ofs % SS(fp->fs)) { nsect = clust2sect(fp->fs, clst); /* Current sector */ - if (!nsect) ABORT(fp->fs, FR_INT_ERR); + if (!nsect) + { + Report("f_lseek FR_INT_ERR",__FILE__,__LINE__,(int)nsect,RpWarning,(int)0,0); + ABORT(fp->fs, FR_INT_ERR); + } nsect += ofs / SS(fp->fs); } } @@ -3184,7 +3225,10 @@ FRESULT f_getfree ( do { stat = get_fat(fs, clst); if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } - if (stat == 1) { res = FR_INT_ERR; break; } + if (stat == 1) + { + Report("f_getfree FR_INT_ERR",__FILE__,__LINE__,(int)stat,RpWarning,(int)0,0); + res = FR_INT_ERR; break; } if (stat == 0) n++; } while (++clst < fs->n_fatent); } else { @@ -3233,6 +3277,7 @@ FRESULT f_truncate ( res = validate(fp); /* Check validity of the object */ if (res == FR_OK) { if (fp->flag & FA__ERROR) { /* Check abort flag */ + Report("f_truncate FR_INT_ERR",__FILE__,__LINE__,(int)fp->flag,RpWarning,(int)0,0); res = FR_INT_ERR; } else { if (!(fp->flag & FA_WRITE)) /* Check access mode */ @@ -3250,7 +3295,11 @@ FRESULT f_truncate ( ncl = get_fat(fp->fs, fp->clust); res = FR_OK; if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR; - if (ncl == 1) res = FR_INT_ERR; + if (ncl == 1) + { + Report("f_truncate FR_INT_ERR",__FILE__,__LINE__,(int)ncl,RpWarning,(int)0,0); + res = FR_INT_ERR; + } if (res == FR_OK && ncl < fp->fs->n_fatent) { res = put_fat(fp->fs, fp->clust, 0x0FFFFFFF); if (res == FR_OK) res = remove_chain(fp->fs, ncl); @@ -3301,6 +3350,7 @@ FRESULT f_unlink ( dclst = ld_clust(dj.fs, dir); if (res == FR_OK && (dir[DIR_Attr] & AM_DIR)) { /* Is it a sub-dir? */ if (dclst < 2) { + Report("f_unlink FR_INT_ERR",__FILE__,__LINE__,(int)dclst,RpWarning,(int)0,0); res = FR_INT_ERR; } else { mem_cpy(&sdj, &dj, sizeof (DIR)); /* Check if the sub-dir is empty or not */ diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c index 854153218..a600c3b9f 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c @@ -497,10 +497,10 @@ double CalculateWHSWasteTankLevelMiliLiter() get_vlev1(&Vm_mv);//mV (VREF = 4.096V 12bit so 1bit is 1mV) - //Report("***** get waste level in mV ********", __FILE__, __LINE__, 0, RpMessage, (int)(Vm_mv), 0); - Vm_ml = Vm_mv * 1500/mvfor1500mL; + Report("***** get waste level in mV ********", __FILE__, __LINE__, (int)(Vm_ml), RpMessage, (int)(Vm_mv), 0); + if(Vm_ml < LocalV0_ml) { //LocalV0_ml = Vm_ml; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c index ea45c89fe..30565df7d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c @@ -716,16 +716,18 @@ bool WHS_Reset_485(bool value) uint8_t RS485_Change_Direction(bool TX_OR_RX)//TX or RX - trigger i2c task { - if(TX_OR_RX == TX) + if((TX_OR_RX == TX) && (Whs_I2C_EXP_U4_0x42_VALUE.bits.VALUE_ACTLOW_DE_REn != true)) + { Whs_I2C_EXP_U4_0x42_VALUE.bits.VALUE_ACTLOW_DE_REn = true; - else + WHS_Write_IO(I2CExp2_ADDRESS,D_TCA9555_PORT_0); + } + else if((TX_OR_RX == RX) && (Whs_I2C_EXP_U4_0x42_VALUE.bits.VALUE_ACTLOW_DE_REn != false)) + { Whs_I2C_EXP_U4_0x42_VALUE.bits.VALUE_ACTLOW_DE_REn = false; - - WHS_Write_IO(I2CExp2_ADDRESS,D_TCA9555_PORT_0); - + WHS_Write_IO(I2CExp2_ADDRESS,D_TCA9555_PORT_0); + } return OK; - -}; +} uint8_t RS485_Direction(bool TX_OR_RX)//TX or RX { diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c new file mode 100644 index 000000000..12699a1fd --- /dev/null +++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c @@ -0,0 +1,630 @@ +/* + * BTSR.c + * + * Created on: 1 Dec 2020 + * Author: avi + */ + +#include "include.h" +#include <stdint.h> +#include <stdbool.h> + +#include <ti/sysbios/hal/Hwi.h> +#include <xdc/runtime/Error.h> +#include <xdc/runtime/System.h> + +#include <inc/hw_ints.h> + +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/interrupt.h" +#include "utils/uartstdio.h" +#include "driverlib/uart.h" + +//#include <Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.h> +#include "Modules/Control/MillisecTask.h" +#include <DataDef.h> +#include <Drivers/I2C_Communication/I2C_Task.h> +//#include "Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.h" +#include "Drivers/FPGA/FPGA_Comm.h" +#include "Drivers/Uart_Comm/BTSR/BTSR.h" + + + +static uint32_t GlobalClk; +uint8_t BTSR_RX_Buff[Max_BTSR_RX_Bytes]; +uint16_t TX_Timeout = 0xFFFF;//6250 +uint16_t RX_Timeout = 0xFFFF;//1 + +typedef enum +{ + BTSR_UART_CONFIG_PAR_1 = (UART_CONFIG_WLEN_8 |UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_ONE), + BTSR_UART_CONFIG_PAR_0 = (UART_CONFIG_WLEN_8 |UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_ZERO), +}UAR_CFG; +UAR_CFG BTSR_UART_CONFIG; + +uint8_t txlen = 0; +uint8_t txcounter = 0, rxcounter = 0; +uint8_t BTSR_TX_Buff[Max_BTSR_TX_Bytes]; + + +uint8_t RX_Int_Counter = 0, RT_Int_Counter = 0, TX_Int_Counter = 0; + +uint8_t UART4_RS485_Direction(bool TX_OR_RX)//TX or RX +{ + ROM_GPIOPinWrite(GPIO_PORTR_BASE, GPIO_PIN_0, !(TX_OR_RX)); + + return OK; +} +void U4TX() +{ + UARTIntEnable(UART4_BASE, UART_INT_TX); + ROM_UARTCharPutNonBlocking(UART4_BASE,BTSR_TX_Buff[txcounter]); +} +void U4RX() +{ + UARTIntEnable(UART4_BASE, UART_INT_TX); + BTSR_RX_Buff[rxcounter] = ROM_UARTCharGetNonBlocking(UART4_BASE);//Receive data + rxcounter++; + + +} + +void uart4_intHandler() +{ + static uint8_t nop = 0; + //Get interrupt flags + unsigned long status = UARTIntStatus(UART4_BASE, 1); + + //Clear flags + UARTIntClear(UART4_BASE, status); + + //Treat both of these interrupts the same + if(status & UART_INT_RX) + { + RX_Int_Counter++; + U4RX(); + } + else + if(status & UART_INT_RT) /// Receive Timeout Interrupt + { + RT_Int_Counter++; + U4RX(); + } + if(status & UART_INT_TX) + { + UARTIntDisable(UART4_BASE, UART_INT_TX); + + TX_Int_Counter++; + + BTSR_Change_Comm_Mode(TX_NOT_FIRST_BYTE); + txcounter++; + if(txcounter >= txlen ) + { + txcounter = 0; + rxcounter = 0; + + BTSR_Change_Comm_Mode(RX); + UARTIntEnable(UART4_BASE, UART_INT_RT | UART_INT_RX); + + } + else + { + U4TX(); + } + + } + +} + + + + +void InitConsole_BTSR_UART4(int32_t ui32SysClock) +{ + + ROM_IntMasterDisable(); + + GlobalClk = ui32SysClock; + + //uint32_t ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), SYS_CLK_FREQ); + + SysCtlPeripheralEnable(SYSCTL_PERIPH_UART4); + // + // Enable GPIO port A which is used for UART4 pins. + // TODO: change this to whichever GPIO port you are using. + // + SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + SysCtlDelay(3); + + // + // Configure the pin muxing for UART4 functions on port A0 and A1. + // This step is not necessary if your part does not support pin muxing. + // + MAP_GPIOPinConfigure(GPIO_PA2_U4RX); + MAP_GPIOPinConfigure(GPIO_PA3_U4TX); + + // + // Enable UART4 so that we can configure the clock. + // + SysCtlPeripheralEnable(SYSCTL_PERIPH_UART4); + + SysCtlDelay(3); + + // + // Use the internal 16MHz oscillator as the UART clock source. + // + UARTClockSourceSet(UART4_BASE, UART_CLOCK_SYSTEM);//UART_CLOCK_PIOSC); + + // + // Select the alternate (UART) function for these pins. + // + MAP_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_3); + + // + // Initialize the UART for console I/O. + // + UARTFIFOEnable(UART4_BASE); + + MAP_UARTConfigSetExpClk(UART4_BASE, ui32SysClock, 57600,(UART_CONFIG_WLEN_7 |UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_ONE));//BTSR protocol + UART4_RS485_Direction(TX); + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + //Set UART FIFO level to 1/2 + //UARTFIFOLevelSet(UART4_BASE, UART_FIFO_TX7_8, UART_FIFO_RX1_8); +// +// //Register interrupt handler +// UARTIntRegister(UART4_BASE, uart4_intHandler); +// + // + // Configure and enable UART interrupts. + // + ROM_UARTIntClear(UART4_BASE, ROM_UARTIntStatus(UART4_BASE, false)); + //Declare HWI dynamically "TI-RTOS Kernel User's Guide" Page. 167 or Section 8.2.1 + Hwi_Handle Uart4Hwi; + Error_Block eb; + Error_init(&eb); + Uart4Hwi = Hwi_create(INT_UART4, uart4_intHandler, NULL, &eb); + if (Uart4Hwi == NULL) + { + System_abort("Uart4Hwi create failed"); + } + + UARTTxIntModeSet(UART4_BASE, UART_TXINT_MODE_EOT);//generate a TX interrupt when the last character has completed transmission + + //Enable RX and RT interrupts + UARTIntEnable(UART4_BASE, /*UART_INT_RT | UART_INT_RX | */UART_INT_TX); + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +//#define UART4_CTL_R (*((volatile uint32_t *)0x40010030)) +// +// UART4_CTL_R |= UART_CTL_EOT;// End of Transmission + + ROM_UARTEnable(UART4_BASE); + // + // Enable interrupts now that the application is ready to start. + // + ROM_IntEnable(INT_UART4); + + + + ROM_IntMasterEnable(); +} + + +unsigned long UARTStatus() +{ + return(HWREG(UART4_BASE + UART_O_FR)); +} + +bool BTSR_Change_Comm_Mode(uint8_t Mode) +{ + + if(Mode == TX_FIRST_BYTE) + { + UART4_RS485_Direction(TX); + + Task_sleep (eOneMillisecond);//Doesn't work without it - maybe to change to TX after RX + if(BTSR_UART_CONFIG != BTSR_UART_CONFIG_PAR_1) + { + BTSR_UART_CONFIG = BTSR_UART_CONFIG_PAR_1; + MAP_UARTConfigSetExpClk(UART4_BASE, GlobalClk, 57600,BTSR_UART_CONFIG_PAR_1); + } + } + else if(Mode == TX_NOT_FIRST_BYTE) + { + UART4_RS485_Direction(TX); + + //Task_sleep (eOneMillisecond); + if(BTSR_UART_CONFIG != BTSR_UART_CONFIG_PAR_0) + { + BTSR_UART_CONFIG = BTSR_UART_CONFIG_PAR_0; + MAP_UARTConfigSetExpClk(UART4_BASE, GlobalClk, 57600,BTSR_UART_CONFIG_PAR_0); + } + } + else if(Mode == RX) + { + UART4_RS485_Direction(RX); + + //Task_sleep (eOneMillisecond); + if(BTSR_UART_CONFIG != BTSR_UART_CONFIG_PAR_0) + { + BTSR_UART_CONFIG = BTSR_UART_CONFIG_PAR_0; + MAP_UARTConfigSetExpClk(UART4_BASE, GlobalClk, 57600,BTSR_UART_CONFIG_PAR_0); + } + } + return OK; +} + +int Uart4TransmitResult = 0; + +uint8_t BTSR_Auto_Identify(uint8_t BTSR_Id)//AUTOMATIC IDENTIFICATION PROCEDURE (IDENTIFY) +{ + uint8_t i = 0; + uint8_t FUNCTION_STRING_FD = 0xFD; + uint8_t TX_Timeout = 10; + uint8_t RX_Timeout = 10; + + BTSR_Change_Comm_Mode(TX_FIRST_BYTE); + Task_sleep (eOneMillisecond); + + for(i = 0 ;i < 3; i++) + { + + Uart4TransmitResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,FUNCTION_STRING_FD); + Task_sleep (eOneMillisecond); + } + + while(UARTBusy(UART4_BASE) == true)//true if the UART is transmitting, false if all transmissions are complete + { + if(TX_Timeout) + { + TX_Timeout--; + Task_sleep (eOneMillisecond); + } + else + return ERROR; + } + + BTSR_Change_Comm_Mode(RX); + + while(UARTCharsAvail(UART4_BASE) == false);//true if there is data in the receive FIFO or false if there is no data in the receive FIFO + { + if(RX_Timeout) + { + RX_Timeout--; + Task_sleep (eOneMillisecond); + } + else + return ERROR; + } + BTSR_RX_Buff[0] = ROM_UARTCharGetNonBlocking(UART4_BASE);//Receive data + + if(BTSR_RX_Buff[0] == 0xFD) + { + BTSR_Change_Comm_Mode(TX_FIRST_BYTE); + Task_sleep (eOneMillisecond); + Uart4TransmitResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,BTSR_Id); + return OK; //Need to press ENTER in BTSR! + } + else + { + return ERROR; + } +} + +////////////////////////////////////////////////// + +uint8_t BTSR_Calculate_CheckSum(uint8_t *Buf, uint8_t size_without_Checksum) +{ + uint8_t i = 0; + uint16_t Sum = 0; + + for(i=0;i<(size_without_Checksum);i++) + { + Sum += Buf[i]; + } + Buf[i] = Sum & 0xFF; + Buf[i+1] = Sum >> 8; + + return OK; +} + +uint8_t Check_Received_CheckSum(uint8_t CODE_STRING, uint8_t Function_Code, uint8_t *Buf, uint8_t size_include_Checksum)//Function_Code + CODE_STRING needed only for FUNCTION_STRING = 0x33 +{ + uint8_t Status = OK; + uint8_t i = 0; + uint16_t Sum = 0; + + //uint8_t temp[10]; + + if(size_include_Checksum > 2) // No checkSum for <=2 + { + for(i = 0; i < (size_include_Checksum - 2); i++) + { + Sum += Buf[i];//Sum Of DATA_STRING + } + +// for(i = 0; i < size_include_Checksum ; i++)//debug +// { +// temp[i] = Buf[i]; +// } + + if(size_include_Checksum == 6) //FUNCTION_STRING = 0x33 + { + //Sum Of DATA_STRING, Device Code, Function Code. + Sum += Function_Code + CODE_STRING; + } + + if( (Buf[size_include_Checksum - 2] != (Sum & 0xFF)) || + (Buf[size_include_Checksum - 1] != (Sum >> 8)) ) + { + Status = ERROR; + } + } + return Status; +} + + + +//APPLICATION AND YARN TYPOLOGY SET +typedef union +{ + struct + { + uint8_t Code; + uint8_t Function; + uint8_t Data[2]; + uint8_t Check[2]; + }String; + uint8_t Buf[6]; +}BTSR_TYPOLOGY_SET; + +BTSR_TYPOLOGY_SET Typology_Set; + +uint8_t BTSR_Send_Buf(uint8_t *Buf, uint8_t size) +{ + int TxResult = 0; + uint8_t i; + + txlen = size; + for(i=0;i<size;i++) + BTSR_TX_Buff[i] = Buf[i]; + + UARTIntEnable(UART4_BASE, UART_INT_TX); + BTSR_Change_Comm_Mode(TX_FIRST_BYTE); + //Task_sleep (eOneMillisecond); + TxResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,Buf[0]); + + return TxResult; +} + + +/* +uint8_t BTSR_Send_Buf(uint8_t *Buf, uint8_t size) +{ + int TxResult = 0; + uint8_t i = 1;//change to ADD0 and send the rest of bytes (1..Size) + const uint8_t Save_Size = size; + + BTSR_Change_Comm_Mode(TX_FIRST_BYTE); + Task_sleep (eOneMillisecond); + TxResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,Buf[0]); + + BTSR_Change_Comm_Mode(TX_NOT_FIRST_BYTE); + Task_sleep (eOneMillisecond); + + while(size) + { + if(size <= 16) //FIFO is working for data up to 16 bytes + { + for(; i < Save_Size; i++) + { + TxResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,Buf[i]); + } + size = 0;// all sent + } + else + { + for(; i < 16; i++) + { + TxResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,Buf[i]); + } + size -= 16; + } + + while(HWREG(UART4_BASE + UART_O_FR) & UART_FR_BUSY)//UARTFR + { + if(TX_Timeout) + { + TX_Timeout--; + } + else + return ERROR; + } + } + + UART4_RS485_Direction(RX); + + return TxResult; +} +*/ +uint8_t BTSR_Send_Buf_3xADD1(uint8_t *Buf, uint8_t size)//Only for commands with 3 bytes with Address 1 (0x06/0xFD) +{ + int TxResult = 0; + uint8_t i = 0; + + if((Buf[4] != 0x06) || (size < 3)) + return ERROR; + + BTSR_Change_Comm_Mode(TX_FIRST_BYTE); + Task_sleep (eOneMillisecond); + + for(i = 0; i < 3; i++) + { + TxResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,Buf[i]); + Task_sleep (eOneMillisecond); + } + + BTSR_Change_Comm_Mode(TX_NOT_FIRST_BYTE); + Task_sleep (eOneMillisecond); + + for(; i < size; i++) + { + TxResult |=ROM_UARTCharPutNonBlocking(UART4_BASE,Buf[i]); + } + + while(HWREG(UART4_BASE + UART_O_FR) & UART_FR_BUSY)//UARTFR + { + if(TX_Timeout) + { + TX_Timeout--; + } + else + return ERROR; + } + UART4_RS485_Direction(RX); + + return TxResult; +} + +uint8_t BTSR_RECEIVE_Buf(uint8_t *Buf, uint8_t size) //to test with BTSR_Set_Parmeters(0x01,SHOES,ALL_YARNS); +{ + uint8_t i = 0; + + BTSR_Change_Comm_Mode(RX); + + while(UARTCharsAvail(UART4_BASE) == false)//true if there is data in the receive FIFO or false if there is no data in the receive FIFO + { + if(RX_Timeout) + { + RX_Timeout--; + } + else + return ERROR; + } + + memset (BTSR_RX_Buff,0,sizeof(BTSR_RX_Buff)); + + i=0; + while(UARTCharsAvail(UART4_BASE) == true) + { + BTSR_RX_Buff[i] = ROM_UARTCharGetNonBlocking(UART4_BASE);//Receive data + i++; + } +// for(i=0;i<4;i++) +// { +// BTSR_RX_Buff[i] = ROM_UARTCharGetNonBlocking(UART4_BASE);//Receive data +// } + + if(size == i) + return OK;//as expected + return ERROR; +} + +uint8_t BTSR_Set_Parmeters(uint8_t BTSR_Id, uint8_t Application, uint8_t Yarn_Type ) +{ + //uint16_t Sum = 0; + //uint8_t i = 0; + + //BTSR_RX_Buff[0] = 0; + + Typology_Set.String.Code = BTSR_Id; + Typology_Set.String.Function = 0x3F; + Typology_Set.String.Data[0] = Application; + Typology_Set.String.Data[1] = Yarn_Type; + BTSR_Calculate_CheckSum(Typology_Set.Buf,(sizeof(Typology_Set.Buf))- 2); + /* + for(i=0;i<(sizeof(Typology_Set) - sizeof(Typology_Set.String.Check));i++) + { + Sum += Typology_Set.Buf[i]; + } + Typology_Set.String.Check[0] = Sum & 0xFF; + Typology_Set.String.Check[1] = Sum >> 8; +*/ + + + BTSR_Send_Buf(Typology_Set.Buf, sizeof(Typology_Set)); + + //BTSR_RECEIVE_Buf(BTSR_RX_Buff, 1); + +/* + if(BTSR_RX_Buff[0] == 0xFB) + return OK; + else + return ERROR; + */ + return BTSR_RX_Buff[0]; +} + + +//------------------------------------------------------------------------ + + +typedef union +{ + struct + { + uint8_t Data[2]; + uint8_t Check[2]; + }String; + uint8_t Buf[4]; +}BTSR_2_2; + +typedef union +{ + struct + { + uint8_t Code; + uint8_t Function; + uint8_t Check[2]; + }String; + uint8_t Buf[4]; +}BTSR_1_1_2; + +BTSR_1_1_2 Status_Read_Command;//ALARM AND ENABLING STATUS READ +BTSR_2_2 Status_Read_Response; + +uint8_t BTSR_Read_Status(uint8_t BTSR_Id, uint8_t Application, uint8_t Yarn_Type ) +{ + uint16_t Sum = 0; + uint8_t i = 0; + + Typology_Set.String.Code = BTSR_Id; + Typology_Set.String.Function = 0x1F; + for(i=0;i<(sizeof(Typology_Set) - sizeof(Typology_Set.String.Check));i++) + { + Sum += Typology_Set.Buf[i]; + } + Typology_Set.String.Check[0] = Sum & 0xFF; + Typology_Set.String.Check[1] = Sum >> 8; + + BTSR_Send_Buf(Typology_Set.Buf, sizeof(Typology_Set)); + + BTSR_RECEIVE_Buf(BTSR_RX_Buff, 6); + + for(i=0;i<(sizeof(Status_Read_Response) - sizeof(Status_Read_Response.String.Check));i++) + { + Sum += BTSR_RX_Buff[i]; + } + if( (BTSR_RX_Buff[sizeof(Status_Read_Response) - 2] == Sum & 0xFF) && + (BTSR_RX_Buff[sizeof(Status_Read_Response) - 1] == Sum >> 8) ) + { + for(i=0;i<(sizeof(Status_Read_Response) - sizeof(Status_Read_Response.String.Check));i++) + { + Status_Read_Response.Buf[i] = BTSR_RX_Buff[i]; + } + return OK; + } + else + return ERROR; +} + + + diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h new file mode 100644 index 000000000..14fda8f19 --- /dev/null +++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h @@ -0,0 +1,65 @@ +/* + * BTSR.h + * + * Created on: 1 Dec 2020 + * Author: avi + */ + +#ifndef DRIVERS_UART_COMM_BTSR_BTSR_H_ +#define DRIVERS_UART_COMM_BTSR_BTSR_H_ + +#define Max_BTSR_RX_Bytes 55 +#define Max_BTSR_TX_Bytes 40 + +typedef enum +{ + SOCKS = 1 , + REVERSE_SOCKS = 2 , + MEDICAL_SOCKS = 3 , + PANTYHOSE = 4 , + SEAMLESS = 5 , + KNIT = 6 , + REVERSE_KNIT = 7 , + RASCHEL = 8 , + SEWING = 9 , + FLAT_KNIT = 10, + SMALL_LOOM = 11, + SHOES = 12, + FLAT_SHOES = 21, + INLAY = 22, + WARP = 34, + REWIND = 35, +}BTSR_APPLICATION; + +typedef enum +{ + ELASTOMERIC_YARN = 1, + ALL_YARNS = 2, + ALL_YARNS2 = 3, + ALL_YARNS3 = 4, + ELASTIC2 = 5, + ELASTIC3 = 6, +}BTSR_YARN_TYPE; + +typedef enum +{ + BTSR_RISP_OK = 0xFB, + BTSR_RISP_FAILED = 0xFA, + BTSR_RISP_OUT_OF_RANFE = 0xF9, +}BTSR_RISP_BYTE; + +extern uint8_t BTSR_RX_Buff[Max_BTSR_RX_Bytes]; + +unsigned long UARTStatus(); +bool BTSR_Change_Comm_Mode(uint8_t Mode); +uint8_t BTSR_Auto_Identify(uint8_t BTSR_Id);//AUTOMATIC IDENTIFICATION PROCEDURE (IDENTIFY) +uint8_t BTSR_Set_Parmeters(uint8_t BTSR_Id, uint8_t Application, uint8_t Yarn_Type ); + +uint8_t BTSR_Send_Buf(uint8_t *Buf, uint8_t size); +uint8_t BTSR_RECEIVE_Buf(uint8_t *Buf, uint8_t size); +uint8_t BTSR_Calculate_CheckSum(uint8_t *Buf, uint8_t size_without_Checksum); +uint8_t Check_Received_CheckSum(uint8_t CODE_STRING, uint8_t Function_Code, uint8_t *Buf, uint8_t size_include_Checksum); +uint8_t BTSR_Send_Buf_3xADD1(uint8_t *Buf, uint8_t size);//Only for commands with 3 bytes with Address 1 (0x06/0xFD) +void InitConsole_BTSR_UART4(int32_t ui32SysClock); + +#endif /* DRIVERS_UART_COMM_BTSR_BTSR_H_ */ diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c index 771a67f81..17427407e 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c +++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.c @@ -112,6 +112,7 @@ uint8_t Uart3_Transmit(uint8_t * Uart3_Tx_Buff, uint32_t Length) uint8_t Uart3_Receive(uint8_t * Uart3_Rx_Buff, uint32_t RX_Length) { uint8_t i,Status = OK; + uint8_t timeout = 5; uint8_t temp_buf[Size_Shinko_Res]; @@ -119,7 +120,11 @@ uint8_t Uart3_Receive(uint8_t * Uart3_Rx_Buff, uint32_t RX_Length) { for(i=0;i<RX_Length;i++) { - temp_buf[i] = ROM_UARTCharGet/*NonBlocking*/(UART3_BASE);//Receive data + while((UARTCharsAvail(UART3_BASE) != true) && timeout) + { + Task_sleep (eOneMillisecond); + } + temp_buf[i] = ROM_UARTCharGetNonBlocking(UART3_BASE);//Receive data if ((i == 0) && (temp_buf[0] == 0) )// There isn't communication / The controller is not connected - Shinko_Header_Asccii_ACK = 0x06 { Status = ERROR; diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index 16334a0ad..c1eeff837 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -44,6 +44,7 @@ #include <Drivers/I2C_Communication/I2C.h> #include "drivers/Uart_Comm/WHS_Controller_Comm/WHS_UART/WHS_Uart.h" #include <Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.h> +#include "Drivers/Uart_Comm/BTSR/BTSR.h" /* #include "Drivers/SPI_SDCARD/SDSPI.h" @@ -396,6 +397,9 @@ int main(void) Trigger_RS485_Direction_Init();//init i/o } + #ifdef USE_UART4_FOR_BTSR + InitConsole_BTSR_UART4(ui32SysClock); + #endif //EMAC_initEMAC(); ControlInit(); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index 73282fa97..659a308db 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -52,6 +52,7 @@ #include "StateMachines/Initialization/PowerOffSequence.h" #include "StateMachines/Initialization/PowerIdle.h" +#include "Drivers/Uart_Comm/BTSR/BTSR.h" extern HeadBoardTempSensConfigStruc HeadTempSensConfig[MAX_HEAD_CARD_TEMP_SENS_ID]; extern float NumberOfRotationPerPassage; // how many rotations per spool passage @@ -90,7 +91,19 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) uint8_t ReadBackReg[1]; - + if(request->amount == 0xFEED)//BTSR Feeder + { + if((request->delay) >> 4 == 0) + { + response.progress = BTSR_Auto_Identify(request->delay & 0xF); + } + else + { + response.progress = BTSR_Set_Parmeters(request->delay & 0xF,(request->delay & 0xFF00)>>8,(request->delay & 0xFF0000)>>16); + } + response.has_progress = true; + } + else if(request->amount == 0xacc1e) { response.progress = IDS_Cleaning_Move_Actuators(); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c index e749b41ec..d07a4de59 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c @@ -28,6 +28,12 @@ #include "Stub_Status.h" #include "drivers/I2C_Communication/I2C.h" + +#include "Drivers/Uart_Comm/BTSR/BTSR.h" + +static uint8_t CODE_STRING;//BTSR ID needed to check the checksum, in the response for FUNCTION_STRING = 0x33/0x1C +static uint8_t Function_Code;//needed to check the checksum, in the response for FUNCTION_STRING = 0x33/0x1C + void Stub_I2CRequest(MessageContainer* requestContainer) { @@ -91,33 +97,134 @@ void Stub_I2CWriteBytesRequest(MessageContainer* requestContainer) response.slaveaddress = request->slaveaddress; response.has_slaveaddress = true; - //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytetowrite ); - //response.has_readbyte= true; +// if(request->i2cid != 0xFEED)//BTSR FEEDR (Script identification) +// { +// +// //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytetowrite ); +// //response.has_readbyte= true; +// +// //-------------------------- +// +// //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytestwrite[0]); +// //response.has_readbyte= true; +// +// uint8_t I2C_W_buf[256] = {0},i; +// +// for(i = 0; i < request->n_bytestwrite;i++) +// { +// I2C_W_buf[i] = (uint8_t)(request->bytestwrite[i] & 0xff); +// } +// +// //response.readbytes = I2C_W_buf; +// //response.n_readbytes = request->n_bytestwrite; +// +// //------------------------------- +// +// +// //---------------------- +// +// status = I2C_Write/*Write_I2C*/(request->i2cid, request->slaveaddress, I2C_W_buf, request->n_bytestwrite); +// +// } +// else +// { +// //--------------- RS485 BTSR FEEDR --------------- +// +// +// uint8_t BTSR_TX_Buff[Max_BTSR_TX_Bytes] = {0},i; +// +// for(i = 0; i < request->n_bytestwrite;i++) +// { +// BTSR_TX_Buff[i] = (uint8_t)(request->bytestwrite[i] & 0xff); +// } +// +// CODE_STRING = BTSR_TX_Buff[0]; +// Function_Code = BTSR_TX_Buff[1]; +// +// if(request->slaveaddress)//Auto_Calc_CheckSum +// { +// BTSR_Calculate_CheckSum(BTSR_TX_Buff,request->n_bytestwrite); +// BTSR_Send_Buf(BTSR_TX_Buff, request->n_bytestwrite + 2);//2 bytes of CheckSum +// } +// else +// { +// BTSR_Send_Buf(BTSR_TX_Buff, request->n_bytestwrite); +// } +// +// Task_sleep (10); +// BTSR_RECEIVE_Buf(BTSR_RX_Buff, 0);//size not in use (need to ignore the returned error) +// +// +// } + if((request->i2cid != 0xFEED) && (request->i2cid != 0xFEED3ADD))//BTSR FEEDR (Script identification) + { - //-------------------------- + //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytetowrite ); + //response.has_readbyte= true; - //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytestwrite[0]); - //response.has_readbyte= true; + //-------------------------- - uint8_t I2C_W_buf[256] = {0},i; + //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytestwrite[0]); + //response.has_readbyte= true; + + uint8_t I2C_W_buf[256] = {0},i; + + for(i = 0; i < request->n_bytestwrite;i++) + { + I2C_W_buf[i] = (uint8_t)(request->bytestwrite[i] & 0xff); + } + + //response.readbytes = I2C_W_buf; + //response.n_readbytes = request->n_bytestwrite; + + //------------------------------- + + + //---------------------- + + status = I2C_Write/*Write_I2C*/(request->i2cid, request->slaveaddress, I2C_W_buf, request->n_bytestwrite); - for(i = 0; i < request->n_bytestwrite;i++) - { - I2C_W_buf[i] = (uint8_t)(request->bytestwrite[i] & 0xff); } + else + { + //--------------- RS485 BTSR FEEDR --------------- - //response.readbytes = I2C_W_buf; - //response.n_readbytes = request->n_bytestwrite; - //------------------------------- + uint8_t BTSR_TX_Buff[Max_BTSR_TX_Bytes] = {0},i; + for(i = 0; i < request->n_bytestwrite;i++) + { + BTSR_TX_Buff[i] = (uint8_t)(request->bytestwrite[i] & 0xff); + } - //---------------------- + CODE_STRING = BTSR_TX_Buff[0]; - status = I2C_Write/*Write_I2C*/(request->i2cid, request->slaveaddress, I2C_W_buf, request->n_bytestwrite); + if(request->i2cid == 0xFEED3ADD)//Only for commands with 3 bytes with Address 1 (0x06/0xFD) + { + Function_Code = BTSR_TX_Buff[4]; - //-------------------------- + BTSR_Send_Buf_3xADD1(BTSR_TX_Buff, request->n_bytestwrite); + } + else + { + Function_Code = BTSR_TX_Buff[1]; + + if(request->slaveaddress)//Auto_Calc_CheckSum + { + BTSR_Calculate_CheckSum(BTSR_TX_Buff,request->n_bytestwrite); + BTSR_Send_Buf(BTSR_TX_Buff, request->n_bytestwrite + 2);//2 bytes of CheckSum + } + else + { + BTSR_Send_Buf(BTSR_TX_Buff, request->n_bytestwrite); + } + } + //Task_sleep (10); + //BTSR_RECEIVE_Buf(BTSR_RX_Buff, 0);//size not in use (need to ignore the returned error) + + + } status_response(status,&response.status, &response.statusword ,&response.has_statusword); @@ -150,27 +257,48 @@ void Stub_I2CReadBytesRequest(MessageContainer* requestContainer) response.slaveaddress = request->slaveaddress; response.has_slaveaddress = true; - status = I2C_Read/*Read_I2C*/(request->i2cid, request->slaveaddress, I2C_R_buf, request->numberofbytestoread); + if(request->i2cid != 0xFEED)//BTSR FEEDR (Script identification) + { - //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytetowrite ); - //response.has_readbyte= true; + status = I2C_Read/*Read_I2C*/(request->i2cid, request->slaveaddress, I2C_R_buf, request->numberofbytestoread); - //-------------------------- + //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytetowrite ); + //response.has_readbyte= true; - //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytestwrite[0]); - //response.has_readbyte= true; + //-------------------------- - //uint32_t I2C_W_buf[256] = {0},i; + //response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytestwrite[0]); + //response.has_readbyte= true; - for(i = 0; i < request->numberofbytestoread;i++) - { - I2C_R32_buf[i]= (uint32_t)I2C_R_buf[i] ; + //uint32_t I2C_W_buf[256] = {0},i; + + for(i = 0; i < request->numberofbytestoread;i++) + { + I2C_R32_buf[i]= (uint32_t)I2C_R_buf[i] ; + } + + + response.readbytes = I2C_R32_buf; + response.n_readbytes = request->numberofbytestoread; + + //------------------------------- } + else + { + //--------------- RS485 BTSR FEEDR --------------- + for(i = 0; i < request->numberofbytestoread - request->slaveaddress;i++) + { + I2C_R32_buf[i]= (uint32_t)BTSR_RX_Buff[i] ; + } - response.readbytes = I2C_R32_buf; - response.n_readbytes = request->numberofbytestoread; + if(((request->numberofbytestoread- request->slaveaddress) > 2) && (request->slaveaddress))//Verify_Received_CheckSum + { + I2C_R32_buf[i] = Check_Received_CheckSum(CODE_STRING, Function_Code, BTSR_RX_Buff, (request->numberofbytestoread - request->slaveaddress));//use the next byte to return the checksum status + } + response.readbytes = I2C_R32_buf; + response.n_readbytes = request->numberofbytestoread; + } - //------------------------------- status_response(status,&response.status, &response.statusword ,&response.has_statusword); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 8b72c1a30..4ced1e5fe 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -714,6 +714,10 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) { NormalizedError = (-1*NormalizedError); } +/*#ifdef BTSR_ROTATED_WINDER_TFU + if (index == WINDER_MOTOR) + TranslatedReadValue = (-1*TranslatedReadValue); +#endif*/ MotorControlConfig[index].m_mesuredParam = NormalizedError; DancerError[DancerId] = NormalizedError; diff --git a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip index 916ca7451..ccac49ada 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip +++ b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip @@ -29,10 +29,10 @@ <ROW Property="ExtractFilesFirst" Value="1"/> <ROW Property="LogoIcon" Value="externalui.ico" MultiBuildValue="DefaultBuild:machine_full_0UZ_icon.ico_1" Type="1" MsiKey="LogoIcon"/> <ROW Property="Manufacturer" Value="Twine Solutions LTD"/> - <ROW Property="ProductCode" Value="1033:{A2A478FB-D160-477D-8870-101D803596FB} " Type="16"/> + <ROW Property="ProductCode" Value="1033:{0DFFFC98-851D-497C-88CE-43D0B7486DED} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> <ROW Property="ProductName" Value="Tango FSE"/> - <ROW Property="ProductVersion" Value="1.1.2.0" Type="32"/> + <ROW Property="ProductVersion" Value="1.1.3.0" Type="32"/> <ROW Property="RUNAPPLICATION" Value="1" Type="4"/> <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> <ROW Property="UpgradeCode" Value="{0E13CB0D-89F7-465E-9F56-F1CBD6773E6E}"/> @@ -53,26 +53,11 @@ <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1" DirectoryOptions="3"/> <ROW Directory="DesktopFolder" Directory_Parent="TARGETDIR" DefaultDir="DESKTO~1|DesktopFolder" IsPseudoRoot="1"/> <ROW Directory="ProgramMenuFolder" Directory_Parent="TARGETDIR" DefaultDir="PROGRA~1|ProgramMenuFolder" IsPseudoRoot="1"/> - <ROW Directory="ProtoCompilers_Dir" Directory_Parent="APPDIR" DefaultDir="PROTOC~1|ProtoCompilers" DirectoryOptions="3"/> <ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/> <ROW Directory="SQLExaminer_Dir" Directory_Parent="APPDIR" DefaultDir="SQLEXA~1|SQLExaminer" DirectoryOptions="3"/> <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/> - <ROW Directory="cs_Dir" Directory_Parent="APPDIR" DefaultDir="cs" DirectoryOptions="3"/> - <ROW Directory="de_Dir" Directory_Parent="APPDIR" DefaultDir="de" DirectoryOptions="3"/> - <ROW Directory="es_Dir" Directory_Parent="APPDIR" DefaultDir="es" DirectoryOptions="3"/> - <ROW Directory="fr_Dir" Directory_Parent="APPDIR" DefaultDir="fr" DirectoryOptions="3"/> - <ROW Directory="it_Dir" Directory_Parent="APPDIR" DefaultDir="it" DirectoryOptions="3"/> - <ROW Directory="ja_Dir" Directory_Parent="APPDIR" DefaultDir="ja" DirectoryOptions="3"/> - <ROW Directory="ko_Dir" Directory_Parent="APPDIR" DefaultDir="ko" DirectoryOptions="3"/> - <ROW Directory="pl_Dir" Directory_Parent="APPDIR" DefaultDir="pl" DirectoryOptions="3"/> - <ROW Directory="ptBR_Dir" Directory_Parent="APPDIR" DefaultDir="pt-BR" DirectoryOptions="3"/> - <ROW Directory="roslyn_Dir" Directory_Parent="APPDIR" DefaultDir="roslyn" DirectoryOptions="3"/> - <ROW Directory="ru_Dir" Directory_Parent="APPDIR" DefaultDir="ru" DirectoryOptions="3"/> - <ROW Directory="tr_Dir" Directory_Parent="APPDIR" DefaultDir="tr" DirectoryOptions="3"/> <ROW Directory="win7x64_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x64" DirectoryOptions="3"/> <ROW Directory="win7x86_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x86" DirectoryOptions="3"/> - <ROW Directory="zhHans_Dir" Directory_Parent="APPDIR" DefaultDir="zh-Hans" DirectoryOptions="3"/> - <ROW Directory="zhHant_Dir" Directory_Parent="APPDIR" DefaultDir="zh-Hant" DirectoryOptions="3"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent"> <ROW Component="AI_ExePath" ComponentId="{C34670D7-E692-46D3-8154-6A8F253B99E5}" Directory_="APPDIR" Attributes="4" KeyPath="AI_ExePath"/> @@ -107,22 +92,14 @@ <ROW Component="MaterialDesignThemes.Wpf.dll" ComponentId="{D4A89F22-F969-46C3-915C-C565E7BE99D1}" Directory_="APPDIR" Attributes="0" KeyPath="MaterialDesignThemes.Wpf.dll"/> <ROW Component="Microsoft.AspNet.SignalR.Client.dll" ComponentId="{A6A1BE43-A965-4718-8B9B-E8BB2D2B6FA9}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.AspNet.SignalR.Client.dll"/> <ROW Component="Microsoft.Azure.ActiveDirectory.GraphClient.dll" ComponentId="{623FE6DD-F44D-4E99-8FD5-E54A608BE511}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/> - <ROW Component="Microsoft.Build.Tasks.CodeAnalysis.dll" ComponentId="{E9B1B6BD-3C60-47D4-B989-D2F075FA1C68}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.Build.Tasks.CodeAnalysis.dll"/> - <ROW Component="Microsoft.CodeAnalysis.CSharp.Scripting.dll" ComponentId="{ACF48BD1-792B-451A-AD96-C4637D7E6DD6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.Scripting.dll"/> <ROW Component="Microsoft.CodeAnalysis.CSharp.Scripting.dll_1" ComponentId="{2D21153E-2576-4B08-8FFD-966EA9074B3E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.Scripting.dll_1"/> - <ROW Component="Microsoft.CodeAnalysis.CSharp.dll" ComponentId="{C61CE6FB-26D0-4665-A4C6-4433B90C371F}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.dll"/> <ROW Component="Microsoft.CodeAnalysis.CSharp.dll_1" ComponentId="{19BBB256-0863-41A0-A93F-B98CE50E55F0}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.dll_1"/> - <ROW Component="Microsoft.CodeAnalysis.Scripting.dll" ComponentId="{01064D65-A5F3-4860-A695-D8ABC653D68A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Scripting.dll"/> <ROW Component="Microsoft.CodeAnalysis.Scripting.dll_1" ComponentId="{D262D06F-31E7-4CAE-9B99-6E0A8D0389EF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Scripting.dll_1"/> - <ROW Component="Microsoft.CodeAnalysis.VisualBasic.dll" ComponentId="{4AA227FD-D16D-4266-9451-E7E7FCE75BD9}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.VisualBasic.dll"/> <ROW Component="Microsoft.CodeAnalysis.Workspaces.dll" ComponentId="{49A621D3-E54C-46A2-8A72-BD89E56DE547}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Workspaces.dll"/> - <ROW Component="Microsoft.CodeAnalysis.dll" ComponentId="{7F02FF98-8C8F-4460-A63C-ABD1BD970DEE}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.dll"/> <ROW Component="Microsoft.CodeAnalysis.dll_1" ComponentId="{D74916F9-4E71-47FC-99FC-4535D7D867CE}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.dll_1"/> <ROW Component="Microsoft.Data.Edm.dll" ComponentId="{48D510EC-A662-45DF-9EE4-DDC38BC77EFC}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Edm.dll"/> <ROW Component="Microsoft.Data.OData.dll" ComponentId="{0916ABDB-52AA-410D-899B-0E89ED90AD69}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.OData.dll"/> <ROW Component="Microsoft.Data.Services.Client.dll" ComponentId="{259E96BC-E40A-4F26-A72F-E25D9582376E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Services.Client.dll"/> - <ROW Component="Microsoft.DiaSymReader.Native.amd64.dll" ComponentId="{66D1DF1B-6207-4513-8BE5-B37F798F4468}" Directory_="roslyn_Dir" Attributes="256" KeyPath="Microsoft.DiaSymReader.Native.amd64.dll"/> - <ROW Component="Microsoft.DiaSymReader.Native.x86.dll" ComponentId="{E37EEF1A-F5ED-49AE-AC04-D480040A5D37}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.DiaSymReader.Native.x86.dll"/> <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll" ComponentId="{9639E91B-464A-4C60-9703-1AAF4503B269}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"/> <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" ComponentId="{C8FF51E6-B8BB-401D-BD03-58FD08E4C389}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/> <ROW Component="Microsoft.ML.Core.dll" ComponentId="{A4F31C02-9525-4D41-A19D-C45FAC3A98D1}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.ML.Core.dll"/> @@ -144,152 +121,21 @@ <ROW Component="Microsoft.SqlServer.SqlClrProvider.dll" ComponentId="{663B932B-CC2D-4C7A-BFC6-C24A28947911}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlClrProvider.dll"/> <ROW Component="Microsoft.SqlServer.SqlEnum.dll" ComponentId="{2C0BB304-99D7-40AF-8CC5-190214B83909}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlEnum.dll"/> <ROW Component="Microsoft.TeamFoundation.Client.dll" ComponentId="{1B6E9891-BC09-4453-9F52-574F24B863C3}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.dll"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll" ComponentId="{59CC889C-6AF0-44B8-9D17-E6F37A3A340A}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_1" ComponentId="{F6A263BF-6769-4EAB-9632-B66443846EC5}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_1"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_10" ComponentId="{4B4121DC-805F-46D0-8A29-CCCDE3B57DFC}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_10"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_11" ComponentId="{28D69980-FDC8-4572-AFD2-B42610EBC63F}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_11"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_12" ComponentId="{EEF7B48C-535A-4FEA-8511-A194D7A71086}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_12"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_2" ComponentId="{451265D8-47B4-4AA4-BCFD-ECB7DBDF02FF}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_2"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_3" ComponentId="{EAE0EB7E-2C35-4682-8E17-243A2D919CB7}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_3"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_4" ComponentId="{5DE276A9-FD05-4274-95BB-CE5A9CDF80E8}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_4"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_5" ComponentId="{A01373DC-D662-4F04-9E0E-E63A5242E1E7}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_5"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_6" ComponentId="{49DDE6A5-3D87-4CF1-B822-F17AA86F6EB3}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_6"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_7" ComponentId="{DA1707EA-1737-4656-BF04-E8468CBFBFD3}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_7"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_8" ComponentId="{C564F624-D7BF-480E-B01A-46A896C927C1}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_8"/> - <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_9" ComponentId="{A30CD447-3BAF-422F-B4AA-18B84C80DF4E}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.Common.dll" ComponentId="{F1ABF859-C507-4C36-80D6-171C43D966EB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.dll"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll" ComponentId="{EA3B3582-94D4-4A72-AB95-8732A27079E9}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_1" ComponentId="{B60F93AA-73A7-41F4-A902-29921972DEC6}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_1"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_10" ComponentId="{F3064494-0D78-47D8-AB7F-85505B873C9A}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_10"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_11" ComponentId="{7DB11514-A5AE-4E73-8F05-FF641F1FACD5}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_11"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_12" ComponentId="{22D71F55-E161-48AB-8B08-895617F02C8F}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_12"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_2" ComponentId="{4665CEB8-03D7-4251-BFB0-C4290A3C6E3F}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_2"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_3" ComponentId="{1D9DC18C-4AAA-48F7-B247-8271592DBD3C}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_3"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_4" ComponentId="{11A5ADFD-4AB2-4F88-8197-DA067AF2E73D}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_4"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_5" ComponentId="{9ED9A3AE-BA32-4412-B63C-1C77470F8578}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_5"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_6" ComponentId="{6F4AAE41-F676-4C68-A922-BA1FBE794AEC}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_6"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_7" ComponentId="{6971246D-0F5E-49B1-831E-A0171980D2EC}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_7"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_8" ComponentId="{C47F8B92-7874-4632-9383-AC06406D33EE}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_8"/> - <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_9" ComponentId="{31ACC46E-6CD4-4658-A35E-1D8B7A8E287C}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.Core.WebApi.dll" ComponentId="{18ABDE2D-4B43-423F-BE25-4197869067D2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.dll"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll" ComponentId="{2D0AD45F-7673-45B1-B7DE-6ED5FD5D1C1C}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1" ComponentId="{399C34A8-C557-465F-9CE7-8D863DC35960}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10" ComponentId="{645F3E5A-25A0-46F4-8D75-64572CE5FAFD}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11" ComponentId="{CD85572E-6DF9-4C95-B7D4-293D36C2ED9C}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12" ComponentId="{9CA68B4D-015D-42DF-BCD4-DBF81E1E1D7C}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2" ComponentId="{3DFDF9E4-01FA-4B19-B7C5-87539A81AE95}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3" ComponentId="{E97D618F-4A64-4E09-8239-027E8D0D1D55}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4" ComponentId="{DCEF19EC-11AF-4856-ADE5-8E31BCC34E26}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5" ComponentId="{4C9FDBB0-86CA-43EB-B4BE-84C381E4DE90}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6" ComponentId="{A145D9F0-336C-4526-9711-7BAF542917D2}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7" ComponentId="{969F2A34-0B63-48BC-9965-46F96F4A553A}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8" ComponentId="{D4529D8D-8309-44C7-A8A8-13817D4A45DE}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8"/> - <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9" ComponentId="{350A6F82-9404-464A-9590-37B606F50BAE}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.Diff.dll" ComponentId="{A9022AA7-0A3A-4349-9FDA-F8E0D686B8D6}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Diff.dll"/> <ROW Component="Microsoft.TeamFoundation.Work.WebApi.dll" ComponentId="{6588A696-5B35-4047-BFB4-0BB3DF658E1C}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Work.WebApi.dll"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" ComponentId="{E67B3909-1475-4D71-8B9B-243446473DB2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" ComponentId="{76044DC4-0F7E-46FD-A7A7-841B742C6983}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_10" ComponentId="{56C327F2-E7C6-468A-B8BC-C0BBB4927463}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_10"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_11" ComponentId="{E025D497-B6DF-4635-A5DB-16FA9D47C4FB}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_11"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_12" ComponentId="{225CD7CB-1156-4B96-BC5D-90290C9ED249}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_12"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_1" ComponentId="{9B9034F7-6A6D-41B8-A472-5941568055D9}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_1"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_2" ComponentId="{939372BA-4ED7-46A4-A13E-E3EF6B99E210}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_2"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_3" ComponentId="{356BEAA8-08C2-4EC2-B1B9-4CC0A2BC75BA}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_3"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_4" ComponentId="{CD106466-F9A4-46F9-831F-24898F2E9643}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_4"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_5" ComponentId="{8FF3FEEB-3EC0-497B-849A-3279B6A9ECAD}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_5"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_6" ComponentId="{D6F205A0-FAD9-49F5-9188-363C6543B9DB}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_6"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_7" ComponentId="{606ADEEE-4A0F-40DD-863D-A3B09D04DA11}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_7"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_8" ComponentId="{0D8F9AF7-A7FB-42F7-A759-E8CDA4C52254}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_8"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_9" ComponentId="{AC559E72-881B-44D2-93D0-D596A1B80F5B}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_9"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources" ComponentId="{CD5B4444-FA50-4425-A20B-7B6043012B8B}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" ComponentId="{3DCDC5D8-66CD-423F-95DD-A8B66C057978}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" ComponentId="{C0A6B118-6014-48EF-9FC5-78B0F8B52114}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1" ComponentId="{A86A2C27-5AC5-43CE-B5C2-617DECD0F19F}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10" ComponentId="{1BA93CF1-9FCA-4292-811C-DF5678566B5B}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11" ComponentId="{10B586BB-7A6F-4385-85DA-FC7E641CA824}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12" ComponentId="{AA86C63A-FFFE-433D-A90A-F6C66CE0DA82}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2" ComponentId="{65FC10FA-6A2F-4B1F-8687-8C40483BB33D}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3" ComponentId="{2F386AF7-5F38-4316-956A-16CBCAE86FB7}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4" ComponentId="{2267ACC1-08A0-4232-8A81-15DE8530E2E6}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5" ComponentId="{AF234A93-3C90-4051-838F-85C7CD56BFBD}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6" ComponentId="{6D7B62B9-61CA-489E-A167-9B2106460E15}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7" ComponentId="{7D377CE7-546D-45D6-ABE4-68E6C2C4CC25}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8" ComponentId="{870BD9B1-6F9A-4B48-8C65-EAA8FBB14BFD}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9" ComponentId="{CDA1359C-D801-498D-8B09-0D7B4FC1AF9E}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" ComponentId="{CD70CBEE-9217-4403-9325-967B0A2555CD}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" ComponentId="{D8284A55-63EB-47E7-AF18-CE4CC28A0E08}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1" ComponentId="{A4F8038B-EDC1-41B6-932D-5C352EABE140}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10" ComponentId="{E3C900B1-7252-4A55-BFD8-8878DABF0376}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11" ComponentId="{7A292621-9B74-4A16-BEBA-96812A6C1F12}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12" ComponentId="{86BB7D0E-1E0F-4AE1-9787-6EA11D20AAE8}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2" ComponentId="{969C8809-7BA5-4199-B43A-568372D65BC9}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3" ComponentId="{D76A8D16-1FF0-456A-BFCC-9582FE49A831}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4" ComponentId="{2ABA048D-6EA1-4864-A022-EB938F228660}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5" ComponentId="{64EF4375-DDD0-4F35-B7EE-70EB9AB5DEA4}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6" ComponentId="{33582C1C-A3A7-4102-829E-20644C231715}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7" ComponentId="{AE537760-C5B8-4BC9-896D-E5B9FF5A581C}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8" ComponentId="{70BAEB3C-8895-4362-827F-B732C01261A8}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9" ComponentId="{6D99E780-E8C7-4DA5-BBCC-844190AE43CC}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" ComponentId="{A7420E27-FCC6-4CBA-A635-1C4F527C515A}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" ComponentId="{A10E1D27-584D-4C04-97CF-E04B3DB0FBEB}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1" ComponentId="{982B256A-6A77-45D7-90D3-AB23A36C7751}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10" ComponentId="{0670E158-7D7B-4284-A1A9-48256BF5F7A0}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11" ComponentId="{A839B304-4438-455C-BA60-EE007D44C2B6}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12" ComponentId="{8723AC9C-4D53-4505-97A6-1A6F22E3F770}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2" ComponentId="{FDAA2F80-7A39-4BEA-91E1-7CCE0CFBBCCE}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3" ComponentId="{FF598C95-D45B-4EB2-8A6E-2D63C6595022}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4" ComponentId="{2758F86C-1E98-45BA-B1E8-56653E0B31AC}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5" ComponentId="{2DFEB961-6B88-4ABF-8821-6BC99CAB27B8}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6" ComponentId="{EDE6A5B8-F8AF-4647-A5C5-694FC4CE37C0}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7" ComponentId="{20B1321E-0148-4E4A-94CA-2E7C64BE6B26}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8" ComponentId="{62DEC1A7-D1A4-415D-9509-F2B6A4B77FD0}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8"/> - <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9" ComponentId="{46B148D2-5B19-48F8-AB97-EBEB8D221569}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" ComponentId="{73EED192-EA47-4773-8D12-E0F9FB011EB8}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"/> <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.dll" ComponentId="{6502617E-EF70-48C2-A9A6-80A30BA01489}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.dll"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" ComponentId="{4989C058-5185-43C1-A9C4-E03967D67BCC}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1" ComponentId="{897C7D9F-194B-4DA9-9E6A-FEE2189D7DE0}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10" ComponentId="{CCED0C38-3410-404A-B53C-CA38266E8FC5}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11" ComponentId="{068EE442-6DF2-4FD7-B99E-F5EFEA00724F}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12" ComponentId="{D5C14DE8-B3AC-4D87-9734-B0F85EA4A03A}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2" ComponentId="{BDE57D4E-8A9A-4CD9-8331-D737AB2DE794}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3" ComponentId="{9D70FB0A-6D0E-466B-88D0-6E3088BA16F2}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4" ComponentId="{DD7203BD-8B28-4830-A1D7-DE9142971EB2}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5" ComponentId="{0AE680AF-1041-4B90-A413-26C264264DC7}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6" ComponentId="{1161D2C6-AD07-494B-9D66-26F0E415828F}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7" ComponentId="{786A684F-C4EA-415F-AC39-CC605197F8E2}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8" ComponentId="{30FBBBD6-0638-43A7-9AEA-890EB2660AED}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8"/> - <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9" ComponentId="{25A8738B-7D25-43EA-81B6-38234160C2C1}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9"/> <ROW Component="Microsoft.VisualStudio.Services.Common.dll" ComponentId="{13946089-BCD5-48A5-A1A6-3891EF5D890C}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.dll"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll" ComponentId="{442BE8B1-F07D-4380-B6D0-8E09C3212D6B}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_1" ComponentId="{19C49055-07E3-48E0-921D-462F52DED0DB}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_1"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_10" ComponentId="{3708A1BA-6414-4E85-A943-B1A311C1D315}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_10"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_11" ComponentId="{19872252-C515-48A4-8224-460ED5F983CC}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_11"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_12" ComponentId="{023B3ADA-CD42-4C96-8090-CCC135114AC2}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_12"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_2" ComponentId="{68BDAD2C-D571-46E2-941F-26F5668B46B6}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_2"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_3" ComponentId="{B47AB22A-F20D-4842-BEBB-BDECE7CED7AB}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_3"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_4" ComponentId="{756A515D-DEB1-4C37-9C30-0A9C63F3BF00}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_4"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_5" ComponentId="{D67F2F64-455B-4181-8228-9FC044B3A09A}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_5"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_6" ComponentId="{32901DF1-D716-4C78-B5D3-BCE50D48AF51}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_6"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_7" ComponentId="{D182917E-B65C-49A7-AFA1-46ADB10C5D92}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_7"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_8" ComponentId="{64B7CC4B-E67A-4056-BBD8-CEB84E9B70D3}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_8"/> - <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_9" ComponentId="{252D7B4A-2FAA-4432-B1EE-559108D0AD6A}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_9"/> <ROW Component="Microsoft.VisualStudio.Services.WebApi.dll" ComponentId="{C7189E85-DD7D-4AE6-B417-4EC21AF1CE83}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.dll"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll" ComponentId="{6271A81D-CD39-462F-9ECA-B942F326E844}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_1" ComponentId="{D53BB3F6-FFDC-43B9-A60D-70155AF1254F}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_1"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_10" ComponentId="{8253B392-C081-4725-97FA-6BD6B9AD325C}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_10"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_11" ComponentId="{54D545C5-D990-478A-9A1D-584B9380567F}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_11"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_12" ComponentId="{3D3F7631-2E13-4B7B-B371-3C455FE2E046}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_12"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_2" ComponentId="{F2E2EC7C-F93F-489A-A140-A1E3B48A6B64}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_2"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_3" ComponentId="{4DFF5822-EA67-4AE4-BFCA-65CB065AC1B8}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_3"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_4" ComponentId="{DB390D25-BCD0-4299-82A1-DC65FA5D8368}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_4"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_5" ComponentId="{F3466159-A7CF-403C-AC13-C7420BEB1DA3}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_5"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_6" ComponentId="{ABCB0A3C-2BDE-411E-8225-3D487ADF6EFB}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_6"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_7" ComponentId="{213FF568-B999-464A-8F23-CF628555FFA0}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_7"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_8" ComponentId="{1321C006-1594-4680-BECC-5E251C5A939D}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_8"/> - <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_9" ComponentId="{44EEC190-943A-41B2-9B65-364F8C1C8379}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_9"/> <ROW Component="Microsoft.WITDataStore32.dll" ComponentId="{4C13EE15-BCEC-400D-A528-50AF945B8F8D}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WITDataStore32.dll"/> <ROW Component="Microsoft.Win32.Primitives.dll" ComponentId="{BF151A6C-FFF4-4A01-BC24-A9F7DD9A5FDF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll"/> - <ROW Component="Microsoft.Win32.Primitives.dll_1" ComponentId="{DFE35464-D56E-4B31-809C-9566C8EFC234}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll_1"/> <ROW Component="Microsoft.WindowsAPICodePack.Shell.dll" ComponentId="{9012CCFC-2D61-447A-BD29-4A21EB0F931B}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.Shell.dll"/> <ROW Component="Microsoft.WindowsAPICodePack.dll" ComponentId="{C451DC70-A14F-4DE9-8E91-B3CAE54178FB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.dll"/> <ROW Component="Microsoft.WindowsAzure.Storage.dll" ComponentId="{38DD34C7-3DE1-4F73-B1A0-433DA73627F0}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAzure.Storage.dll"/> @@ -328,11 +174,9 @@ <ROW Component="SharpDX.dll" ComponentId="{3E22F8C3-237A-461F-9BB8-CB6D18705058}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.dll"/> <ROW Component="SimpleValidator.dll" ComponentId="{81091AC7-AB7A-4043-8D23-F329BBCA40BD}" Directory_="APPDIR" Attributes="0" KeyPath="SimpleValidator.dll"/> <ROW Component="System.AppContext.dll" ComponentId="{358E356C-62BE-4F21-8647-16E76597A83B}" Directory_="APPDIR" Attributes="0" KeyPath="System.AppContext.dll"/> - <ROW Component="System.AppContext.dll_1" ComponentId="{EC0D01B1-FE93-4022-B744-9308FEFF030B}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.AppContext.dll_1"/> <ROW Component="System.Buffers.dll" ComponentId="{FFF88BDA-CBDF-4940-B4DE-23D7E00A1C21}" Directory_="APPDIR" Attributes="0" KeyPath="System.Buffers.dll"/> <ROW Component="System.CodeDom.dll" ComponentId="{67883714-5530-42D7-AC9C-2522FD8913B0}" Directory_="APPDIR" Attributes="0" KeyPath="System.CodeDom.dll"/> <ROW Component="System.Collections.Concurrent.dll" ComponentId="{E0EB1925-1EA9-4E60-BDF7-FDAD9CDCCA54}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Concurrent.dll"/> - <ROW Component="System.Collections.Immutable.dll" ComponentId="{64423C7F-5FFA-446D-A92C-81EC260E82A1}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Collections.Immutable.dll"/> <ROW Component="System.Collections.Immutable.dll_1" ComponentId="{91846FF0-871C-46E5-817A-EA5D6A67E152}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Immutable.dll_1"/> <ROW Component="System.Collections.NonGeneric.dll" ComponentId="{011DA1E5-BA07-477C-8A6B-6F7F1C82CEC2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.NonGeneric.dll"/> <ROW Component="System.Collections.Specialized.dll" ComponentId="{26CC4B96-5E70-45BF-BA53-BEF10D2D2EC7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Specialized.dll"/> @@ -346,17 +190,13 @@ <ROW Component="System.Composition.Runtime.dll" ComponentId="{556667DD-ADFA-4698-9BBA-FA62CD4C45E3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Composition.Runtime.dll"/> <ROW Component="System.Composition.TypedParts.dll" ComponentId="{AB19B840-D106-4C46-A795-246E6009188C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Composition.TypedParts.dll"/> <ROW Component="System.Console.dll" ComponentId="{F70C16C5-D638-4396-94D7-60D61AD29043}" Directory_="APPDIR" Attributes="0" KeyPath="System.Console.dll"/> - <ROW Component="System.Console.dll_1" ComponentId="{E59A46A5-28F0-4725-AE0E-B83BEEF3AF79}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Console.dll_1"/> <ROW Component="System.Data.Common.dll" ComponentId="{12CBF4E7-6852-4A9B-BEA3-68E4D59C74D0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.Common.dll"/> <ROW Component="System.Data.SQLite.dll" ComponentId="{3DBB5F2C-8A5A-46AF-BF78-A776CD99A3F3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.dll"/> <ROW Component="System.Diagnostics.Contracts.dll" ComponentId="{F7F8A2C5-672E-4DDF-9B06-813BE46ABE9A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Contracts.dll"/> <ROW Component="System.Diagnostics.Debug.dll" ComponentId="{5398838C-738A-4FFD-9FC4-7A91BE89B332}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Debug.dll"/> <ROW Component="System.Diagnostics.FileVersionInfo.dll" ComponentId="{F5D89192-D7C9-401A-AE25-B55DF0EAF352}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll"/> - <ROW Component="System.Diagnostics.FileVersionInfo.dll_1" ComponentId="{73C590DE-084A-4317-858E-5857E66048D3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll_1"/> <ROW Component="System.Diagnostics.Process.dll" ComponentId="{AD6B2C65-C00C-4CCE-9857-4525E5155685}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Process.dll"/> - <ROW Component="System.Diagnostics.Process.dll_1" ComponentId="{6A2E79DF-7F66-4F2D-AE9F-020C76966DA3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.Process.dll_1"/> <ROW Component="System.Diagnostics.StackTrace.dll" ComponentId="{9D42C40E-BA14-446E-9F28-700F79F93CF1}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll"/> - <ROW Component="System.Diagnostics.StackTrace.dll_1" ComponentId="{789261D5-B6A2-4D6E-B302-0FE89723C30F}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll_1"/> <ROW Component="System.Diagnostics.TextWriterTraceListener.dll" ComponentId="{8763EE73-B2CF-4675-BC65-61A5A2844030}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TextWriterTraceListener.dll"/> <ROW Component="System.Diagnostics.Tools.dll" ComponentId="{5F0560B5-B294-4C8E-814D-AA2A7CD38CBE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tools.dll"/> <ROW Component="System.Diagnostics.TraceSource.dll" ComponentId="{81026182-D1C0-40AD-B6DF-DA82096ADAAE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TraceSource.dll"/> @@ -368,18 +208,13 @@ <ROW Component="System.Globalization.dll" ComponentId="{7AF72BE3-61B7-4285-8471-EF35418DE3F7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.dll"/> <ROW Component="System.IO.Compression.ZipFile.dll" ComponentId="{CF2092A8-AE50-4D12-860E-2F0BD0CE6A6A}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.ZipFile.dll"/> <ROW Component="System.IO.Compression.dll" ComponentId="{E35A2B0E-E9DD-4B5D-A7BE-D501A42C9DF4}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.dll"/> - <ROW Component="System.IO.Compression.dll_1" ComponentId="{EF8786BA-0411-42A9-AB60-6DB43F41E03A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.Compression.dll_1"/> <ROW Component="System.IO.FileSystem.DriveInfo.dll" ComponentId="{983AC4A9-31A9-4D80-98BA-ECFC143D5E7F}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll"/> - <ROW Component="System.IO.FileSystem.DriveInfo.dll_1" ComponentId="{CB6B9CB5-6A6F-4242-924D-064F0C1D6D2E}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll_1"/> <ROW Component="System.IO.FileSystem.Primitives.dll" ComponentId="{29A233E2-6200-43EE-87E9-7313437223EB}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll"/> - <ROW Component="System.IO.FileSystem.Primitives.dll_1" ComponentId="{07BA5F2E-6BD3-41E9-A37D-78AD5E0FBA9D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll_1"/> <ROW Component="System.IO.FileSystem.Watcher.dll" ComponentId="{A84EDD4B-8636-492F-8114-EA248483C1E6}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Watcher.dll"/> <ROW Component="System.IO.FileSystem.dll" ComponentId="{CEDBD51C-2D62-42FF-8C1D-84219B6029EF}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.dll"/> - <ROW Component="System.IO.FileSystem.dll_1" ComponentId="{C978FDF6-FBEB-4634-A8AD-CD80D6574028}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.dll_1"/> <ROW Component="System.IO.IsolatedStorage.dll" ComponentId="{83D8FD3C-958D-47B6-849E-15CD940244E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.IsolatedStorage.dll"/> <ROW Component="System.IO.MemoryMappedFiles.dll" ComponentId="{C874420A-A38B-482E-8EC8-5D73CBB256E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.MemoryMappedFiles.dll"/> <ROW Component="System.IO.Pipes.dll" ComponentId="{AF452794-8BF8-4BAD-AA3B-B9DB59D723E3}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Pipes.dll"/> - <ROW Component="System.IO.Pipes.dll_1" ComponentId="{3B01168A-ABCF-4DCB-B356-78610FCF361E}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.Pipes.dll_1"/> <ROW Component="System.IO.UnmanagedMemoryStream.dll" ComponentId="{514B14A8-9B28-4268-90BD-A39B895B0041}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.UnmanagedMemoryStream.dll"/> <ROW Component="System.IO.dll" ComponentId="{A5AA6EF0-C89E-4F78-A468-ACFD84069FCF}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.dll"/> <ROW Component="System.IdentityModel.Tokens.Jwt.dll" ComponentId="{E4D36818-F673-4F97-89E3-3ACEE6B795CC}" Directory_="APPDIR" Attributes="0" KeyPath="System.IdentityModel.Tokens.Jwt.dll"/> @@ -409,7 +244,6 @@ <ROW Component="System.Reactive.PlatformServices.dll" ComponentId="{2DD8FDBF-C96F-4DC9-AA12-1F5A88FB9370}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.PlatformServices.dll"/> <ROW Component="System.Reactive.Windows.Threading.dll" ComponentId="{B460E505-47E6-4146-BF7D-F1FF8E52EB8A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Windows.Threading.dll"/> <ROW Component="System.Reflection.Extensions.dll" ComponentId="{5FCB5312-1D48-4D99-8728-7628637BB4F2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Extensions.dll"/> - <ROW Component="System.Reflection.Metadata.dll" ComponentId="{688C6FAE-3CFF-483C-BB99-CD5DF31FF764}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Reflection.Metadata.dll"/> <ROW Component="System.Reflection.Metadata.dll_1" ComponentId="{11BB06A3-A742-47B3-869B-2DC0118CB2AD}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Metadata.dll_1"/> <ROW Component="System.Reflection.Primitives.dll" ComponentId="{11C0857E-2BD7-4A36-B20B-F227826B99F0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Primitives.dll"/> <ROW Component="System.Reflection.dll" ComponentId="{4889F7EB-7BBE-4926-B487-65F9E50FD867}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.dll"/> @@ -428,23 +262,15 @@ <ROW Component="System.Runtime.Serialization.Primitives.dll" ComponentId="{05D7F62B-3EA2-4487-800F-2E3E26A17623}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Primitives.dll"/> <ROW Component="System.Runtime.Serialization.Xml.dll" ComponentId="{72603E1F-3B97-4A61-B3D4-864FF9865F6A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Xml.dll"/> <ROW Component="System.Runtime.dll" ComponentId="{1A86F578-5323-432C-834E-6A1C7AB1CE76}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.dll"/> - <ROW Component="System.Security.AccessControl.dll" ComponentId="{80D4FCE7-5D9D-43D4-A104-C37835B7B734}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.AccessControl.dll"/> <ROW Component="System.Security.Claims.dll" ComponentId="{A58BFEA5-776F-4F09-AD57-783855FBFD2C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Claims.dll"/> - <ROW Component="System.Security.Claims.dll_1" ComponentId="{A872B3DD-8E83-4DCB-AAF1-8764A2E752C5}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Claims.dll_1"/> <ROW Component="System.Security.Cryptography.Algorithms.dll" ComponentId="{5510E981-08E6-4C71-AB20-55EC75BD52D3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll"/> - <ROW Component="System.Security.Cryptography.Algorithms.dll_1" ComponentId="{D022C2D5-C3F2-414C-AD80-E79F3E186F35}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll_1"/> <ROW Component="System.Security.Cryptography.Csp.dll" ComponentId="{3F6AAE9A-0126-43EF-894E-65A4931597F8}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Csp.dll"/> <ROW Component="System.Security.Cryptography.Encoding.dll" ComponentId="{086BF834-ACD2-41FC-9C95-098F1C731B0B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll"/> - <ROW Component="System.Security.Cryptography.Encoding.dll_1" ComponentId="{2C5C1036-00D2-4C72-803A-38E62FE7DDA2}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll_1"/> <ROW Component="System.Security.Cryptography.Primitives.dll" ComponentId="{AC2E9278-0D19-40A4-83B9-E97716BD255D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll"/> - <ROW Component="System.Security.Cryptography.Primitives.dll_1" ComponentId="{58465388-3B29-43A7-A415-8698A3C288A9}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll_1"/> <ROW Component="System.Security.Cryptography.X509Certificates.dll" ComponentId="{00F4F6C1-6B4D-4DFD-BD59-72EE690FC246}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll"/> - <ROW Component="System.Security.Cryptography.X509Certificates.dll_1" ComponentId="{2604C3CB-FC03-4494-BEBA-8965F448144B}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll_1"/> - <ROW Component="System.Security.Principal.Windows.dll" ComponentId="{17A611AF-48AC-4650-B6D1-13D5447FBBE9}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Principal.Windows.dll"/> <ROW Component="System.Security.Principal.dll" ComponentId="{127424E0-24F8-456F-BBEC-F23E331E1669}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Principal.dll"/> <ROW Component="System.Security.SecureString.dll" ComponentId="{C40FA779-F72E-4CF2-9A42-368ADB1D05E4}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.SecureString.dll"/> <ROW Component="System.Spatial.dll" ComponentId="{1CE4DC46-9EDC-4135-BFB5-AD976CC37C2F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/> - <ROW Component="System.Text.Encoding.CodePages.dll" ComponentId="{03C0F627-7FCB-4FE1-AB51-248D8BC909F7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Text.Encoding.CodePages.dll"/> <ROW Component="System.Text.Encoding.CodePages.dll_1" ComponentId="{9E367053-E910-4CE6-BE25-3065F9E18374}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.CodePages.dll_1"/> <ROW Component="System.Text.Encoding.Extensions.dll" ComponentId="{C177E423-71AE-4FB7-BDC1-1FFF650EFEBC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.Extensions.dll"/> <ROW Component="System.Text.Encoding.dll" ComponentId="{903DBCE1-0C97-4F99-BF85-41B54EF26B33}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.dll"/> @@ -455,25 +281,19 @@ <ROW Component="System.Threading.Tasks.Parallel.dll" ComponentId="{987E51AD-AF06-4D03-B691-7318BD6BDA34}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.Parallel.dll"/> <ROW Component="System.Threading.Tasks.dll" ComponentId="{B92EED7E-FE98-4A94-B157-F75D4E92EB85}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.dll"/> <ROW Component="System.Threading.Thread.dll" ComponentId="{4C4CAEB2-FB35-4937-BDCB-2FF8E541EB65}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Thread.dll"/> - <ROW Component="System.Threading.Thread.dll_1" ComponentId="{D98960EA-BDE0-4019-B067-F4EF79DD43C2}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Threading.Thread.dll_1"/> <ROW Component="System.Threading.ThreadPool.dll" ComponentId="{4AD2E492-AA1B-4C56-98F6-AAF9AC9DD7F5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.ThreadPool.dll"/> <ROW Component="System.Threading.Timer.dll" ComponentId="{8DBA4386-A1D8-4D98-9A3E-FA449DAA031F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Timer.dll"/> <ROW Component="System.Threading.dll" ComponentId="{08B42E48-C46A-402F-B07A-D944F647A72F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.dll"/> <ROW Component="System.ValueTuple.dll" ComponentId="{33243DAF-2CB1-4158-BD3E-646D178E6BE3}" Directory_="APPDIR" Attributes="0" KeyPath="System.ValueTuple.dll"/> - <ROW Component="System.ValueTuple.dll_1" ComponentId="{36270E0D-B539-41E3-A972-8FE4F0D31EC3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.ValueTuple.dll_1"/> <ROW Component="System.Web.Http.WebHost.dll" ComponentId="{76AA8551-7C36-44F1-8076-7DC8C0159CB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.WebHost.dll"/> <ROW Component="System.Web.Http.dll" ComponentId="{7F609038-B81D-44BC-821F-2A742860ECD5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.dll"/> <ROW Component="System.Web.Razor.dll" ComponentId="{40A62E23-8887-4240-8D87-D8D07E2C347F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Razor.dll"/> <ROW Component="System.Windows.Interactivity.dll" ComponentId="{844D2D3C-AC50-418F-A9D4-8D928DBA49A7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Windows.Interactivity.dll"/> <ROW Component="System.Xml.ReaderWriter.dll" ComponentId="{6DAC8C4A-BB06-465D-98B1-9D1015022B9C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll"/> - <ROW Component="System.Xml.ReaderWriter.dll_1" ComponentId="{FB4C57C6-EC5E-4AAF-A2A4-1653E01F0576}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll_1"/> <ROW Component="System.Xml.XDocument.dll" ComponentId="{A37644F6-E28C-4F46-8A2F-FF8148DE4CEE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XDocument.dll"/> <ROW Component="System.Xml.XPath.XDocument.dll" ComponentId="{4D676094-4D89-4619-A5C2-C6E26D44F46E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll"/> - <ROW Component="System.Xml.XPath.XDocument.dll_1" ComponentId="{24279968-8A36-4295-AE5B-97376E38AA32}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll_1"/> <ROW Component="System.Xml.XPath.dll" ComponentId="{60E883E1-D85B-432F-BB51-F83BF3E79BFA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.dll"/> - <ROW Component="System.Xml.XPath.dll_1" ComponentId="{2D900620-E8BD-4BFF-84D9-5AC9C3F54BC7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XPath.dll_1"/> <ROW Component="System.Xml.XmlDocument.dll" ComponentId="{A0706488-0521-4073-AB50-2345AC9C663D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlDocument.dll"/> - <ROW Component="System.Xml.XmlDocument.dll_1" ComponentId="{C99ACDAC-A6BD-4A2A-B98D-FC4060DF04C7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XmlDocument.dll_1"/> <ROW Component="System.Xml.XmlSerializer.dll" ComponentId="{2DD41ED6-51F1-4B11-B7F8-923AD51C1271}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlSerializer.dll"/> <ROW Component="Tango.AnimatedGif.dll" ComponentId="{4E1F5301-EA6D-45D5-9C99-23E59875096A}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AnimatedGif.dll"/> <ROW Component="Tango.AutoComplete.dll" ComponentId="{A39273A4-F15E-4183-B998-065EC4B7F1AD}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AutoComplete.dll"/> @@ -531,7 +351,6 @@ <ROW Component="Tango.WebRTC.dll" ComponentId="{80F57AE6-B45A-45B4-AE63-7C6C2AF29039}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.WebRTC.dll"/> <ROW Component="URLProtocol" ComponentId="{2E4F48A6-68BB-48AB-B37C-341998FB535E}" Directory_="APPDIR" Attributes="4" KeyPath="URLProtocol"/> <ROW Component="URLProtocol_1" ComponentId="{09755D34-903E-4B18-A106-6EDB3A5FB791}" Directory_="APPDIR" Attributes="4" KeyPath="URLProtocol_1"/> - <ROW Component="VBCSCompiler.exe" ComponentId="{634450B9-9C27-44E4-B22A-A8F5D0CAE740}" Directory_="roslyn_Dir" Attributes="0" KeyPath="VBCSCompiler.exe"/> <ROW Component="WebRtc.NET.dll" ComponentId="{58013A07-CC4C-4183-9065-8016522479D1}" Directory_="APPDIR" Attributes="0" KeyPath="WebRtc.NET.dll"/> <ROW Component="WindowsInput.dll" ComponentId="{0AE7A41B-3CD4-49A0-916C-C1C698DD8A7A}" Directory_="APPDIR" Attributes="0" KeyPath="WindowsInput.dll"/> <ROW Component="Z.EntityFramework.Extensions.dll" ComponentId="{0E9EF254-88AE-4C3C-9190-C3F73D896612}" Directory_="APPDIR" Attributes="0" KeyPath="Z.EntityFramework.Extensions.dll"/> @@ -547,9 +366,6 @@ <ROW Component="__3" ComponentId="{D63D43F2-053E-4811-81BC-F11D89795E42}" Directory_="APPDIR" Attributes="4" KeyPath="__3"/> <ROW Component="__4" ComponentId="{D0E846F2-7BDB-4985-A828-405634871827}" Directory_="APPDIR" Attributes="4" KeyPath="__4"/> <ROW Component="__5" ComponentId="{95AD0530-ED57-4222-992A-782C6CFBD980}" Directory_="APPDIR" Attributes="4" KeyPath="__5"/> - <ROW Component="csc.exe" ComponentId="{309074C4-11AA-4171-9DEF-9991EF90F144}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csc.exe"/> - <ROW Component="csc.exe.config" ComponentId="{470039A3-0EAE-4E90-B88F-457CC77B05CC}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csc.exe.config" Type="0"/> - <ROW Component="csi.exe" ComponentId="{6F4427A5-2AC8-487C-A921-81E97210CA1A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csi.exe"/> <ROW Component="dsUtil.exe" ComponentId="{976E1F19-4FE1-46DF-824B-0DFFDAC3959C}" Directory_="APPDIR" Attributes="0" KeyPath="dsUtil.exe"/> <ROW Component="ffmpeg.exe" ComponentId="{D6862E01-A64B-40FD-847E-A35B561EFD1D}" Directory_="APPDIR" Attributes="0" KeyPath="ffmpeg.exe"/> <ROW Component="log" ComponentId="{A7C3DA27-9188-401A-9CD1-218B0504E461}" Directory_="APPDIR" Attributes="4" KeyPath="log_2"/> @@ -560,9 +376,6 @@ <ROW Component="open_1" ComponentId="{7D6D728A-460D-4FB1-A562-FAA4FEF85E24}" Directory_="APPDIR" Attributes="4" KeyPath="open_1"/> <ROW Component="procdoc.chm" ComponentId="{A1ADA8CA-C7F6-4C05-BC9A-E2F821E002DC}" Directory_="APPDIR" Attributes="0" KeyPath="procdoc.chm" Type="1"/> <ROW Component="protobufnet.dll" ComponentId="{ED37672F-F343-44FB-8FBD-F9003BD20D52}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/> - <ROW Component="protoc.exe" ComponentId="{CF5E9763-53D7-4C54-A576-3CB1A94C70D3}" Directory_="ProtoCompilers_Dir" Attributes="0" KeyPath="protoc.exe"/> - <ROW Component="protoc1.0M4.jar" ComponentId="{C8BE9ED2-2D9B-4407-BD1A-F98A10BDDDE3}" Directory_="ProtoCompilers_Dir" Attributes="0" KeyPath="protoc1.0M4.jar" Type="0"/> - <ROW Component="protocc.exe" ComponentId="{BE4E9FDE-B97C-424B-B097-41F3A51F44EC}" Directory_="ProtoCompilers_Dir" Attributes="0" KeyPath="protocc.exe"/> <ROW Component="shell" ComponentId="{A08B0CB0-9A35-4E7B-B7A3-F0039D92CBE4}" Directory_="APPDIR" Attributes="4" KeyPath="shell"/> <ROW Component="shell_1" ComponentId="{082186C6-1C9B-401A-85E8-3F1DA42DD4C6}" Directory_="APPDIR" Attributes="4" KeyPath="shell_1"/> <ROW Component="turbojpeg.dll" ComponentId="{8CDBC3A7-72CF-42B5-A1E2-6A546607DCE0}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> @@ -570,7 +383,6 @@ <ROW Component="turbojpeg.dll.meta_1" ComponentId="{C3B04D4B-D79F-4FBC-881B-C7E1364935B7}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> <ROW Component="turbojpeg.dll_1" ComponentId="{7D89438D-86DD-4300-924C-49676B63DDD7}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> <ROW Component="ucrtbased.dll" ComponentId="{4188BB88-A714-488A-A02D-98710ACC94F5}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/> - <ROW Component="vbc.exe" ComponentId="{64A2D070-4C2B-4CF2-A34B-CD000424FF54}" Directory_="roslyn_Dir" Attributes="0" KeyPath="vbc.exe"/> <ROW Component="vcruntime140.dll" ComponentId="{078A42AF-E964-4CA3-8A9C-CBE6D0FD76AA}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/> <ROW Component="vcruntime140d.dll" ComponentId="{AF42196B-67BB-4EBA-8C3A-38B9527F9775}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/> </COMPONENT> @@ -970,260 +782,6 @@ <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x64\turbojpeg.dll.meta" SelfReg="false"/> <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll" SelfReg="false"/> <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll.meta" SelfReg="false"/> - <ROW File="ColorMine.pdb" Component_="ColorMine.dll" FileName="COLORM~1.PDB|ColorMine.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ColorMine.pdb" SelfReg="false"/> - <ROW File="ControlzEx.pdb" Component_="ControlzEx.dll" FileName="CONTRO~1.PDB|ControlzEx.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ControlzEx.pdb" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll" Component_="Microsoft.TeamFoundation.Client.resources.dll" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll" Component_="Microsoft.TeamFoundation.Common.resources.dll" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll" Component_="Microsoft.VisualStudio.Services.Common.resources.dll" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_1" Component_="Microsoft.TeamFoundation.Client.resources.dll_1" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_1" Component_="Microsoft.TeamFoundation.Common.resources.dll_1" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_1" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_1" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_1" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_1" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_1" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="DeviceId.xml" Component_="Dragablz.xml" FileName="DeviceId.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\DeviceId.xml" SelfReg="false"/> - <ROW File="DocumentFormat.OpenXml.xml" Component_="Dragablz.xml" FileName="DOCUME~1.XML|DocumentFormat.OpenXml.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\DocumentFormat.OpenXml.xml" SelfReg="false"/> - <ROW File="EntityFramework.SqlServer.xml" Component_="Dragablz.xml" FileName="ENTITY~1.XML|EntityFramework.SqlServer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\EntityFramework.SqlServer.xml" SelfReg="false"/> - <ROW File="EntityFramework.xml" Component_="Dragablz.xml" FileName="ENTITY~2.XML|EntityFramework.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\EntityFramework.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_2" Component_="Microsoft.TeamFoundation.Client.resources.dll_2" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_2" Component_="Microsoft.TeamFoundation.Common.resources.dll_2" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_2" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_2" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_2" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_2" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_2" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_3" Component_="Microsoft.TeamFoundation.Client.resources.dll_3" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_3" Component_="Microsoft.TeamFoundation.Common.resources.dll_3" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_3" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_3" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_3" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_3" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_3" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Humanizer.xml" Component_="Dragablz.xml" FileName="HUMANI~1.XML|Humanizer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Humanizer.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_4" Component_="Microsoft.TeamFoundation.Client.resources.dll_4" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_4" Component_="Microsoft.TeamFoundation.Common.resources.dll_4" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_4" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_4" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_4" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_4" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_4" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_5" Component_="Microsoft.TeamFoundation.Client.resources.dll_5" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_5" Component_="Microsoft.TeamFoundation.Common.resources.dll_5" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_5" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_5" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_5" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_5" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_5" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="JWT.xml" Component_="Dragablz.xml" FileName="JWT.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\JWT.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_6" Component_="Microsoft.TeamFoundation.Client.resources.dll_6" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_6" Component_="Microsoft.TeamFoundation.Common.resources.dll_6" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_6" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_6" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_6" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_6" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_6" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="LiteDB.xml" Component_="Dragablz.xml" FileName="LiteDB.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiteDB.xml" SelfReg="false"/> - <ROW File="LiveCharts.pdb" Component_="LiveCharts.dll" FileName="LIVECH~1.PDB|LiveCharts.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.pdb" SelfReg="false"/> - <ROW File="LiveCharts.Wpf.pdb" Component_="LiveCharts.Wpf.dll" FileName="LIVECH~2.PDB|LiveCharts.Wpf.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.Wpf.pdb" SelfReg="false"/> - <ROW File="LiveCharts.Wpf.xml" Component_="Dragablz.xml" FileName="LIVECH~1.XML|LiveCharts.Wpf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.Wpf.xml" SelfReg="false"/> - <ROW File="LiveCharts.xml" Component_="Dragablz.xml" FileName="LIVECH~2.XML|LiveCharts.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.xml" SelfReg="false"/> - <ROW File="MahApps.Metro.pdb" Component_="MahApps.Metro.dll" FileName="MAHAPP~1.PDB|MahApps.Metro.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MahApps.Metro.pdb" SelfReg="false"/> - <ROW File="MahApps.Metro.xml" Component_="Dragablz.xml" FileName="MAHAPP~1.XML|MahApps.Metro.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MahApps.Metro.xml" SelfReg="false"/> - <ROW File="MaterialDesignColors.pdb" Component_="MaterialDesignColors.dll" FileName="MATERI~1.PDB|MaterialDesignColors.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MaterialDesignColors.pdb" SelfReg="false"/> - <ROW File="MaterialDesignThemes.Wpf.pdb" Component_="MaterialDesignThemes.Wpf.dll" FileName="MATERI~2.PDB|MaterialDesignThemes.Wpf.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MaterialDesignThemes.Wpf.pdb" SelfReg="false"/> - <ROW File="MaterialDesignThemes.Wpf.xml" Component_="Dragablz.xml" FileName="MATERI~1.XML|MaterialDesignThemes.Wpf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MaterialDesignThemes.Wpf.xml" SelfReg="false"/> - <ROW File="Microsoft.AspNet.SignalR.Client.pdb" Component_="Microsoft.AspNet.SignalR.Client.dll" FileName="MICROS~1.PDB|Microsoft.AspNet.SignalR.Client.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.AspNet.SignalR.Client.pdb" SelfReg="false"/> - <ROW File="Microsoft.AspNet.SignalR.Client.xml" Component_="Dragablz.xml" FileName="MICROS~1.XML|Microsoft.AspNet.SignalR.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.AspNet.SignalR.Client.xml" SelfReg="false"/> - <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" FileName="MICROS~2.PDB|Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" SelfReg="false"/> - <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.xml" Component_="Dragablz.xml" FileName="MICROS~2.XML|Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.xml" SelfReg="false"/> - <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Component_="Dragablz.xml" FileName="MICROS~3.XML|Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.xml" SelfReg="false"/> - <ROW File="Microsoft.ServiceBus.xml" Component_="Dragablz.xml" FileName="MICROS~4.XML|Microsoft.ServiceBus.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.ServiceBus.xml" SelfReg="false"/> - <ROW File="Microsoft.SqlServer.ConnectionInfo.xml" Component_="Dragablz.xml" FileName="MICROS~5.XML|Microsoft.SqlServer.ConnectionInfo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.ConnectionInfo.xml" SelfReg="false"/> - <ROW File="Microsoft.SqlServer.Dmf.Common.xml" Component_="Dragablz.xml" FileName="MICROS~6.XML|Microsoft.SqlServer.Dmf.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.Dmf.Common.xml" SelfReg="false"/> - <ROW File="Microsoft.SqlServer.Management.Sdk.Sfc.xml" Component_="Dragablz.xml" FileName="MICROS~7.XML|Microsoft.SqlServer.Management.Sdk.Sfc.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.Management.Sdk.Sfc.xml" SelfReg="false"/> - <ROW File="Microsoft.SqlServer.ServiceBrokerEnum.xml" Component_="Dragablz.xml" FileName="MICROS~8.XML|Microsoft.SqlServer.ServiceBrokerEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.ServiceBrokerEnum.xml" SelfReg="false"/> - <ROW File="Microsoft.SqlServer.Smo.xml" Component_="Dragablz.xml" FileName="MICROS~9.XML|Microsoft.SqlServer.Smo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.Smo.xml" SelfReg="false"/> - <ROW File="Microsoft.SqlServer.SqlEnum.xml" Component_="Dragablz.xml" FileName="MICRO~10.XML|Microsoft.SqlServer.SqlEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.SqlEnum.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.xml" Component_="Dragablz.xml" FileName="MICRO~11.XML|Microsoft.TeamFoundation.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Client.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.xml" Component_="Dragablz.xml" FileName="MICRO~12.XML|Microsoft.TeamFoundation.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Common.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~13.XML|Microsoft.TeamFoundation.Core.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Core.WebApi.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Diff.xml" Component_="Dragablz.xml" FileName="MICRO~14.XML|Microsoft.TeamFoundation.Diff.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Diff.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Work.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~15.XML|Microsoft.TeamFoundation.Work.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Work.WebApi.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.xml" Component_="Dragablz.xml" FileName="MICRO~16.XML|Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.xml" Component_="Dragablz.xml" FileName="MICRO~17.XML|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.xml" Component_="Dragablz.xml" FileName="MICRO~18.XML|Microsoft.TeamFoundation.WorkItemTracking.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Client.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.xml" Component_="Dragablz.xml" FileName="MICRO~19.XML|Microsoft.TeamFoundation.WorkItemTracking.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Common.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.xml" Component_="Dragablz.xml" FileName="MICRO~20.XML|Microsoft.TeamFoundation.WorkItemTracking.Proxy.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Proxy.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~21.XML|Microsoft.TeamFoundation.WorkItemTracking.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.WebApi.xml" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.xml" Component_="Dragablz.xml" FileName="MICRO~22.XML|Microsoft.VisualStudio.Services.Client.Interactive.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.VisualStudio.Services.Client.Interactive.xml" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.xml" Component_="Dragablz.xml" FileName="MICRO~23.XML|Microsoft.VisualStudio.Services.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.VisualStudio.Services.Common.xml" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~24.XML|Microsoft.VisualStudio.Services.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.VisualStudio.Services.WebApi.xml" SelfReg="false"/> - <ROW File="Microsoft.WindowsAPICodePack.Shell.xml" Component_="Dragablz.xml" FileName="MICRO~25.XML|Microsoft.WindowsAPICodePack.Shell.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.WindowsAPICodePack.Shell.xml" SelfReg="false"/> - <ROW File="Microsoft.WindowsAPICodePack.xml" Component_="Dragablz.xml" FileName="MICRO~26.XML|Microsoft.WindowsAPICodePack.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.WindowsAPICodePack.xml" SelfReg="false"/> - <ROW File="Newtonsoft.Json.xml" Component_="Dragablz.xml" FileName="NEWTON~1.XML|Newtonsoft.Json.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Newtonsoft.Json.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_7" Component_="Microsoft.TeamFoundation.Client.resources.dll_7" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_7" Component_="Microsoft.TeamFoundation.Common.resources.dll_7" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_7" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_7" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_7" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_7" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_7" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="protobufnet.xml" Component_="Dragablz.xml" FileName="PROTOB~1.XML|protobuf-net.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\protobuf-net.xml" SelfReg="false"/> - <ROW File="protoc1.0M4.jar" Component_="protoc1.0M4.jar" FileName="PROTOC~1.JAR|protoc-1.0M4.jar" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ProtoCompilers\protoc-1.0M4.jar" SelfReg="false"/> - <ROW File="protocc.exe" Component_="protocc.exe" FileName="protoc-c.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ProtoCompilers\protoc-c.exe" SelfReg="false" DigSign="true"/> - <ROW File="protoc.exe" Component_="protoc.exe" FileName="protoc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ProtoCompilers\protoc.exe" SelfReg="false" DigSign="true"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_8" Component_="Microsoft.TeamFoundation.Client.resources.dll_8" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_8" Component_="Microsoft.TeamFoundation.Common.resources.dll_8" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_8" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_8" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_8" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_8" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_8" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Quamotion.TurboJpegWrapper.pdb" Component_="Quamotion.TurboJpegWrapper.dll" FileName="QUAMOT~1.PDB|Quamotion.TurboJpegWrapper.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Quamotion.TurboJpegWrapper.pdb" SelfReg="false"/> - <ROW File="RealTimeGraphX.pdb" Component_="RealTimeGraphX.dll" FileName="REALTI~1.PDB|RealTimeGraphX.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\RealTimeGraphX.pdb" SelfReg="false"/> - <ROW File="RealTimeGraphX.WPF.pdb" Component_="RealTimeGraphX.WPF.dll" FileName="REALTI~2.PDB|RealTimeGraphX.WPF.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\RealTimeGraphX.WPF.pdb" SelfReg="false"/> - <ROW File="csc.exe" Component_="csc.exe" FileName="csc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\csc.exe" SelfReg="false" DigSign="true"/> - <ROW File="csc.exe.config" Component_="csc.exe.config" FileName="CSCEXE~1.CON|csc.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\csc.exe.config" SelfReg="false"/> - <ROW File="csc.rsp" Component_="csc.exe.config" FileName="csc.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\csc.rsp" SelfReg="false"/> - <ROW File="csi.exe" Component_="csi.exe" FileName="csi.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\csi.exe" SelfReg="false" DigSign="true"/> - <ROW File="csi.exe.config" Component_="csc.exe.config" FileName="CSIEXE~1.CON|csi.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\csi.exe.config" SelfReg="false"/> - <ROW File="csi.rsp" Component_="csc.exe.config" FileName="csi.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\csi.rsp" SelfReg="false"/> - <ROW File="Microsoft.Build.Tasks.CodeAnalysis.dll" Component_="Microsoft.Build.Tasks.CodeAnalysis.dll" FileName="MICROS~1.DLL|Microsoft.Build.Tasks.CodeAnalysis.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll" SelfReg="false"/> - <ROW File="Microsoft.CodeAnalysis.CSharp.dll" Component_="Microsoft.CodeAnalysis.CSharp.dll" FileName="MICROS~2.DLL|Microsoft.CodeAnalysis.CSharp.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.CodeAnalysis.CSharp.dll" SelfReg="false"/> - <ROW File="Microsoft.CodeAnalysis.CSharp.Scripting.dll" Component_="Microsoft.CodeAnalysis.CSharp.Scripting.dll" FileName="MICROS~3.DLL|Microsoft.CodeAnalysis.CSharp.Scripting.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.CodeAnalysis.CSharp.Scripting.dll" SelfReg="false"/> - <ROW File="Microsoft.CodeAnalysis.dll" Component_="Microsoft.CodeAnalysis.dll" FileName="MICROS~4.DLL|Microsoft.CodeAnalysis.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.CodeAnalysis.dll" SelfReg="false"/> - <ROW File="Microsoft.CodeAnalysis.Scripting.dll" Component_="Microsoft.CodeAnalysis.Scripting.dll" FileName="MICROS~5.DLL|Microsoft.CodeAnalysis.Scripting.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.CodeAnalysis.Scripting.dll" SelfReg="false"/> - <ROW File="Microsoft.CodeAnalysis.VisualBasic.dll" Component_="Microsoft.CodeAnalysis.VisualBasic.dll" FileName="MICROS~6.DLL|Microsoft.CodeAnalysis.VisualBasic.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll" SelfReg="false"/> - <ROW File="Microsoft.CSharp.Core.targets" Component_="csc.exe.config" FileName="MICROS~1.TAR|Microsoft.CSharp.Core.targets" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.CSharp.Core.targets" SelfReg="false"/> - <ROW File="Microsoft.DiaSymReader.Native.amd64.dll" Component_="Microsoft.DiaSymReader.Native.amd64.dll" FileName="MICROS~7.DLL|Microsoft.DiaSymReader.Native.amd64.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.DiaSymReader.Native.amd64.dll" SelfReg="false"/> - <ROW File="Microsoft.DiaSymReader.Native.x86.dll" Component_="Microsoft.DiaSymReader.Native.x86.dll" FileName="MICROS~8.DLL|Microsoft.DiaSymReader.Native.x86.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.DiaSymReader.Native.x86.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualBasic.Core.targets" Component_="csc.exe.config" FileName="MICROS~2.TAR|Microsoft.VisualBasic.Core.targets" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.VisualBasic.Core.targets" SelfReg="false"/> - <ROW File="Microsoft.Win32.Primitives.dll_1" Component_="Microsoft.Win32.Primitives.dll_1" FileName="MICROS~9.DLL|Microsoft.Win32.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\Microsoft.Win32.Primitives.dll" SelfReg="false"/> - <ROW File="System.AppContext.dll_1" Component_="System.AppContext.dll_1" FileName="SYSTEM~1.DLL|System.AppContext.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.AppContext.dll" SelfReg="false"/> - <ROW File="System.Collections.Immutable.dll" Component_="System.Collections.Immutable.dll" FileName="SYSTEM~2.DLL|System.Collections.Immutable.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Collections.Immutable.dll" SelfReg="false"/> - <ROW File="System.Console.dll_1" Component_="System.Console.dll_1" FileName="SYSTEM~3.DLL|System.Console.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Console.dll" SelfReg="false"/> - <ROW File="System.Diagnostics.FileVersionInfo.dll_1" Component_="System.Diagnostics.FileVersionInfo.dll_1" FileName="SYSTEM~4.DLL|System.Diagnostics.FileVersionInfo.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Diagnostics.FileVersionInfo.dll" SelfReg="false"/> - <ROW File="System.Diagnostics.Process.dll_1" Component_="System.Diagnostics.Process.dll_1" FileName="SYSTEM~5.DLL|System.Diagnostics.Process.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Diagnostics.Process.dll" SelfReg="false"/> - <ROW File="System.Diagnostics.StackTrace.dll_1" Component_="System.Diagnostics.StackTrace.dll_1" FileName="SYSTEM~6.DLL|System.Diagnostics.StackTrace.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Diagnostics.StackTrace.dll" SelfReg="false"/> - <ROW File="System.IO.Compression.dll_1" Component_="System.IO.Compression.dll_1" FileName="SYSTEM~7.DLL|System.IO.Compression.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.IO.Compression.dll" SelfReg="false"/> - <ROW File="System.IO.FileSystem.dll_1" Component_="System.IO.FileSystem.dll_1" FileName="SYSTEM~8.DLL|System.IO.FileSystem.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.IO.FileSystem.dll" SelfReg="false"/> - <ROW File="System.IO.FileSystem.DriveInfo.dll_1" Component_="System.IO.FileSystem.DriveInfo.dll_1" FileName="SYSTEM~9.DLL|System.IO.FileSystem.DriveInfo.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.IO.FileSystem.DriveInfo.dll" SelfReg="false"/> - <ROW File="System.IO.FileSystem.Primitives.dll_1" Component_="System.IO.FileSystem.Primitives.dll_1" FileName="SYSTE~10.DLL|System.IO.FileSystem.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.IO.FileSystem.Primitives.dll" SelfReg="false"/> - <ROW File="System.IO.Pipes.dll_1" Component_="System.IO.Pipes.dll_1" FileName="SYSTE~11.DLL|System.IO.Pipes.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.IO.Pipes.dll" SelfReg="false"/> - <ROW File="System.Reflection.Metadata.dll" Component_="System.Reflection.Metadata.dll" FileName="SYSTE~12.DLL|System.Reflection.Metadata.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Reflection.Metadata.dll" SelfReg="false"/> - <ROW File="System.Security.AccessControl.dll" Component_="System.Security.AccessControl.dll" FileName="SYSTE~13.DLL|System.Security.AccessControl.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.AccessControl.dll" SelfReg="false"/> - <ROW File="System.Security.Claims.dll_1" Component_="System.Security.Claims.dll_1" FileName="SYSTE~14.DLL|System.Security.Claims.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.Claims.dll" SelfReg="false"/> - <ROW File="System.Security.Cryptography.Algorithms.dll_1" Component_="System.Security.Cryptography.Algorithms.dll_1" FileName="SYSTE~15.DLL|System.Security.Cryptography.Algorithms.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.Cryptography.Algorithms.dll" SelfReg="false"/> - <ROW File="System.Security.Cryptography.Encoding.dll_1" Component_="System.Security.Cryptography.Encoding.dll_1" FileName="SYSTE~16.DLL|System.Security.Cryptography.Encoding.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.Cryptography.Encoding.dll" SelfReg="false"/> - <ROW File="System.Security.Cryptography.Primitives.dll_1" Component_="System.Security.Cryptography.Primitives.dll_1" FileName="SYSTE~17.DLL|System.Security.Cryptography.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.Cryptography.Primitives.dll" SelfReg="false"/> - <ROW File="System.Security.Cryptography.X509Certificates.dll_1" Component_="System.Security.Cryptography.X509Certificates.dll_1" FileName="SYSTE~18.DLL|System.Security.Cryptography.X509Certificates.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.Cryptography.X509Certificates.dll" SelfReg="false"/> - <ROW File="System.Security.Principal.Windows.dll" Component_="System.Security.Principal.Windows.dll" FileName="SYSTE~19.DLL|System.Security.Principal.Windows.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Security.Principal.Windows.dll" SelfReg="false"/> - <ROW File="System.Text.Encoding.CodePages.dll" Component_="System.Text.Encoding.CodePages.dll" FileName="SYSTE~20.DLL|System.Text.Encoding.CodePages.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Text.Encoding.CodePages.dll" SelfReg="false"/> - <ROW File="System.Threading.Thread.dll_1" Component_="System.Threading.Thread.dll_1" FileName="SYSTE~21.DLL|System.Threading.Thread.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Threading.Thread.dll" SelfReg="false"/> - <ROW File="System.ValueTuple.dll_1" Component_="System.ValueTuple.dll_1" FileName="SYSTE~22.DLL|System.ValueTuple.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.ValueTuple.dll" SelfReg="false"/> - <ROW File="System.Xml.ReaderWriter.dll_1" Component_="System.Xml.ReaderWriter.dll_1" FileName="SYSTE~23.DLL|System.Xml.ReaderWriter.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Xml.ReaderWriter.dll" SelfReg="false"/> - <ROW File="System.Xml.XmlDocument.dll_1" Component_="System.Xml.XmlDocument.dll_1" FileName="SYSTE~24.DLL|System.Xml.XmlDocument.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Xml.XmlDocument.dll" SelfReg="false"/> - <ROW File="System.Xml.XPath.dll_1" Component_="System.Xml.XPath.dll_1" FileName="SYSTE~25.DLL|System.Xml.XPath.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Xml.XPath.dll" SelfReg="false"/> - <ROW File="System.Xml.XPath.XDocument.dll_1" Component_="System.Xml.XPath.XDocument.dll_1" FileName="SYSTE~26.DLL|System.Xml.XPath.XDocument.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\System.Xml.XPath.XDocument.dll" SelfReg="false"/> - <ROW File="vbc.exe" Component_="vbc.exe" FileName="vbc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\vbc.exe" SelfReg="false" DigSign="true"/> - <ROW File="vbc.exe.config" Component_="csc.exe.config" FileName="VBCEXE~1.CON|vbc.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\vbc.exe.config" SelfReg="false"/> - <ROW File="vbc.rsp" Component_="csc.exe.config" FileName="vbc.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\vbc.rsp" SelfReg="false"/> - <ROW File="VBCSCompiler.exe" Component_="VBCSCompiler.exe" FileName="VBCSCO~1.EXE|VBCSCompiler.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\VBCSCompiler.exe" SelfReg="false" DigSign="true"/> - <ROW File="VBCSCompiler.exe.config" Component_="csc.exe.config" FileName="VBCSCO~1.CON|VBCSCompiler.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\roslyn\VBCSCompiler.exe.config" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_9" Component_="Microsoft.TeamFoundation.Client.resources.dll_9" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_9" Component_="Microsoft.TeamFoundation.Common.resources.dll_9" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_9" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_9" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_9" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_9" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_9" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="SciChart.Charting.DrawingTools.xml" Component_="Dragablz.xml" FileName="SCICHA~1.XML|SciChart.Charting.DrawingTools.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Charting.DrawingTools.xml" SelfReg="false"/> - <ROW File="SciChart.Charting.xml" Component_="Dragablz.xml" FileName="SCICHA~2.XML|SciChart.Charting.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Charting.xml" SelfReg="false"/> - <ROW File="SciChart.Charting3D.xml" Component_="Dragablz.xml" FileName="SCICHA~3.XML|SciChart.Charting3D.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Charting3D.xml" SelfReg="false"/> - <ROW File="SciChart.Core.xml" Component_="Dragablz.xml" FileName="SCICHA~4.XML|SciChart.Core.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Core.xml" SelfReg="false"/> - <ROW File="SciChart.Data.xml" Component_="Dragablz.xml" FileName="SCICHA~5.XML|SciChart.Data.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Data.xml" SelfReg="false"/> - <ROW File="SciChart.Drawing.DirectX.xml" Component_="Dragablz.xml" FileName="SCICHA~6.XML|SciChart.Drawing.DirectX.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Drawing.DirectX.xml" SelfReg="false"/> - <ROW File="SciChart.Drawing.xml" Component_="Dragablz.xml" FileName="SCICHA~7.XML|SciChart.Drawing.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SciChart.Drawing.xml" SelfReg="false"/> - <ROW File="System.Data.SQLite.xml" Component_="Dragablz.xml" FileName="SYSTEM~1.XML|System.Data.SQLite.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Data.SQLite.xml" SelfReg="false"/> - <ROW File="System.IdentityModel.Tokens.Jwt.pdb" Component_="System.IdentityModel.Tokens.Jwt.dll" FileName="SYSTEM~1.PDB|System.IdentityModel.Tokens.Jwt.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.IdentityModel.Tokens.Jwt.pdb" SelfReg="false"/> - <ROW File="System.IdentityModel.Tokens.Jwt.xml" Component_="Dragablz.xml" FileName="SYSTEM~2.XML|System.IdentityModel.Tokens.Jwt.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.IdentityModel.Tokens.Jwt.xml" SelfReg="false"/> - <ROW File="System.Net.Http.Formatting.xml" Component_="Dragablz.xml" FileName="SYSTEM~3.XML|System.Net.Http.Formatting.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Net.Http.Formatting.xml" SelfReg="false"/> - <ROW File="System.Reactive.Core.xml" Component_="Dragablz.xml" FileName="SYSTEM~4.XML|System.Reactive.Core.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Core.xml" SelfReg="false"/> - <ROW File="System.Reactive.Interfaces.xml" Component_="Dragablz.xml" FileName="SYSTEM~5.XML|System.Reactive.Interfaces.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Interfaces.xml" SelfReg="false"/> - <ROW File="System.Reactive.Linq.xml" Component_="Dragablz.xml" FileName="SYSTEM~6.XML|System.Reactive.Linq.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Linq.xml" SelfReg="false"/> - <ROW File="System.Reactive.PlatformServices.xml" Component_="Dragablz.xml" FileName="SYSTEM~7.XML|System.Reactive.PlatformServices.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.PlatformServices.xml" SelfReg="false"/> - <ROW File="System.Web.Http.WebHost.xml" Component_="Dragablz.xml" FileName="SYSTEM~8.XML|System.Web.Http.WebHost.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Web.Http.WebHost.xml" SelfReg="false"/> - <ROW File="System.Web.Http.xml" Component_="Dragablz.xml" FileName="SYSTEM~9.XML|System.Web.Http.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Web.Http.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_10" Component_="Microsoft.TeamFoundation.Client.resources.dll_10" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_10" Component_="Microsoft.TeamFoundation.Common.resources.dll_10" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_10" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_10" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_10" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_10" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_10" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="WebRtc.NET.pdb" Component_="WebRtc.NET.dll" FileName="WEBRTC~1.PDB|WebRtc.NET.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\WebRtc.NET.pdb" SelfReg="false"/> - <ROW File="WindowsInput.xml" Component_="Dragablz.xml" FileName="WINDOW~1.XML|WindowsInput.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\WindowsInput.xml" SelfReg="false"/> - <ROW File="Z.EntityFramework.Extensions.xml" Component_="Dragablz.xml" FileName="ZENTIT~1.XML|Z.EntityFramework.Extensions.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Z.EntityFramework.Extensions.xml" SelfReg="false"/> - <ROW File="Z.EntityFramework.Plus.EF6.xml" Component_="Dragablz.xml" FileName="ZENTIT~2.XML|Z.EntityFramework.Plus.EF6.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Z.EntityFramework.Plus.EF6.xml" SelfReg="false"/> - <ROW File="Z.Expressions.Eval.xml" Component_="Dragablz.xml" FileName="ZEXPRE~1.XML|Z.Expressions.Eval.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Z.Expressions.Eval.xml" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_11" Component_="Microsoft.TeamFoundation.Client.resources.dll_11" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_11" Component_="Microsoft.TeamFoundation.Common.resources.dll_11" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_11" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_11" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_11" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_11" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_11" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Client.resources.dll_12" Component_="Microsoft.TeamFoundation.Client.resources.dll_12" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Common.resources.dll_12" Component_="Microsoft.TeamFoundation.Common.resources.dll_12" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_12" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_12" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_12" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> - <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_12" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_12" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent"> <ROW RemoveFile="_" Options="3"/> @@ -1238,7 +796,7 @@ <ROW Action="AI_DetectSoftware" Sequence="101"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> - <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.1.2" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.1.2"/> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.1.3" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.1.3"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> <ROW Path="<AI_DICTS>ui.ail"/> @@ -1721,179 +1279,6 @@ <ROW Feature_="TangoFSE" Component_="Tango.DataStore.EF.dll"/> <ROW Feature_="TangoFSE" Component_="Tango.DataStore.Remote.dll"/> <ROW Feature_="TangoFSE" Component_="Tango.FSE.MachineConfiguration.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_1"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_2"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_3"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_4"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_5"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_6"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_7"/> - <ROW Feature_="TangoFSE" Component_="protoc1.0M4.jar"/> - <ROW Feature_="TangoFSE" Component_="protocc.exe"/> - <ROW Feature_="TangoFSE" Component_="protoc.exe"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_8"/> - <ROW Feature_="TangoFSE" Component_="csc.exe"/> - <ROW Feature_="TangoFSE" Component_="csc.exe.config"/> - <ROW Feature_="TangoFSE" Component_="csi.exe"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.Build.Tasks.CodeAnalysis.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.CodeAnalysis.CSharp.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.CodeAnalysis.CSharp.Scripting.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.CodeAnalysis.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.CodeAnalysis.Scripting.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.CodeAnalysis.VisualBasic.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.DiaSymReader.Native.amd64.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.DiaSymReader.Native.x86.dll"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.Win32.Primitives.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.AppContext.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Collections.Immutable.dll"/> - <ROW Feature_="TangoFSE" Component_="System.Console.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Diagnostics.FileVersionInfo.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Diagnostics.Process.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Diagnostics.StackTrace.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.IO.Compression.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.IO.FileSystem.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.IO.FileSystem.DriveInfo.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.IO.FileSystem.Primitives.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.IO.Pipes.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Reflection.Metadata.dll"/> - <ROW Feature_="TangoFSE" Component_="System.Security.AccessControl.dll"/> - <ROW Feature_="TangoFSE" Component_="System.Security.Claims.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Security.Cryptography.Algorithms.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Security.Cryptography.Encoding.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Security.Cryptography.Primitives.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Security.Cryptography.X509Certificates.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Security.Principal.Windows.dll"/> - <ROW Feature_="TangoFSE" Component_="System.Text.Encoding.CodePages.dll"/> - <ROW Feature_="TangoFSE" Component_="System.Threading.Thread.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.ValueTuple.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Xml.ReaderWriter.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Xml.XmlDocument.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Xml.XPath.dll_1"/> - <ROW Feature_="TangoFSE" Component_="System.Xml.XPath.XDocument.dll_1"/> - <ROW Feature_="TangoFSE" Component_="vbc.exe"/> - <ROW Feature_="TangoFSE" Component_="VBCSCompiler.exe"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_9"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_10"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_11"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_12"/> - <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_12"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent"> <ROW Name="Tango.FSE.LogViewer.UI.exe" SourcePath="..\..\Graphics\FSE\log_viewer_icon.ico" Index="0"/> diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt Binary files differindex 5fe5afe5a..9453b5c13 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt +++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip index aabb8ee24..7d6d46107 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip +++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip @@ -18,10 +18,10 @@ <ROW Property="ARPNOREPAIR" Value="1" MultiBuildValue="DefaultBuild:1"/> <ROW Property="ARPSYSTEMCOMPONENT" Value="1"/> <ROW Property="Manufacturer" Value="Twine"/> - <ROW Property="ProductCode" Value="1033:{AC1F0FE6-ED7C-49EB-A023-29C32B2E5D25} " Type="16"/> + <ROW Property="ProductCode" Value="1033:{8797CBF9-3FC2-4E24-B726-AE52C0E64219} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> <ROW Property="ProductName" Value="Tango"/> - <ROW Property="ProductVersion" Value="1.2.7.0" Type="32"/> + <ROW Property="ProductVersion" Value="1.2.9.0" Type="32"/> <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> <ROW Property="UpgradeCode" Value="{F8EAB8B4-FD57-45B7-8307-D52DF760273D}"/> <ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/> @@ -215,13 +215,11 @@ <ROW Component="mscoree.dll" ComponentId="{85F439D0-8FD0-4B99-888D-336C7A125E3D}" Directory_="APPDIR" Attributes="0" KeyPath="mscoree.dll"/> <ROW Component="msvcp140d.dll" ComponentId="{69E32675-9ACF-4C23-A495-300B78913B66}" Directory_="APPDIR" Attributes="0" KeyPath="msvcp140d.dll"/> <ROW Component="protobufnet.dll" ComponentId="{163F1E17-6462-4ABE-BC86-E055F7690139}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/> - <ROW Component="turbojpeg.dll" ComponentId="{A8EBA4C0-FBCB-4C2D-86E6-E6641E3E4472}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> - <ROW Component="turbojpeg.dll.meta" ComponentId="{055DE78E-BFF5-4574-BC2E-63F3FC53DF1A}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/> - <ROW Component="turbojpeg.dll.meta_1" ComponentId="{751AFE16-B61A-40E5-869B-C85CCD706411}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> - <ROW Component="turbojpeg.dll_1" ComponentId="{5B05AD22-B386-4047-B8FF-160563B59A5D}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> <ROW Component="ucrtbased.dll" ComponentId="{B8D025EA-CD16-4EE7-A3E7-713E2BE82BF3}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/> <ROW Component="vcruntime140.dll" ComponentId="{144594CC-D19B-45E4-A420-7A1BBB122EE3}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/> <ROW Component="vcruntime140d.dll" ComponentId="{7653420C-C6C3-4F31-97E8-D6DE417D3DF2}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/> + <ROW Component="win7x64" ComponentId="{7240E0EF-E990-4B68-9779-57772901BEF7}" Directory_="win7x64_Dir" Attributes="0"/> + <ROW Component="win7x86" ComponentId="{ABA8DEFE-FF2F-4E39-A054-E2634DCACB13}" Directory_="win7x86_Dir" Attributes="0"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent"> <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/> @@ -491,11 +489,6 @@ <ROW File="Tango.DataStore.Remote.pdb" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~6.PDB|Tango.DataStore.Remote.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Remote.pdb" SelfReg="false"/> <ROW File="Tango.DataStore.Editing.dll" Component_="Tango.DataStore.Editing.dll" FileName="TANGOD~7.DLL|Tango.DataStore.Editing.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Editing.dll" SelfReg="false"/> <ROW File="Tango.DataStore.Editing.pdb" Component_="Tango.DataStore.Editing.dll" FileName="TANGOD~7.PDB|Tango.DataStore.Editing.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Editing.pdb" SelfReg="false"/> - <ROW File="LibGit2Sharp.dll.config" Component_="CommandLine.xml" FileName="LIBGIT~1.CON|LibGit2Sharp.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\LibGit2Sharp.dll.config" SelfReg="false"/> - <ROW File="turbojpeg.dll" Component_="turbojpeg.dll" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x64\turbojpeg.dll" SelfReg="false"/> - <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x64\turbojpeg.dll.meta" SelfReg="false"/> - <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x86\turbojpeg.dll" SelfReg="false"/> - <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x86\turbojpeg.dll.meta" SelfReg="false"/> <ATTRIBUTE name="DontAddFileAttributes" value="true"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent"> @@ -505,7 +498,7 @@ <ROW Action="AI_DetectSoftware" Sequence="101"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> - <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\PPC" PackageFileName="PPC Installer_v1.2.7" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="PPC Installer_v1.2.7"/> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\PPC" PackageFileName="PPC Installer_v1.2.9" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="PPC Installer_v1.2.9"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> <ROW Path="<AI_DICTS>ui.ail"/> @@ -573,6 +566,8 @@ <COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent"> <ROW Directory_="SHORTCUTDIR" Component_="SHORTCUTDIR" ManualDelete="false"/> <ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/> + <ROW Directory_="win7x64_Dir" Component_="win7x64" ManualDelete="false"/> + <ROW Directory_="win7x86_Dir" Component_="win7x86" ManualDelete="false"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent"> <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/> @@ -776,10 +771,8 @@ <ROW Feature_="MainFeature" Component_="Tango.DataStore.Lite.dll"/> <ROW Feature_="MainFeature" Component_="Tango.DataStore.Remote.dll"/> <ROW Feature_="MainFeature" Component_="Tango.DataStore.Editing.dll"/> - <ROW Feature_="MainFeature" Component_="turbojpeg.dll"/> - <ROW Feature_="MainFeature" Component_="turbojpeg.dll.meta"/> - <ROW Feature_="MainFeature" Component_="turbojpeg.dll_1"/> - <ROW Feature_="MainFeature" Component_="turbojpeg.dll.meta_1"/> + <ROW Feature_="MainFeature" Component_="win7x86"/> + <ROW Feature_="MainFeature" Component_="win7x64"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent"> <ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1502"/> diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationInput.pb-c.c new file mode 100644 index 000000000..5d30f6cd5 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationInput.pb-c.c @@ -0,0 +1,144 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationInput.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationInput.pb-c.h" +void linearization_input__init + (LinearizationInput *message) +{ + static const LinearizationInput init_value = LINEARIZATION_INPUT__INIT; + *message = init_value; +} +size_t linearization_input__get_packed_size + (const LinearizationInput *message) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_input__pack + (const LinearizationInput *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_input__pack_to_buffer + (const LinearizationInput *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationInput * + linearization_input__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationInput *) + protobuf_c_message_unpack (&linearization_input__descriptor, + allocator, len, data); +} +void linearization_input__free_unpacked + (LinearizationInput *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_input__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_input__field_descriptors[5] = +{ + { + "LiquidType", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(LinearizationInput, has_liquidtype), + offsetof(LinearizationInput, liquidtype), + &liquid_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetL", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targetl), + offsetof(LinearizationInput, targetl), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetA", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targeta), + offsetof(LinearizationInput, targeta), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetB", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targetb), + offsetof(LinearizationInput, targetb), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "Measurements", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(LinearizationInput, n_measurements), + offsetof(LinearizationInput, measurements), + &linearization_measurement__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_input__field_indices_by_name[] = { + 0, /* field[0] = LiquidType */ + 4, /* field[4] = Measurements */ + 2, /* field[2] = TargetA */ + 3, /* field[3] = TargetB */ + 1, /* field[1] = TargetL */ +}; +static const ProtobufCIntRange linearization_input__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor linearization_input__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationInput", + "LinearizationInput", + "LinearizationInput", + "", + sizeof(LinearizationInput), + 5, + linearization_input__field_descriptors, + linearization_input__field_indices_by_name, + 1, linearization_input__number_ranges, + (ProtobufCMessageInit) linearization_input__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationInput.pb-c.h new file mode 100644 index 000000000..9cab974c5 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationInput.pb-c.h @@ -0,0 +1,82 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationInput.proto */ + +#ifndef PROTOBUF_C_LinearizationInput_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationInput_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + +#include "LinearizationMeasurement.pb-c.h" +#include "LiquidType.pb-c.h" + +typedef struct _LinearizationInput LinearizationInput; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationInput +{ + ProtobufCMessage base; + protobuf_c_boolean has_liquidtype; + LiquidType liquidtype; + protobuf_c_boolean has_targetl; + double targetl; + protobuf_c_boolean has_targeta; + double targeta; + protobuf_c_boolean has_targetb; + double targetb; + size_t n_measurements; + LinearizationMeasurement **measurements; +}; +#define LINEARIZATION_INPUT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_input__descriptor) \ + , 0, LIQUID_TYPE__Cyan, 0, 0, 0, 0, 0, 0, 0,NULL } + + +/* LinearizationInput methods */ +void linearization_input__init + (LinearizationInput *message); +size_t linearization_input__get_packed_size + (const LinearizationInput *message); +size_t linearization_input__pack + (const LinearizationInput *message, + uint8_t *out); +size_t linearization_input__pack_to_buffer + (const LinearizationInput *message, + ProtobufCBuffer *buffer); +LinearizationInput * + linearization_input__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_input__free_unpacked + (LinearizationInput *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationInput_Closure) + (const LinearizationInput *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_input__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationInput_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationMeasurement.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationMeasurement.pb-c.c new file mode 100644 index 000000000..0a242ee0f --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationMeasurement.pb-c.c @@ -0,0 +1,131 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationMeasurement.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationMeasurement.pb-c.h" +void linearization_measurement__init + (LinearizationMeasurement *message) +{ + static const LinearizationMeasurement init_value = LINEARIZATION_MEASUREMENT__INIT; + *message = init_value; +} +size_t linearization_measurement__get_packed_size + (const LinearizationMeasurement *message) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_measurement__pack + (const LinearizationMeasurement *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_measurement__pack_to_buffer + (const LinearizationMeasurement *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationMeasurement * + linearization_measurement__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationMeasurement *) + protobuf_c_message_unpack (&linearization_measurement__descriptor, + allocator, len, data); +} +void linearization_measurement__free_unpacked + (LinearizationMeasurement *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_measurement__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_measurement__field_descriptors[4] = +{ + { + "InkPercentage", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_inkpercentage), + offsetof(LinearizationMeasurement, inkpercentage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "L", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_l), + offsetof(LinearizationMeasurement, l), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "A", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_a), + offsetof(LinearizationMeasurement, a), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "B", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_b), + offsetof(LinearizationMeasurement, b), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_measurement__field_indices_by_name[] = { + 2, /* field[2] = A */ + 3, /* field[3] = B */ + 0, /* field[0] = InkPercentage */ + 1, /* field[1] = L */ +}; +static const ProtobufCIntRange linearization_measurement__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor linearization_measurement__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationMeasurement", + "LinearizationMeasurement", + "LinearizationMeasurement", + "", + sizeof(LinearizationMeasurement), + 4, + linearization_measurement__field_descriptors, + linearization_measurement__field_indices_by_name, + 1, linearization_measurement__number_ranges, + (ProtobufCMessageInit) linearization_measurement__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationMeasurement.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationMeasurement.pb-c.h new file mode 100644 index 000000000..b4f17f87e --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationMeasurement.pb-c.h @@ -0,0 +1,78 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationMeasurement.proto */ + +#ifndef PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct _LinearizationMeasurement LinearizationMeasurement; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationMeasurement +{ + ProtobufCMessage base; + protobuf_c_boolean has_inkpercentage; + double inkpercentage; + protobuf_c_boolean has_l; + double l; + protobuf_c_boolean has_a; + double a; + protobuf_c_boolean has_b; + double b; +}; +#define LINEARIZATION_MEASUREMENT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_measurement__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0 } + + +/* LinearizationMeasurement methods */ +void linearization_measurement__init + (LinearizationMeasurement *message); +size_t linearization_measurement__get_packed_size + (const LinearizationMeasurement *message); +size_t linearization_measurement__pack + (const LinearizationMeasurement *message, + uint8_t *out); +size_t linearization_measurement__pack_to_buffer + (const LinearizationMeasurement *message, + ProtobufCBuffer *buffer); +LinearizationMeasurement * + linearization_measurement__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_measurement__free_unpacked + (LinearizationMeasurement *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationMeasurement_Closure) + (const LinearizationMeasurement *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_measurement__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationOutput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationOutput.pb-c.c new file mode 100644 index 000000000..5bd04b218 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationOutput.pb-c.c @@ -0,0 +1,119 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationOutput.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationOutput.pb-c.h" +void linearization_output__init + (LinearizationOutput *message) +{ + static const LinearizationOutput init_value = LINEARIZATION_OUTPUT__INIT; + *message = init_value; +} +size_t linearization_output__get_packed_size + (const LinearizationOutput *message) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_output__pack + (const LinearizationOutput *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_output__pack_to_buffer + (const LinearizationOutput *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationOutput * + linearization_output__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationOutput *) + protobuf_c_message_unpack (&linearization_output__descriptor, + allocator, len, data); +} +void linearization_output__free_unpacked + (LinearizationOutput *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_output__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_output__field_descriptors[3] = +{ + { + "InkPercentage", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationOutput, n_inkpercentage), + offsetof(LinearizationOutput, inkpercentage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "HasError", + 20, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(LinearizationOutput, has_haserror), + offsetof(LinearizationOutput, haserror), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ErrorMessage", + 21, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(LinearizationOutput, errormessage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_output__field_indices_by_name[] = { + 2, /* field[2] = ErrorMessage */ + 1, /* field[1] = HasError */ + 0, /* field[0] = InkPercentage */ +}; +static const ProtobufCIntRange linearization_output__number_ranges[2 + 1] = +{ + { 1, 0 }, + { 20, 1 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor linearization_output__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationOutput", + "LinearizationOutput", + "LinearizationOutput", + "", + sizeof(LinearizationOutput), + 3, + linearization_output__field_descriptors, + linearization_output__field_indices_by_name, + 2, linearization_output__number_ranges, + (ProtobufCMessageInit) linearization_output__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationOutput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationOutput.pb-c.h new file mode 100644 index 000000000..b0ab54e12 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LinearizationOutput.pb-c.h @@ -0,0 +1,75 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationOutput.proto */ + +#ifndef PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct _LinearizationOutput LinearizationOutput; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationOutput +{ + ProtobufCMessage base; + size_t n_inkpercentage; + double *inkpercentage; + protobuf_c_boolean has_haserror; + protobuf_c_boolean haserror; + char *errormessage; +}; +#define LINEARIZATION_OUTPUT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_output__descriptor) \ + , 0,NULL, 0, 0, NULL } + + +/* LinearizationOutput methods */ +void linearization_output__init + (LinearizationOutput *message); +size_t linearization_output__get_packed_size + (const LinearizationOutput *message); +size_t linearization_output__pack + (const LinearizationOutput *message, + uint8_t *out); +size_t linearization_output__pack_to_buffer + (const LinearizationOutput *message, + ProtobufCBuffer *buffer); +LinearizationOutput * + linearization_output__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_output__free_unpacked + (LinearizationOutput *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationOutput_Closure) + (const LinearizationOutput *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_output__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.c index e4baae5c6..d6d4117b7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.c +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.c @@ -7,7 +7,7 @@ #endif #include "LiquidType.pb-c.h" -static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] = +static const ProtobufCEnumValue liquid_type__enum_values_by_number[10] = { { "Cyan", "LIQUID_TYPE__Cyan", 0 }, { "Magenta", "LIQUID_TYPE__Magenta", 1 }, @@ -16,15 +16,21 @@ static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] = { "TransparentInk", "LIQUID_TYPE__TransparentInk", 4 }, { "Lubricant", "LIQUID_TYPE__Lubricant", 5 }, { "Cleaner", "LIQUID_TYPE__Cleaner", 6 }, + { "LightCyan", "LIQUID_TYPE__LightCyan", 7 }, + { "LightMagenta", "LIQUID_TYPE__LightMagenta", 8 }, + { "LightYellow", "LIQUID_TYPE__LightYellow", 9 }, }; static const ProtobufCIntRange liquid_type__value_ranges[] = { -{0, 0},{0, 7} +{0, 0},{0, 10} }; -static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[7] = +static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[10] = { { "Black", 3 }, { "Cleaner", 6 }, { "Cyan", 0 }, + { "LightCyan", 7 }, + { "LightMagenta", 8 }, + { "LightYellow", 9 }, { "Lubricant", 5 }, { "Magenta", 1 }, { "TransparentInk", 4 }, @@ -37,9 +43,9 @@ const ProtobufCEnumDescriptor liquid_type__descriptor = "LiquidType", "LiquidType", "", - 7, + 10, liquid_type__enum_values_by_number, - 7, + 10, liquid_type__enum_values_by_name, 1, liquid_type__value_ranges, diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.h index da9ec1c60..eba52c4a7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/LiquidType.pb-c.h @@ -26,7 +26,10 @@ typedef enum _LiquidType { LIQUID_TYPE__Black = 3, LIQUID_TYPE__TransparentInk = 4, LIQUID_TYPE__Lubricant = 5, - LIQUID_TYPE__Cleaner = 6 + LIQUID_TYPE__Cleaner = 6, + LIQUID_TYPE__LightCyan = 7, + LIQUID_TYPE__LightMagenta = 8, + LIQUID_TYPE__LightYellow = 9 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LIQUID_TYPE) } LiquidType; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationInput.pb-c.c new file mode 100644 index 000000000..5d30f6cd5 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationInput.pb-c.c @@ -0,0 +1,144 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationInput.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationInput.pb-c.h" +void linearization_input__init + (LinearizationInput *message) +{ + static const LinearizationInput init_value = LINEARIZATION_INPUT__INIT; + *message = init_value; +} +size_t linearization_input__get_packed_size + (const LinearizationInput *message) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_input__pack + (const LinearizationInput *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_input__pack_to_buffer + (const LinearizationInput *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationInput * + linearization_input__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationInput *) + protobuf_c_message_unpack (&linearization_input__descriptor, + allocator, len, data); +} +void linearization_input__free_unpacked + (LinearizationInput *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_input__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_input__field_descriptors[5] = +{ + { + "LiquidType", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(LinearizationInput, has_liquidtype), + offsetof(LinearizationInput, liquidtype), + &liquid_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetL", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targetl), + offsetof(LinearizationInput, targetl), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetA", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targeta), + offsetof(LinearizationInput, targeta), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetB", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targetb), + offsetof(LinearizationInput, targetb), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "Measurements", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(LinearizationInput, n_measurements), + offsetof(LinearizationInput, measurements), + &linearization_measurement__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_input__field_indices_by_name[] = { + 0, /* field[0] = LiquidType */ + 4, /* field[4] = Measurements */ + 2, /* field[2] = TargetA */ + 3, /* field[3] = TargetB */ + 1, /* field[1] = TargetL */ +}; +static const ProtobufCIntRange linearization_input__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor linearization_input__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationInput", + "LinearizationInput", + "LinearizationInput", + "", + sizeof(LinearizationInput), + 5, + linearization_input__field_descriptors, + linearization_input__field_indices_by_name, + 1, linearization_input__number_ranges, + (ProtobufCMessageInit) linearization_input__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationInput.pb-c.h new file mode 100644 index 000000000..9cab974c5 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationInput.pb-c.h @@ -0,0 +1,82 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationInput.proto */ + +#ifndef PROTOBUF_C_LinearizationInput_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationInput_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + +#include "LinearizationMeasurement.pb-c.h" +#include "LiquidType.pb-c.h" + +typedef struct _LinearizationInput LinearizationInput; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationInput +{ + ProtobufCMessage base; + protobuf_c_boolean has_liquidtype; + LiquidType liquidtype; + protobuf_c_boolean has_targetl; + double targetl; + protobuf_c_boolean has_targeta; + double targeta; + protobuf_c_boolean has_targetb; + double targetb; + size_t n_measurements; + LinearizationMeasurement **measurements; +}; +#define LINEARIZATION_INPUT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_input__descriptor) \ + , 0, LIQUID_TYPE__Cyan, 0, 0, 0, 0, 0, 0, 0,NULL } + + +/* LinearizationInput methods */ +void linearization_input__init + (LinearizationInput *message); +size_t linearization_input__get_packed_size + (const LinearizationInput *message); +size_t linearization_input__pack + (const LinearizationInput *message, + uint8_t *out); +size_t linearization_input__pack_to_buffer + (const LinearizationInput *message, + ProtobufCBuffer *buffer); +LinearizationInput * + linearization_input__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_input__free_unpacked + (LinearizationInput *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationInput_Closure) + (const LinearizationInput *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_input__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationInput_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationMeasurement.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationMeasurement.pb-c.c new file mode 100644 index 000000000..0a242ee0f --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationMeasurement.pb-c.c @@ -0,0 +1,131 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationMeasurement.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationMeasurement.pb-c.h" +void linearization_measurement__init + (LinearizationMeasurement *message) +{ + static const LinearizationMeasurement init_value = LINEARIZATION_MEASUREMENT__INIT; + *message = init_value; +} +size_t linearization_measurement__get_packed_size + (const LinearizationMeasurement *message) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_measurement__pack + (const LinearizationMeasurement *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_measurement__pack_to_buffer + (const LinearizationMeasurement *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationMeasurement * + linearization_measurement__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationMeasurement *) + protobuf_c_message_unpack (&linearization_measurement__descriptor, + allocator, len, data); +} +void linearization_measurement__free_unpacked + (LinearizationMeasurement *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_measurement__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_measurement__field_descriptors[4] = +{ + { + "InkPercentage", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_inkpercentage), + offsetof(LinearizationMeasurement, inkpercentage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "L", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_l), + offsetof(LinearizationMeasurement, l), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "A", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_a), + offsetof(LinearizationMeasurement, a), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "B", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_b), + offsetof(LinearizationMeasurement, b), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_measurement__field_indices_by_name[] = { + 2, /* field[2] = A */ + 3, /* field[3] = B */ + 0, /* field[0] = InkPercentage */ + 1, /* field[1] = L */ +}; +static const ProtobufCIntRange linearization_measurement__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor linearization_measurement__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationMeasurement", + "LinearizationMeasurement", + "LinearizationMeasurement", + "", + sizeof(LinearizationMeasurement), + 4, + linearization_measurement__field_descriptors, + linearization_measurement__field_indices_by_name, + 1, linearization_measurement__number_ranges, + (ProtobufCMessageInit) linearization_measurement__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationMeasurement.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationMeasurement.pb-c.h new file mode 100644 index 000000000..b4f17f87e --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationMeasurement.pb-c.h @@ -0,0 +1,78 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationMeasurement.proto */ + +#ifndef PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct _LinearizationMeasurement LinearizationMeasurement; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationMeasurement +{ + ProtobufCMessage base; + protobuf_c_boolean has_inkpercentage; + double inkpercentage; + protobuf_c_boolean has_l; + double l; + protobuf_c_boolean has_a; + double a; + protobuf_c_boolean has_b; + double b; +}; +#define LINEARIZATION_MEASUREMENT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_measurement__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0 } + + +/* LinearizationMeasurement methods */ +void linearization_measurement__init + (LinearizationMeasurement *message); +size_t linearization_measurement__get_packed_size + (const LinearizationMeasurement *message); +size_t linearization_measurement__pack + (const LinearizationMeasurement *message, + uint8_t *out); +size_t linearization_measurement__pack_to_buffer + (const LinearizationMeasurement *message, + ProtobufCBuffer *buffer); +LinearizationMeasurement * + linearization_measurement__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_measurement__free_unpacked + (LinearizationMeasurement *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationMeasurement_Closure) + (const LinearizationMeasurement *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_measurement__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationOutput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationOutput.pb-c.c new file mode 100644 index 000000000..5bd04b218 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationOutput.pb-c.c @@ -0,0 +1,119 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationOutput.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationOutput.pb-c.h" +void linearization_output__init + (LinearizationOutput *message) +{ + static const LinearizationOutput init_value = LINEARIZATION_OUTPUT__INIT; + *message = init_value; +} +size_t linearization_output__get_packed_size + (const LinearizationOutput *message) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_output__pack + (const LinearizationOutput *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_output__pack_to_buffer + (const LinearizationOutput *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationOutput * + linearization_output__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationOutput *) + protobuf_c_message_unpack (&linearization_output__descriptor, + allocator, len, data); +} +void linearization_output__free_unpacked + (LinearizationOutput *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_output__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_output__field_descriptors[3] = +{ + { + "InkPercentage", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationOutput, n_inkpercentage), + offsetof(LinearizationOutput, inkpercentage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "HasError", + 20, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(LinearizationOutput, has_haserror), + offsetof(LinearizationOutput, haserror), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ErrorMessage", + 21, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(LinearizationOutput, errormessage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_output__field_indices_by_name[] = { + 2, /* field[2] = ErrorMessage */ + 1, /* field[1] = HasError */ + 0, /* field[0] = InkPercentage */ +}; +static const ProtobufCIntRange linearization_output__number_ranges[2 + 1] = +{ + { 1, 0 }, + { 20, 1 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor linearization_output__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationOutput", + "LinearizationOutput", + "LinearizationOutput", + "", + sizeof(LinearizationOutput), + 3, + linearization_output__field_descriptors, + linearization_output__field_indices_by_name, + 2, linearization_output__number_ranges, + (ProtobufCMessageInit) linearization_output__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationOutput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationOutput.pb-c.h new file mode 100644 index 000000000..b0ab54e12 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LinearizationOutput.pb-c.h @@ -0,0 +1,75 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationOutput.proto */ + +#ifndef PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct _LinearizationOutput LinearizationOutput; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationOutput +{ + ProtobufCMessage base; + size_t n_inkpercentage; + double *inkpercentage; + protobuf_c_boolean has_haserror; + protobuf_c_boolean haserror; + char *errormessage; +}; +#define LINEARIZATION_OUTPUT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_output__descriptor) \ + , 0,NULL, 0, 0, NULL } + + +/* LinearizationOutput methods */ +void linearization_output__init + (LinearizationOutput *message); +size_t linearization_output__get_packed_size + (const LinearizationOutput *message); +size_t linearization_output__pack + (const LinearizationOutput *message, + uint8_t *out); +size_t linearization_output__pack_to_buffer + (const LinearizationOutput *message, + ProtobufCBuffer *buffer); +LinearizationOutput * + linearization_output__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_output__free_unpacked + (LinearizationOutput *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationOutput_Closure) + (const LinearizationOutput *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_output__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.c index e4baae5c6..d6d4117b7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.c +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.c @@ -7,7 +7,7 @@ #endif #include "LiquidType.pb-c.h" -static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] = +static const ProtobufCEnumValue liquid_type__enum_values_by_number[10] = { { "Cyan", "LIQUID_TYPE__Cyan", 0 }, { "Magenta", "LIQUID_TYPE__Magenta", 1 }, @@ -16,15 +16,21 @@ static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] = { "TransparentInk", "LIQUID_TYPE__TransparentInk", 4 }, { "Lubricant", "LIQUID_TYPE__Lubricant", 5 }, { "Cleaner", "LIQUID_TYPE__Cleaner", 6 }, + { "LightCyan", "LIQUID_TYPE__LightCyan", 7 }, + { "LightMagenta", "LIQUID_TYPE__LightMagenta", 8 }, + { "LightYellow", "LIQUID_TYPE__LightYellow", 9 }, }; static const ProtobufCIntRange liquid_type__value_ranges[] = { -{0, 0},{0, 7} +{0, 0},{0, 10} }; -static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[7] = +static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[10] = { { "Black", 3 }, { "Cleaner", 6 }, { "Cyan", 0 }, + { "LightCyan", 7 }, + { "LightMagenta", 8 }, + { "LightYellow", 9 }, { "Lubricant", 5 }, { "Magenta", 1 }, { "TransparentInk", 4 }, @@ -37,9 +43,9 @@ const ProtobufCEnumDescriptor liquid_type__descriptor = "LiquidType", "LiquidType", "", - 7, + 10, liquid_type__enum_values_by_number, - 7, + 10, liquid_type__enum_values_by_name, 1, liquid_type__value_ranges, diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.h index da9ec1c60..eba52c4a7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/LiquidType.pb-c.h @@ -26,7 +26,10 @@ typedef enum _LiquidType { LIQUID_TYPE__Black = 3, LIQUID_TYPE__TransparentInk = 4, LIQUID_TYPE__Lubricant = 5, - LIQUID_TYPE__Cleaner = 6 + LIQUID_TYPE__Cleaner = 6, + LIQUID_TYPE__LightCyan = 7, + LIQUID_TYPE__LightMagenta = 8, + LIQUID_TYPE__LightYellow = 9 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LIQUID_TYPE) } LiquidType; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationInput.pb-c.c new file mode 100644 index 000000000..5d30f6cd5 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationInput.pb-c.c @@ -0,0 +1,144 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationInput.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationInput.pb-c.h" +void linearization_input__init + (LinearizationInput *message) +{ + static const LinearizationInput init_value = LINEARIZATION_INPUT__INIT; + *message = init_value; +} +size_t linearization_input__get_packed_size + (const LinearizationInput *message) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_input__pack + (const LinearizationInput *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_input__pack_to_buffer + (const LinearizationInput *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_input__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationInput * + linearization_input__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationInput *) + protobuf_c_message_unpack (&linearization_input__descriptor, + allocator, len, data); +} +void linearization_input__free_unpacked + (LinearizationInput *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_input__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_input__field_descriptors[5] = +{ + { + "LiquidType", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(LinearizationInput, has_liquidtype), + offsetof(LinearizationInput, liquidtype), + &liquid_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetL", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targetl), + offsetof(LinearizationInput, targetl), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetA", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targeta), + offsetof(LinearizationInput, targeta), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "TargetB", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationInput, has_targetb), + offsetof(LinearizationInput, targetb), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "Measurements", + 5, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(LinearizationInput, n_measurements), + offsetof(LinearizationInput, measurements), + &linearization_measurement__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_input__field_indices_by_name[] = { + 0, /* field[0] = LiquidType */ + 4, /* field[4] = Measurements */ + 2, /* field[2] = TargetA */ + 3, /* field[3] = TargetB */ + 1, /* field[1] = TargetL */ +}; +static const ProtobufCIntRange linearization_input__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor linearization_input__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationInput", + "LinearizationInput", + "LinearizationInput", + "", + sizeof(LinearizationInput), + 5, + linearization_input__field_descriptors, + linearization_input__field_indices_by_name, + 1, linearization_input__number_ranges, + (ProtobufCMessageInit) linearization_input__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationInput.pb-c.h new file mode 100644 index 000000000..9cab974c5 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationInput.pb-c.h @@ -0,0 +1,82 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationInput.proto */ + +#ifndef PROTOBUF_C_LinearizationInput_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationInput_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + +#include "LinearizationMeasurement.pb-c.h" +#include "LiquidType.pb-c.h" + +typedef struct _LinearizationInput LinearizationInput; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationInput +{ + ProtobufCMessage base; + protobuf_c_boolean has_liquidtype; + LiquidType liquidtype; + protobuf_c_boolean has_targetl; + double targetl; + protobuf_c_boolean has_targeta; + double targeta; + protobuf_c_boolean has_targetb; + double targetb; + size_t n_measurements; + LinearizationMeasurement **measurements; +}; +#define LINEARIZATION_INPUT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_input__descriptor) \ + , 0, LIQUID_TYPE__Cyan, 0, 0, 0, 0, 0, 0, 0,NULL } + + +/* LinearizationInput methods */ +void linearization_input__init + (LinearizationInput *message); +size_t linearization_input__get_packed_size + (const LinearizationInput *message); +size_t linearization_input__pack + (const LinearizationInput *message, + uint8_t *out); +size_t linearization_input__pack_to_buffer + (const LinearizationInput *message, + ProtobufCBuffer *buffer); +LinearizationInput * + linearization_input__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_input__free_unpacked + (LinearizationInput *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationInput_Closure) + (const LinearizationInput *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_input__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationInput_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationMeasurement.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationMeasurement.pb-c.c new file mode 100644 index 000000000..0a242ee0f --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationMeasurement.pb-c.c @@ -0,0 +1,131 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationMeasurement.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationMeasurement.pb-c.h" +void linearization_measurement__init + (LinearizationMeasurement *message) +{ + static const LinearizationMeasurement init_value = LINEARIZATION_MEASUREMENT__INIT; + *message = init_value; +} +size_t linearization_measurement__get_packed_size + (const LinearizationMeasurement *message) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_measurement__pack + (const LinearizationMeasurement *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_measurement__pack_to_buffer + (const LinearizationMeasurement *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_measurement__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationMeasurement * + linearization_measurement__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationMeasurement *) + protobuf_c_message_unpack (&linearization_measurement__descriptor, + allocator, len, data); +} +void linearization_measurement__free_unpacked + (LinearizationMeasurement *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_measurement__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_measurement__field_descriptors[4] = +{ + { + "InkPercentage", + 1, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_inkpercentage), + offsetof(LinearizationMeasurement, inkpercentage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "L", + 2, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_l), + offsetof(LinearizationMeasurement, l), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "A", + 3, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_a), + offsetof(LinearizationMeasurement, a), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "B", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationMeasurement, has_b), + offsetof(LinearizationMeasurement, b), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_measurement__field_indices_by_name[] = { + 2, /* field[2] = A */ + 3, /* field[3] = B */ + 0, /* field[0] = InkPercentage */ + 1, /* field[1] = L */ +}; +static const ProtobufCIntRange linearization_measurement__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor linearization_measurement__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationMeasurement", + "LinearizationMeasurement", + "LinearizationMeasurement", + "", + sizeof(LinearizationMeasurement), + 4, + linearization_measurement__field_descriptors, + linearization_measurement__field_indices_by_name, + 1, linearization_measurement__number_ranges, + (ProtobufCMessageInit) linearization_measurement__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationMeasurement.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationMeasurement.pb-c.h new file mode 100644 index 000000000..b4f17f87e --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationMeasurement.pb-c.h @@ -0,0 +1,78 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationMeasurement.proto */ + +#ifndef PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct _LinearizationMeasurement LinearizationMeasurement; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationMeasurement +{ + ProtobufCMessage base; + protobuf_c_boolean has_inkpercentage; + double inkpercentage; + protobuf_c_boolean has_l; + double l; + protobuf_c_boolean has_a; + double a; + protobuf_c_boolean has_b; + double b; +}; +#define LINEARIZATION_MEASUREMENT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_measurement__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0 } + + +/* LinearizationMeasurement methods */ +void linearization_measurement__init + (LinearizationMeasurement *message); +size_t linearization_measurement__get_packed_size + (const LinearizationMeasurement *message); +size_t linearization_measurement__pack + (const LinearizationMeasurement *message, + uint8_t *out); +size_t linearization_measurement__pack_to_buffer + (const LinearizationMeasurement *message, + ProtobufCBuffer *buffer); +LinearizationMeasurement * + linearization_measurement__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_measurement__free_unpacked + (LinearizationMeasurement *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationMeasurement_Closure) + (const LinearizationMeasurement *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_measurement__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationMeasurement_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationOutput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationOutput.pb-c.c new file mode 100644 index 000000000..5bd04b218 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationOutput.pb-c.c @@ -0,0 +1,119 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationOutput.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "LinearizationOutput.pb-c.h" +void linearization_output__init + (LinearizationOutput *message) +{ + static const LinearizationOutput init_value = LINEARIZATION_OUTPUT__INIT; + *message = init_value; +} +size_t linearization_output__get_packed_size + (const LinearizationOutput *message) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t linearization_output__pack + (const LinearizationOutput *message, + uint8_t *out) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t linearization_output__pack_to_buffer + (const LinearizationOutput *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &linearization_output__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +LinearizationOutput * + linearization_output__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (LinearizationOutput *) + protobuf_c_message_unpack (&linearization_output__descriptor, + allocator, len, data); +} +void linearization_output__free_unpacked + (LinearizationOutput *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &linearization_output__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor linearization_output__field_descriptors[3] = +{ + { + "InkPercentage", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(LinearizationOutput, n_inkpercentage), + offsetof(LinearizationOutput, inkpercentage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "HasError", + 20, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_BOOL, + offsetof(LinearizationOutput, has_haserror), + offsetof(LinearizationOutput, haserror), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ErrorMessage", + 21, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(LinearizationOutput, errormessage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned linearization_output__field_indices_by_name[] = { + 2, /* field[2] = ErrorMessage */ + 1, /* field[1] = HasError */ + 0, /* field[0] = InkPercentage */ +}; +static const ProtobufCIntRange linearization_output__number_ranges[2 + 1] = +{ + { 1, 0 }, + { 20, 1 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor linearization_output__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "LinearizationOutput", + "LinearizationOutput", + "LinearizationOutput", + "", + sizeof(LinearizationOutput), + 3, + linearization_output__field_descriptors, + linearization_output__field_indices_by_name, + 2, linearization_output__number_ranges, + (ProtobufCMessageInit) linearization_output__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationOutput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationOutput.pb-c.h new file mode 100644 index 000000000..b0ab54e12 --- /dev/null +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LinearizationOutput.pb-c.h @@ -0,0 +1,75 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: LinearizationOutput.proto */ + +#ifndef PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED +#define PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED + +#include <protobuf-c/protobuf-c.h> + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct _LinearizationOutput LinearizationOutput; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _LinearizationOutput +{ + ProtobufCMessage base; + size_t n_inkpercentage; + double *inkpercentage; + protobuf_c_boolean has_haserror; + protobuf_c_boolean haserror; + char *errormessage; +}; +#define LINEARIZATION_OUTPUT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&linearization_output__descriptor) \ + , 0,NULL, 0, 0, NULL } + + +/* LinearizationOutput methods */ +void linearization_output__init + (LinearizationOutput *message); +size_t linearization_output__get_packed_size + (const LinearizationOutput *message); +size_t linearization_output__pack + (const LinearizationOutput *message, + uint8_t *out); +size_t linearization_output__pack_to_buffer + (const LinearizationOutput *message, + ProtobufCBuffer *buffer); +LinearizationOutput * + linearization_output__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void linearization_output__free_unpacked + (LinearizationOutput *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*LinearizationOutput_Closure) + (const LinearizationOutput *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor linearization_output__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_LinearizationOutput_2eproto__INCLUDED */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.c index e4baae5c6..d6d4117b7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.c +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.c @@ -7,7 +7,7 @@ #endif #include "LiquidType.pb-c.h" -static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] = +static const ProtobufCEnumValue liquid_type__enum_values_by_number[10] = { { "Cyan", "LIQUID_TYPE__Cyan", 0 }, { "Magenta", "LIQUID_TYPE__Magenta", 1 }, @@ -16,15 +16,21 @@ static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] = { "TransparentInk", "LIQUID_TYPE__TransparentInk", 4 }, { "Lubricant", "LIQUID_TYPE__Lubricant", 5 }, { "Cleaner", "LIQUID_TYPE__Cleaner", 6 }, + { "LightCyan", "LIQUID_TYPE__LightCyan", 7 }, + { "LightMagenta", "LIQUID_TYPE__LightMagenta", 8 }, + { "LightYellow", "LIQUID_TYPE__LightYellow", 9 }, }; static const ProtobufCIntRange liquid_type__value_ranges[] = { -{0, 0},{0, 7} +{0, 0},{0, 10} }; -static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[7] = +static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[10] = { { "Black", 3 }, { "Cleaner", 6 }, { "Cyan", 0 }, + { "LightCyan", 7 }, + { "LightMagenta", 8 }, + { "LightYellow", 9 }, { "Lubricant", 5 }, { "Magenta", 1 }, { "TransparentInk", 4 }, @@ -37,9 +43,9 @@ const ProtobufCEnumDescriptor liquid_type__descriptor = "LiquidType", "LiquidType", "", - 7, + 10, liquid_type__enum_values_by_number, - 7, + 10, liquid_type__enum_values_by_name, 1, liquid_type__value_ranges, diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.h index da9ec1c60..eba52c4a7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/LiquidType.pb-c.h @@ -26,7 +26,10 @@ typedef enum _LiquidType { LIQUID_TYPE__Black = 3, LIQUID_TYPE__TransparentInk = 4, LIQUID_TYPE__Lubricant = 5, - LIQUID_TYPE__Cleaner = 6 + LIQUID_TYPE__Cleaner = 6, + LIQUID_TYPE__LightCyan = 7, + LIQUID_TYPE__LightMagenta = 8, + LIQUID_TYPE__LightYellow = 9 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LIQUID_TYPE) } LiquidType; diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.cpp index 94df740fc..9d38a13a3 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.cpp +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.cpp @@ -723,7 +723,7 @@ bool Tango::ColorLib::ColorCalibrator::Linearize(double *yVal, double*LinearInkV double outVal = 0.0; for (int i = 0; i < nPoints; i++) { - if (false == Interp1D(LabLinear, partialInkPercentage, yVal[i], outVal, error)) + if (false == Interp1D(LabLinear, partialInkPercentage, yVal[i], nPoints, outVal, error)) { delete[] LabLinear; LabLinear = NULL; @@ -739,7 +739,7 @@ bool Tango::ColorLib::ColorCalibrator::Linearize(double *yVal, double*LinearInkV partialInkPercentage = NULL; return true; } -bool Tango::ColorLib::ColorCalibrator::Interp1D(double* xx, double *yy, double InValue, double &OutValue, std::string &error) +bool Tango::ColorLib::ColorCalibrator::Interp1D(double* xx, double *yy, double InValue, int np, double &OutValue, std::string &error) { int m, ind; int errType = 0; @@ -747,7 +747,7 @@ bool Tango::ColorLib::ColorCalibrator::Interp1D(double* xx, double *yy, double I ind = -1; //Check Bounds - if ((InValue < xx[0] - epsTol) || (InValue > xx[m_nsize - 1] + epsTol)) + if ((InValue < xx[0] - epsTol) || (InValue > xx[np - 1] + epsTol)) { error = "Interp1D: In Value out of Bounds"; return false; @@ -756,10 +756,10 @@ bool Tango::ColorLib::ColorCalibrator::Interp1D(double* xx, double *yy, double I if ((InValue > xx[0] - epsTol) && (InValue < xx[0])) InValue = xx[0]; - if ((InValue > xx[m_nsize - 1]) && (InValue < xx[m_nsize - 1] + epsTol)) - InValue = xx[m_nsize - 1]; + if ((InValue > xx[np - 1]) && (InValue < xx[np - 1] + epsTol)) + InValue = xx[np - 1]; - for (m = 0; m < m_nsize - 1; ++m) + for (m = 0; m < np - 1; ++m) { if (xx[m] <= InValue && xx[m + 1] >= InValue) { diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.h index 637aaf8f1..a87379631 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorCalibrator.h @@ -34,7 +34,7 @@ namespace Tango bool CheckMonotonicity(double *yVal, std::string &error); bool CheckDuplicates(double *InkVals, std::string &error); bool Linearize(double *yVal, double*LinearInkVal, int FirstInkInd, int LasInkInd, std::string &error); - bool Interp1D(double* xx, double *yy, double InValue, double &OutValue, std::string &error); + bool Interp1D(double* xx, double *yy, double InValue, int np, double &OutValue, std::string &error); protected: struct VectorPair diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp index 47bb17311..96d5108f2 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp @@ -3273,9 +3273,10 @@ int Tango::ColorLib::ColorConverter::GetGamutRegion(VectorXd Volume, double *Ga { double TotalVolume = 0.0; int GamutRegion = 0; + int nGR = m_colortable->GetnGamutRegions(); for (int i = 0; i < m_nInks; ++i) TotalVolume += Volume(i); - for (int i=0; i< m_colortable->GetnGamutRegions(); ++i) + for (int i=0; i< nGR -1; ++i) { if (TotalVolume > GamutLimits[i]) GamutRegion++; @@ -3432,7 +3433,7 @@ void Tango::ColorLib::ColorConverter::LimitNLInks2Volume(VectorXd NLInks, int &G //LimitLowVolume(Volume, GamutRegion, Volume); GetClosestInk(Volume, GamutRegion, Volume); //NLcmtoPercentage(Volume, Volume); - + ConfineVolumes(Volume); if (InkOutL != NULL) { delete[]InkOutL; @@ -3440,6 +3441,42 @@ void Tango::ColorLib::ColorConverter::LimitNLInks2Volume(VectorXd NLInks, int &G } } +void Tango::ColorLib::ColorConverter::ConfineVolumes(VectorXd &Volume) +{ + double TotalVolume = 0; + for (int i = 0; i < m_nInks; ++i) + TotalVolume += Volume(i)*m_maxNlPerCM(i) / 100.0; + int nGR = m_colortable->GetnGamutRegions(); + double diff = (TotalVolume - m_ProcessRangesMaxP[nGR - 1]); + + if (diff>1.e-03) + { + //find values above Min Volume threshold + int *indInks = new int[m_nInks]; + int ind = 0; + for (int i = 0; i < m_nInks; ++i) + { + indInks[i] = -1; + if (Volume(i) > LowVolumeThreshold) + { + ind++; + indInks[i] = i; + } + } + double exceed_Vol_per_ink = (diff / ind); + for (int i = 0; i <m_nInks; ++i) + { + if(indInks[i]>=0) + Volume(indInks[i]) =Volume(indInks[i])- 100*(exceed_Vol_per_ink)/m_maxNlPerCM(indInks[i]); + } + if(indInks != NULL) + { + delete[] indInks; + indInks = NULL; + } + } +} + void Tango::ColorLib::ColorConverter::LimitNLInks2VolumeThr(VectorXd NLInks, int &GamutRegion, VectorXd &Volume) { // VectorXd NLInkOut(m_nInks); diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h index 2aae30b64..3c75124e5 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h @@ -166,6 +166,7 @@ namespace Tango void LimitNLInks2VolumeThr(VectorXd NLInks, int &GamutRegion, VectorXd &Volume); void GetClosestInk(VectorXd Volume, int &GamutRegion, VectorXd &BestVolume); bool CheckMonotonicity(CalibrationData *calibdata); + void ConfineVolumes(VectorXd &Volume); }; } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs index 4c88d65be..e2be72127 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs @@ -433,40 +433,47 @@ namespace Tango.FSE.Firmware.ViewModels private async void UploadFiles(List<String> files) { - String currentPathBefore = CurrentPath; - - foreach (var file in files) - { - if (!File.Exists(file)) - { - await NotificationProvider.ShowError($"File '{file}' cannot be uploaded."); - return; - } - } - - foreach (var file in files) + try { - String itemName = Path.GetFileName(file); + String currentPathBefore = CurrentPath; - if ((CurrentItem as IFileSystemContainer).Items.ToList().Exists(x => x.Name.ToLower() == itemName.ToLower())) + foreach (var file in files) { - if (!await NotificationProvider.ShowWarningQuestion($"'{itemName}' already exists on '{CurrentItem.Name}'. Do you want to overwrite?")) + if (!File.Exists(file)) { - continue; + await NotificationProvider.ShowError($"File '{file}' cannot be uploaded."); + return; } } - var handler = await FirmwareStorageProvider.Upload(file, Path.Combine(CurrentItem.Path, Path.GetFileName(file))); - - handler.StatusChanged += (x, status) => + foreach (var file in files) { - if (status == FileSystemHandlerStatus.Completed && currentPathBefore == CurrentPath) + String itemName = Path.GetFileName(file); + + if ((CurrentItem as IFileSystemContainer).Items.ToList().Exists(x => x.Name.ToLower() == itemName.ToLower())) { - NavigateToCurrentPath(); + if (!await NotificationProvider.ShowWarningQuestion($"'{itemName}' already exists on '{CurrentItem.Name}'. Do you want to overwrite?")) + { + continue; + } } - }; - FileSystemHandlers.Insert(0, handler); + var handler = await FirmwareStorageProvider.Upload(file, Path.Combine(CurrentItem.Path, Path.GetFileName(file))); + + handler.StatusChanged += (x, status) => + { + if (status == FileSystemHandlerStatus.Completed && currentPathBefore == CurrentPath) + { + NavigateToCurrentPath(); + } + }; + + FileSystemHandlers.Insert(0, handler); + } + } + catch (Exception ex) + { + await NotificationProvider.ShowError($"Error uploading to file system.\n{ex.FlattenMessage()}"); } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SettingsViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SettingsViewVM.cs index ed2cbd714..a8300b9b7 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SettingsViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SettingsViewVM.cs @@ -81,11 +81,19 @@ namespace Tango.FSE.MachineConfiguration.ViewModels private async void SaveConfiguration() { - using (NotificationProvider.PushTaskItem("Saving machine configuration...")) + try { - EditingComposition.Machine.SiteGuid = SelectedSite.Guid; - EditingComposition = await Services.MachineConfigurationService.SaveMachineEditingComposition(EditingComposition); - await NotificationProvider.ShowSuccess("Machine configuration saved successfully."); + using (NotificationProvider.PushTaskItem("Saving machine configuration...")) + { + EditingComposition.Machine.SiteGuid = SelectedSite.Guid; + EditingComposition = await Services.MachineConfigurationService.SaveMachineEditingComposition(EditingComposition); + await NotificationProvider.ShowSuccess("Machine configuration saved successfully."); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error saving the machine configuration."); + await NotificationProvider.ShowError($"Error saving the machine configuration.\n{ex.FlattenMessage()}"); } } @@ -105,24 +113,33 @@ namespace Tango.FSE.MachineConfiguration.ViewModels if (!await NotificationProvider.ShowWarningQuestion("Resetting the machine counters will delete the entire job runs history. Are you sure?", "RESET COUNTERS", "CANCEL")) return; - using (var task = NotificationProvider.PushTaskItem("Resetting machine counters...")) + try { - task.UpdateProgress("Resetting local machine counters..."); - - var result = await RemoteSqlProvider.ExecuteSqlCommandAsync(new RemoteSqlCommand() + using (var task = NotificationProvider.PushTaskItem("Resetting machine counters...")) { - Mode = RemoteSqlCommandMode.Local, - Timeout = 30, - SQL = "DELETE FROM JOB_RUNS" - }); + task.UpdateProgress("Resetting local machine counters..."); - int localJobRuns = result.LocalAffectedRecords; + var result = await RemoteSqlProvider.ExecuteSqlCommandAsync(new RemoteSqlCommand() + { + Mode = RemoteSqlCommandMode.Local, + Timeout = 30, + SQL = "DELETE FROM JOB_RUNS" + }); - task.UpdateProgress("Resetting global machine counters..."); + int localJobRuns = result.LocalAffectedRecords; - int remoteJobRuns = await Services.MachineConfigurationService.ResetCounters(EditingComposition.Machine.Guid); + task.UpdateProgress("Resetting global machine counters..."); - await NotificationProvider.ShowSuccess("Machine counters deleted successfully."); + int remoteJobRuns = await Services.MachineConfigurationService.ResetCounters(EditingComposition.Machine.Guid); + EditingComposition.ResetCounters(); + + await NotificationProvider.ShowSuccess("Machine counters deleted successfully."); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error resetting machine counters."); + await NotificationProvider.ShowError($"Error resetting the machine counters.\n{ex.FlattenMessage()}"); } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs index b34c8c527..2ab3e5c62 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs @@ -326,31 +326,38 @@ namespace Tango.FSE.PPCConsole.ViewModels private async void OnItemsDroppedIn(List<FileSystemItem> items) { - String currentPathBefore = CurrentPath; - - foreach (var item in items.Where(x => x.Type != FileSystemItemType.Drive)) + try { - Debug.WriteLine($"Dropped in: {item.Name} => {CurrentItem.Path}"); + String currentPathBefore = CurrentPath; - if ((CurrentItem as IFileSystemContainer).Items.ToList().Exists(x => x.Name.ToLower() == item.Name.ToLower())) + foreach (var item in items.Where(x => x.Type != FileSystemItemType.Drive)) { - if (!await NotificationProvider.ShowWarningQuestion($"'{item.Name}' already exists on '{CurrentItem.Name}'. Do you want to overwrite?")) + Debug.WriteLine($"Dropped in: {item.Name} => {CurrentItem.Path}"); + + if ((CurrentItem as IFileSystemContainer).Items.ToList().Exists(x => x.Name.ToLower() == item.Name.ToLower())) { - continue; + if (!await NotificationProvider.ShowWarningQuestion($"'{item.Name}' already exists on '{CurrentItem.Name}'. Do you want to overwrite?")) + { + continue; + } } - } - var handler = await FileSystemProvider.Upload(item.Path, CurrentItem); + var handler = await FileSystemProvider.Upload(item.Path, CurrentItem); - handler.StatusChanged += (x, status) => - { - if (status == FileSystemHandlerStatus.Completed && currentPathBefore == CurrentPath) + handler.StatusChanged += (x, status) => { - NavigateToCurrentPath(); - } - }; + if (status == FileSystemHandlerStatus.Completed && currentPathBefore == CurrentPath) + { + NavigateToCurrentPath(); + } + }; - FileSystemHandlers.Insert(0, handler); + FileSystemHandlers.Insert(0, handler); + } + } + catch (Exception ex) + { + await NotificationProvider.ShowError($"Error uploading to file system.\n{ex.FlattenMessage()}"); } } @@ -552,40 +559,47 @@ namespace Tango.FSE.PPCConsole.ViewModels var result = await StorageProvider.SelectFilesAndFolders("Select files and folders to upload"); if (result) { - String currentPathBefore = CurrentPath; - - foreach (var item in result.SelectedItems) - { - if (!File.Exists(item) && !Directory.Exists(item)) - { - await NotificationProvider.ShowError($"File or folder '{item}' cannot be uploaded."); - return; - } - } - - foreach (var item in result.SelectedItems) + try { - String itemName = Path.GetFileName(item); + String currentPathBefore = CurrentPath; - if ((CurrentItem as IFileSystemContainer).Items.ToList().Exists(x => x.Name.ToLower() == itemName.ToLower())) + foreach (var item in result.SelectedItems) { - if (!await NotificationProvider.ShowWarningQuestion($"'{itemName}' already exists on '{CurrentItem.Name}'. Do you want to overwrite?")) + if (!File.Exists(item) && !Directory.Exists(item)) { - continue; + await NotificationProvider.ShowError($"File or folder '{item}' cannot be uploaded."); + return; } } - var handler = await FileSystemProvider.Upload(item, CurrentItem); - - handler.StatusChanged += (x, status) => + foreach (var item in result.SelectedItems) { - if (status == FileSystemHandlerStatus.Completed && currentPathBefore == CurrentPath) + String itemName = Path.GetFileName(item); + + if ((CurrentItem as IFileSystemContainer).Items.ToList().Exists(x => x.Name.ToLower() == itemName.ToLower())) { - NavigateToCurrentPath(); + if (!await NotificationProvider.ShowWarningQuestion($"'{itemName}' already exists on '{CurrentItem.Name}'. Do you want to overwrite?")) + { + continue; + } } - }; - FileSystemHandlers.Insert(0, handler); + var handler = await FileSystemProvider.Upload(item, CurrentItem); + + handler.StatusChanged += (x, status) => + { + if (status == FileSystemHandlerStatus.Completed && currentPathBefore == CurrentPath) + { + NavigateToCurrentPath(); + } + }; + + FileSystemHandlers.Insert(0, handler); + } + } + catch (Exception ex) + { + await NotificationProvider.ShowError($"Error uploading to file system.\n{ex.FlattenMessage()}"); } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm Binary files differindex 35c461b05..e49620e6e 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm diff --git a/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.eddx b/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.eddx Binary files differindex dcabc3bf9..3375ea636 100644 --- a/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.eddx +++ b/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.eddx diff --git a/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.pdf b/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.pdf Binary files differindex f5bf232bd..68ba1e296 100644 --- a/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.pdf +++ b/Software/Visual_Studio/FSE/Roles & Permissions/Roles & Permissions.pdf diff --git a/Software/Visual_Studio/FSE/Roles & Permissions/Twine Technician.csv b/Software/Visual_Studio/FSE/Roles & Permissions/Twine Technician.csv index 2b1ce91aa..b3777ed89 100644 --- a/Software/Visual_Studio/FSE/Roles & Permissions/Twine Technician.csv +++ b/Software/Visual_Studio/FSE/Roles & Permissions/Twine Technician.csv @@ -16,3 +16,4 @@ Modify Machine Hardware DataStore Read DataStore Write Reset Machine Counters +Emulate Machine Events diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachineConfigurationService.cs b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachineConfigurationService.cs index 5b7991f44..6dec3a40d 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachineConfigurationService.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachineConfigurationService.cs @@ -9,12 +9,13 @@ using System.Data.Entity; using Tango.BL.Builders; using Tango.BL.DTO; using Tango.BL.Enumerations; +using Tango.Core; namespace Tango.FSE.BL.Services { public class MachineConfigurationService : FSEServiceBase { - public class MachineEditingComposition : IDisposable + public class MachineEditingComposition : ExtendedObject, IDisposable { internal MachineDTO PreviousMachineState { get; set; } @@ -31,6 +32,14 @@ namespace Tango.FSE.BL.Services HardwareVersions = new List<HardwareVersion>(); } + public void ResetCounters() + { + TotalDyeMeters = "0 meters"; + RaisePropertyChanged(nameof(TotalDyeMeters)); + TotalDyeTime = "00:00:00"; + RaisePropertyChanged(nameof(TotalDyeTime)); + } + public void Dispose() { Context?.Dispose(); @@ -100,7 +109,9 @@ namespace Tango.FSE.BL.Services { return Task.Factory.StartNew<int>(() => { - using (ObservablesContext db = new ObservablesContext()) + Authentication.ThrowIfNoPermission(Permissions.FSE_ResetMachineCounters); + + using (ObservablesContext db = ObservablesContext.CreateDefault()) { var sn = db.Machines.SingleOrDefault(x => x.Guid == machineGuid).SerialNumber; ActionLogManager.InsertLog(ActionLogType.MachineCountersReset, CurrentUser.Guid, sn, machineGuid, "Machine counters reset via FSE."); diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/Tango.FSE.BL.csproj b/Software/Visual_Studio/FSE/Tango.FSE.BL/Tango.FSE.BL.csproj index c361f1d3f..00025adb5 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.BL/Tango.FSE.BL.csproj +++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/Tango.FSE.BL.csproj @@ -76,14 +76,14 @@ <Reference Include="System.Net.Http" /> <Reference Include="System.Xml" /> <Reference Include="WindowsBase" /> - <Reference Include="Z.EntityFramework.Extensions, Version=4.0.58.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.EntityFramework.Extensions.4.0.58\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> + <Reference Include="Z.EntityFramework.Extensions, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.EntityFramework.Extensions.5.1.6\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> </Reference> - <Reference Include="Z.EntityFramework.Plus.EF6, Version=1.12.19.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.1.12.19\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> + <Reference Include="Z.EntityFramework.Plus.EF6, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.5.1.6\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> </Reference> - <Reference Include="Z.Expressions.Eval, Version=3.1.8.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.Expressions.Eval.3.1.8\lib\net45\Z.Expressions.Eval.dll</HintPath> + <Reference Include="Z.Expressions.Eval, Version=4.0.27.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.Expressions.Eval.4.0.27\lib\net45\Z.Expressions.Eval.dll</HintPath> </Reference> <Reference Include="ZSpitz.Util, Version=0.0.6.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\..\packages\ZSpitz.Util.0.0.6\lib\netstandard2.0\ZSpitz.Util.dll</HintPath> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/packages.config b/Software/Visual_Studio/FSE/Tango.FSE.BL/packages.config index 413d8b6de..0f62e5b36 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.BL/packages.config +++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/packages.config @@ -9,8 +9,8 @@ <package id="System.Linq.Dynamic" version="1.0.7" targetFramework="net461" /> <package id="WindowsAPICodePack-Core" version="1.1.1" targetFramework="net461" /> <package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net461" /> - <package id="Z.EntityFramework.Extensions" version="4.0.58" targetFramework="net461" /> - <package id="Z.EntityFramework.Plus.EF6" version="1.12.19" targetFramework="net461" /> - <package id="Z.Expressions.Eval" version="3.1.8" targetFramework="net461" /> + <package id="Z.EntityFramework.Extensions" version="5.1.6" targetFramework="net461" /> + <package id="Z.EntityFramework.Plus.EF6" version="5.1.6" targetFramework="net461" /> + <package id="Z.Expressions.Eval" version="4.0.27" targetFramework="net461" /> <package id="ZSpitz.Util" version="0.0.6" targetFramework="net461" /> </packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Converters.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Converters.xaml index dcc60e62c..54f8e5d63 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Converters.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Converters.xaml @@ -47,4 +47,6 @@ <converters:BooleanToYesNoConverter x:Key="BooleanToYesNoConverter" /> <converters:GenericMessageProtocolToStringConverter x:Key="GenericMessageProtocolToStringConverter" /> <localConverters:LiquidTypeToShortNameConverter x:Key="LiquidTypeToShortNameConverter" /> + <converters:IsEqualConverter x:Key="IsEqualConverter" /> + <converters:IsNotConverter x:Key="IsNotConverter" /> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/App.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/App.xaml.cs index 0f35e985d..fec442831 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/App.xaml.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/App.xaml.cs @@ -263,19 +263,26 @@ namespace Tango.FSE.UI if (notificationProvider != null) { - notificationProvider.PushSnackbarItem(MessageType.Error, "Application Error", true, "Unexpected error has occurred\nTap to report this issue.", null, null, () => + if (e.Exception.GetType() == typeof(AuthorizationException)) { - if (bugReporter != null) + notificationProvider.PushSnackbarItem(MessageType.Error, "Authorization Error", true, "You are not authorized to perform the specified action.", TimeSpan.FromSeconds(8)); + } + else + { + notificationProvider.PushSnackbarItem(MessageType.Error, "Application Error", true, "Unexpected error has occurred\nTap to report this issue.", null, null, () => { - bugReporter.ShowBugReportDialog(new Bug() + if (bugReporter != null) { - Title = $"Unexpected Application Error", - Description = e.Exception.Message, - Type = BugType.FSE, - Exception = e.Exception - }); - } - }); + bugReporter.ShowBugReportDialog(new Bug() + { + Title = $"Unexpected Application Error", + Description = e.Exception.Message, + Type = BugType.FSE, + Exception = e.Exception + }); + } + }); + } } } catch (Exception ex) diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs index 309839831..e1399560e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs @@ -70,10 +70,15 @@ namespace Tango.FSE.UI.Authentication } } + private EnvironmentConfiguration _currentEnvironment; /// <summary> /// Gets the current environment configuration. /// </summary> - public EnvironmentConfiguration CurrentEnvironment { get; private set; } + public EnvironmentConfiguration CurrentEnvironment + { + get { return _currentEnvironment; } + private set { _currentEnvironment = value; RaisePropertyChangedAuto(); } + } /// <summary> /// Initializes a new instance of the <see cref="DefaultAuthenticationProvider"/> class. diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/FileAssociation/DefaultFileAssociationProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/FileAssociation/DefaultFileAssociationProvider.cs index 89364cbbd..b1f750f4d 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/FileAssociation/DefaultFileAssociationProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/FileAssociation/DefaultFileAssociationProvider.cs @@ -45,7 +45,7 @@ namespace Tango.FSE.UI.FileAssociation public async void OnApplicationReady(IFSEApplicationManager applicationManager) { - if (!_initialized) return; + if (_initialized) return; _initialized = true; diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs index 111c34d37..639f3dbfb 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango FSE")] -[assembly: AssemblyVersion("1.1.2.0")] +[assembly: AssemblyVersion("1.1.3.0")] diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml index 1857168ba..35e4ffc6a 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml @@ -110,6 +110,21 @@ </Style> </material:PackIcon.Style> </material:PackIcon> + + <DockPanel Margin="10 6"> + <DockPanel.Style> + <Style TargetType="DockPanel"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding AuthenticationProvider.CurrentEnvironment.Name,Converter={StaticResource IsNotConverter},ConverterParameter='PROD'}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </DockPanel.Style> + <Rectangle Stroke="{StaticResource FSE_BorderBrush}" /> + <TextBlock Margin="10 0 0 0" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding AuthenticationProvider.CurrentEnvironment.Description}" FontSize="{StaticResource FSE_SmallFontSize}" VerticalAlignment="Center"></TextBlock> + </DockPanel> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 0 5 0"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs index 92dd8273d..cacda1e8d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs @@ -125,6 +125,12 @@ namespace Tango.MachineStudio.Sites.ViewModels using (_notification.PushTaskItem("Saving site details...")) { + //Check if site organization has changed and there are no machines that belongs to this site but different organization. + if (_db.Machines.Any(x => x.SiteGuid == Site.Guid && x.OrganizationGuid != Site.OrganizationGuid)) + { + throw new InvalidOperationException($"One or more machines belongs to this site but not to '{Site.Organization.Name}' organization."); + } + //Remove site rmls. Site.SitesRmls.ToList().Where(x => !Rmls.SynchedSource.ToList().Exists(y => y.Guid == x.RmlGuid)).ToList().ForEach(x => _db.SitesRmls.Remove(x)); Site.SitesCatalogs.ToList().Where(x => !Catalogs.SynchedSource.ToList().Exists(y => y.Guid == x.ColorCatalogGuid)).ToList().ForEach(x => _db.SitesCatalogs.Remove(x)); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj index 7895a9355..cd4eb4dd3 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj @@ -343,22 +343,6 @@ <DependentUpon>Settings.settings</DependentUpon> <DesignTimeSharedInput>True</DesignTimeSharedInput> </Compile> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v1.dll"> - <Link>Tango.ColorLib_v1.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v2.dll"> - <Link>Tango.ColorLib_v2.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v3.dll"> - <Link>Tango.ColorLib_v3.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v4.dll"> - <Link>Tango.ColorLib_v4.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> <Content Include="..\..\tcc\benchmarks\benchmarks_rgb_lab.csv"> <Link>TCC\benchmarks_rgb_lab.csv</Link> <CopyToOutputDirectory>Always</CopyToOutputDirectory> @@ -542,6 +526,37 @@ <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project> <Name>Tango.MachineStudio.Common</Name> </ProjectReference> + + <!--ColorLib--> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v4\Tango.ColorLib_v4.vcxproj"> + <Project>{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}</Project> + <Name>Tango.ColorLib_v4</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v3\Tango.ColorLib_v3.vcxproj"> + <Project>{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}</Project> + <Name>Tango.ColorLib_v3</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v2\Tango.ColorLib_v2.vcxproj"> + <Project>{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}</Project> + <Name>Tango.ColorLib_v2</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v1\Tango.ColorLib_v1.vcxproj"> + <Project>{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}</Project> + <Name>Tango.ColorLib_v1</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <!--ColorLib--> </ItemGroup> <ItemGroup> <Resource Include="Images\design.png" /> @@ -681,7 +696,7 @@ if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)lib\"</PostBuildEvent> </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_UpdateFileVersion="True" BuildVersion_DetectChanges="True" BuildVersion_UseGlobalSettings="False" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingView.xaml index 5fa737221..98be45608 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingView.xaml @@ -6,28 +6,45 @@ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:local="clr-namespace:Tango.PPC.Maintenance.Dialogs" mc:Ignorable="d" - Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="555" d:DesignWidth="560" Width="600" Height="800" d:DataContext="{d:DesignInstance Type=local:CleanerDispensingViewVM, IsDesignTimeCreatable=False}"> + Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="555" d:DesignWidth="560" Width="600" Height="950" d:DataContext="{d:DesignInstance Type=local:CleanerDispensingViewVM, IsDesignTimeCreatable=False}"> <Grid> <StackPanel Margin="0 50 0 0" HorizontalAlignment="Center"> <Image Source="../Images/head_cleaning.png" RenderOptions.BitmapScalingMode="Fant" Stretch="Uniform" Height="120"></Image> <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" Margin="0 30 0 0">Dispense Cleaning Liquid</TextBlock> + + <DockPanel Margin="20 40" HorizontalAlignment="Center"> + <touch:TouchIcon Icon="Alert" Foreground="{StaticResource TangoErrorBrush}" /> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}">Please put on safety glasses</TextBlock> + </DockPanel> + <Label Margin="20 10" HorizontalAlignment="Center"> <Label.Style> <Style TargetType="Label"> <Setter Property="Content"> <Setter.Value> - <TextBlock> - <Run>Press 'start' to initiate the cleaner liquid dispensing</Run> + <TextBlock LineHeight="30" TextWrapping="Wrap"> + <Run>1. Pull the thread aside and clean with Q tip when the liquid is dispensed.</Run> + <LineBreak/> + <Run>2. Dispense again if the liquid isn't enough for cleaning.</Run> + <LineBreak/> + <Run>3. When cleaning is completed, return the thread back to the V-Groove and press the 'Close Dyeing Head Lid' button to close the head lid</Run> </TextBlock> </Setter.Value> </Setter> <Style.Triggers> - <DataTrigger Binding="{Binding IsStarted}" Value="True"> - <Setter Property="Content" Value="Cleaner dispensing in progress"></Setter> - </DataTrigger> - <DataTrigger Binding="{Binding IsCompleted}" Value="True"> - <Setter Property="Content" Value="Cleaner dispensing completed"></Setter> + <DataTrigger Binding="{Binding MachineProvider.Machine.MachineHeadType}" Value="Arc"> + <Setter Property="Content"> + <Setter.Value> + <TextBlock LineHeight="30" TextWrapping="Wrap"> + <Run>1. Open the dyeing head lid, pull the thread aside and clean with Q tip when the liquid is dispensed.</Run> + <LineBreak/> + <Run>2. Dispense again if the liquid isn't enough for cleaning.</Run> + <LineBreak/> + <Run>3. When cleaning is completed, return the thread back to the V-Groove and install the head lid back.</Run> + </TextBlock> + </Setter.Value> + </Setter> </DataTrigger> </Style.Triggers> </Style> @@ -40,7 +57,7 @@ <StackPanel Margin="40 150 40 40"> <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Status}"></TextBlock> - <touch:TouchProgressBar Margin="0 5 0 0" VerticalAlignment="Bottom" Width="500" Height="10" Minimum="0" Maximum="100" Value="0" IsIndeterminate="{Binding IsStarted}"> + <touch:TouchProgressBar Margin="0 5 0 0" VerticalAlignment="Bottom" Height="10" Minimum="0" Maximum="100" Value="0" IsIndeterminate="{Binding IsStarted}"> </touch:TouchProgressBar> </StackPanel> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingViewVM.cs index b84cd83de..e37be417f 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Dialogs/CleanerDispensingViewVM.cs @@ -23,7 +23,7 @@ namespace Tango.PPC.Maintenance.Dialogs private const int JOGGING_SPEED = 400; [TangoInject] - private IMachineProvider MachineProvider { get; set; } + public IMachineProvider MachineProvider { get; set; } [TangoInject] private INotificationProvider NotificationProvider { get; set; } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml index 286485d47..d00b4abb2 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml @@ -10,6 +10,7 @@ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:localConverters="clr-namespace:Tango.PPC.Maintenance.Converters" xmlns:localControls="clr-namespace:Tango.PPC.Maintenance.Controls" + xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" xmlns:local="clr-namespace:Tango.PPC.Maintenance.Views" mc:Ignorable="d" d:DesignHeight="1800" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MaintenanceViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MaintenanceViewVM}"> @@ -247,7 +248,7 @@ <localControls:ButtonState Value="Opened" Content="CLOSE RIGHT LEADING WHEELS" /> </localControls:StateTouchButton> - <localControls:StateTouchButton Command="{Binding OpenCloseDyeingHeadCommand.Command}" SelectedState="{Binding OpenCloseDyeingHeadCommand.State}" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}"> + <localControls:StateTouchButton Command="{Binding OpenCloseDyeingHeadCommand.Command}" SelectedState="{Binding OpenCloseDyeingHeadCommand.State}" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Visibility="{Binding MachineProvider.Machine.MachineHeadType,Converter={StaticResource IsToStringEqualToVisibilityConverter},ConverterParameter='Flat'}"> <localControls:ButtonState Value="Closed" Content="OPEN DYEING HEAD LID" /> <localControls:ButtonState Value="Opened" Content="CLOSE DYEING HEAD LID" /> </localControls:StateTouchButton> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs index fd91bfd50..a9d4e7c3a 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs @@ -46,6 +46,11 @@ namespace Tango.PPC.Common.Application event EventHandler SystemRestartRequired; /// <summary> + /// Occurs when the updater utility has failed to perform the last update. + /// </summary> + event EventHandler UpdaterFailed; + + /// <summary> /// Occurs when the application has encountered an error when initializing. /// </summary> event EventHandler<Exception> ApplicationInitializationError; @@ -66,6 +71,11 @@ namespace Tango.PPC.Common.Application bool IsAfterUpdate { get; } /// <summary> + /// Gets a value indicating whether the updater utility has failed to perform the last update. + /// </summary> + bool IsUpdateFailed { get; } + + /// <summary> /// Shutdown the application. /// </summary> void ShutDown(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs index 77646da40..7c835165f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs @@ -95,5 +95,11 @@ namespace Tango.PPC.Common.MachineUpdate /// </summary> /// <returns></returns> Task<PackageRunnerResult> RunPostUpdatePackages(); + + /// <summary> + /// Restores the last database backup. + /// </summary> + /// <returns></returns> + Task RestoreLastDatabaseBackup(); } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs index 85fe6b0ad..c115f4f5b 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -129,6 +129,11 @@ namespace Tango.PPC.Common.MachineUpdate private void _app_manager_ApplicationReady(object sender, EventArgs e) { _checkForUpdateTimer.Start(); + + if (!_app_manager.IsUpdateFailed) + { + ClearLastDatabaseBackup(); + } } private void _packageRunner_PackageProgress(object sender, PackageProgressEventArgs e) @@ -327,14 +332,14 @@ namespace Tango.PPC.Common.MachineUpdate } } - try - { - Directory.Delete(backupsFolder, true); - } - catch (Exception ex) - { - LogManager.Log(ex, $"Error deleting backups folder '{backupsFolder}'."); - } + //try + //{ + // Directory.Delete(backupsFolder, true); + //} + //catch (Exception ex) + //{ + // LogManager.Log(ex, $"Error deleting backups folder '{backupsFolder}'."); + //} if (!result.RequiresBinariesUpdate) { @@ -604,6 +609,26 @@ namespace Tango.PPC.Common.MachineUpdate return logsString; } + private void ClearLastDatabaseBackup() + { + Task.Factory.StartNew(() => + { + try + { + var lastBackupFile = SettingsManager.Default.GetOrCreate<PPCSettings>().LastDatabaseBackupFile; + + if (File.Exists(lastBackupFile)) + { + File.Delete(lastBackupFile); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error removing last database backup file."); + } + }); + } + #endregion #region Public Methods @@ -733,6 +758,27 @@ namespace Tango.PPC.Common.MachineUpdate //Copy new updater utility to app path. File.Copy(Path.Combine(_newPackageTempFolder, "Tango.PPC.Updater.exe"), Path.Combine(PathHelper.GetStartupPath(), "Tango.PPC.Updater.exe"), true); + LogManager.Log("Initializing database manager..."); + DbManager db = DbManager.FromDataSource(localDataSource); + + //Create Database Backup + UpdateProgress("Updating Database", "Creating database backup..."); + try + { + Directory.CreateDirectory(backupsFolder); + dbBackupFile = $"{backupsFolder}\\{Path.GetRandomFileName()}.bak"; + _settings.LastDatabaseBackupFile = dbBackupFile; + _settings.Save(); + LogManager.Log($"Creating database backup to '{dbBackupFile}'..."); + await Task.Factory.StartNew(() => db.Backup(localDataSource.Catalog, dbBackupFile)); + performDatabaseRollback = true; + LogManager.Log("Database backup created successfully."); + } + catch (Exception ex) + { + throw LogManager.Log(ex, "Update manager error while trying to create a database backup."); + } + //Run pre-update packages. try { @@ -763,8 +809,6 @@ namespace Tango.PPC.Common.MachineUpdate LogManager.Log($"Synchronizing database '{update_response.DataSource.ToString()}' => '{localDataSource.ToString()}'..."); UpdateProgress("Updating Database", "Connecting to local database..."); - LogManager.Log("Initializing database manager..."); - DbManager db = DbManager.FromDataSource(localDataSource); LogManager.Log("Checking Tango database exists on the local machine..."); if (!db.Exists(localDataSource.Catalog)) @@ -772,24 +816,6 @@ namespace Tango.PPC.Common.MachineUpdate throw new InvalidProgramException("Database tango does not exists."); } - UpdateProgress("Updating Database", "Creating database backup..."); - - //Create Database Backup - try - { - Directory.CreateDirectory(backupsFolder); - dbBackupFile = $"{backupsFolder}\\{Path.GetRandomFileName()}.bak"; - LogManager.Log($"Creating database backup to '{dbBackupFile}'..."); - await Task.Factory.StartNew(() => db.Backup(localDataSource.Catalog, dbBackupFile)); - performDatabaseRollback = true; - LogManager.Log("Database backup created successfully."); - } - catch (Exception ex) - { - throw LogManager.Log(ex, "Update manager error while trying to create a database backup."); - } - - LogManager.Log("Disposing database manager."); db.Dispose(); @@ -1621,6 +1647,40 @@ namespace Tango.PPC.Common.MachineUpdate } } + public Task RestoreLastDatabaseBackup() + { + return Task.Factory.StartNew(() => + { + LogManager.Log("Rolling back database changes..."); + UpdateProgress("Rollback", "Rolling back database changes..."); + + var localDataSource = SettingsManager.Default.GetOrCreate<CoreSettings>().DataSource; + var lastBackupFile = SettingsManager.Default.GetOrCreate<PPCSettings>().LastDatabaseBackupFile; + + using (DbManager db = DbManager.FromDataSource(localDataSource)) + { + try + { + db.Restore(localDataSource.Catalog, lastBackupFile); + LogManager.Log("Database restored successfully."); + } + catch (Exception ex) + { + LogManager.Log(ex, "Could not rollback the database after a failed updater."); + throw ex; + } + finally + { + try + { + File.Delete(lastBackupFile); + } + catch { } + } + } + }); + } + #endregion #region Protected Methods diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs index 29ad1399c..aacbe8901 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs @@ -282,6 +282,12 @@ namespace Tango.PPC.Common public bool BypassInternetConnectivityCheck { get; set; } /// <summary> + /// Gets or sets the last database backup file that was generated before application update. + /// If updater utility was successful, this file should be deleted. Otherwise should be restored. + /// </summary> + public String LastDatabaseBackupFile { get; set; } + + /// <summary> /// Gets the machine service address. /// </summary> /// <returns></returns> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml index 374f5b51b..09762d7ce 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml @@ -59,6 +59,8 @@ <converters:TimeSpanToSecondsConverter x:Key="TimeSpanToSecondsConverter" /> <converters:TimeSpanToDaysConverter x:Key="TimeSpanToDaysConverter" /> <converters:BooleanToYesNoConverter x:Key="BooleanToYesNoConverter" /> + <converters:IsEqualToVisibilityConverter x:Key="IsEqualToVisibilityConverter" /> + <converters:IsToStringEqualToVisibilityConverter x:Key="IsToStringEqualToVisibilityConverter" /> <Style TargetType="FrameworkElement"> <Setter Property="TextElement.FontFamily" Value="{StaticResource TangoFlexoFontFamily}"></Setter> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs index af3473a98..83790a56f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs @@ -64,6 +64,11 @@ namespace Tango.PPC.UI.PPCApplication public event EventHandler SystemRestartRequired; /// <summary> + /// Occurs when the updater utility has failed to perform the last update. + /// </summary> + public event EventHandler UpdaterFailed; + + /// <summary> /// Occurs when the application has started. /// </summary> public event EventHandler ApplicationStarted; @@ -140,6 +145,11 @@ namespace Tango.PPC.UI.PPCApplication /// </summary> public bool IsAfterUpdate { get; private set; } + /// <summary> + /// Gets a value indicating whether the updater utility has failed to perform the last update. + /// </summary> + public bool IsUpdateFailed { get; private set; } + private bool _isScreenLocked; /// <summary> /// Gets or sets a value indicating whether the screen is currently locked. @@ -264,6 +274,18 @@ namespace Tango.PPC.UI.PPCApplication } } + if (App.StartupArgs.Contains("-update_failed")) + { + LogManager.Log("Application started with '-update_failed' startup arguments. The updater utility has failed."); + + IsUpdateFailed = true; + + settings.ApplicationState = ApplicationStates.Ready; + settings.Save(); + UpdaterFailed?.Invoke(this, new EventArgs()); + return; + } + if (settings.ApplicationState == ApplicationStates.Ready) { LogManager.Log("Initializing ObservablesStaticCollections..."); @@ -616,7 +638,13 @@ namespace Tango.PPC.UI.PPCApplication } LogManager.Log($"Executing '{updaterPath}' with arguments '{arguments}'..."); - Process.Start(updaterPath, arguments); + + Process p = new Process(); + p.StartInfo.FileName = updaterPath; + p.StartInfo.Arguments = arguments; + p.StartInfo.LoadUserProfile = true; + p.StartInfo.UseShellExecute = true; + p.Start(); LogManager.Log("Terminating application..."); Environment.Exit(0); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs index 1dcfbf59a..0540cfa9b 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango PPC Application")] -[assembly: AssemblyVersion("1.2.7.0")] +[assembly: AssemblyVersion("1.2.9.0")] diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj index e738dbd43..081d79f3e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj @@ -426,18 +426,6 @@ <Resource Include="Images\GlobalStatus\shutdown_icon_Anim.gif" /> <Resource Include="Images\GlobalStatus\standby_Anim.gif" /> <Resource Include="Images\bug.png" /> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v1.dll"> - <Link>Tango.ColorLib_v1.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v2.dll"> - <Link>Tango.ColorLib_v2.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v3.dll"> - <Link>Tango.ColorLib_v3.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> <Resource Include="Images\cartridge_validation.png" /> <Resource Include="Images\machine-image.png" /> <Resource Include="Images\Menu\backup.png" /> @@ -456,10 +444,6 @@ <Resource Include="Images\firmware.png" /> <Resource Include="Images\power_off_2.gif" /> <Resource Include="Images\loading_anim.gif" /> - <Content Include="..\..\Build\ColorLib\Debug\Tango.ColorLib_v4.dll"> - <Link>Tango.ColorLib_v4.dll</Link> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> <Resource Include="Images\thread_loading_preview.png" /> <Resource Include="Images\ThreadLoading\FeedingUnits\1.JPG" /> <Resource Include="Images\ThreadLoading\FeedingUnits\2.JPG" /> @@ -620,6 +604,36 @@ <Project>{208c8bd8-72c6-4e3c-acaa-351091a2acc7}</Project> <Name>Tango.PPC.Shared</Name> </ProjectReference> + <!--ColorLib--> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v4\Tango.ColorLib_v4.vcxproj"> + <Project>{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}</Project> + <Name>Tango.ColorLib_v4</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v3\Tango.ColorLib_v3.vcxproj"> + <Project>{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}</Project> + <Name>Tango.ColorLib_v3</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v2\Tango.ColorLib_v2.vcxproj"> + <Project>{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}</Project> + <Name>Tango.ColorLib_v2</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <ProjectReference Include="..\..\ColorLib\Tango.ColorLib_v1\Tango.ColorLib_v1.vcxproj"> + <Project>{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}</Project> + <Name>Tango.ColorLib_v1</Name> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + <OutputItemType>Content</OutputItemType> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </ProjectReference> + <!--ColorLib--> </ItemGroup> <ItemGroup> <Resource Include="Images\liquid.png" /> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs index 613c70809..5fe153ee9 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs @@ -17,8 +17,11 @@ using Tango.Explorer; using Tango.Integration.ExternalBridge; using Tango.PMR.FirmwareUpgrade; using Tango.PPC.Common; +using Tango.PPC.Common.Application; using Tango.PPC.Common.ExternalBridge; using Tango.PPC.Common.MachineUpdate; +using Tango.PPC.Common.Navigation; +using Tango.PPC.Common.Notifications; using Tango.PPC.Common.Publish; using Tango.PPC.Common.Web; using Tango.PPC.Shared.RemoteUpgrade; @@ -121,7 +124,7 @@ namespace Tango.PPC.UI.ViewModels #region Constructors - public MachineUpdateViewVM(IMachineUpdateManager machineUpdateManager, IPPCExternalBridgeService externalBridge) + public MachineUpdateViewVM(IMachineUpdateManager machineUpdateManager, IPPCExternalBridgeService externalBridge, IPPCApplicationManager applicationManager, INavigationManager navigationManager, INotificationProvider notificationProvider) { MachineUpdateManager = machineUpdateManager; externalBridge.RegisterRequestHandler(this); @@ -142,6 +145,11 @@ namespace Tango.PPC.UI.ViewModels }); machineUpdateManager.UpdateAvailable += MachineUpdateManager_UpdateAvailable; + + NavigationManager = navigationManager; + NotificationProvider = notificationProvider; + ApplicationManager = applicationManager; + ApplicationManager.UpdaterFailed += ApplicationManager_UpdaterFailed; } #endregion @@ -565,6 +573,30 @@ namespace Tango.PPC.UI.ViewModels #endregion + #region Updater Failed + + private void ApplicationManager_UpdaterFailed(object sender, EventArgs e) + { + InvokeUI(async () => + { + try + { + await NavigationManager.NavigateTo(NavigationView.MachineUpdateView); + await NavigateTo(MachineUpdateView.UpdateProgressView); + await MachineUpdateManager.RestoreLastDatabaseBackup(); + await Task.Delay(5000); + ApplicationManager.Restart(); + } + catch (Exception ex) + { + await NotificationProvider.ShowError($"Could not restore the application to its previous state.\n{ex.FlattenMessage()}"); + ApplicationManager.Restart(); + } + }); + } + + #endregion + #region External Bridge Handler [ExternalBridgeRequestHandlerMethod(typeof(StartRemoteApplicationUpgradeRequest), RequestHandlerLoggingMode.LogRequestName)] diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/IdentityUtils.cs b/Software/Visual_Studio/PPC/Tango.PPC.Updater/IdentityUtils.cs new file mode 100644 index 000000000..3a43be6f9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/IdentityUtils.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Updater +{ + public static class IdentityUtils + { + [DllImport("advapi32.dll", SetLastError = true)] + static extern bool GetTokenInformation(IntPtr tokenHandle, TokenInformationClass tokenInformationClass, IntPtr tokenInformation, int tokenInformationLength, out int returnLength); + + /// <summary> + /// Passed to <see cref="GetTokenInformation"/> to specify what + /// information about the token to return. + /// </summary> + enum TokenInformationClass + { + TokenUser = 1, + TokenGroups, + TokenPrivileges, + TokenOwner, + TokenPrimaryGroup, + TokenDefaultDacl, + TokenSource, + TokenType, + TokenImpersonationLevel, + TokenStatistics, + TokenRestrictedSids, + TokenSessionId, + TokenGroupsAndPrivileges, + TokenSessionReference, + TokenSandBoxInert, + TokenAuditPolicy, + TokenOrigin, + TokenElevationType, + TokenLinkedToken, + TokenElevation, + TokenHasRestrictions, + TokenAccessInformation, + TokenVirtualizationAllowed, + TokenVirtualizationEnabled, + TokenIntegrityLevel, + TokenUiAccess, + TokenMandatoryPolicy, + TokenLogonSid, + MaxTokenInfoClass + } + + /// <summary> + /// The elevation type for a user token. + /// </summary> + enum TokenElevationType + { + TokenElevationTypeDefault = 1, + TokenElevationTypeFull, + TokenElevationTypeLimited + } + + public static bool IsElevated() + { + var identity = WindowsIdentity.GetCurrent(); + if (identity == null) throw new InvalidOperationException("Couldn't get the current user identity"); + var principal = new WindowsPrincipal(identity); + + // Check if this user has the Administrator role. If they do, return immediately. + // If UAC is on, and the process is not elevated, then this will actually return false. + //if (principal.IsInRole(WindowsBuiltInRole.Administrator)) return true; + + //// If we're not running in Vista onwards, we don't have to worry about checking for UAC. + //if (Environment.OSVersion.Platform != PlatformID.Win32NT || Environment.OSVersion.Version.Major < 6) + //{ + // // Operating system does not support UAC; skipping elevation check. + // return false; + //} + + int tokenInfLength = Marshal.SizeOf(typeof(int)); + IntPtr tokenInformation = Marshal.AllocHGlobal(tokenInfLength); + + try + { + var token = identity.Token; + var result = GetTokenInformation(token, TokenInformationClass.TokenElevationType, tokenInformation, tokenInfLength, out tokenInfLength); + + if (!result) + { + var exception = Marshal.GetExceptionForHR(Marshal.GetHRForLastWin32Error()); + throw new InvalidOperationException("Couldn't get token information", exception); + } + + var elevationType = (TokenElevationType)Marshal.ReadInt32(tokenInformation); + + switch (elevationType) + { + case TokenElevationType.TokenElevationTypeDefault: + // TokenElevationTypeDefault - User is not using a split token, so they cannot elevate. + return false; + case TokenElevationType.TokenElevationTypeFull: + // TokenElevationTypeFull - User has a split token, and the process is running elevated. Assuming they're an administrator. + return true; + case TokenElevationType.TokenElevationTypeLimited: + // TokenElevationTypeLimited - User has a split token, but the process is not running elevated. Assuming they're an administrator. + return false; + default: + // Unknown token elevation type. + return false; + } + } + finally + { + if (tokenInformation != IntPtr.Zero) Marshal.FreeHGlobal(tokenInformation); + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Images/warning.png b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Images/warning.png Binary files differnew file mode 100644 index 000000000..26ccc3ecb --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Images/warning.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml index a5e63477f..351ca0838 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml @@ -6,12 +6,43 @@ xmlns:local="clr-namespace:Tango.PPC.Updater" mc:Ignorable="d" WindowStyle="None" ResizeMode="NoResize" Width="800" Height="1280"> + + <Window.Resources> + <SolidColorBrush x:Key="Foreground" Color="#1c63ea" /> + + <Style TargetType="Button" x:Key="Button"> + <Setter Property="Foreground" Value="{StaticResource Foreground}"></Setter> + <Setter Property="FontSize" Value="18"></Setter> + <Setter Property="FontWeight" Value="SemiBold"></Setter> + <Setter Property="Margin" Value="20 0"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="Button"> + <Border BorderBrush="{StaticResource Foreground}" BorderThickness="1" CornerRadius="25" Background="Transparent"> + <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding Content}" /> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </Window.Resources> <Grid> - <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> + <StackPanel x:Name="stackProgress" HorizontalAlignment="Center" VerticalAlignment="Center"> <Image Source="/Images/package.png" Width="200" /> <TextBlock x:Name="txtStatus" Margin="0 100 0 0" FontSize="16" Text="Updating Tango..." HorizontalAlignment="Center"></TextBlock> - <ProgressBar x:Name="prog" Margin="0 30 0 0" Width="500" Height="10" Maximum="100" Value="0" BorderThickness="0" Foreground="#1c63ea"></ProgressBar> + <ProgressBar x:Name="prog" Margin="0 30 0 0" Width="500" Height="10" Maximum="100" Value="0" BorderThickness="0" Foreground="{StaticResource Foreground}"></ProgressBar> + </StackPanel> + + <StackPanel x:Name="stackFailed" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0 460 0 0" Visibility="Collapsed"> + <Image Source="/Images/warning.png" Width="200" RenderOptions.BitmapScalingMode="Fant" /> + <TextBlock Margin="0 100 0 0" FontSize="16" Text="Update Failed" Foreground="#FF0072" FontWeight="SemiBold" HorizontalAlignment="Center"></TextBlock> + <TextBlock x:Name="txtError" Margin="0 20 0 0" FontSize="16" Foreground="Gray" Text="Unexpected error" HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" Height="100"></TextBlock> + + <UniformGrid Width="600" Height="55" Columns="2" Margin="0 200 0 0"> + <Button x:Name="btnAbort" Content="ABORT" Style="{StaticResource Button}"></Button> + <Button x:Name="btnRetry" Content="RETRY" Style="{StaticResource Button}"></Button> + </UniformGrid> </StackPanel> </Grid> </Window> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs index 6615ededf..8f521c85a 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; +using System.Security.Principal; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -26,6 +27,7 @@ namespace Tango.PPC.Updater private String _sourceFolder = AppDomain.CurrentDomain.BaseDirectory; private String _msProcessName = "Tango.PPC.UI"; private String _appPath; + private bool EMULATE_EXCEPTION = false; public MainWindow() { @@ -56,8 +58,16 @@ namespace Tango.PPC.Updater Width = touch_screen.Bounds.Width; Height = touch_screen.Bounds.Height; } + else + { + Top = 0; + Left = 0; + } ContentRendered += MainWindow_ContentRendered; + + btnRetry.Click += BtnRetry_Click; + btnAbort.Click += BtnAbort_Click; } private void MainWindow_ContentRendered(object sender, EventArgs e) @@ -69,7 +79,32 @@ namespace Tango.PPC.Updater { try { + ShowProgress(); + + if (!IdentityUtils.IsElevated()) + { + ShowError("The updater utility is not running under elevated permissions and cannot perform.\nThe process will restart."); + var exeName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; + ProcessStartInfo startInfo = new ProcessStartInfo(exeName); + startInfo.Arguments = String.Join(" ", App.StartupArgs); + startInfo.Verb = "runas"; + Process.Start(startInfo); + Environment.Exit(0); + return; + } + } + catch { } + + try + { Init(); + + if (EMULATE_EXCEPTION) + { + EMULATE_EXCEPTION = false; + throw new InvalidOperationException("This is an emulated error."); + } + EnsureTangoIsDown(); RemoveOldDLLFiles(); ReplaceFiles(); @@ -78,30 +113,31 @@ namespace Tango.PPC.Updater DoEvents(); Thread.Sleep(1000); StartTango(true); + Exit(); } catch (Exception ex) { - ShowError($"Update failed.\n{ex.Message}"); - StartTango(false); + ShowFailed(ex); } - finally + } + + private void Exit() + { + try { - try + foreach (var file in Directory.GetFiles(_sourceFolder, "*.*", SearchOption.AllDirectories)) { - foreach (var file in Directory.GetFiles(_sourceFolder, "*.*", SearchOption.AllDirectories)) + try { - try - { - File.Delete(file); - } - catch { } + File.Delete(file); } + catch { } } - catch { } + } + catch { } - Environment.Exit(0); - } + Environment.Exit(0); } private void Init() @@ -137,6 +173,10 @@ namespace Tango.PPC.Updater { p.StartInfo.Arguments = "-update_ok"; } + else + { + p.StartInfo.Arguments = "-update_failed"; + } p.Start(); } @@ -203,37 +243,49 @@ namespace Tango.PPC.Updater { Process appProcess = null; - int tries = 0; - - do + for (int i = 0; i < 20; i++) { - appProcess = Process.GetProcessesByName(_msProcessName).FirstOrDefault(); - Process p = new Process(); - p.StartInfo.CreateNoWindow = true; - p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; - p.StartInfo.FileName = "wmic"; - p.StartInfo.Arguments = String.Format("process where name='{0}' delete", _msProcessName); + try + { + appProcess = Process.GetProcessesByName(_msProcessName).FirstOrDefault(); + } + catch + { + Thread.Sleep(1000); + continue; + } if (appProcess != null) { - tries++; - appProcess.Kill(); + try + { + appProcess.Kill(); + } + catch { } try { + Process p = new Process(); + p.StartInfo.CreateNoWindow = true; + p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + p.StartInfo.FileName = "wmic"; + p.StartInfo.Arguments = String.Format("process where name='{0}' delete", _msProcessName); p.Start(); } catch { } - - Thread.Sleep(1000); } - - if (tries > 10) + else { - throw new IOException("The main Tango process seems to in a frozen state. Please restart your computer and try again."); + break; } - } while (appProcess != null); + Thread.Sleep(1000); + } + + if (appProcess != null) + { + throw new IOException("The main Tango process seems to in a frozen state. Please restart your computer and try again."); + } } /// <summary> @@ -248,5 +300,49 @@ namespace Tango.PPC.Updater { MessageBox.Show(error, "Tango Update", MessageBoxButton.OK, MessageBoxImage.Error); } + + private bool ShowErrorRetry(String error) + { + var result = MessageBox.Show(error + "\n" + "Press yes to retry.", "Tango Update", MessageBoxButton.YesNo, MessageBoxImage.Error); + return result == MessageBoxResult.Yes; + } + + private void ShowProgress() + { + stackProgress.Visibility = Visibility.Visible; + stackFailed.Visibility = Visibility.Collapsed; + } + + private void ShowFailed(Exception ex) + { + try + { + using (EventLog eventLog = new EventLog("Application")) + { + eventLog.Source = "PPC Updater"; + eventLog.WriteEntry($"PPC Updater Failed\n{ex.ToString()}", EventLogEntryType.Error, 101, 1); + } + } + catch { } + + stackProgress.Visibility = Visibility.Collapsed; + stackFailed.Visibility = Visibility.Visible; + txtError.Text = ex.Message; + } + + private void BtnAbort_Click(object sender, RoutedEventArgs e) + { + ShowProgress(); + txtStatus.Text = "Update failed. Restoring previous application state..."; + DoEvents(); + Thread.Sleep(1000); + StartTango(false); + Exit(); + } + + private void BtnRetry_Click(object sender, RoutedEventArgs e) + { + Update(); + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj index 3f232c4d2..8f8430102 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj @@ -67,6 +67,7 @@ <DependentUpon>App.xaml</DependentUpon> <SubType>Code</SubType> </Compile> + <Compile Include="IdentityUtils.cs" /> <Compile Include="MainWindow.xaml.cs"> <DependentUpon>MainWindow.xaml</DependentUpon> <SubType>Code</SubType> @@ -102,6 +103,9 @@ <ItemGroup> <Resource Include="Images\package.png" /> </ItemGroup> + <ItemGroup> + <Resource Include="Images\warning.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/App.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/App.config new file mode 100644 index 000000000..731f6de6c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/App.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Program.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Program.cs new file mode 100644 index 000000000..9fd588906 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Program.cs @@ -0,0 +1,66 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.IO.Pipes; +using System.Linq; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Threading.Tasks; +using Tango.StubsUtils.Shared; + +namespace Tango.StubsUtils.Client.CLI +{ + class Program + { + private const string PIPE_NAME = "Tango_Stubs_Server"; + + static void Main(string[] args) + { + StubPackageResponseDTO response = null; + + try + { + var _client = new NamedPipeClientStream(PIPE_NAME); + _client.Connect(5000); + + var writer = new StreamWriter(_client); + + var jsonRequest = String.Join(" ", args); + + writer.WriteLine(jsonRequest); + writer.Flush(); + + var reader = new StreamReader(_client); + String responseString = reader.ReadToEnd(); + response = new StubPackageResponseDTO(); + response.Status = responseString.StartsWith("Status: OK") ? StubPackageResponseStatus.OK : StubPackageResponseStatus.Error; + response.Message = responseString; + } + catch (Exception ex) + { + ExitError($"Error communicating with the stubs service. {ex.Message}"); + } + + if (response.Status == StubPackageResponseStatus.OK) + { + Console.ForegroundColor = ConsoleColor.Gray; + Console.WriteLine(response.Message); + Environment.Exit(0); + } + else + { + ExitError(response.Message); + } + } + + private static void ExitError(String error) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.Error.WriteLine($"{error}"); + Console.ForegroundColor = ConsoleColor.Gray; + Environment.Exit(-1); + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..9c1a90a8d --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.StubsUtils.Client.CLI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.StubsUtils.Client.CLI")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("2ed5d897-df22-491e-8410-d01383b3dad2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Tango.StubsUtils.Client.CLI.csproj b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Tango.StubsUtils.Client.CLI.csproj new file mode 100644 index 000000000..7bbf4b387 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/Tango.StubsUtils.Client.CLI.csproj @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{2ED5D897-DF22-491E-8410-D01383B3DAD2}</ProjectGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Tango.StubsUtils.Client.CLI</RootNamespace> + <AssemblyName>tangostub</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\StubsUtils\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\StubsUtils\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Tango.StubsUtils.Shared\Tango.StubsUtils.Shared.csproj"> + <Project>{dae96f06-72cd-411d-90a3-9456ae79f699}</Project> + <Name>Tango.StubsUtils.Shared</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/packages.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/packages.config new file mode 100644 index 000000000..7ee8c1052 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Client.CLI/packages.config @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> +</packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/App.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/App.config new file mode 100644 index 000000000..731f6de6c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/App.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Program.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Program.cs new file mode 100644 index 000000000..3083037f8 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Program.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Tango.StubsUtils.PerformanceTest.CLI +{ + class Program + { + private const int ROUNDS = 10000; + + static void Main(string[] args) + { + List<double> durations = new List<double>(); + + Process process = new Process(); + process.StartInfo.FileName = "tangostub_s.exe"; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.RedirectStandardInput = true; + process.StartInfo.UseShellExecute = false; + process.Start(); + process.PriorityClass = ProcessPriorityClass.RealTime; + + process.StandardOutput.ReadLine(); //Read the first welcome line... + + Stopwatch watch = new Stopwatch(); + + for (int i = 0; i < ROUNDS; i++) + { + watch.Restart(); + + process.StandardInput.WriteLine("calculate 10 15"); + StringBuilder builder = new StringBuilder(); + + char[] buffer = new char[1]; + + while (process.StandardOutput.Read(buffer, 0, 1) > 0) + { + char c = buffer[0]; + + if (c == '\r') + { + process.StandardOutput.Read(); + break; + } + else if (c == '>') + { + process.StandardOutput.Read(); + } + else + { + builder.Append(buffer[0]); + } + } + + String response = builder.ToString(); + + if (response.StartsWith("Status: Error")) + { + OnError(response); + return; + } + + durations.Add(watch.ElapsedMilliseconds); + + Console.SetCursorPosition(0, 0); + Console.Write($"Performance Test: {i + 1}/{ROUNDS}, Avg: {Math.Round(durations.Average(), 2)} ms "); + } + + Console.WriteLine(); + Console.WriteLine(); + Console.WriteLine("Completed."); + Console.ReadLine(); + } + + private static void OnError(String error) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine(error); + Console.ForegroundColor = ConsoleColor.Gray; + Console.ReadLine(); + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..ff6dc5c94 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.StubsUtils.PerformanceTest.CLI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.StubsUtils.PerformanceTest.CLI")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f423324c-7d0a-4512-beba-df3a931a09f6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Tango.StubsUtils.PerformanceTest.CLI.csproj b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Tango.StubsUtils.PerformanceTest.CLI.csproj new file mode 100644 index 000000000..f4575043f --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.PerformanceTest.CLI/Tango.StubsUtils.PerformanceTest.CLI.csproj @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{F423324C-7D0A-4512-BEBA-DF3A931A09F6}</ProjectGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Tango.StubsUtils.PerformanceTest.CLI</RootNamespace> + <AssemblyName>Tango.StubsUtils.PerformanceTest.CLI</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Tango.StubsUtils.Client.CLI\Tango.StubsUtils.Client.CLI.csproj"> + <Project>{2ed5d897-df22-491e-8410-d01383b3dad2}</Project> + <Name>Tango.StubsUtils.Client.CLI</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.StubsUtils.SessionClient.CLI\Tango.StubsUtils.SessionClient.CLI.csproj"> + <Project>{f1b727f5-adf5-4a81-a740-7e64e48b29d4}</Project> + <Name>Tango.StubsUtils.SessionClient.CLI</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.config new file mode 100644 index 000000000..6544d52a6 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.config @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.xaml b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.xaml new file mode 100644 index 000000000..4db18888a --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.xaml @@ -0,0 +1,92 @@ +<Application x:Class="Tango.StubsUtils.Service.UI.App" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:local="clr-namespace:Tango.StubsUtils.Service.UI" + StartupUri="MainWindow.xaml"> + <Application.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + + <!--LOADS IN App.xaml.cs--> + + <!--<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Colors.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Styles.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />--> + + <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! --> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> + <!-- Accent and AppTheme setting --> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Red.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/FlatButton.xaml" /> + + <!--LOADS IN App.xaml.cs--> + + <materialDesign:BundledTheme BaseTheme="Dark" PrimaryColor="LightBlue" SecondaryColor="Cyan" /> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /> + + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/materialdesigncolor.lightblue.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/materialdesigncolor.yellow.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.CheckBox.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.PopupBox.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.TextBlock.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Label.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Slider.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.ProgressBar.xaml"/> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ComboBox.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Menu.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Slider.xaml" /> + + <ResourceDictionary Source="/Resources/Converters.xaml" /> + <ResourceDictionary Source="/Resources/Colors.xaml" /> + <ResourceDictionary Source="/Resources/Fonts.xaml" /> + + <ResourceDictionary> + <!--OVERRIDE MAHAPPS--> + <SolidColorBrush x:Key="HighlightBrush" Color="{DynamicResource Primary700}"/> + <SolidColorBrush x:Key="AccentBaseColorBrush" Color="{DynamicResource Primary600}" /> + <SolidColorBrush x:Key="AccentColorBrush" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="AccentColorBrush2" Color="{DynamicResource Primary400}"/> + <SolidColorBrush x:Key="AccentColorBrush3" Color="{DynamicResource Primary300}"/> + <SolidColorBrush x:Key="AccentColorBrush4" Color="{DynamicResource Primary200}"/> + <SolidColorBrush x:Key="WindowTitleColorBrush" Color="{DynamicResource Primary700}"/> + <SolidColorBrush x:Key="AccentSelectedColorBrush" Color="{DynamicResource Primary500Foreground}"/> + <LinearGradientBrush x:Key="ProgressBrush" EndPoint="0.001,0.5" StartPoint="1.002,0.5"> + <GradientStop Color="{DynamicResource Primary700}" Offset="0"/> + <GradientStop Color="{DynamicResource Primary300}" Offset="1"/> + </LinearGradientBrush> + <SolidColorBrush x:Key="CheckmarkFill" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="RightArrowFill" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="IdealForegroundColorBrush" Color="{DynamicResource Primary500Foreground}"/> + <SolidColorBrush x:Key="IdealForegroundDisabledBrush" Color="{DynamicResource Primary500}" Opacity="0.4"/> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchBrush.Win10" Color="{DynamicResource Primary500}" /> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchMouseOverBrush.Win10" Color="{DynamicResource Primary400}" /> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorCheckedBrush.Win10" Color="{DynamicResource Primary500Foreground}" /> + </ResourceDictionary> + + </ResourceDictionary.MergedDictionaries> + </ResourceDictionary> + </Application.Resources> +</Application> diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.xaml.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.xaml.cs new file mode 100644 index 000000000..c6f57aad6 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/App.xaml.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using Tango.Settings; + +namespace Tango.StubsUtils.Service.UI +{ + /// <summary> + /// Interaction logic for App.xaml + /// </summary> + public partial class App : Application + { + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + + ServiceUISettings settings = SettingsManager.Default.GetOrCreate<ServiceUISettings>(); + settings.Save(); + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_connected.ico b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_connected.ico Binary files differnew file mode 100644 index 000000000..75aba4e9b --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_connected.ico diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_connected.png b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_connected.png Binary files differnew file mode 100644 index 000000000..47dd7d116 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_connected.png diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_disconnected.ico b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_disconnected.ico Binary files differnew file mode 100644 index 000000000..8b5af1ccb --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_disconnected.ico diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_disconnected.png b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_disconnected.png Binary files differnew file mode 100644 index 000000000..51876421f --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_disconnected.png diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_none.png b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_none.png Binary files differnew file mode 100644 index 000000000..95cf615c5 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Images/machine_icon_none.png diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/MainWindow.xaml b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/MainWindow.xaml new file mode 100644 index 000000000..f7113076c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/MainWindow.xaml @@ -0,0 +1,15 @@ +<mahapps:MetroWindow x:Class="Tango.StubsUtils.Service.UI.MainWindow" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:Tango.StubsUtils.Service.UI" + xmlns:tb="http://www.hardcodet.net/taskbar" + xmlns:views="clr-namespace:Tango.StubsUtils.Service.UI.Views" + mc:Ignorable="d" + Title="Tango - Stubs Service" Height="400" Width="700" EnableDWMDropShadow="True" WindowTitleBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" OverrideDefaultWindowCommandsBrush="{StaticResource FSE_PrimaryForegroundBrush}" TitleForeground="{StaticResource FSE_PrimaryForegroundBrush}" TitleCaps="False" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="{StaticResource FSE_PrimaryBackgroundBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}" DataContext="{Binding RelativeSource={RelativeSource Self}}" Visibility="Hidden"> + <Grid> + <views:MainView x:Name="MainView" /> + </Grid> +</mahapps:MetroWindow> diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/MainWindow.xaml.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/MainWindow.xaml.cs new file mode 100644 index 000000000..98a8bd721 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/MainWindow.xaml.cs @@ -0,0 +1,55 @@ +using MahApps.Metro.Controls; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.StubsUtils.Service.UI.ViewModels; + +namespace Tango.StubsUtils.Service.UI +{ + /// <summary> + /// Interaction logic for MainWindow.xaml + /// </summary> + public partial class MainWindow : MetroWindow + { + private MainViewVM _mainViewVM; + + public MainWindow() + { + InitializeComponent(); + Loaded += MainWindow_Loaded; + StateChanged += MainWindow_StateChanged; + Closing += MainWindow_Closing; + } + + private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + e.Cancel = true; + _mainViewVM.ExitApplication(); + } + + private void MainWindow_StateChanged(object sender, EventArgs e) + { + if (WindowState == WindowState.Minimized) + { + Visibility = Visibility.Hidden; + _mainViewVM.IsTrayIconVisible = true; + } + } + + private void MainWindow_Loaded(object sender, RoutedEventArgs e) + { + _mainViewVM = MainView.DataContext as MainViewVM; + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..4b32746ed --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.StubsUtils.Service.UI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.StubsUtils.Service.UI")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file +//inside a <PropertyGroup>. For example, if you are using US english +//in your source files, set the <UICulture> to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Resources.Designer.cs new file mode 100644 index 000000000..11234f139 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.StubsUtils.Service.UI.Properties +{ + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.StubsUtils.Service.UI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Resources.resx b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Resources.resx @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Settings.Designer.cs new file mode 100644 index 000000000..d058593f8 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.StubsUtils.Service.UI.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Settings.settings b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Properties/Settings.settings @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> + <Settings /> +</SettingsFile>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Colors.xaml b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Colors.xaml new file mode 100644 index 000000000..48e13f381 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Colors.xaml @@ -0,0 +1,140 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.StubsUtils.Service.UI.Resources"> + + <!--COLORS--> + <Color x:Key="FSE_PrimaryBackgroundDarkColor">#202020</Color> + <Color x:Key="FSE_PrimaryBackgroundMidColor">#262626</Color> + <Color x:Key="FSE_PrimaryBackgroundColor">#303030</Color> + <Color x:Key="FSE_PrimaryBackgroundLightColor">#404040</Color> + <Color x:Key="FSE_PrimaryBackgroundLighterColor">#505050</Color> + <Color x:Key="FSE_PrimaryForegroundColor">#EEEEEE</Color> + <Color x:Key="FSE_GrayColor">#A0A0A0</Color> + <Color x:Key="FSE_SemiTransparentColor">#76000000</Color> + <Color x:Key="FSE_BorderColor">#707070</Color> + <Color x:Key="FSE_PrimaryAccentColor">#009FE7</Color> + <Color x:Key="FSE_PrimaryAccentDarkColor">#009FE7</Color> + + <Color x:Key="FSE_CriticalColor">#FA2828</Color> + <Color x:Key="FSE_ErrorColor">#FF4C4C</Color> + <Color x:Key="FSE_WarningColor">#FF914C</Color> + <Color x:Key="FSE_SuccessColor">#6DFF72</Color> + <Color x:Key="FSE_MessageBoxTitleHeaderBackgroundColor">#404040</Color> + + <Color x:Key="FSE_UsbColor">#FF6F6F</Color> + <Color x:Key="FSE_WifiColor">#58C13B</Color> + <Color x:Key="FSE_SignalRColor">#6DDAFF</Color> + <Color x:Key="FSE_EmulatorColor">#F3FF6D</Color> + + <Color x:Key="FSE_RedColor">#FF6F6F</Color> + <Color x:Key="FSE_GreenColor">#8EFF6F</Color> + <Color x:Key="FSE_OrangeColor">#FF7C2B</Color> + <Color x:Key="FSE_YellowColor">#FFB84B</Color> + + <Color x:Key="FSE_RealTimeGraph_White">#18FFFFFF</Color> + <Color x:Key="FSE_RealTimeGraph_Red">#B6FF6F6F</Color> + <Color x:Key="FSE_RealTimeGraph_Yellow">#BBFFB84B</Color> + <Color x:Key="FSE_RealTimeGraph_Green">#B958C13B</Color> + <Color x:Key="FSE_RealTimeGraph_Orange">#BBFA9252</Color> + + <Color x:Key="FSE_RealTimeGraph_ForegroundColor">#7C98B3</Color> + <Color x:Key="FSE_RealTimeGraph_OuterBorderColor">#202020</Color> + <Color x:Key="FSE_RealTimeGraph_InnerBorderColor">#505050</Color> + <Color x:Key="FSE_RealTimeGraph_GridLinesColor">#303030</Color> + + <Color x:Key="FSE_Panel_BorderColor">#202020</Color> + <Color x:Key="FSE_Panel_BackgroundColor">#252525</Color> + + <!--BRUSHES--> + <SolidColorBrush x:Key="FSE_PrimaryBackgroundDarkBrush" Color="{StaticResource FSE_PrimaryBackgroundDarkColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryBackgroundMidBrush" Color="{StaticResource FSE_PrimaryBackgroundMidColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryBackgroundBrush" Color="{StaticResource FSE_PrimaryBackgroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryBackgroundLightBrush" Color="{StaticResource FSE_PrimaryBackgroundLightColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryBackgroundLighterBrush" Color="{StaticResource FSE_PrimaryBackgroundLighterColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryForegroundBrush" Color="{StaticResource FSE_PrimaryForegroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_SemiTransparentBrush" Color="{StaticResource FSE_SemiTransparentColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_BorderBrush" Color="{StaticResource FSE_BorderColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_GrayBrush" Color="{StaticResource FSE_GrayColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryAccentBrush" Color="{StaticResource FSE_PrimaryAccentColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_PrimaryAccentDarkBrush" Color="{StaticResource FSE_PrimaryAccentDarkColor}"></SolidColorBrush> + + <SolidColorBrush x:Key="FSE_CriticalBrush" Color="{StaticResource FSE_CriticalColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_ErrorBrush" Color="{StaticResource FSE_ErrorColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_WarningBrush" Color="{StaticResource FSE_WarningColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_SuccessBrush" Color="{StaticResource FSE_SuccessColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_InfoBrush" Color="{StaticResource FSE_PrimaryForegroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_MessageBoxTitleHeaderBackgroundBrush" Color="{StaticResource FSE_MessageBoxTitleHeaderBackgroundColor}"></SolidColorBrush> + + <SolidColorBrush x:Key="FSE_UsbBrush" Color="{StaticResource FSE_UsbColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_WifiBrush" Color="{StaticResource FSE_WifiColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_SignalRBrush" Color="{StaticResource FSE_SignalRColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_EmulatorBrush" Color="{StaticResource FSE_EmulatorColor}"></SolidColorBrush> + + <SolidColorBrush x:Key="FSE_RedBrush" Color="{StaticResource FSE_RedColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_GreenBrush" Color="{StaticResource FSE_GreenColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_OrangeBrush" Color="{StaticResource FSE_OrangeColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_YellowBrush" Color="{StaticResource FSE_YellowColor}"></SolidColorBrush> + + <SolidColorBrush x:Key="FSE_RealTimeGraph_ForegroundBrush" Color="{StaticResource FSE_RealTimeGraph_ForegroundColor}" /> + <SolidColorBrush x:Key="FSE_RealTimeGraph_OuterBorderBrush" Color="{StaticResource FSE_RealTimeGraph_OuterBorderColor}" /> + <SolidColorBrush x:Key="FSE_RealTimeGraph_InnerBorderBrush" Color="{StaticResource FSE_RealTimeGraph_InnerBorderColor}" /> + <SolidColorBrush x:Key="FSE_RealTimeGraph_GridLinesBrush" Color="{StaticResource FSE_RealTimeGraph_GridLinesColor}" /> + + <LinearGradientBrush x:Key="FSE_RealTimeGraph_BackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0" > + <GradientStop Color="#202020"/> + <GradientStop Color="#FF333333" Offset="1"/> + </LinearGradientBrush> + + <SolidColorBrush x:Key="FSE_RealTimeGraph_WhiteBrush" Color="{StaticResource FSE_RealTimeGraph_White}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_RealTimeGraph_RedBrush" Color="{StaticResource FSE_RealTimeGraph_Red}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_RealTimeGraph_YellowBrush" Color="{StaticResource FSE_RealTimeGraph_Yellow}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_RealTimeGraph_GreenBrush" Color="{StaticResource FSE_RealTimeGraph_Green}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_RealTimeGraph_OrangeBrush" Color="{StaticResource FSE_RealTimeGraph_Orange}"></SolidColorBrush> + + <SolidColorBrush x:Key="FSE_Panel_BorderBrush" Color="{StaticResource FSE_Panel_BorderColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_Panel_BackgroundBrush" Color="{StaticResource FSE_Panel_BackgroundColor}"></SolidColorBrush> + + <!--IMAGE BRUSHES--> + <ImageBrush x:Key="FSE_AbstractBrush" ImageSource="{StaticResource FSE_Abstract}" Stretch="UniformToFill"></ImageBrush> + + <!--BRUSHES OVERRIDES--> + <SolidColorBrush x:Key="MaterialDesignPaper" Color="{StaticResource FSE_PrimaryBackgroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="MaterialDesignBody" Color="{StaticResource FSE_PrimaryForegroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="PrimaryHueMidForegroundBrush" Color="{StaticResource FSE_PrimaryForegroundColor}"/> + <SolidColorBrush x:Key="PrimaryHueLightBrush" Color="{StaticResource FSE_PrimaryBackgroundLightColor}"/> + <SolidColorBrush x:Key="PrimaryHueLightForegroundBrush" Color="{StaticResource FSE_PrimaryForegroundColor}"/> + <SolidColorBrush x:Key="PrimaryHueMidBrush" Color="{StaticResource FSE_PrimaryAccentColor}"/> + + <!--MAHAPPS OVERRIED--> + <Color x:Key="HighlightColor">#009FE7</Color> + <Color x:Key="AccentColor3">#009FE7</Color> + <Color x:Key="AccentColor2">#009FE7</Color> + <Color x:Key="AccentColor1">#009FE7</Color> + <SolidColorBrush x:Key="HighlightBrush" Color="{DynamicResource Primary700}"/> + <SolidColorBrush x:Key="AccentBaseColorBrush" Color="{DynamicResource Primary600}" /> + <SolidColorBrush x:Key="AccentColorBrush" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="AccentColorBrush2" Color="{DynamicResource Primary400}"/> + <SolidColorBrush x:Key="AccentColorBrush3" Color="{DynamicResource Primary300}"/> + <SolidColorBrush x:Key="AccentColorBrush4" Color="{DynamicResource Primary200}"/> + <SolidColorBrush x:Key="WindowTitleColorBrush" Color="{DynamicResource Primary700}"/> + <SolidColorBrush x:Key="AccentSelectedColorBrush" Color="{DynamicResource Primary500Foreground}"/> + <LinearGradientBrush x:Key="ProgressBrush" EndPoint="0.001,0.5" StartPoint="1.002,0.5"> + <GradientStop Color="{DynamicResource Primary700}" Offset="0"/> + <GradientStop Color="{DynamicResource Primary300}" Offset="1"/> + </LinearGradientBrush> + <SolidColorBrush x:Key="CheckmarkFill" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="RightArrowFill" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="IdealForegroundColorBrush" Color="{DynamicResource Primary500Foreground}"/> + <SolidColorBrush x:Key="IdealForegroundDisabledBrush" Color="{DynamicResource Primary500}" Opacity="0.4"/> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchBrush.Win10" Color="{DynamicResource Primary500}" /> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchMouseOverBrush.Win10" Color="{DynamicResource Primary400}" /> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorCheckedBrush.Win10" Color="{DynamicResource Primary500Foreground}" /> + + <!-- primary --> + <!--<SolidColorBrush x:Key="PrimaryHueDarkBrush" Color="#4D1DCF"/> + <SolidColorBrush x:Key="PrimaryHueDarkForegroundBrush" Color="#FFFFFF"/>--> + <!--accent--> + <SolidColorBrush x:Key="SecondaryAccentBrush" Color="{StaticResource FSE_PrimaryAccentColor}"/> + <SolidColorBrush x:Key="SecondaryAccentForegroundBrush" Color="{StaticResource FSE_PrimaryForegroundColor}"/> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Converters.xaml b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Converters.xaml new file mode 100644 index 000000000..260fc92ca --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Converters.xaml @@ -0,0 +1,45 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:local="clr-namespace:Tango.StubsUtils.Service.UI.Resources"> + + <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + <converters:BooleanInverseConverter x:Key="BooleanInverseConverter" /> + <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" /> + <converters:DateTimeUTCToShortDateConverter x:Key="DateTimeUTCToShortDateConverter" /> + <converters:MathOperatorConverter x:Key="MathOperatorConverter" /> + <converters:IsSegmentGradientConverter x:Key="IsSegmentGradientConverter" /> + <converters:IsSegmentGradientToVisibilityConverter x:Key="IsSegmentGradientToVisibilityConverter" /> + <converters:SegmentToBrushConverterMulti x:Key="SegmentToBrushConverterMulti" /> + <converters:SegmentLengthToWidthConverter x:Key="SegmentLengthToWidthConverter" /> + <converters:WidthHeightToRectConverter x:Key="WidthHeightToRectConverter" /> + <converters:OneToPercentConverter x:Key="OneToPercentConverter" /> + <converters:SmallerThanToBooleanConverter x:Key="SmallerThanToBooleanConverter" /> + <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" /> + <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" /> + <converters:TimeSpanToTwoDigitsTimeConverter x:Key="TimeSpanToTwoDigitsTimeConverter" /> + <converters:TimeSpanToLabelConverter x:Key="TimeSpanToLabelConverter" /> + <converters:GreaterThanToBooleanConverter x:Key="GreaterThanToBooleanConverter" /> + <converters:ByteArrayToFileSizeConverter x:Key="ByteArrayToFileSizeConverter" /> + <converters:EnumToVisibilityConverter x:Key="EnumToVisibilityConverter" /> + <converters:EnumToBooleanConverter x:Key="EnumToBooleanConverter" /> + <converters:DateTimeUTCToStringConverter x:Key="DateTimeUTCToStringConverter" /> + <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" /> + <converters:IsNullToVisibilityConverter x:Key="IsNullToVisibilityConverter" /> + <converters:StringToLinesConverter x:Key="StringToLinesConverter" /> + <converters:ColorToIntegerConverter x:Key="ColorToIntegerConverter" /> + <converters:StringEllipsisConverter x:Key="StringEllipsisConverter" /> + <converters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter" /> + <converters:TimeSpanToMinutesConverter x:Key="TimeSpanToMinutesConverter" /> + <converters:TimeSpanToSecondsConverter x:Key="TimeSpanToSecondsConverter" /> + <converters:StringToTitleCaseConverter x:Key="StringToTitleCaseConverter" /> + <converters:StringToOneLineConverter x:Key="StringToOneLineConverter" /> + <converters:FilePathToFileNameConverter x:Key="FilePathToFileNameConverter" /> + <converters:EnumToIntConverter x:Key="EnumToIntConverter" /> + <converters:ObservableCollectionToViewSourceConverter x:Key="ObservableCollectionToViewSourceConverter" /> + <converters:IsEqualToVisibilityConverter x:Key="IsEqualToVisibilityConverter" /> + <converters:BooleanToYesNoConverter x:Key="BooleanToYesNoConverter" /> + <converters:GenericMessageProtocolToStringConverter x:Key="GenericMessageProtocolToStringConverter" /> + <converters:IsEqualConverter x:Key="IsEqualConverter" /> + <converters:IsNotConverter x:Key="IsNotConverter" /> +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Fonts.xaml b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Fonts.xaml new file mode 100644 index 000000000..b5ef75802 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Resources/Fonts.xaml @@ -0,0 +1,14 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:sys="clr-namespace:System;assembly=mscorlib" + xmlns:local="clr-namespace:Tango.StubsUtils.Service.UI.Resources"> + + <sys:Double x:Key="FSE_DefaultFontSize">14</sys:Double> + <sys:Double x:Key="FSE_SmallFontSize">12</sys:Double> + <sys:Double x:Key="FSE_SmallerFontSize">10</sys:Double> + <sys:Double x:Key="FSE_LargeFontSize">16</sys:Double> + <sys:Double x:Key="FSE_LargerFontSize">18</sys:Double> + <sys:Double x:Key="FSE_MessageBoxTitleFontSize">16</sys:Double> + <sys:Double x:Key="FSE_ModuleHeaderFontSize">30</sys:Double> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/ServiceUISettings.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/ServiceUISettings.cs new file mode 100644 index 000000000..92f7157ca --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/ServiceUISettings.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Settings; + +namespace Tango.StubsUtils.Service.UI +{ + public class ServiceUISettings : SettingsBase + { + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Tango.StubsUtils.Service.UI.csproj b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Tango.StubsUtils.Service.UI.csproj new file mode 100644 index 000000000..c4cdbab42 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Tango.StubsUtils.Service.UI.csproj @@ -0,0 +1,183 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>Tango.StubsUtils.Service.UI</RootNamespace> + <AssemblyName>Tango.StubsUtils.Service.UI</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <WarningLevel>4</WarningLevel> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + <NuGetPackageImportStamp> + </NuGetPackageImportStamp> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\StubsUtils\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\StubsUtils\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="ControlzEx, Version=3.0.2.4, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll</HintPath> + </Reference> + <Reference Include="Hardcodet.Wpf.TaskbarNotification, Version=1.0.5.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Hardcodet.NotifyIcon.Wpf.1.0.8\lib\net451\Hardcodet.Wpf.TaskbarNotification.dll</HintPath> + </Reference> + <Reference Include="MahApps.Metro, Version=1.6.5.1, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll</HintPath> + </Reference> + <Reference Include="MaterialDesignColors, Version=1.2.2.920, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\MaterialDesignColors.1.2.2\lib\net45\MaterialDesignColors.dll</HintPath> + </Reference> + <Reference Include="MaterialDesignThemes.Wpf, Version=3.0.1.920, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\MaterialDesignThemes.3.0.1\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> + <HintPath>..\..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll</HintPath> + </Reference> + <Reference Include="System.Xml" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xaml"> + <RequiredTargetFramework>4.0</RequiredTargetFramework> + </Reference> + <Reference Include="WindowsBase" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + </ItemGroup> + <ItemGroup> + <ApplicationDefinition Include="App.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </ApplicationDefinition> + <Compile Include="ServiceUISettings.cs" /> + <Compile Include="ViewModels\MainViewVM.cs" /> + <Compile Include="Views\MainView.xaml.cs"> + <DependentUpon>MainView.xaml</DependentUpon> + </Compile> + <Page Include="MainWindow.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Compile Include="App.xaml.cs"> + <DependentUpon>App.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Compile Include="MainWindow.xaml.cs"> + <DependentUpon>MainWindow.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Page Include="Resources\Colors.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Resources\Converters.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Resources\Fonts.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Views\MainView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <None Include="packages.config" /> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj"> + <Project>{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}</Project> + <Name>Tango.Core</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Logging\Tango.Logging.csproj"> + <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project> + <Name>Tango.Logging</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Settings\Tango.Settings.csproj"> + <Project>{d8f1ad85-526a-4f50-b6dc-d437af63d8d8}</Project> + <Name>Tango.Settings</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj"> + <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project> + <Name>Tango.SharedUI</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.StubsUtils.Service\Tango.StubsUtils.Service.csproj"> + <Project>{452df7f4-bfbf-45b1-9a27-d6b1888ac10b}</Project> + <Name>Tango.StubsUtils.Service</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\machine_icon_connected.ico" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\machine_icon_none.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\machine_icon_connected.png" /> + <Resource Include="Images\machine_icon_disconnected.ico" /> + <Resource Include="Images\machine_icon_disconnected.png" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <Import Project="..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets" Condition="Exists('..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets')" /> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets'))" /> + </Target> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/ViewModels/MainViewVM.cs new file mode 100644 index 000000000..4e8b144e5 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/ViewModels/MainViewVM.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using Tango.Core.Commands; +using Tango.SharedUI; +using Tango.SharedUI.Helpers; + +namespace Tango.StubsUtils.Service.UI.ViewModels +{ + public class MainViewVM : ViewModel + { + private StubsService _service; + public StubsService Service + { + get { return _service; } + set { _service = value; RaisePropertyChangedAuto(); } + } + + private bool _isTrayIconVisible; + public bool IsTrayIconVisible + { + get { return _isTrayIconVisible; } + set { _isTrayIconVisible = value; RaisePropertyChangedAuto(); } + } + + + public RelayCommand ExitCommand { get; set; } + public RelayCommand OpenCommand { get; set; } + + public MainViewVM() + { + Init(); + ExitCommand = new RelayCommand(ExitApplication); + OpenCommand = new RelayCommand(OpenMainWindow); + IsTrayIconVisible = true; + } + + public async void Init() + { + Service = new StubsService(); + await Service.Start(); + + await Task.Delay(10000); + await Service.Connect(); + } + + private async void OpenMainWindow() + { + Application.Current.MainWindow.Visibility = Visibility.Visible; + await Task.Delay(200); + Application.Current.MainWindow.WindowState = WindowState.Normal; + Application.Current.MainWindow.Focus(); + Application.Current.MainWindow.Activate(); + IsTrayIconVisible = false; + } + + public async void ExitApplication() + { + IsTrayIconVisible = false; + UIHelper.DoEvents(); + await Task.Delay(1000); + Environment.Exit(0); + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Views/MainView.xaml b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Views/MainView.xaml new file mode 100644 index 000000000..eb2c24e44 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Views/MainView.xaml @@ -0,0 +1,144 @@ +<UserControl x:Class="Tango.StubsUtils.Service.UI.Views.MainView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:tb="http://www.hardcodet.net/taskbar" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:local="clr-namespace:Tango.StubsUtils.Service.UI.Views" + xmlns:vm="clr-namespace:Tango.StubsUtils.Service.UI.ViewModels" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" Background="{StaticResource FSE_PrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:MainViewVM,IsDesignTimeCreatable=False}"> + + <UserControl.Resources> + <RadialGradientBrush x:Key="FSE_LED_GrayBrush"> + <GradientStop Offset="0" Color="Gray" /> + <GradientStop Offset="1" Color="#4E4E4E" /> + </RadialGradientBrush> + <RadialGradientBrush x:Key="FSE_LED_GreenBrush"> + <GradientStop Offset="0" Color="#4DFC1E" /> + <GradientStop Offset="1" Color="#096D07" /> + </RadialGradientBrush> + <RadialGradientBrush x:Key="FSE_LED_RedBrush"> + <GradientStop Offset="0" Color="#FA6565" /> + <GradientStop Offset="1" Color="#A32323" /> + </RadialGradientBrush> + </UserControl.Resources> + + <Grid> + <tb:TaskbarIcon x:Name="taskIcon" x:FieldModifier="public" + Visibility="{Binding IsTrayIconVisible,Converter={StaticResource BooleanToVisibilityConverter}}" + ToolTipText="Tango Stubs Service" + MenuActivation="RightClick" + PopupActivation="DoubleClick"> + + <tb:TaskbarIcon.Style> + <Style TargetType="tb:TaskbarIcon"> + <Setter Property="IconSource" Value="/Images/machine_icon_disconnected.ico"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Service.IsConnected}" Value="True"> + <Setter Property="IconSource" Value="/Images/machine_icon_connected.ico"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </tb:TaskbarIcon.Style> + <tb:TaskbarIcon.TrayToolTip> + <Border Background="{StaticResource FSE_PrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" CornerRadius="5" Padding="20 10"> + <StackPanel TextElement.Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> + <DockPanel> + <Image VerticalAlignment="Top" Source="/Images/machine_icon_none.png" Stretch="None" /> + + <StackPanel Margin="10 0 0 0" VerticalAlignment="Top"> + <TextBlock FontSize="{StaticResource FSE_LargeFontSize}">Tango Stubs Service</TextBlock> + <DockPanel Margin="0 5 0 0"> + <Ellipse Width="12" Height="12" Stroke="#353535"> + <Ellipse.Style> + <Style TargetType="Ellipse"> + <Setter Property="Fill" Value="{StaticResource FSE_LED_RedBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Service.IsConnected}" Value="True"> + <Setter Property="Fill" Value="{StaticResource FSE_LED_GreenBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Ellipse.Style> + </Ellipse> + <TextBlock Margin="5 0 0 0" FontWeight="SemiBold"> + <TextBlock.Style> + <Style TargetType="TextBlock"> + <Setter Property="Text" Value="Disconnected"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_RedBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Service.IsConnected}" Value="True"> + <Setter Property="Text" Value="Connected"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_GreenBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + </DockPanel> + </StackPanel> + </DockPanel> + </StackPanel> + </Border> + </tb:TaskbarIcon.TrayToolTip> + <tb:TaskbarIcon.ContextMenu> + <ContextMenu> + <MenuItem Height="120" IsEnabled="False" Opacity="1" VerticalContentAlignment="Top" HorizontalContentAlignment="Left"> + <MenuItem.Header> + <StackPanel Margin="-40 -10 0 40" HorizontalAlignment="Left" VerticalAlignment="Top" TextElement.Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> + <DockPanel> + <Image VerticalAlignment="Top" Source="/Images/machine_icon_none.png" Stretch="None" /> + + <StackPanel Margin="10 0 0 0" VerticalAlignment="Top"> + <TextBlock FontSize="{StaticResource FSE_LargeFontSize}">Tango Stubs Service</TextBlock> + <DockPanel Margin="0 5 0 0"> + <Ellipse Width="12" Height="12" Stroke="#353535"> + <Ellipse.Style> + <Style TargetType="Ellipse"> + <Setter Property="Fill" Value="{StaticResource FSE_LED_RedBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Service.IsConnected}" Value="True"> + <Setter Property="Fill" Value="{StaticResource FSE_LED_GreenBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Ellipse.Style> + </Ellipse> + <TextBlock Margin="5 0 0 0" FontWeight="SemiBold"> + <TextBlock.Style> + <Style TargetType="TextBlock"> + <Setter Property="Text" Value="Disconnected"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_RedBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Service.IsConnected}" Value="True"> + <Setter Property="Text" Value="Connected"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_GreenBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + </DockPanel> + </StackPanel> + </DockPanel> + </StackPanel> + </MenuItem.Header> + </MenuItem> + + <MenuItem Header="Open" Command="{Binding OpenCommand}"> + <MenuItem.Icon> + <material:PackIcon Kind="OpenInApp" /> + </MenuItem.Icon> + </MenuItem> + <MenuItem Header="Exit" Command="{Binding ExitCommand}"> + <MenuItem.Icon> + <material:PackIcon Kind="PowerOff" /> + </MenuItem.Icon> + </MenuItem> + </ContextMenu> + </tb:TaskbarIcon.ContextMenu> + </tb:TaskbarIcon> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Views/MainView.xaml.cs new file mode 100644 index 000000000..1c51be6d4 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/Views/MainView.xaml.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.StubsUtils.Service.UI.ViewModels; + +namespace Tango.StubsUtils.Service.UI.Views +{ + /// <summary> + /// Interaction logic for MainView.xaml + /// </summary> + public partial class MainView : UserControl + { + public MainView() + { + InitializeComponent(); + DataContext = new MainViewVM(); + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/packages.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/packages.config new file mode 100644 index 000000000..96b22d216 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service.UI/packages.config @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="ControlzEx" version="3.0.2.4" targetFramework="net461" /> + <package id="Hardcodet.NotifyIcon.Wpf" version="1.0.8" targetFramework="net461" /> + <package id="MahApps.Metro" version="1.6.5" targetFramework="net461" /> + <package id="MaterialDesignColors" version="1.2.2" targetFramework="net461" /> + <package id="MaterialDesignThemes" version="3.0.1" targetFramework="net461" /> + <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> +</packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/Properties/AssemblyInfo.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..c0a90674c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.StubsUtils.Service")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.StubsUtils.Service")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("452df7f4-bfbf-45b1-9a27-d6b1888ac10b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubReflection.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubReflection.cs new file mode 100644 index 000000000..2b0f237ea --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubReflection.cs @@ -0,0 +1,49 @@ +using FastMember; +using Google.Protobuf; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Tango.PMR; +using Tango.PMR.Common; + +namespace Tango.StubsUtils.Service +{ + public class StubReflection + { + public Type Type { get; set; } + public MessageType MessageType { get; set; } + public List<PropertyInfo> Properties { get; set; } + public TypeAccessor Accesor { get; set; } + public MessageParser Parser { get; set; } + + public StubReflection() + { + Properties = new List<PropertyInfo>(); + } + + public static StubReflection FromStubName(String stubName, List<Type> stubTypes) + { + StubReflection reflection = new StubReflection(); + + var stubType = stubTypes.SingleOrDefault(x => x.Name.ToLower() == stubName.ToLower() || x.Name.Replace("Request", "").ToLower() == stubName.ToLower()); + + if (stubType == null) + { + throw new InvalidOperationException($"Invalid stub name '{stubName}'."); + } + + reflection.Type = stubType; + reflection.MessageType = MessageFactory.ParseMessageType(reflection.Type.Name); + reflection.Properties = stubType.GetProperties(BindingFlags.Public | BindingFlags.Instance).ToList(); + reflection.Accesor = TypeAccessor.Create(stubType); + + var instance = Activator.CreateInstance(stubType); + reflection.Parser = stubType.GetProperty("Parser").GetValue(instance) as MessageParser; + + return reflection; + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubsService.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubsService.cs new file mode 100644 index 000000000..05b2d518c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubsService.cs @@ -0,0 +1,334 @@ +using Google.Protobuf; +using Newtonsoft.Json; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.IO.Pipes; +using System.Linq; +using System.Reflection; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.ExtensionMethods; +using Tango.Logging; +using Tango.PMR; +using Tango.PMR.Common; +using Tango.Settings; +using Tango.StubsUtils.Shared; +using Tango.Transport; +using Tango.Transport.Adapters; +using Tango.Transport.Transporters; + +namespace Tango.StubsUtils.Service +{ + public class StubsService : ExtendedObject + { + private const string PIPE_NAME = "Tango_Stubs_Server"; + private NamedPipeServerStream _server; + private StreamReader _reader; + private StreamWriter _writer; + private BinaryFormatter _formatter; + private StubsServiceSettings _settings; + private bool _initialized; + private List<Type> _stubsTypes; + private Dictionary<String, StubReflection> _stubsLookup; + private Thread _communicationThread; + + #region Properties + + private ITransporter _transporter; + public ITransporter Transporter + { + get { return _transporter; } + private set { _transporter = value; RaisePropertyChangedAuto(); } + } + + private bool _isStarted; + public bool IsStarted + { + get { return _isStarted; } + private set { _isStarted = value; RaisePropertyChangedAuto(); } + } + + private bool _isConnected; + public bool IsConnected + { + get { return _isConnected; } + set { _isConnected = value; RaisePropertyChangedAuto(); } + } + + private bool _enableLogs; + public bool EnableLogs + { + get { return _enableLogs; } + set { _enableLogs = value; RaisePropertyChangedAuto(); } + } + + #endregion + + #region Constructors + + public StubsService() + { + _settings = SettingsManager.Default.GetOrCreate<StubsServiceSettings>(); + _settings.Save(); + } + + #endregion + + #region Start/Stop + + private void Initialize() + { + if (!_initialized) + { + _stubsTypes = new List<Type>(); + _stubsLookup = new Dictionary<string, StubReflection>(); + + foreach (var type in typeof(MessageFactory).Assembly.GetTypes().Where(x => x.Namespace != null && x.Namespace.Contains("Stubs") && (x.Name.Contains("Request") || x.Name.Contains("Response")) && !x.Name.Contains("Reflection")).ToList()) + { + _stubsTypes.Add(type); + } + + _server = new NamedPipeServerStream(PIPE_NAME); + _reader = new StreamReader(_server); + _writer = new StreamWriter(_server); + _formatter = new BinaryFormatter(); + _communicationThread = new Thread(CommunicationMethod); + _communicationThread.IsBackground = true; + _communicationThread.Start(); + + _initialized = true; + } + } + + public Task Start() + { + return Task.Factory.StartNew(() => + { + if (!IsStarted) + { + try + { + LogManager.Log("Starting stubs service..."); + IsStarted = true; + Initialize(); + LogManager.Log("Starting IPC service..."); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error starting stubs service."); + } + } + }); + } + + public Task Stop() + { + return Task.Factory.StartNew(() => + { + if (IsStarted) + { + IsStarted = false; + } + }); + } + + #endregion + + #region Connect/Disconnect + + public async Task Connect() + { + if (!IsStarted) throw new InvalidOperationException("Cannot connect the transporter before the service has started."); + + if (!IsConnected) + { + Transporter = new BasicTransporter(new UsbTransportAdapter(_settings.USBPort)); + Transporter.UseKeepAlive = false; + await Transporter.Connect(); + IsConnected = true; + } + } + + public async Task Disconnect() + { + if (IsConnected) + { + await Transporter.Disconnect(); + } + } + + #endregion + + #region Communication + + private void CommunicationMethod() + { + while (IsStarted) + { + try + { + _server.WaitForConnection(); + var request = _reader.ReadLine(); + + if (EnableLogs) LogManager.Log($"Stub package received: '{request}'..."); + + var package = new StubPackageRequestDTO(); + package.Arguments = request.Split(' '); + + if (EnableLogs) LogManager.Log($"Stub package constructed: '{package.ToJsonString()}'..."); + + var response = ProcessStubPackage(package); + + if (EnableLogs) LogManager.Log($"Stub package response: '{response.ToJsonString()}'..."); + + _writer.Write(response.ToString()); + _writer.Flush(); + } + catch (Exception ex) + { + if (EnableLogs) LogManager.Log(ex, "Error processing stub package."); + + try + { + var response = new StubPackageResponseDTO() + { + Status = StubPackageResponseStatus.Error, + Message = $"Error processing stub package\n{ex.FlattenMessage()}" + }; + + _writer.WriteLine(response.ToString()); + _writer.Flush(); + _server.Disconnect(); + } + catch { } + } + finally + { + _server.Disconnect(); + } + } + } + + #endregion + + #region Process Package + + private StubPackageResponseDTO ProcessStubPackage(StubPackageRequestDTO package) + { + StubPackageResponseDTO response = new StubPackageResponseDTO(); + + if (Transporter == null || Transporter.State != TransportComponentState.Connected) + { + response.Status = StubPackageResponseStatus.NoConnection; + response.Message = "Machine is disconnected."; + return response; + } + + try + { + if (EnableLogs) LogManager.Log("Processing package..."); + + String stubName = package.Arguments[0]; + List<String> arguments = package.Arguments.Skip(1).ToList(); + + StubReflection stubReflection = GetStubReflection(stubName); + + MessageContainer requestContainer = new MessageContainer(); + requestContainer.Token = Guid.NewGuid().ToString(); + requestContainer.Type = stubReflection.MessageType; + + IMessage request = Activator.CreateInstance(stubReflection.Type) as IMessage; + + for (int i = 0; i < arguments.Count; i++) + { + String argument = arguments[i]; + + if (i >= stubReflection.Properties.Count) + { + throw new ArgumentOutOfRangeException($"Argument '{argument}' index is out of range for stub '{stubReflection.Type.Name}'."); + } + + PropertyInfo prop = stubReflection.Properties[i]; + + if (prop.PropertyType == typeof(UInt32)) + { + prop.SetValue(request, UInt32.Parse(argument)); + } + else if (prop.PropertyType == typeof(bool)) + { + prop.SetValue(request, bool.Parse(argument)); + } + else if (typeof(IList).IsAssignableFrom(prop.PropertyType)) + { + IList arr = prop.GetValue(request) as IList; + foreach (var item in argument.Split(',')) + { + object converted = Convert.ChangeType(item, prop.PropertyType.GetGenericArguments()[0]); + arr.Add(converted); + } + } + else + { + object converted = Convert.ChangeType(argument, prop.PropertyType); + prop.SetValue(request, converted); + } + } + + if (EnableLogs) LogManager.Log($"Request stub constructed:\n{request.ToJsonString()}"); + + requestContainer.Data = request.ToByteString(); + var responseContainer = Transporter.SendRequest(requestContainer, new TransportRequestConfig() { ThreadingMode = TransportThreadingMode.ThreadPool }).Result; + + var stubResponseReflection = GetStubReflection(responseContainer.Type.ToOriginalName()); + IMessage stubResponse = stubResponseReflection.Parser.ParseFrom(responseContainer.Data); + + String responseMessage = String.Empty; + + foreach (var prop in stubResponseReflection.Properties) + { + responseMessage += $"{prop.Name}: {prop.GetValue(stubResponse).ToStringSafe()}\n"; + } + + if (EnableLogs) + { + String responseJson = stubResponse.ToJsonString(); + LogManager.Log($"Response:\n{stubResponse}"); + } + + response.Status = StubPackageResponseStatus.OK; + response.Message = responseMessage; + } + catch (Exception ex) + { + LogManager.Log(ex, "Error processing stub package."); + response.Status = StubPackageResponseStatus.Error; + response.Message = ex.FlattenMessage(); + } + + return response; + } + + #endregion + + #region Helper Methods + + private StubReflection GetStubReflection(String stubName) + { + if (_stubsLookup.ContainsKey(stubName)) + { + return _stubsLookup[stubName]; + } + + var stubReflection = StubReflection.FromStubName(stubName, _stubsTypes); + _stubsLookup[stubName] = stubReflection; + return stubReflection; + } + + #endregion + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubsServiceSettings.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubsServiceSettings.cs new file mode 100644 index 000000000..8741065cf --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/StubsServiceSettings.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Settings; + +namespace Tango.StubsUtils.Service +{ + public class StubsServiceSettings : SettingsBase + { + public String USBPort { get; set; } + + public StubsServiceSettings() + { + USBPort = "COM1"; + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/Tango.StubsUtils.Service.csproj b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/Tango.StubsUtils.Service.csproj new file mode 100644 index 000000000..40ec9d29f --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/Tango.StubsUtils.Service.csproj @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Tango.StubsUtils.Service</RootNamespace> + <AssemblyName>Tango.StubsUtils.Service</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\StubsUtils\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\StubsUtils\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="FastMember, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\FastMember.1.5.0\lib\net461\FastMember.dll</HintPath> + </Reference> + <Reference Include="Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Google.Protobuf.3.4.1\lib\net45\Google.Protobuf.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="StubReflection.cs" /> + <Compile Include="StubsService.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="StubsServiceSettings.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj"> + <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project> + <Name>Tango.Core</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Logging\Tango.Logging.csproj"> + <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project> + <Name>Tango.Logging</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.PMR\Tango.PMR.csproj"> + <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project> + <Name>Tango.PMR</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Settings\Tango.Settings.csproj"> + <Project>{d8f1ad85-526a-4f50-b6dc-d437af63d8d8}</Project> + <Name>Tango.Settings</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Transport\Tango.Transport.csproj"> + <Project>{74e700b0-1156-4126-be40-ee450d3c3026}</Project> + <Name>Tango.Transport</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.StubsUtils.Shared\Tango.StubsUtils.Shared.csproj"> + <Project>{dae96f06-72cd-411d-90a3-9456ae79f699}</Project> + <Name>Tango.StubsUtils.Shared</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <None Include="app.config" /> + <None Include="packages.config" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/app.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/app.config new file mode 100644 index 000000000..f63670818 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/app.config @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/packages.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/packages.config new file mode 100644 index 000000000..52834fea3 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Service/packages.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="FastMember" version="1.5.0" targetFramework="net461" /> + <package id="Google.Protobuf" version="3.4.1" targetFramework="net461" /> + <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> +</packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/App.config b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/App.config new file mode 100644 index 000000000..731f6de6c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/App.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Program.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Program.cs new file mode 100644 index 000000000..b72e15236 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Program.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.IO.Pipes; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.StubsUtils.Shared; + +namespace Tango.StubsUtils.SessionClient.CLI +{ + class Program + { + private const string PIPE_NAME = "Tango_Stubs_Server"; + + static void Main(string[] args) + { + String line = String.Empty; + + Console.WriteLine("Tango Stub Session Client v1.0"); + + while (true) + { + Console.Write("> "); + line = Console.ReadLine(); + + if (line.ToLower() == "exit") + { + Environment.Exit(0); + } + + args = line.Split(' '); + + StubPackageResponseDTO response = null; + + try + { + var _client = new NamedPipeClientStream(PIPE_NAME); + _client.Connect(5000); + + var writer = new StreamWriter(_client); + + var jsonRequest = String.Join(" ", args); + + writer.WriteLine(jsonRequest); + writer.Flush(); + + var reader = new StreamReader(_client); + String responseString = reader.ReadToEnd(); + response = new StubPackageResponseDTO(); + response.Status = responseString.StartsWith("Status: OK") ? StubPackageResponseStatus.OK : StubPackageResponseStatus.Error; + response.Message = responseString; + } + catch (Exception ex) + { + OnError($"Error communicating with the stubs service. {ex.Message}"); + } + + if (response.Status == StubPackageResponseStatus.OK) + { + Console.ForegroundColor = ConsoleColor.Gray; + Console.WriteLine(response.Message); + } + else + { + OnError(response.Message); + } + } + } + + private static void OnError(String error) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine($"{error}"); + Console.ForegroundColor = ConsoleColor.Gray; + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..14f843bcf --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.StubsUtils.SessionClient.CLI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.StubsUtils.SessionClient.CLI")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f1b727f5-adf5-4a81-a740-7e64e48b29d4")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Tango.StubsUtils.SessionClient.CLI.csproj b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Tango.StubsUtils.SessionClient.CLI.csproj new file mode 100644 index 000000000..6ccf31b7b --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.SessionClient.CLI/Tango.StubsUtils.SessionClient.CLI.csproj @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}</ProjectGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Tango.StubsUtils.SessionClient.CLI</RootNamespace> + <AssemblyName>tangostub_s</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\StubsUtils\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\StubsUtils\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Tango.StubsUtils.Shared\Tango.StubsUtils.Shared.csproj"> + <Project>{dae96f06-72cd-411d-90a3-9456ae79f699}</Project> + <Name>Tango.StubsUtils.Shared</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/Properties/AssemblyInfo.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..aad82fef6 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.StubsUtils.Shared")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.StubsUtils.Shared")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("dae96f06-72cd-411d-90a3-9456ae79f699")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageRequestDTO.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageRequestDTO.cs new file mode 100644 index 000000000..625fe931b --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageRequestDTO.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.StubsUtils.Shared +{ + [Serializable] + public class StubPackageRequestDTO + { + public string[] Arguments { get; set; } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageResponseDTO.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageResponseDTO.cs new file mode 100644 index 000000000..b020c4f84 --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageResponseDTO.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.StubsUtils.Shared +{ + [Serializable] + public class StubPackageResponseDTO + { + public StubPackageResponseStatus Status { get; set; } + public String Message { get; set; } + + public override string ToString() + { + return $"Status: {Status}\n{Message}"; + } + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageResponseStatus.cs b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageResponseStatus.cs new file mode 100644 index 000000000..4edd47d6c --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/StubPackageResponseStatus.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.StubsUtils.Shared +{ + [Serializable] + public enum StubPackageResponseStatus + { + OK, + Error, + NoConnection + } +} diff --git a/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/Tango.StubsUtils.Shared.csproj b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/Tango.StubsUtils.Shared.csproj new file mode 100644 index 000000000..a7b58f6ea --- /dev/null +++ b/Software/Visual_Studio/StubsUtils/Tango.StubsUtils.Shared/Tango.StubsUtils.Shared.csproj @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{DAE96F06-72CD-411D-90A3-9456AE79F699}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Tango.StubsUtils.Shared</RootNamespace> + <AssemblyName>Tango.StubsUtils.Shared</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\StubsUtils\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\StubsUtils\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="StubPackageRequestDTO.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="StubPackageResponseDTO.cs" /> + <Compile Include="StubPackageResponseStatus.cs" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 4da8606f7..dc817af6e 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -84,14 +84,14 @@ <Reference Include="WindowsBase" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> - <Reference Include="Z.EntityFramework.Extensions, Version=4.0.50.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\packages\Z.EntityFramework.Extensions.4.0.50\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> + <Reference Include="Z.EntityFramework.Extensions, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\packages\Z.EntityFramework.Extensions.5.1.6\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> </Reference> - <Reference Include="Z.EntityFramework.Plus.EF6, Version=1.12.13.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\packages\Z.EntityFramework.Plus.EF6.1.12.13\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> + <Reference Include="Z.EntityFramework.Plus.EF6, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\packages\Z.EntityFramework.Plus.EF6.5.1.6\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> </Reference> - <Reference Include="Z.Expressions.Eval, Version=3.1.5.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\packages\Z.Expressions.Eval.3.1.5\lib\net45\Z.Expressions.Eval.dll</HintPath> + <Reference Include="Z.Expressions.Eval, Version=4.0.27.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\packages\Z.Expressions.Eval.4.0.27\lib\net45\Z.Expressions.Eval.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> @@ -645,7 +645,7 @@ </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.BL/packages.config b/Software/Visual_Studio/Tango.BL/packages.config index d928d5575..81001d8fe 100644 --- a/Software/Visual_Studio/Tango.BL/packages.config +++ b/Software/Visual_Studio/Tango.BL/packages.config @@ -10,7 +10,7 @@ <package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" /> - <package id="Z.EntityFramework.Extensions" version="4.0.50" targetFramework="net461" /> - <package id="Z.EntityFramework.Plus.EF6" version="1.12.13" targetFramework="net461" /> - <package id="Z.Expressions.Eval" version="3.1.5" targetFramework="net461" /> + <package id="Z.EntityFramework.Extensions" version="5.1.6" targetFramework="net461" /> + <package id="Z.EntityFramework.Plus.EF6" version="5.1.6" targetFramework="net461" /> + <package id="Z.Expressions.Eval" version="4.0.27" targetFramework="net461" /> </packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs index 9cdf6dcae..6360b7bbc 100644 --- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs +++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs @@ -1009,6 +1009,24 @@ namespace Tango.Emulations.Emulators Transporter.SendResponse<MotorHomingResponse>(new MotorHomingResponse() { MaxProgress = 100, Progress = 100 }, request.Container.Token, new TransportResponseConfig() { Completed = true }); _motorHomingRequestCodes.Remove(homeRequest.MotorType); ResetGraphFactors(); + + if (request.Message.MotorType == PMR.Hardware.HardwareMotorType.MotoDhLid) + { + if (request.Message.Direction == MotorDirection.Backward) + { + var eventState1 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadArcLidIsOpen); + var eventState2 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadCoverIsOpen); + eventState1.IsActive = true; + eventState2.IsActive = true; + } + else + { + var eventState1 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadArcLidIsOpen); + var eventState2 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadCoverIsOpen); + eventState1.IsActive = false; + eventState2.IsActive = false; + } + } }); } diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/IsToStringEqualToVisibilityConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/IsToStringEqualToVisibilityConverter.cs new file mode 100644 index 000000000..478b21c09 --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Converters/IsToStringEqualToVisibilityConverter.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.SharedUI.Converters +{ + public class IsToStringEqualToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return value.ToStringSafe().Equals(parameter.ToStringSafe()); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index 49f1b8e7d..e4dc72746 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -121,6 +121,7 @@ <Compile Include="Converters\IsNullToVisibilityConverter.cs" /> <Compile Include="Converters\IsSegmentGradientConverter.cs" /> <Compile Include="Converters\IsSegmentGradientToVisibilityConverter.cs" /> + <Compile Include="Converters\IsToStringEqualToVisibilityConverter.cs" /> <Compile Include="Converters\LastItemInContainerToBooleanConverter.cs" /> <Compile Include="Converters\MathOperatorConverter.cs" /> <Compile Include="Converters\NumberToFileSizeConverter.cs" /> @@ -260,7 +261,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index c9ca85279..96e3aa775 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -441,6 +441,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.DataSynchronizer. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PasswordHashUtil.CLI", "Utilities\Tango.PasswordHashUtil.CLI\Tango.PasswordHashUtil.CLI.csproj", "{F1DC98EF-C50A-4E84-9A39-211A68626FBA}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StubsUtils", "StubsUtils", "{4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.Service.UI", "StubsUtils\Tango.StubsUtils.Service.UI\Tango.StubsUtils.Service.UI.csproj", "{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.Client.CLI", "StubsUtils\Tango.StubsUtils.Client.CLI\Tango.StubsUtils.Client.CLI.csproj", "{2ED5D897-DF22-491E-8410-D01383B3DAD2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.Service", "StubsUtils\Tango.StubsUtils.Service\Tango.StubsUtils.Service.csproj", "{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.Shared", "StubsUtils\Tango.StubsUtils.Shared\Tango.StubsUtils.Shared.csproj", "{DAE96F06-72CD-411D-90A3-9456AE79F699}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.PerformanceTest.CLI", "StubsUtils\Tango.StubsUtils.PerformanceTest.CLI\Tango.StubsUtils.PerformanceTest.CLI.csproj", "{F423324C-7D0A-4512-BEBA-DF3A931A09F6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.SessionClient.CLI", "StubsUtils\Tango.StubsUtils.SessionClient.CLI\Tango.StubsUtils.SessionClient.CLI.csproj", "{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2938,6 +2952,7 @@ Global {50119E79-5012-4B36-8438-953DD5FC06E6}.Release|x86.ActiveCfg = Release|Any CPU {50119E79-5012-4B36-8438-953DD5FC06E6}.Release|x86.Build.0 = Release|Any CPU {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|Any CPU.Build.0 = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|ARM.ActiveCfg = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|ARM64.ActiveCfg = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x64.ActiveCfg = Debug|x64 @@ -2945,6 +2960,7 @@ Global {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x86.ActiveCfg = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x86.Build.0 = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|Any CPU.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|Any CPU.Build.0 = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|ARM.ActiveCfg = Release|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|ARM64.ActiveCfg = Release|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|x64.ActiveCfg = Release|x64 @@ -2952,6 +2968,7 @@ Global {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|x86.ActiveCfg = Release|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release|x86.Build.0 = Release|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|Any CPU.Build.0 = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|ARM.ActiveCfg = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|ARM64.ActiveCfg = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x64.ActiveCfg = Debug|x64 @@ -2959,6 +2976,7 @@ Global {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x86.ActiveCfg = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x86.Build.0 = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|Any CPU.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|Any CPU.Build.0 = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|ARM.ActiveCfg = Release|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|ARM64.ActiveCfg = Release|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|x64.ActiveCfg = Release|x64 @@ -2966,6 +2984,7 @@ Global {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|x86.ActiveCfg = Release|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release|x86.Build.0 = Release|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|Any CPU.Build.0 = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|ARM.ActiveCfg = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|ARM64.ActiveCfg = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x64.ActiveCfg = Debug|x64 @@ -2973,6 +2992,7 @@ Global {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x86.ActiveCfg = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x86.Build.0 = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release|Any CPU.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release|Any CPU.Build.0 = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release|ARM.ActiveCfg = Release|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release|ARM64.ActiveCfg = Release|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release|x64.ActiveCfg = Release|x64 @@ -3676,6 +3696,7 @@ Global {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release|x86.ActiveCfg = Release|Any CPU {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release|x86.Build.0 = Release|Any CPU {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|Any CPU.Build.0 = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|ARM.ActiveCfg = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|ARM64.ActiveCfg = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x64.ActiveCfg = Debug|x64 @@ -3683,6 +3704,7 @@ Global {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x86.ActiveCfg = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x86.Build.0 = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release|Any CPU.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release|Any CPU.Build.0 = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release|ARM.ActiveCfg = Release|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release|ARM64.ActiveCfg = Release|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release|x64.ActiveCfg = Release|x64 @@ -4168,6 +4190,126 @@ Global {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release|x64.Build.0 = Release|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release|x86.ActiveCfg = Release|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release|x86.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|ARM.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|ARM.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|ARM64.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x64.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x64.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x86.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x86.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|Any CPU.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|ARM.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|ARM.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|ARM64.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|ARM64.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|x64.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|x64.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|x86.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release|x86.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|ARM.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|ARM64.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x64.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x64.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x86.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x86.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|Any CPU.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|ARM.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|ARM.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|ARM64.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|ARM64.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|x64.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|x64.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|x86.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release|x86.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|ARM.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|ARM64.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x64.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x64.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x86.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x86.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|Any CPU.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|ARM.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|ARM.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|ARM64.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|ARM64.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|x64.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|x64.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|x86.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release|x86.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|ARM.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|ARM.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|ARM64.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x64.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x64.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x86.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x86.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|Any CPU.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|ARM.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|ARM.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|ARM64.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|ARM64.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|x64.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|x64.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|x86.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release|x86.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|ARM.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|ARM64.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x64.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x86.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x86.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|Any CPU.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|ARM.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|ARM.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|ARM64.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|ARM64.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|x64.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|x64.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|x86.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release|x86.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|ARM.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|ARM64.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x64.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x64.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x86.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x86.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|Any CPU.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|ARM.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|ARM.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|ARM64.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|ARM64.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|x64.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|x64.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|x86.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4321,6 +4463,12 @@ Global {949857A0-777D-4A32-8668-7163E404D800} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} {3E07ED4E-A755-443F-B18C-3775555A2DD7} = {C81ED1A3-D18C-4D80-A8F5-061994A14A60} {F1DC98EF-C50A-4E84-9A39-211A68626FBA} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} + {2ED5D897-DF22-491E-8410-D01383B3DAD2} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} + {DAE96F06-72CD-411D-90A3-9456AE79F699} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} + {F423324C-7D0A-4512-BEBA-DF3A931A09F6} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj index b89b1cb21..e8f5af6f3 100644 --- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj +++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj @@ -48,14 +48,14 @@ <Reference Include="System.Data" /> <Reference Include="System.Net.Http" /> <Reference Include="System.Xml" /> - <Reference Include="Z.EntityFramework.Extensions, Version=4.0.50.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.EntityFramework.Extensions.4.0.50\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> + <Reference Include="Z.EntityFramework.Extensions, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.EntityFramework.Extensions.5.1.6\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> </Reference> - <Reference Include="Z.EntityFramework.Plus.EF6, Version=1.12.13.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.1.12.13\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> + <Reference Include="Z.EntityFramework.Plus.EF6, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.5.1.6\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> </Reference> - <Reference Include="Z.Expressions.Eval, Version=3.1.5.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.Expressions.Eval.3.1.5\lib\net45\Z.Expressions.Eval.dll</HintPath> + <Reference Include="Z.Expressions.Eval, Version=4.0.27.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.Expressions.Eval.4.0.27\lib\net45\Z.Expressions.Eval.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config index a025a5d0d..6d95e7b5d 100644 --- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config +++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="EntityFramework" version="6.2.0" targetFramework="net461" /> - <package id="Z.EntityFramework.Extensions" version="4.0.50" targetFramework="net461" /> - <package id="Z.EntityFramework.Plus.EF6" version="1.12.13" targetFramework="net461" /> - <package id="Z.Expressions.Eval" version="3.1.5" targetFramework="net461" /> + <package id="Z.EntityFramework.Extensions" version="5.1.6" targetFramework="net461" /> + <package id="Z.EntityFramework.Plus.EF6" version="5.1.6" targetFramework="net461" /> + <package id="Z.Expressions.Eval" version="4.0.27" targetFramework="net461" /> </packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs index e4f5879f5..4f02e716b 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs @@ -24,4 +24,4 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.8.0")] +[assembly: AssemblyVersion("3.0.9.0")] diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj index bccd84cad..2e05ad690 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj +++ b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj @@ -277,14 +277,14 @@ <Private>True</Private> <HintPath>..\..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath> </Reference> - <Reference Include="Z.EntityFramework.Extensions, Version=4.0.50.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.EntityFramework.Extensions.4.0.50\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> + <Reference Include="Z.EntityFramework.Extensions, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.EntityFramework.Extensions.5.1.6\lib\net45\Z.EntityFramework.Extensions.dll</HintPath> </Reference> - <Reference Include="Z.EntityFramework.Plus.EF6, Version=1.12.13.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.1.12.13\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> + <Reference Include="Z.EntityFramework.Plus.EF6, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.5.1.6\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath> </Reference> - <Reference Include="Z.Expressions.Eval, Version=3.1.5.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Z.Expressions.Eval.3.1.5\lib\net45\Z.Expressions.Eval.dll</HintPath> + <Reference Include="Z.Expressions.Eval, Version=4.0.27.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Z.Expressions.Eval.4.0.27\lib\net45\Z.Expressions.Eval.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> @@ -505,7 +505,7 @@ <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> </FlavorProperties> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> diff --git a/Software/Visual_Studio/Web/Tango.MachineService/packages.config b/Software/Visual_Studio/Web/Tango.MachineService/packages.config index 599e31535..f2f83d078 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/packages.config +++ b/Software/Visual_Studio/Web/Tango.MachineService/packages.config @@ -44,7 +44,7 @@ <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" /> <package id="WebGrease" version="1.5.2" targetFramework="net45" /> - <package id="Z.EntityFramework.Extensions" version="4.0.50" targetFramework="net461" /> - <package id="Z.EntityFramework.Plus.EF6" version="1.12.13" targetFramework="net461" /> - <package id="Z.Expressions.Eval" version="3.1.5" targetFramework="net461" /> + <package id="Z.EntityFramework.Extensions" version="5.1.6" targetFramework="net461" /> + <package id="Z.EntityFramework.Plus.EF6" version="5.1.6" targetFramework="net461" /> + <package id="Z.Expressions.Eval" version="4.0.27" targetFramework="net461" /> </packages>
\ No newline at end of file |
