mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
Merge branch 'master' into translations_next
Conflicts: ground/openpilotgcs/copydata.pro ground/openpilotgcs/share/openpilotgcs/translations/openpilotgcs_fr.ts
This commit is contained in:
commit
9e3d464523
19
WHATSNEW.txt
19
WHATSNEW.txt
@ -1,3 +1,22 @@
|
||||
--- RELEASE-13.06.04 ---
|
||||
This maintenance release includes the following fixes missing in (previously not released to public) RELEASE-13.06.03.
|
||||
- Fixed issues with Google Maps;
|
||||
- Includes new signed version of CDC drivers for Windows platforms;
|
||||
|
||||
JIRA issues addressed in this maintenance release:
|
||||
OP-1044, OP-1070, OP-1072
|
||||
Use the following link for a comprehensive list of issues addressed by this release
|
||||
http://progress.openpilot.org/browse/OP-1070
|
||||
|
||||
--- RELEASE-13.06.03 ---
|
||||
|
||||
This maintenance release addresses the following issues:
|
||||
- Fixed CC3D attitude estimation failure after multiple settings changes and reboots.
|
||||
- Fixed OPLink crashes when erasing settings
|
||||
|
||||
JIRA issues addressed in this maintenance release:
|
||||
OP-1049, OP-1050
|
||||
|
||||
--- RELEASE-13.06.02 ---
|
||||
|
||||
Refactoring of OPLink radio driver. Auto-configuration was removed, and a
|
||||
|
@ -3,7 +3,9 @@ Signature = "$Windows NT$"
|
||||
Class = Ports
|
||||
ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318}
|
||||
Provider = %ProviderName%
|
||||
DriverVer = 10/15/2009,1.0.0.0
|
||||
DriverVer=02/22/2013,2.0.0.0
|
||||
CatalogFile.NTx86 = OpenPilot-CDC_x86.cat
|
||||
CatalogFile.NTamd64 = OpenPilot-CDC_amd64.cat
|
||||
|
||||
[MANUFACTURER]
|
||||
%ProviderName% = DeviceList, NTx86, NTamd64
|
||||
|
BIN
flight/Project/Windows USB/openpilot-cdc_amd64.cat
Normal file
BIN
flight/Project/Windows USB/openpilot-cdc_amd64.cat
Normal file
Binary file not shown.
BIN
flight/Project/Windows USB/openpilot-cdc_x86.cat
Normal file
BIN
flight/Project/Windows USB/openpilot-cdc_x86.cat
Normal file
Binary file not shown.
@ -64,7 +64,13 @@ static void PIOS_MPU6000_Config(struct pios_mpu6000_cfg const *cfg);
|
||||
static int32_t PIOS_MPU6000_SetReg(uint8_t address, uint8_t buffer);
|
||||
static int32_t PIOS_MPU6000_GetReg(uint8_t address);
|
||||
|
||||
#define GRAV 9.81f
|
||||
#define GRAV 9.81f
|
||||
|
||||
#ifdef PIOS_MPU6000_ACCEL
|
||||
#define PIOS_MPU6000_SAMPLES_BYTES 14
|
||||
#else
|
||||
#define PIOS_MPU6000_SAMPLES_BYTES 8
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Allocate a new device
|
||||
@ -489,6 +495,62 @@ int32_t PIOS_MPU6000_Test(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Reads the contents of the MPU6000 Interrupt Status register from an ISR
|
||||
* @return The register value or -1 on failure to claim the bus
|
||||
*/
|
||||
static int32_t PIOS_MPU6000_GetInterruptStatusRegISR(bool *woken)
|
||||
{
|
||||
/* Interrupt Status register can be read at high SPI clock speed */
|
||||
uint8_t data;
|
||||
|
||||
if (PIOS_MPU6000_ClaimBusISR(woken) != 0) {
|
||||
return -1;
|
||||
}
|
||||
PIOS_SPI_TransferByte(dev->spi_id, (0x80 | PIOS_MPU6000_INT_STATUS_REG));
|
||||
data = PIOS_SPI_TransferByte(dev->spi_id, 0);
|
||||
PIOS_MPU6000_ReleaseBusISR(woken);
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Resets the MPU6000 FIFO from an ISR
|
||||
* @param woken[in,out] If non-NULL, will be set to true if woken was false and a higher priority
|
||||
* task has is now eligible to run, else unchanged
|
||||
* @return 0 if operation was successful
|
||||
* @return -1 if unable to claim SPI bus
|
||||
* @return -2 if write to the device failed
|
||||
*/
|
||||
static int32_t PIOS_MPU6000_ResetFifoISR(bool *woken)
|
||||
{
|
||||
int32_t result = 0;
|
||||
|
||||
/* Register writes must be at < 1MHz SPI clock.
|
||||
* Speed can only be changed when SPI bus semaphore is held, but
|
||||
* device chip select must not be enabled, so we use the direct
|
||||
* SPI bus claim call here */
|
||||
if (PIOS_SPI_ClaimBusISR(dev->spi_id, woken) != 0) {
|
||||
return -1;
|
||||
}
|
||||
/* Reduce SPI clock speed. */
|
||||
PIOS_SPI_SetClockSpeed(dev->spi_id, PIOS_SPI_PRESCALER_256);
|
||||
/* Enable chip select */
|
||||
PIOS_SPI_RC_PinSet(dev->spi_id, dev->slave_num, 0);
|
||||
/* Reset FIFO. */
|
||||
if (PIOS_SPI_TransferByte(dev->spi_id, 0x7f & PIOS_MPU6000_USER_CTRL_REG) != 0) {
|
||||
result = -2;
|
||||
} else if (PIOS_SPI_TransferByte(dev->spi_id, (dev->cfg->User_ctl | PIOS_MPU6000_USERCTL_FIFO_RST)) != 0) {
|
||||
result = -2;
|
||||
}
|
||||
/* Disable chip select. */
|
||||
PIOS_SPI_RC_PinSet(dev->spi_id, dev->slave_num, 1);
|
||||
/* Increase SPI clock speed. */
|
||||
PIOS_SPI_SetClockSpeed(dev->spi_id, PIOS_SPI_PRESCALER_16);
|
||||
/* Release the SPI bus semaphore. */
|
||||
PIOS_SPI_ReleaseBusISR(dev->spi_id, woken);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Obtains the number of bytes in the FIFO. Call from ISR only.
|
||||
* @return the number of bytes in the FIFO
|
||||
@ -542,8 +604,29 @@ bool PIOS_MPU6000_IRQHandler(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Temporary fix for OP-1049. Expected to be superceded for next major release
|
||||
* by code changes for OP-1039.
|
||||
* Read interrupt status register to check for FIFO overflow. Must be the
|
||||
* first read after interrupt, in case the device is configured so that
|
||||
* any read clears in the status register (PIOS_MPU6000_INT_CLR_ANYRD set in
|
||||
* interrupt config register) */
|
||||
int32_t result;
|
||||
if ((result = PIOS_MPU6000_GetInterruptStatusRegISR(&woken)) < 0) {
|
||||
return woken;
|
||||
}
|
||||
if (result & PIOS_MPU6000_INT_STATUS_FIFO_OVERFLOW) {
|
||||
/* The FIFO has overflowed, so reset it,
|
||||
* to enable sample sync to be recovered.
|
||||
* If the reset fails, we are in trouble, but
|
||||
* we keep trying on subsequent interrupts. */
|
||||
PIOS_MPU6000_ResetFifoISR(&woken);
|
||||
/* Return and wait for the next new sample. */
|
||||
return woken;
|
||||
}
|
||||
|
||||
/* Usual case - FIFO has not overflowed. */
|
||||
mpu6000_count = PIOS_MPU6000_FifoDepthISR(&woken);
|
||||
if (mpu6000_count < (int32_t)sizeof(struct pios_mpu6000_data)) {
|
||||
if (mpu6000_count < PIOS_MPU6000_SAMPLES_BYTES) {
|
||||
return woken;
|
||||
}
|
||||
|
||||
@ -551,8 +634,8 @@ bool PIOS_MPU6000_IRQHandler(void)
|
||||
return woken;
|
||||
}
|
||||
|
||||
static uint8_t mpu6000_send_buf[1 + sizeof(struct pios_mpu6000_data)] = { PIOS_MPU6000_FIFO_REG | 0x80, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
static uint8_t mpu6000_rec_buf[1 + sizeof(struct pios_mpu6000_data)];
|
||||
static uint8_t mpu6000_send_buf[1 + PIOS_MPU6000_SAMPLES_BYTES] = { PIOS_MPU6000_FIFO_REG | 0x80 };
|
||||
static uint8_t mpu6000_rec_buf[1 + PIOS_MPU6000_SAMPLES_BYTES];
|
||||
|
||||
if (PIOS_SPI_TransferBlock(dev->spi_id, &mpu6000_send_buf[0], &mpu6000_rec_buf[0], sizeof(mpu6000_send_buf), NULL) < 0) {
|
||||
PIOS_MPU6000_ReleaseBusISR(&woken);
|
||||
@ -565,7 +648,7 @@ bool PIOS_MPU6000_IRQHandler(void)
|
||||
static struct pios_mpu6000_data data;
|
||||
|
||||
// In the case where extras samples backed up grabbed an extra
|
||||
if (mpu6000_count >= (int32_t)(sizeof(data) * 2)) {
|
||||
if (mpu6000_count >= PIOS_MPU6000_SAMPLES_BYTES * 2) {
|
||||
mpu6000_fifo_backup++;
|
||||
if (PIOS_MPU6000_ClaimBusISR(&woken) != 0) {
|
||||
return woken;
|
||||
|
@ -33,71 +33,72 @@
|
||||
#define PIOS_MPU6000_H
|
||||
|
||||
/* MPU6000 Addresses */
|
||||
#define PIOS_MPU6000_SMPLRT_DIV_REG 0X19
|
||||
#define PIOS_MPU6000_DLPF_CFG_REG 0X1A
|
||||
#define PIOS_MPU6000_GYRO_CFG_REG 0X1B
|
||||
#define PIOS_MPU6000_ACCEL_CFG_REG 0X1C
|
||||
#define PIOS_MPU6000_FIFO_EN_REG 0x23
|
||||
#define PIOS_MPU6000_INT_CFG_REG 0x37
|
||||
#define PIOS_MPU6000_INT_EN_REG 0x38
|
||||
#define PIOS_MPU6000_INT_STATUS_REG 0x3A
|
||||
#define PIOS_MPU6000_ACCEL_X_OUT_MSB 0x3B
|
||||
#define PIOS_MPU6000_ACCEL_X_OUT_LSB 0x3C
|
||||
#define PIOS_MPU6000_ACCEL_Y_OUT_MSB 0x3D
|
||||
#define PIOS_MPU6000_ACCEL_Y_OUT_LSB 0x3E
|
||||
#define PIOS_MPU6000_ACCEL_Z_OUT_MSB 0x3F
|
||||
#define PIOS_MPU6000_ACCEL_Z_OUT_LSB 0x40
|
||||
#define PIOS_MPU6000_TEMP_OUT_MSB 0x41
|
||||
#define PIOS_MPU6000_TEMP_OUT_LSB 0x42
|
||||
#define PIOS_MPU6000_GYRO_X_OUT_MSB 0x43
|
||||
#define PIOS_MPU6000_GYRO_X_OUT_LSB 0x44
|
||||
#define PIOS_MPU6000_GYRO_Y_OUT_MSB 0x45
|
||||
#define PIOS_MPU6000_GYRO_Y_OUT_LSB 0x46
|
||||
#define PIOS_MPU6000_GYRO_Z_OUT_MSB 0x47
|
||||
#define PIOS_MPU6000_GYRO_Z_OUT_LSB 0x48
|
||||
#define PIOS_MPU6000_USER_CTRL_REG 0x6A
|
||||
#define PIOS_MPU6000_PWR_MGMT_REG 0x6B
|
||||
#define PIOS_MPU6000_FIFO_CNT_MSB 0x72
|
||||
#define PIOS_MPU6000_FIFO_CNT_LSB 0x73
|
||||
#define PIOS_MPU6000_FIFO_REG 0x74
|
||||
#define PIOS_MPU6000_WHOAMI 0x75
|
||||
#define PIOS_MPU6000_SMPLRT_DIV_REG 0X19
|
||||
#define PIOS_MPU6000_DLPF_CFG_REG 0X1A
|
||||
#define PIOS_MPU6000_GYRO_CFG_REG 0X1B
|
||||
#define PIOS_MPU6000_ACCEL_CFG_REG 0X1C
|
||||
#define PIOS_MPU6000_FIFO_EN_REG 0x23
|
||||
#define PIOS_MPU6000_INT_CFG_REG 0x37
|
||||
#define PIOS_MPU6000_INT_EN_REG 0x38
|
||||
#define PIOS_MPU6000_INT_STATUS_REG 0x3A
|
||||
#define PIOS_MPU6000_ACCEL_X_OUT_MSB 0x3B
|
||||
#define PIOS_MPU6000_ACCEL_X_OUT_LSB 0x3C
|
||||
#define PIOS_MPU6000_ACCEL_Y_OUT_MSB 0x3D
|
||||
#define PIOS_MPU6000_ACCEL_Y_OUT_LSB 0x3E
|
||||
#define PIOS_MPU6000_ACCEL_Z_OUT_MSB 0x3F
|
||||
#define PIOS_MPU6000_ACCEL_Z_OUT_LSB 0x40
|
||||
#define PIOS_MPU6000_TEMP_OUT_MSB 0x41
|
||||
#define PIOS_MPU6000_TEMP_OUT_LSB 0x42
|
||||
#define PIOS_MPU6000_GYRO_X_OUT_MSB 0x43
|
||||
#define PIOS_MPU6000_GYRO_X_OUT_LSB 0x44
|
||||
#define PIOS_MPU6000_GYRO_Y_OUT_MSB 0x45
|
||||
#define PIOS_MPU6000_GYRO_Y_OUT_LSB 0x46
|
||||
#define PIOS_MPU6000_GYRO_Z_OUT_MSB 0x47
|
||||
#define PIOS_MPU6000_GYRO_Z_OUT_LSB 0x48
|
||||
#define PIOS_MPU6000_USER_CTRL_REG 0x6A
|
||||
#define PIOS_MPU6000_PWR_MGMT_REG 0x6B
|
||||
#define PIOS_MPU6000_FIFO_CNT_MSB 0x72
|
||||
#define PIOS_MPU6000_FIFO_CNT_LSB 0x73
|
||||
#define PIOS_MPU6000_FIFO_REG 0x74
|
||||
#define PIOS_MPU6000_WHOAMI 0x75
|
||||
|
||||
/* FIFO enable for storing different values */
|
||||
#define PIOS_MPU6000_FIFO_TEMP_OUT 0x80
|
||||
#define PIOS_MPU6000_FIFO_GYRO_X_OUT 0x40
|
||||
#define PIOS_MPU6000_FIFO_GYRO_Y_OUT 0x20
|
||||
#define PIOS_MPU6000_FIFO_GYRO_Z_OUT 0x10
|
||||
#define PIOS_MPU6000_ACCEL_OUT 0x08
|
||||
#define PIOS_MPU6000_FIFO_TEMP_OUT 0x80
|
||||
#define PIOS_MPU6000_FIFO_GYRO_X_OUT 0x40
|
||||
#define PIOS_MPU6000_FIFO_GYRO_Y_OUT 0x20
|
||||
#define PIOS_MPU6000_FIFO_GYRO_Z_OUT 0x10
|
||||
#define PIOS_MPU6000_ACCEL_OUT 0x08
|
||||
|
||||
/* Interrupt Configuration */
|
||||
#define PIOS_MPU6000_INT_ACTL 0x80
|
||||
#define PIOS_MPU6000_INT_OPEN 0x40
|
||||
#define PIOS_MPU6000_INT_LATCH_EN 0x20
|
||||
#define PIOS_MPU6000_INT_CLR_ANYRD 0x10
|
||||
#define PIOS_MPU6000_INT_ACTL 0x80
|
||||
#define PIOS_MPU6000_INT_OPEN 0x40
|
||||
#define PIOS_MPU6000_INT_LATCH_EN 0x20
|
||||
#define PIOS_MPU6000_INT_CLR_ANYRD 0x10
|
||||
|
||||
#define PIOS_MPU6000_INTEN_OVERFLOW 0x10
|
||||
#define PIOS_MPU6000_INTEN_DATA_RDY 0x01
|
||||
#define PIOS_MPU6000_INTEN_OVERFLOW 0x10
|
||||
#define PIOS_MPU6000_INTEN_DATA_RDY 0x01
|
||||
|
||||
/* Interrupt status */
|
||||
#define PIOS_MPU6000_INT_STATUS_FIFO_FULL 0x80
|
||||
#define PIOS_MPU6000_INT_STATUS_IMU_RDY 0X04
|
||||
#define PIOS_MPU6000_INT_STATUS_DATA_RDY 0X01
|
||||
#define PIOS_MPU6000_INT_STATUS_FIFO_FULL 0x80
|
||||
#define PIOS_MPU6000_INT_STATUS_FIFO_OVERFLOW 0x10
|
||||
#define PIOS_MPU6000_INT_STATUS_IMU_RDY 0X04
|
||||
#define PIOS_MPU6000_INT_STATUS_DATA_RDY 0X01
|
||||
|
||||
/* User control functionality */
|
||||
#define PIOS_MPU6000_USERCTL_FIFO_EN 0X40
|
||||
#define PIOS_MPU6000_USERCTL_I2C_MST_EN 0x20
|
||||
#define PIOS_MPU6000_USERCTL_DIS_I2C 0X10
|
||||
#define PIOS_MPU6000_USERCTL_FIFO_RST 0X04
|
||||
#define PIOS_MPU6000_USERCTL_SIG_COND 0X02
|
||||
#define PIOS_MPU6000_USERCTL_GYRO_RST 0X01
|
||||
#define PIOS_MPU6000_USERCTL_FIFO_EN 0X40
|
||||
#define PIOS_MPU6000_USERCTL_I2C_MST_EN 0x20
|
||||
#define PIOS_MPU6000_USERCTL_DIS_I2C 0X10
|
||||
#define PIOS_MPU6000_USERCTL_FIFO_RST 0X04
|
||||
#define PIOS_MPU6000_USERCTL_SIG_COND 0X02
|
||||
#define PIOS_MPU6000_USERCTL_GYRO_RST 0X01
|
||||
|
||||
/* Power management and clock selection */
|
||||
#define PIOS_MPU6000_PWRMGMT_IMU_RST 0X80
|
||||
#define PIOS_MPU6000_PWRMGMT_INTERN_CLK 0X00
|
||||
#define PIOS_MPU6000_PWRMGMT_PLL_X_CLK 0X01
|
||||
#define PIOS_MPU6000_PWRMGMT_PLL_Y_CLK 0X02
|
||||
#define PIOS_MPU6000_PWRMGMT_PLL_Z_CLK 0X03
|
||||
#define PIOS_MPU6000_PWRMGMT_STOP_CLK 0X07
|
||||
#define PIOS_MPU6000_PWRMGMT_IMU_RST 0X80
|
||||
#define PIOS_MPU6000_PWRMGMT_INTERN_CLK 0X00
|
||||
#define PIOS_MPU6000_PWRMGMT_PLL_X_CLK 0X01
|
||||
#define PIOS_MPU6000_PWRMGMT_PLL_Y_CLK 0X02
|
||||
#define PIOS_MPU6000_PWRMGMT_PLL_Z_CLK 0X03
|
||||
#define PIOS_MPU6000_PWRMGMT_STOP_CLK 0X07
|
||||
|
||||
enum pios_mpu6000_range {
|
||||
PIOS_MPU6000_SCALE_250_DEG = 0x00,
|
||||
|
@ -124,6 +124,10 @@ void PIOS_Board_Init(void)
|
||||
PIOS_RTC_Init(&pios_rtc_main_cfg);
|
||||
#endif /* PIOS_INCLUDE_RTC */
|
||||
|
||||
#if defined(PIOS_INCLUDE_LED)
|
||||
PIOS_LED_Init(&pios_led_cfg);
|
||||
#endif /* PIOS_INCLUDE_LED */
|
||||
|
||||
/* IAP System Setup */
|
||||
PIOS_IAP_Init();
|
||||
// check for safe mode commands from gcs
|
||||
@ -141,10 +145,6 @@ void PIOS_Board_Init(void)
|
||||
OPLinkStatusInitialize();
|
||||
#endif /* PIOS_INCLUDE_RFM22B */
|
||||
|
||||
#if defined(PIOS_INCLUDE_LED)
|
||||
PIOS_LED_Init(&pios_led_cfg);
|
||||
#endif /* PIOS_INCLUDE_LED */
|
||||
|
||||
/* Initialize the delayed callback library */
|
||||
CallbackSchedulerInitialize();
|
||||
|
||||
|
@ -67,12 +67,54 @@ equals(copydata, 1) {
|
||||
data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_PLUGINS]/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline()
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
# copy MinGW DLLs
|
||||
MINGW_DLLS = SDL.dll
|
||||
for(dll, MINGW_DLLS) {
|
||||
data_copy.commands += $(COPY_FILE) $$targetPath(\"$$(QTMINGW)/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline()
|
||||
}
|
||||
|
||||
=======
|
||||
# copy imageformats
|
||||
QT_IMAGEFORMAT_DLLS = qgif4.dll qico4.dll qjpeg4.dll qmng4.dll qsvg4.dll qtiff4.dll
|
||||
data_copy.commands += -@$(MKDIR) $$targetPath(\"$$GCS_APP_PATH/imageformats\") $$addNewline()
|
||||
for(dll, QT_IMAGEFORMAT_DLLS) {
|
||||
data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_PLUGINS]/imageformats/$$dll\") $$targetPath(\"$$GCS_APP_PATH/imageformats/$$dll\") $$addNewline()
|
||||
}
|
||||
|
||||
# copy phonon_backend
|
||||
QT_PHONON_BACKEND_DLLS = phonon_ds94.dll
|
||||
data_copy.commands += -@$(MKDIR) $$targetPath(\"$$GCS_APP_PATH/phonon_backend\") $$addNewline()
|
||||
for(dll, QT_PHONON_BACKEND_DLLS) {
|
||||
data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_PLUGINS]/phonon_backend/$$dll\") $$targetPath(\"$$GCS_APP_PATH/phonon_backend/$$dll\") $$addNewline()
|
||||
}
|
||||
|
||||
# copy sqldrivers
|
||||
QT_SQLDRIVERS_DLLS = qsqlite4.dll
|
||||
data_copy.commands += -@$(MKDIR) $$targetPath(\"$$GCS_APP_PATH/sqldrivers\") $$addNewline()
|
||||
for(dll, QT_SQLDRIVERS_DLLS) {
|
||||
data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_PLUGINS]/sqldrivers/$$dll\") $$targetPath(\"$$GCS_APP_PATH/sqldrivers/$$dll\") $$addNewline()
|
||||
}
|
||||
|
||||
# copy SDL - Simple DirectMedia Layer (www.libsdl.org)
|
||||
# Check the wiki for SDL installation, it should be copied first
|
||||
# (make sure that the Qt installation path below is correct)
|
||||
#
|
||||
# - For qt-sdk-win-opensource-2010.05.exe:
|
||||
# xcopy /s /e <SDL>\bin\SDL.dll C:\Qt\2010.05\mingw\bin\SDL.dll
|
||||
# xcopy /s /e <SDL>\include\SDL\* C:\Qt\2010.05\mingw\include\SDL
|
||||
# xcopy /s /e <SDL>\lib\* C:\Qt\2010.05\mingw\lib
|
||||
#
|
||||
# - For Qt_SDK_Win_offline_v1_1_1_en.exe:
|
||||
# xcopy /s /e <SDL>\bin\SDL.dll C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\SDL.dll
|
||||
# xcopy /s /e <SDL>\include\SDL\* C:\QtSDK\Desktop\Qt\4.7.3\mingw\include\SDL
|
||||
# xcopy /s /e <SDL>\lib\* C:\QtSDK\Desktop\Qt\4.7.3\mingw\lib
|
||||
3PARTYDLL_DLLS = SDL.dll ssleay32.dll libeay32.dll
|
||||
for(dll, 3PARTYDLL_DLLS) {
|
||||
data_copy.commands += $(COPY_FILE) $$targetPath(\"$$(QTMINGW)/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline()
|
||||
}
|
||||
|
||||
>>>>>>> master
|
||||
data_copy.target = FORCE
|
||||
QMAKE_EXTRA_TARGETS += data_copy
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -46,9 +46,9 @@ void MapRipForm::SetPercentage(const int &perc)
|
||||
}
|
||||
void MapRipForm::SetProvider(const QString &prov, const int &zoom)
|
||||
{
|
||||
ui->mainlabel->setText(QString("Currently ripping from:%1 at Zoom level %2").arg(prov).arg(zoom));
|
||||
ui->mainlabel->setText(QString(tr("Currently ripping from:%1 at Zoom level %2")).arg(prov).arg(zoom));
|
||||
}
|
||||
void MapRipForm::SetNumberOfTiles(const int &total, const int &actual)
|
||||
{
|
||||
ui->statuslabel->setText(QString("Downloading tile %1 of %2").arg(actual).arg(total));
|
||||
ui->statuslabel->setText(QString(tr("Downloading tile %1 of %2")).arg(actual).arg(total));
|
||||
}
|
||||
|
@ -46,9 +46,9 @@ MapRipper::MapRipper(internals::Core *core, const internals::RectLatLng & rect)
|
||||
emit numberOfTilesChanged(0, 0);
|
||||
} else
|
||||
#ifdef Q_OS_DARWIN
|
||||
{ QMessageBox::information(new QWidget(), "No valid selection", "This pre-caches map data.\n\nPlease first select the area of the map to rip with <COMMAND>+Left mouse click"); }
|
||||
{ QMessageBox::information(new QWidget(), tr("No valid selection"), tr("This pre-caches map data.\n\nPlease first select the area of the map to rip with <COMMAND>+Left mouse click")); }
|
||||
#else
|
||||
{ QMessageBox::information(new QWidget(), "No valid selection", "This pre-caches map data.\n\nPlease first select the area of the map to rip with <CTRL>+Left mouse click"); }
|
||||
{ QMessageBox::information(new QWidget(), tr("No valid selection"), tr("This pre-caches map data.\n\nPlease first select the area of the map to rip with <CTRL>+Left mouse click")); }
|
||||
#endif
|
||||
}
|
||||
void MapRipper::finish()
|
||||
@ -58,7 +58,7 @@ void MapRipper::finish()
|
||||
int ret;
|
||||
if (!yesToAll) {
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText(QString("Continue Ripping at zoom level %1?").arg(zoom));
|
||||
msgBox.setText(QString(tr("Continue Ripping at zoom level %1?")).arg(zoom));
|
||||
// msgBox.setInformativeText("Do you want to save your changes?");
|
||||
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::YesAll);
|
||||
msgBox.setDefaultButton(QMessageBox::Yes);
|
||||
|
@ -37,7 +37,8 @@ HEADERS += configplugin.h \
|
||||
config_global.h \
|
||||
mixercurve.h \
|
||||
dblspindelegate.h \
|
||||
configrevohwwidget.h
|
||||
configrevohwwidget.h \
|
||||
configautotunewidget.h
|
||||
|
||||
SOURCES += configplugin.cpp \
|
||||
configgadgetwidget.cpp \
|
||||
@ -70,7 +71,8 @@ SOURCES += configplugin.cpp \
|
||||
outputchannelform.cpp \
|
||||
mixercurve.cpp \
|
||||
dblspindelegate.cpp \
|
||||
configrevohwwidget.cpp
|
||||
configrevohwwidget.cpp \
|
||||
configautotunewidget.cpp
|
||||
|
||||
FORMS += airframe.ui \
|
||||
airframe_ccpm.ui \
|
||||
@ -92,6 +94,7 @@ FORMS += airframe.ui \
|
||||
txpid.ui \
|
||||
pipxtreme.ui \
|
||||
mixercurve.ui \
|
||||
configrevohwwidget.ui
|
||||
configrevohwwidget.ui \
|
||||
autotune.ui
|
||||
|
||||
RESOURCES += configgadget.qrc
|
||||
|
@ -49,7 +49,7 @@
|
||||
width: 640; height: 480
|
||||
// This tab is for the GCS version information
|
||||
Rectangle {
|
||||
property string title: "OpenPilot GCS"
|
||||
property string title: qsTr("OpenPilot GCS")
|
||||
anchors.fill: parent
|
||||
color: "#e3e3e3"
|
||||
|
||||
@ -79,14 +79,14 @@
|
||||
}
|
||||
// This tab is for the authors/contributors/credits
|
||||
Rectangle {
|
||||
property string title: "Contributors"
|
||||
property string title: qsTr("Contributors")
|
||||
anchors.fill: parent; color: "#e3e3e3"
|
||||
Rectangle {
|
||||
anchors.fill: parent; anchors.margins: 20
|
||||
color: "#e3e3e3"
|
||||
Text {
|
||||
id: description
|
||||
text: "<h4>These people have been key contributors to the OpenPilot project. Without the work of the people in this list, OpenPilot would not be what it is today.</h4><p>This list is sorted alphabetically by name</p>"
|
||||
text: qsTr("<h4>These people have been key contributors to the OpenPilot project. Without the work of the people in this list, OpenPilot would not be what it is today.</h4><p>This list is sorted alphabetically by name</p>")
|
||||
width: 600
|
||||
wrapMode: Text.WordWrap
|
||||
|
||||
|
@ -318,7 +318,7 @@ bool LoggingPlugin::initialize(const QStringList & args, QString *errMsg)
|
||||
QList<int>() <<
|
||||
Core::Constants::C_GLOBAL_ID);
|
||||
cmd->setDefaultKeySequence(QKeySequence("Ctrl+L"));
|
||||
cmd->action()->setText("Start logging...");
|
||||
cmd->action()->setText(tr("Start logging..."));
|
||||
|
||||
ac->menu()->addSeparator();
|
||||
ac->appendGroup("Logging");
|
||||
|
@ -412,7 +412,7 @@ void OPMapGadgetWidget::contextMenuEvent(QContextMenuEvent *event)
|
||||
contextMenu.addAction(changeDefaultLocalAndZoom);
|
||||
contextMenu.addSeparator();
|
||||
|
||||
QMenu safeArea("Safety Area definitions");
|
||||
QMenu safeArea(tr("Safety Area definitions"));
|
||||
// menu.addAction(showSafeAreaAct);
|
||||
QMenu safeAreaSubMenu(tr("Safe Area Radius") + " (" + QString::number(m_map->Home->SafeArea()) + "m)", this);
|
||||
for (int i = 0; i < safeAreaAct.count(); i++) {
|
||||
|
@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Sortie Servo : Critique</h1>
|
||||
<p>
|
||||
Une des conditions suivantes est peut-être présente :
|
||||
<ul>
|
||||
<li>Le système est en mode failsafe.</li>
|
||||
<li>La mise à jour d'une ou plusieurs sorties servo à échoué.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Alarme : OK</h1>
|
||||
<p>
|
||||
Il n'y a aucun problème avec cette alarme.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Attitude : Critique</h1>
|
||||
<p>
|
||||
Cette alarme reste activée jusqu'à ce que des données soient reçues de l'accéléromètre.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Attitude : Erreur</h1>
|
||||
<p>
|
||||
Echec de la récupération d'une mise à jour des accéléromètres ou des gyros.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Batterie : Critique</h1>
|
||||
<p>
|
||||
La tension batterie a chuté en dessous du seuil d'<b>alarme</b>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Batterie : Erreur</h1>
|
||||
<p>
|
||||
La tension et le courant de batterie sont inférieurs ou égaux à zéro.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Batterie : Avertissement</h1>
|
||||
<p>
|
||||
La tension batterie a chuté en dessous du seuil d'<b>avertissement</b>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Défaut Boot : Critique</h1>
|
||||
<p>
|
||||
Le boot du système a échoué plus de trois fois : les paramètres système par défaut ont été appliqués.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>CPU: Critique</h1>
|
||||
<p>
|
||||
La charge processeur a dépassé 95%
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>CPU : Avertissement</h1>
|
||||
<p>
|
||||
La charge processeur a dépassé 80%
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Event System: Warning</h1>
|
||||
<p>
|
||||
There were problems with UAVObject events or callbacks
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Temps de Vol : Critique</h1>
|
||||
<p>
|
||||
L'estimation du temps de vol basée sur l'utilisation de la batterie est inférieure à 30s.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Temps de Vol : Erreur</h1>
|
||||
<p>
|
||||
L'estimation du temps de vol ne peut être déterminée car la tension et le courant batterie sont inférieurs ou égaux à 0.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Temps de Vol : Avertissement</h1>
|
||||
<p>
|
||||
Le temps de vol estimé en fonction de l'utilisation de la batterie est inférieur à 60s.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>GPS : Critique</h1>
|
||||
<p>
|
||||
Le GPS reçoit des données mais il n'y a pas de fix de position.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>GPS : Erreur</h1>
|
||||
<p>
|
||||
Le GPS a expiré ; soit il n'y a pas de GPS branché, le GPS est masqué ou il y a une autre erreur matérielle.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>GPS: Avertissement</h1>
|
||||
<p>
|
||||
Le GPS a un fix et la navigation peut être utilisée. Cependant, la précision de la position est très faible (l'indication est < à 7 satellites)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Guidance : Avertissement</h1>
|
||||
<p>
|
||||
Dépassement de temps dans l'attente d'une mise à jour de l'attitude.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,24 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Entrées RC : Critique</h1>
|
||||
<p>
|
||||
Une des conditions suivantes est peut-être présente :
|
||||
<ul>
|
||||
<li>
|
||||
<p>Un ou plusieurs des types de canaux d'entrée RC ne sont pas renseignés.</p>
|
||||
<p>Dans la page configuration GCS, soyez certain que toutes les entrées ont le Type d'indiqué.</p>
|
||||
</li>
|
||||
<li>Une ou plusieurs associations de canaux d'entrée RC ne sont pas valides.</li>
|
||||
<li>Le driver n'est pas initialisé pour un ou plusieurs canaux d'entrée RC.</li>
|
||||
<li>Le mode de vol actuel n'est pas défini : ceci indique un bug dans le code.</li>
|
||||
<li>Current flight mode set to guidance but flight status flight mode is reported as something other than altitude hold.</li>
|
||||
<li>Durant la mise à jour du mode de stabilisation désiré, la position de vol est indiquée comme étant autre chose que stabilisé 1, 2 ou 3.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Entrées RC : Avertissement</h1>
|
||||
<p>
|
||||
Une des conditions suivantes semble présente :
|
||||
<ul>
|
||||
<li>Le système est en mode failsafe.</li>
|
||||
<li>Echec de la mise à jour d'un ou plusieurs des canaux d'accessoires.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Mémoire : Critique</h1>
|
||||
<p>
|
||||
Either the remaining heap space or the IRQ stack has fallen below the <b>critical</b> limit (1000 bytes heap, 80 entries IRQ stack).
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,16 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Mémoire : Avertissement</h1>
|
||||
<p>
|
||||
Either the remaining heap space or the IRQ stack has fallen below the <b>warning</b> limit (4000 bytes heap, 150 entries IRQ stack).
|
||||
</p>
|
||||
<p>
|
||||
<b>Note:</b> if this is an original CC board (not CC3D or Revo), this condition is normal.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Capteurs : Critique</h1>
|
||||
<p>
|
||||
Une des conditions suivantes est peut-être présente :
|
||||
<ul>
|
||||
<li>Un des tests d'accéléromètre, gyro ou magnétomètre a échoué.</li>
|
||||
<li>Délai d'attente des données d'accéléromètre ou gyro dépassé.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Stabilisation: Avertissement</h1>
|
||||
<p>
|
||||
Délai d'attente d'une mise à jour de l'attitude dépassé.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Stack: Critical</h1>
|
||||
<p>
|
||||
Stack overflow
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="">
|
||||
<style></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Télémétrie : Erreur</h1>
|
||||
<p>
|
||||
Le système de Télémétrie est déconnecté.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -27,4 +27,33 @@
|
||||
<file>html/Stack-Critical.html</file>
|
||||
<file>html/Telemetry-Error.html</file>
|
||||
</qresource>
|
||||
<qresource prefix="/systemhealth" lang="fr">
|
||||
<file alias="html/Actuator-Critical.html">html/fr/Actuator-Critical.html</file>
|
||||
<file alias="html/ManualControl-Critical.html">html/fr/ManualControl-Critical.html</file>
|
||||
<file alias="html/ManualControl-Warning.html">html/fr/ManualControl-Warning.html</file>
|
||||
<file alias="html/CPU-Critical.html">html/fr/CPU-Critical.html</file>
|
||||
<file alias="html/CPU-Warning.html">html/fr/CPU-Warning.html</file>
|
||||
<file alias="html/FlightTime-Error.html">html/fr/FlightTime-Error.html</file>
|
||||
<file alias="html/Battery-Warning.html">html/fr/Battery-Warning.html</file>
|
||||
<file alias="html/BootFault-Critical.html">html/fr/BootFault-Critical.html</file>
|
||||
<file alias="html/EventSystem-Warning.html">html/fr/EventSystem-Warning.html</file>
|
||||
<file alias="html/FlightTime-Critical.html">html/fr/FlightTime-Critical.html</file>
|
||||
<file alias="html/AlarmOK.html">html/fr/AlarmOK.html</file>
|
||||
<file alias="html/Attitude-Critical.html">html/fr/Attitude-Critical.html</file>
|
||||
<file alias="html/Attitude-Error.html">html/fr/Attitude-Error.html</file>
|
||||
<file alias="html/Battery-Critical.html">html/fr/Battery-Critical.html</file>
|
||||
<file alias="html/Battery-Error.html">html/fr/Battery-Error.html</file>
|
||||
<file alias="html/FlightTime-Warning.html">html/fr/FlightTime-Warning.html</file>
|
||||
<file alias="html/GPS-Critical.html">html/fr/GPS-Critical.html</file>
|
||||
<file alias="html/GPS-Error.html">html/fr/GPS-Error.html</file>
|
||||
<file alias="html/GPS-Warning.html">html/fr/GPS-Warning.html</file>
|
||||
<file alias="html/Guidance-Warning.html">html/fr/Guidance-Warning.html</file>
|
||||
<file alias="html/Memory-Critical.html">html/fr/Memory-Critical.html</file>
|
||||
<file alias="html/Memory-Warning.html">html/fr/Memory-Warning.html</file>
|
||||
<file alias="html/Sensors-Critical.html">html/fr/Sensors-Critical.html</file>
|
||||
<file alias="html/Stabilization-Warning.html">html/fr/Stabilization-Warning.html</file>
|
||||
<file alias="html/Stack-Critical.html">html/fr/Stack-Critical.html</file>
|
||||
<file alias="html/Telemetry-Error.html">html/fr/Telemetry-Error.html</file>
|
||||
</qresource>
|
||||
|
||||
</RCC>
|
||||
|
@ -27,7 +27,7 @@ OpenPilot.
|
||||
------------------
|
||||
Fortunately, it requires only few small text files since all others components
|
||||
should already be installed on your system as parts of msysGit, QtSDK and
|
||||
CodeSourcery G++ packages required to build the OpenPilot.
|
||||
Arm compiler packages required to build the OpenPilot.
|
||||
|
||||
It is expected that you have the following tools installed into the listed
|
||||
locations (but any other locations are fine as well):
|
||||
@ -39,8 +39,8 @@ locations (but any other locations are fine as well):
|
||||
- Unicode NSIS in %ProgramFiles%\NSIS\Unicode
|
||||
- OpenOCD in C:\OpenOCD\0.4.0\bin (optional)
|
||||
|
||||
The SDL library and headers should be installed into Qt directories to build
|
||||
the GCS. Check the wiki or ground/openpilotgcs/copydata.pro for details.
|
||||
The SDL and SSL libraries and headers should be installed into Qt directories to
|
||||
build the GCS. Check the wiki or ground/openpilotgcs/copydata.pro for details.
|
||||
|
||||
Also it is assumed that you have the C:\Program Files\Git\cmd\ directory in
|
||||
the PATH. Usually this is the case for msysGit installation if you have chosen
|
||||
|
@ -238,7 +238,7 @@ SectionEnd
|
||||
; Copy driver files
|
||||
Section "-Drivers" InSecDrivers
|
||||
SetOutPath "$INSTDIR\drivers"
|
||||
File "${PROJECT_ROOT}\flight\Project\Windows USB\OpenPilot-CDC.inf"
|
||||
File /r "${PROJECT_ROOT}\flight\Project\Windows USB\*"
|
||||
SectionEnd
|
||||
|
||||
; Preinstall OpenPilot CDC driver
|
||||
|
Loading…
Reference in New Issue
Block a user