1
0
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:
Laurent Lalanne 2013-10-25 11:27:28 +02:00 committed by f5soh
commit 9e3d464523
44 changed files with 624 additions and 14582 deletions

View File

@ -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

View File

@ -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

Binary file not shown.

Binary file not shown.

View File

@ -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;

View File

@ -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,

View File

@ -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();

View File

@ -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
}

View File

@ -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));
}

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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");

View File

@ -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++) {

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 &ecirc;tre utilis&eacute;e. Cependant, la pr&eacute;cision de la position est tr&egrave;s faible (l'indication est &lt; &agrave; 7 satellites)
</p>
</body>
</html>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,13 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<h1>Stack: Critical</h1>
<p>
Stack overflow
</p>
</body>
</html>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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