mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
Merge remote-tracking branch 'origin/next' into thread/OP-989_Revo_AccelTau
This commit is contained in:
commit
d4a519aef1
@ -1,90 +1,77 @@
|
||||
<html>
|
||||
<style type="text/css" media="screen">
|
||||
body { background: #e3e3e3; font-family: Helvetica, Arial, "MS Trebuchet", sans-serif; font-size: 12px; line-height:1.5em; }
|
||||
pre { font-family: Helvetica, Arial, "MS Trebuchet", sans-serif; }
|
||||
</style>
|
||||
<body>
|
||||
<h3>This is a credits file of people that are or 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.</h3>
|
||||
|
||||
<p>This list is sorted alphabetically by name</p>
|
||||
|
||||
<pre>Connor Abbott
|
||||
David Ankers
|
||||
Sergiy Anikeyev
|
||||
Pedro Assuncao
|
||||
Fredrik Arvidsson
|
||||
Werner Backes
|
||||
Jose Barros
|
||||
Pete Boehl
|
||||
David Carlson
|
||||
James Cotton
|
||||
Steve Doll
|
||||
Piotr Esden-Tempski
|
||||
Richard Flay
|
||||
Peter Farnworth
|
||||
Ed Faulkner
|
||||
Darren Furniss
|
||||
Frederic Goddeeris
|
||||
Daniel Godin
|
||||
Bani Greyling
|
||||
Nuno Guedes
|
||||
Erik Gustavsson
|
||||
Peter Gunnarsson
|
||||
Dean Hall
|
||||
Joe Hlebasko
|
||||
Andy Honecker
|
||||
Ryan Hunt
|
||||
Mark James
|
||||
Sami Korhonen
|
||||
Thorsten Klose
|
||||
Hallvard Kristiansen
|
||||
Edouard Lafargue
|
||||
Mike Labranche
|
||||
Fredrik Larsson
|
||||
Pablo Lema
|
||||
David Llama
|
||||
Matt Lipski
|
||||
Les Newell
|
||||
Ken Northup
|
||||
Greg Matthews
|
||||
Guy McCaldin
|
||||
Gary Mortimer
|
||||
Alessio Morale
|
||||
Cathy Moss
|
||||
Angus Peart
|
||||
Dmytro Poplavskiy
|
||||
Eric Price
|
||||
Richard Querin
|
||||
Randy Ram
|
||||
Philippe Renon
|
||||
Laurent Ribon
|
||||
Mathieu Rondonneau
|
||||
Julien Rouviere
|
||||
Jackson Russell
|
||||
Zik Saleeba
|
||||
Professor Dale Schinstock
|
||||
Professor Kenn Sebesta
|
||||
Oleg Semyonov
|
||||
Stacey Sheldon
|
||||
Troy Schultz
|
||||
Dr. Erhard Siegl
|
||||
Mike Smith
|
||||
Alex Sowa
|
||||
Pete Stapley
|
||||
Vova Starikh
|
||||
Rowan Taubitz
|
||||
Andrew Thoms
|
||||
Philippe Vanhaesendonck
|
||||
Jasper van Loenen
|
||||
Vassilis Varveropoulos
|
||||
Kevin Vertucio
|
||||
Alex Vrubel
|
||||
Brian Webb
|
||||
Justin Welander
|
||||
Mat Wellington
|
||||
Kendal Wells
|
||||
David Willis
|
||||
Dmitriy Zaitsev
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
Connor Abbott
|
||||
David Ankers
|
||||
Sergiy Anikeyev
|
||||
Pedro Assuncao
|
||||
Fredrik Arvidsson
|
||||
Werner Backes
|
||||
Jose Barros
|
||||
Pete Boehl
|
||||
David Carlson
|
||||
James Cotton
|
||||
Steve Doll
|
||||
Piotr Esden-Tempski
|
||||
Richard Flay
|
||||
Peter Farnworth
|
||||
Ed Faulkner
|
||||
Darren Furniss
|
||||
Frederic Goddeeris
|
||||
Daniel Godin
|
||||
Bani Greyling
|
||||
Nuno Guedes
|
||||
Erik Gustavsson
|
||||
Peter Gunnarsson
|
||||
Dean Hall
|
||||
Joe Hlebasko
|
||||
Andy Honecker
|
||||
Ryan Hunt
|
||||
Mark James
|
||||
Sami Korhonen
|
||||
Thorsten Klose
|
||||
Hallvard Kristiansen
|
||||
Edouard Lafargue
|
||||
Mike Labranche
|
||||
Fredrik Larsson
|
||||
Pablo Lema
|
||||
David Llama
|
||||
Matt Lipski
|
||||
Les Newell
|
||||
Ken Northup
|
||||
Greg Matthews
|
||||
Guy McCaldin
|
||||
Gary Mortimer
|
||||
Alessio Morale
|
||||
Cathy Moss
|
||||
Angus Peart
|
||||
Dmytro Poplavskiy
|
||||
Eric Price
|
||||
Richard Querin
|
||||
Randy Ram
|
||||
Philippe Renon
|
||||
Laurent Ribon
|
||||
Mathieu Rondonneau
|
||||
Julien Rouviere
|
||||
Jackson Russell
|
||||
Zik Saleeba
|
||||
Professor Dale Schinstock
|
||||
Professor Kenn Sebesta
|
||||
Oleg Semyonov
|
||||
Stacey Sheldon
|
||||
Troy Schultz
|
||||
Dr. Erhard Siegl
|
||||
Mike Smith
|
||||
Alex Sowa
|
||||
Pete Stapley
|
||||
Vova Starikh
|
||||
Rowan Taubitz
|
||||
Andrew Thoms
|
||||
Philippe Vanhaesendonck
|
||||
Jasper van Loenen
|
||||
Vassilis Varveropoulos
|
||||
Kevin Vertucio
|
||||
Alex Vrubel
|
||||
Brian Webb
|
||||
Justin Welander
|
||||
Mat Wellington
|
||||
Kendal Wells
|
||||
David Willis
|
||||
Dmitriy Zaitsev
|
@ -139,7 +139,7 @@ int32_t ActuatorInitialize()
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(ActuatorInitialize, ActuatorStart)
|
||||
MODULE_INITCALL(ActuatorInitialize, ActuatorStart);
|
||||
|
||||
/**
|
||||
* @brief Main Actuator module task
|
||||
|
@ -124,7 +124,7 @@ int32_t AirspeedInitialize()
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(AirspeedInitialize, AirspeedStart)
|
||||
MODULE_INITCALL(AirspeedInitialize, AirspeedStart);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -122,7 +122,7 @@ int32_t AltitudeInitialize()
|
||||
HwSettingsCC_RcvrPortGet(&hwsettings_rcvrport);
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(AltitudeInitialize, AltitudeStart)
|
||||
MODULE_INITCALL(AltitudeInitialize, AltitudeStart);
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
|
@ -82,7 +82,7 @@ int32_t AltitudeInitialize()
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(AltitudeInitialize, AltitudeStart)
|
||||
MODULE_INITCALL(AltitudeInitialize, AltitudeStart);
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
|
@ -104,7 +104,7 @@ int32_t AltitudeHoldInitialize()
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(AltitudeHoldInitialize, AltitudeHoldStart)
|
||||
MODULE_INITCALL(AltitudeHoldInitialize, AltitudeHoldStart);
|
||||
|
||||
float tau;
|
||||
float throttleIntegral;
|
||||
|
@ -170,7 +170,7 @@ int32_t AttitudeInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(AttitudeInitialize, AttitudeStart)
|
||||
MODULE_INITCALL(AttitudeInitialize, AttitudeStart);
|
||||
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
|
@ -241,7 +241,7 @@ int32_t AttitudeStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(AttitudeInitialize, AttitudeStart)
|
||||
MODULE_INITCALL(AttitudeInitialize, AttitudeStart);
|
||||
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
|
@ -116,7 +116,7 @@ int32_t AutotuneStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(AutotuneInitialize, AutotuneStart)
|
||||
MODULE_INITCALL(AutotuneInitialize, AutotuneStart);
|
||||
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
|
@ -122,7 +122,7 @@ int32_t BatteryInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(BatteryInitialize, 0)
|
||||
MODULE_INITCALL(BatteryInitialize, 0);
|
||||
#define HAS_SENSOR(x) batterySettings.SensorType[x] == FLIGHTBATTERYSETTINGS_SENSORTYPE_ENABLED
|
||||
static void onTimer(__attribute__((unused)) UAVObjEvent *ev)
|
||||
{
|
||||
|
@ -142,7 +142,7 @@ int32_t CameraStabStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(CameraStabInitialize, CameraStabStart)
|
||||
MODULE_INITCALL(CameraStabInitialize, CameraStabStart);
|
||||
|
||||
static void attitudeUpdated(UAVObjEvent *ev)
|
||||
{
|
||||
|
@ -125,7 +125,7 @@ static int32_t comUsbBridgeInitialize(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(comUsbBridgeInitialize, comUsbBridgeStart)
|
||||
MODULE_INITCALL(comUsbBridgeInitialize, comUsbBridgeStart);
|
||||
|
||||
/**
|
||||
* Main task. It does not return.
|
||||
|
@ -59,4 +59,4 @@ void ExampleInitialize(void)
|
||||
{
|
||||
ExampleModEventInitialize();
|
||||
}
|
||||
MODULE_INITCALL(ExampleInitialize, ExampleStart)
|
||||
MODULE_INITCALL(ExampleInitialize, ExampleStart);
|
||||
|
@ -123,7 +123,7 @@ int32_t MagBaroInitialize()
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(MagBaroInitialize, MagBaroStart)
|
||||
MODULE_INITCALL(MagBaroInitialize, MagBaroStart);
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
|
@ -113,7 +113,7 @@ static int32_t fault_start(void)
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
MODULE_INITCALL(fault_initialize, fault_start)
|
||||
MODULE_INITCALL(fault_initialize, fault_start);
|
||||
|
||||
static void fault_task(__attribute__((unused)) void *parameters)
|
||||
{
|
||||
|
@ -86,7 +86,7 @@ static void resetTask(UAVObjEvent *);
|
||||
* \note
|
||||
*
|
||||
*/
|
||||
MODULE_INITCALL(FirmwareIAPInitialize, 0)
|
||||
MODULE_INITCALL(FirmwareIAPInitialize, 0);
|
||||
int32_t FirmwareIAPInitialize()
|
||||
{
|
||||
FirmwareIAPObjInitialize();
|
||||
|
@ -127,7 +127,7 @@ int32_t FixedWingPathFollowerInitialize()
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(FixedWingPathFollowerInitialize, FixedWingPathFollowerStart)
|
||||
MODULE_INITCALL(FixedWingPathFollowerInitialize, FixedWingPathFollowerStart);
|
||||
|
||||
static float northVelIntegral = 0;
|
||||
static float eastVelIntegral = 0;
|
||||
|
@ -93,7 +93,7 @@ int32_t FlightPlanInitialize()
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(FlightPlanInitialize, FlightPlanStart)
|
||||
MODULE_INITCALL(FlightPlanInitialize, FlightPlanStart);
|
||||
/**
|
||||
* Module task
|
||||
*/
|
||||
|
@ -190,7 +190,7 @@ int32_t GPSInitialize(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(GPSInitialize, GPSStart)
|
||||
MODULE_INITCALL(GPSInitialize, GPSStart);
|
||||
|
||||
// ****************
|
||||
/**
|
||||
|
@ -162,7 +162,7 @@ int32_t ManualControlInitialize()
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(ManualControlInitialize, ManualControlStart)
|
||||
MODULE_INITCALL(ManualControlInitialize, ManualControlStart);
|
||||
|
||||
/**
|
||||
* Module task
|
||||
|
@ -117,7 +117,7 @@ int32_t OPLinkModInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(OPLinkModInitialize, 0)
|
||||
MODULE_INITCALL(OPLinkModInitialize, 0);
|
||||
|
||||
/**
|
||||
* System task, periodically executes every SYSTEM_UPDATE_PERIOD_MS
|
||||
|
@ -68,7 +68,7 @@ int32_t WavPlayerInitialize(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(WavPlayerInitialize, WavPlayerStart)
|
||||
MODULE_INITCALL(WavPlayerInitialize, WavPlayerStart);
|
||||
|
||||
// ****************
|
||||
/**
|
||||
|
@ -2436,7 +2436,7 @@ int32_t osdgenInitialize(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(osdgenInitialize, osdgenStart)
|
||||
MODULE_INITCALL(osdgenInitialize, osdgenStart);
|
||||
|
||||
// ****************
|
||||
/**
|
||||
|
@ -107,7 +107,7 @@ int32_t osdinputInitialize(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(osdinputInitialize, osdinputStart)
|
||||
MODULE_INITCALL(osdinputInitialize, osdinputStart);
|
||||
|
||||
// ****************
|
||||
/**
|
||||
|
@ -286,7 +286,7 @@ static int32_t osdoutputInitialize(void)
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(osdoutputInitialize, osdoutputStart)
|
||||
MODULE_INITCALL(osdoutputInitialize, osdoutputStart);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
@ -136,7 +136,7 @@ int32_t OveroSyncStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(OveroSyncInitialize, OveroSyncStart)
|
||||
MODULE_INITCALL(OveroSyncInitialize, OveroSyncStart);
|
||||
|
||||
/**
|
||||
* Register a new object, adds object to local list and connects the queue depending on the object's
|
||||
|
@ -138,7 +138,7 @@ int32_t OveroSyncStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(OveroSyncInitialize, OveroSyncStart)
|
||||
MODULE_INITCALL(OveroSyncInitialize, OveroSyncStart);
|
||||
|
||||
/**
|
||||
* Register a new object, adds object to local list and connects the queue depending on the object's
|
||||
|
@ -111,7 +111,7 @@ int32_t PathPlannerInitialize()
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(PathPlannerInitialize, PathPlannerStart)
|
||||
MODULE_INITCALL(PathPlannerInitialize, PathPlannerStart);
|
||||
|
||||
/**
|
||||
* Module task
|
||||
|
@ -246,7 +246,7 @@ static int32_t RadioComBridgeInitialize(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(RadioComBridgeInitialize, RadioComBridgeStart)
|
||||
MODULE_INITCALL(RadioComBridgeInitialize, RadioComBridgeStart);
|
||||
|
||||
/**
|
||||
* Telemetry transmit task, regular priority
|
||||
|
@ -143,7 +143,7 @@ int32_t SensorsStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(SensorsInitialize, SensorsStart)
|
||||
MODULE_INITCALL(SensorsInitialize, SensorsStart);
|
||||
|
||||
int32_t accel_test;
|
||||
int32_t gyro_test;
|
||||
|
@ -138,7 +138,7 @@ int32_t SensorsStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(SensorsInitialize, SensorsStart)
|
||||
MODULE_INITCALL(SensorsInitialize, SensorsStart);
|
||||
|
||||
/**
|
||||
* Simulated sensor task. Run a model of the airframe and produce sensor values
|
||||
|
@ -138,7 +138,7 @@ int32_t StabilizationInitialize()
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(StabilizationInitialize, StabilizationStart)
|
||||
MODULE_INITCALL(StabilizationInitialize, StabilizationStart);
|
||||
|
||||
/**
|
||||
* Module task
|
||||
|
@ -154,7 +154,7 @@ int32_t SystemModInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(SystemModInitialize, 0)
|
||||
MODULE_INITCALL(SystemModInitialize, 0);
|
||||
/**
|
||||
* System task, periodically executes every SYSTEM_UPDATE_PERIOD_MS
|
||||
*/
|
||||
|
@ -148,7 +148,7 @@ int32_t TelemetryInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(TelemetryInitialize, TelemetryStart)
|
||||
MODULE_INITCALL(TelemetryInitialize, TelemetryStart);
|
||||
|
||||
/**
|
||||
* Register a new object, adds object to local list and connects the queue depending on the object's
|
||||
|
@ -138,7 +138,7 @@ int32_t TxPIDStart(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(TxPIDInitialize, TxPIDStart)
|
||||
MODULE_INITCALL(TxPIDInitialize, TxPIDStart);
|
||||
|
||||
/**
|
||||
* Update PIDs callback function
|
||||
|
@ -147,7 +147,7 @@ int32_t VtolPathFollowerInitialize()
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(VtolPathFollowerInitialize, VtolPathFollowerStart)
|
||||
MODULE_INITCALL(VtolPathFollowerInitialize, VtolPathFollowerStart);
|
||||
|
||||
static float northVelIntegral = 0;
|
||||
static float eastVelIntegral = 0;
|
||||
|
@ -86,8 +86,8 @@ extern void StartModules();
|
||||
__attribute__((__section__(".initcall" level ".init"))) = fn
|
||||
|
||||
#define __define_module_initcall(level, ifn, sfn) \
|
||||
static initmodule_t __initcall_##fn __attribute__((__used__)) \
|
||||
__attribute__((__section__(".initcall" level ".init"))) = { .fn_minit = ifn, .fn_tinit = sfn };
|
||||
static initmodule_t __initcall_##ifn __attribute__((__used__)) \
|
||||
__attribute__((__section__(".initcall" level ".init"))) = { .fn_minit = ifn, .fn_tinit = sfn }
|
||||
|
||||
#define MODULE_INITCALL(ifn, sfn) __define_module_initcall("module", ifn, sfn)
|
||||
|
||||
|
9
ground/.gitattributes
vendored
9
ground/.gitattributes
vendored
@ -3,6 +3,9 @@
|
||||
# http://wiki.openpilot.org/display/Doc/Coding+Style
|
||||
#
|
||||
|
||||
*.pri text eol=crlf
|
||||
*.pro text eol=crlf
|
||||
|
||||
*.c text eol=crlf
|
||||
*.cpp text eol=crlf
|
||||
*.h text eol=crlf
|
||||
@ -13,9 +16,9 @@
|
||||
*.qml text eol=crlf
|
||||
*.pluginspec text eol=crlf
|
||||
|
||||
*.pri text eol=crlf
|
||||
*.pro text eol=crlf
|
||||
|
||||
*.h.template text eol=crlf
|
||||
*.c.template text eol=crlf
|
||||
*.cpp.template text eol=crlf
|
||||
*.qml.template text eol=crlf
|
||||
|
||||
*.py text eol=lf
|
||||
|
@ -2,6 +2,7 @@ TEMPLATE = lib
|
||||
TARGET = VersionInfo
|
||||
|
||||
include(../../openpilotgcslibrary.pri)
|
||||
include(../../python.pri)
|
||||
|
||||
HEADERS = version_info.h
|
||||
SOURCES = version_info.cpp
|
||||
@ -13,31 +14,8 @@ SOURCES = version_info.cpp
|
||||
# the other dependencies evaluation.
|
||||
#
|
||||
|
||||
# We use python to extract git version info, but it may be installed locally.
|
||||
# This expected python version should be kept in sync with make/tools.mk.
|
||||
PYTHON_DIR = python-2.7.4
|
||||
|
||||
# Since debug_and_release option is set, we need this
|
||||
!debug_and_release|build_pass {
|
||||
|
||||
ROOT_DIR = $$GCS_SOURCE_TREE/../..
|
||||
|
||||
# Search the python using environment override first
|
||||
OPENPILOT_TOOLS_DIR = $$(OPENPILOT_TOOLS_DIR)
|
||||
!isEmpty(OPENPILOT_TOOLS_DIR):exists($$OPENPILOT_TOOLS_DIR/$$PYTHON_DIR/python*) {
|
||||
PYTHON = \"$$OPENPILOT_TOOLS_DIR/$$PYTHON_DIR/python\"
|
||||
} else {
|
||||
# If not found, search the predefined tools path
|
||||
exists($$ROOT_DIR/tools/$$PYTHON_DIR/python*) {
|
||||
PYTHON = \"$$ROOT_DIR/tools/$$PYTHON_DIR/python\"
|
||||
} else {
|
||||
# not found, hope it's in the path...
|
||||
PYTHON = \"python\"
|
||||
}
|
||||
}
|
||||
PYTHON = $$replace(PYTHON, \\\\, /)
|
||||
message(Using python interpreter: $$PYTHON)
|
||||
|
||||
# Define other variables
|
||||
VERSION_INFO_DIR = $$GCS_BUILD_TREE/../openpilotgcs-synthetics
|
||||
VERSION_INFO_SCRIPT = $$ROOT_DIR/make/scripts/version-info.py
|
||||
|
@ -1,41 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CREDITS Utility</title>
|
||||
<style>
|
||||
body { margin: 40px;}
|
||||
.hidden { display:none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Author Dialog authorModel Utility</h1>
|
||||
<p>This utility will parse a \n delimited list of names and generate ListElement components for entry into the QML model located in /qml/AuthorsModel.qml.</p>
|
||||
<div class="output"></div>
|
||||
<form onSubmit="javascript:handleForm($('.authors').val()); return false;">
|
||||
<textarea class="authors" rows="30"></textarea>
|
||||
<button type="submit" class="btn">Generate</button>
|
||||
</form>
|
||||
<script src="http://code.jquery.com/jquery-latest.js"></script>
|
||||
<script>
|
||||
function handleForm(str){
|
||||
console.log(str);
|
||||
|
||||
var lines = str.split(/\n/);
|
||||
var texts = [];
|
||||
$('<div class="alert-block alert-info"><strong>Instructions: </strong>Cut/Paste the ListElements below into /qml/AuthorsModel.qml</div><br>').appendTo('.output');
|
||||
for (var i=0; i < lines.length; i++) {
|
||||
// only push this line if it contains a non whitespace character.
|
||||
if (/\S/.test(lines[i])) {
|
||||
texts.push($.trim(lines[i]));
|
||||
}
|
||||
//Make string to append to output
|
||||
var listelement = '<p>ListElement { name: "' + texts[i] + '" }</p>';
|
||||
$(listelement).appendTo('.output');
|
||||
}
|
||||
$('button').detach();
|
||||
$('.authors').detach();
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html
|
41
ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.pri
Normal file
41
ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.pri
Normal file
@ -0,0 +1,41 @@
|
||||
include(../../python.pri)
|
||||
|
||||
#
|
||||
# This qmake code generates AuthorsModel.qml using CREDITS.txt.
|
||||
#
|
||||
# This is a bit tricky since the script should be run always and before
|
||||
# the other dependencies evaluation.
|
||||
#
|
||||
|
||||
# Since debug_and_release option is set, we need this
|
||||
!debug_and_release|build_pass {
|
||||
|
||||
# Define other variables
|
||||
AUTHORS_SCRIPT = $$GCS_SOURCE_TREE/src/plugins/coreplugin/authorsdialog.py
|
||||
AUTHORS_COMMAND = $$PYTHON \"$$AUTHORS_SCRIPT\"
|
||||
AUTHORS_SOURCE = $$ROOT_DIR/CREDITS.txt
|
||||
AUTHORS_TEMPLATE = $$GCS_SOURCE_TREE/src/plugins/coreplugin/qml/AuthorsModel.qml.template
|
||||
AUTHORS_DIR = $$GCS_BUILD_TREE/../openpilotgcs-synthetics
|
||||
AUTHORS_FILE = $$AUTHORS_DIR/AuthorsModel.qml
|
||||
|
||||
# Create custom authors target which generates a real file
|
||||
authors.target = $$AUTHORS_FILE
|
||||
authors.commands = -$(MKDIR) $$targetPath($$AUTHORS_DIR) $$addNewline()
|
||||
authors.commands += $$AUTHORS_COMMAND \
|
||||
--infile=\"$$AUTHORS_SOURCE\" \
|
||||
--template=\"$$AUTHORS_TEMPLATE\" \
|
||||
--outfile=\"$$AUTHORS_FILE\"
|
||||
authors.depends = $$AUTHORS_SOURCE
|
||||
QMAKE_EXTRA_TARGETS += authors
|
||||
|
||||
# Hook authors target in between qmake's Makefile update and
|
||||
# the actual project target
|
||||
authors_hook.depends = authors
|
||||
debug_and_release {
|
||||
CONFIG(debug,debug|release):authors_hook.target = Makefile.Debug
|
||||
CONFIG(release,debug|release):authors_hook.target = Makefile.Release
|
||||
} else {
|
||||
authors_hook.target = Makefile
|
||||
}
|
||||
QMAKE_EXTRA_TARGETS += authors_hook
|
||||
}
|
54
ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.py
Normal file
54
ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.py
Normal file
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Helper function to generate a QML list of contributors
|
||||
#
|
||||
# (c) 2013, The OpenPilot Team, http://www.openpilot.org
|
||||
# See also: The GNU Public License (GPL) Version 3
|
||||
#
|
||||
|
||||
import optparse
|
||||
import sys
|
||||
|
||||
def create_qml_file(args):
|
||||
"""This function reads input and template files and writes output QML file"""
|
||||
|
||||
assert args.infile is not None
|
||||
assert args.outfile is not None
|
||||
assert args.template is not None
|
||||
|
||||
with open(args.infile, "rt") as input_file:
|
||||
names = input_file.readlines()
|
||||
|
||||
names_list = ""
|
||||
for name in names:
|
||||
if name.strip():
|
||||
names_list += " ListElement { name: \"" + name.strip() + "\" }\r\n"
|
||||
|
||||
with open(args.template, "rb") as template_file:
|
||||
template = template_file.read()
|
||||
|
||||
with open(args.outfile, "wb") as output_file:
|
||||
output_file.write(template.replace("${LIST_ELEMENTS}", names_list.rstrip()))
|
||||
|
||||
return 0
|
||||
|
||||
def main():
|
||||
"""Helper function to generate a QML list of contributors"""
|
||||
|
||||
parser = optparse.OptionParser(description = main.__doc__);
|
||||
|
||||
parser.add_option('--infile', action='store',
|
||||
help='name of input file, one name per line');
|
||||
parser.add_option('--outfile', action='store',
|
||||
help='name of output QML file');
|
||||
parser.add_option('--template', action='store',
|
||||
help='name of QML template file');
|
||||
(args, positional_args) = parser.parse_args()
|
||||
|
||||
if (len(positional_args) != 0) or (len(sys.argv) == 1):
|
||||
parser.error("incorrect number of arguments, try --help for help")
|
||||
|
||||
return create_qml_file(args)
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
@ -1,71 +1,70 @@
|
||||
<RCC>
|
||||
<qresource prefix="/core">
|
||||
<file>images/openpilot_logo_256.png</file>
|
||||
<file>images/openpilot_logo_128.png</file>
|
||||
<file>images/openpilot_logo_64.png</file>
|
||||
<file>images/openpilot_logo_32.png</file>
|
||||
<file>images/clean_pane_small.png</file>
|
||||
<file>images/clear.png</file>
|
||||
<file>images/closebutton.png</file>
|
||||
<file>images/dir.png</file>
|
||||
<file>images/editcopy.png</file>
|
||||
<file>images/editcut.png</file>
|
||||
<file>images/editpaste.png</file>
|
||||
<file>images/empty14.png</file>
|
||||
<file>images/filenew.png</file>
|
||||
<file>images/fileopen.png</file>
|
||||
<file>images/filesave.png</file>
|
||||
<file>images/find.png</file>
|
||||
<file>images/findnext.png</file>
|
||||
<file>images/inputfield.png</file>
|
||||
<file>images/inputfield_disabled.png</file>
|
||||
<file>images/linkicon.png</file>
|
||||
<file>images/locked.png</file>
|
||||
<file>images/magnifier.png</file>
|
||||
<file>images/minus.png</file>
|
||||
<file>images/next.png</file>
|
||||
<file>images/panel_button.png</file>
|
||||
<file>images/panel_button_checked.png</file>
|
||||
<file>images/panel_button_checked_hover.png</file>
|
||||
<file>images/panel_button_hover.png</file>
|
||||
<file>images/panel_button_pressed.png</file>
|
||||
<file>images/plus.png</file>
|
||||
<file>images/prev.png</file>
|
||||
<file>images/pushbutton.png</file>
|
||||
<file>images/pushbutton_hover.png</file>
|
||||
<file>images/pushbutton_pressed.png</file>
|
||||
<file>images/redo.png</file>
|
||||
<file>images/replace.png</file>
|
||||
<file>images/reset.png</file>
|
||||
<file>images/sidebaricon.png</file>
|
||||
<file>images/splitbutton_horizontal.png</file>
|
||||
<file>images/statusbar.png</file>
|
||||
<file>images/undo.png</file>
|
||||
<file>images/unknownfile.png</file>
|
||||
<file>images/unlocked.png</file>
|
||||
<file>images/extension.png</file>
|
||||
<file>images/darkclosebutton.png</file>
|
||||
<file>images/pluginicon.png</file>
|
||||
<file>images/exiticon.png</file>
|
||||
<file>images/optionsicon.png</file>
|
||||
<file>images/helpicon.png</file>
|
||||
<file>images/openpiloticon.png</file>
|
||||
<file>CREDITS.html</file>
|
||||
<file>images/ah.png</file>
|
||||
<file>images/config.png</file>
|
||||
<file>images/flight.png</file>
|
||||
<file>images/home.png</file>
|
||||
<file>images/joystick.png</file>
|
||||
<file>images/scopes.png</file>
|
||||
<file>images/world.png</file>
|
||||
<file>images/cog.png</file>
|
||||
<file>images/helpicon.svg</file>
|
||||
<file>images/cpu.png</file>
|
||||
<file>images/tx-rx.svg</file>
|
||||
<file>qml/images/tab.png</file>
|
||||
<file>qml/AboutDialog.qml</file>
|
||||
<file>qml/AuthorsModel.qml</file>
|
||||
<file>qml/ScrollDecorator.qml</file>
|
||||
<file>qml/TabWidget.qml</file>
|
||||
<file>images/openpilot_logo_256.png</file>
|
||||
<file>images/openpilot_logo_128.png</file>
|
||||
<file>images/openpilot_logo_64.png</file>
|
||||
<file>images/openpilot_logo_32.png</file>
|
||||
<file>images/clean_pane_small.png</file>
|
||||
<file>images/clear.png</file>
|
||||
<file>images/closebutton.png</file>
|
||||
<file>images/dir.png</file>
|
||||
<file>images/editcopy.png</file>
|
||||
<file>images/editcut.png</file>
|
||||
<file>images/editpaste.png</file>
|
||||
<file>images/empty14.png</file>
|
||||
<file>images/filenew.png</file>
|
||||
<file>images/fileopen.png</file>
|
||||
<file>images/filesave.png</file>
|
||||
<file>images/find.png</file>
|
||||
<file>images/findnext.png</file>
|
||||
<file>images/inputfield.png</file>
|
||||
<file>images/inputfield_disabled.png</file>
|
||||
<file>images/linkicon.png</file>
|
||||
<file>images/locked.png</file>
|
||||
<file>images/magnifier.png</file>
|
||||
<file>images/minus.png</file>
|
||||
<file>images/next.png</file>
|
||||
<file>images/panel_button.png</file>
|
||||
<file>images/panel_button_checked.png</file>
|
||||
<file>images/panel_button_checked_hover.png</file>
|
||||
<file>images/panel_button_hover.png</file>
|
||||
<file>images/panel_button_pressed.png</file>
|
||||
<file>images/plus.png</file>
|
||||
<file>images/prev.png</file>
|
||||
<file>images/pushbutton.png</file>
|
||||
<file>images/pushbutton_hover.png</file>
|
||||
<file>images/pushbutton_pressed.png</file>
|
||||
<file>images/redo.png</file>
|
||||
<file>images/replace.png</file>
|
||||
<file>images/reset.png</file>
|
||||
<file>images/sidebaricon.png</file>
|
||||
<file>images/splitbutton_horizontal.png</file>
|
||||
<file>images/statusbar.png</file>
|
||||
<file>images/undo.png</file>
|
||||
<file>images/unknownfile.png</file>
|
||||
<file>images/unlocked.png</file>
|
||||
<file>images/extension.png</file>
|
||||
<file>images/darkclosebutton.png</file>
|
||||
<file>images/pluginicon.png</file>
|
||||
<file>images/exiticon.png</file>
|
||||
<file>images/optionsicon.png</file>
|
||||
<file>images/helpicon.png</file>
|
||||
<file>images/openpiloticon.png</file>
|
||||
<file>images/ah.png</file>
|
||||
<file>images/config.png</file>
|
||||
<file>images/flight.png</file>
|
||||
<file>images/home.png</file>
|
||||
<file>images/joystick.png</file>
|
||||
<file>images/scopes.png</file>
|
||||
<file>images/world.png</file>
|
||||
<file>images/cog.png</file>
|
||||
<file>images/helpicon.svg</file>
|
||||
<file>images/cpu.png</file>
|
||||
<file>images/tx-rx.svg</file>
|
||||
<file>qml/images/tab.png</file>
|
||||
<file>qml/ScrollDecorator.qml</file>
|
||||
<file>qml/TabWidget.qml</file>
|
||||
<file>qml/AboutDialog.qml</file>
|
||||
<file alias="qml/AuthorsModel.qml">../../../../../build/openpilotgcs-synthetics/AuthorsModel.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -14,6 +14,7 @@ include(../../libs/utils/utils.pri)
|
||||
include(../../libs/version_info/version_info.pri)
|
||||
include(../../shared/scriptwrapper/scriptwrapper.pri)
|
||||
include(coreplugin_dependencies.pri)
|
||||
include(authorsdialog.pri)
|
||||
|
||||
INCLUDEPATH += dialogs \
|
||||
uavgadgetmanager \
|
||||
|
@ -1,165 +0,0 @@
|
||||
/*
|
||||
This list model was created for the AuthorsDialog.
|
||||
*/
|
||||
import QtQuick 1.1
|
||||
|
||||
ListModel {
|
||||
|
||||
ListElement{ name:"Connor Abbott" }
|
||||
|
||||
ListElement{ name:"David Ankers" }
|
||||
|
||||
ListElement{ name:"Sergiy Anikeyev" }
|
||||
|
||||
ListElement{ name:"Pedro Assuncao" }
|
||||
|
||||
ListElement{ name:"Fredrik Arvidsson" }
|
||||
|
||||
ListElement{ name:"Werner Backes" }
|
||||
|
||||
ListElement{ name:"Jose Barros" }
|
||||
|
||||
ListElement{ name:"Pete Boehl" }
|
||||
|
||||
ListElement{ name:"David Carlson" }
|
||||
|
||||
ListElement{ name:"James Cotton" }
|
||||
|
||||
ListElement{ name:"Steve Doll" }
|
||||
|
||||
ListElement{ name:"Piotr Esden-Tempski" }
|
||||
|
||||
ListElement{ name:"Richard Flay" }
|
||||
|
||||
ListElement{ name:"Peter Farnworth" }
|
||||
|
||||
ListElement{ name:"Ed Faulkner" }
|
||||
|
||||
ListElement{ name:"Darren Furniss" }
|
||||
|
||||
ListElement{ name:"Frederic Goddeeris" }
|
||||
|
||||
ListElement{ name:"Daniel Godin" }
|
||||
|
||||
ListElement{ name:"Bani Greyling" }
|
||||
|
||||
ListElement{ name:"Nuno Guedes" }
|
||||
|
||||
ListElement{ name:"Erik Gustavsson" }
|
||||
|
||||
ListElement{ name:"Peter Gunnarsson" }
|
||||
|
||||
ListElement{ name:"Dean Hall" }
|
||||
|
||||
ListElement{ name:"Joe Hlebasko" }
|
||||
|
||||
ListElement{ name:"Andy Honecker" }
|
||||
|
||||
ListElement{ name:"Ryan Hunt" }
|
||||
|
||||
ListElement{ name:"Mark James" }
|
||||
|
||||
ListElement{ name:"Sami Korhonen" }
|
||||
|
||||
ListElement{ name:"Thorsten Klose" }
|
||||
|
||||
ListElement{ name:"Rick King" }
|
||||
|
||||
ListElement{ name:"Hallvard Kristiansen" }
|
||||
|
||||
ListElement{ name:"Edouard Lafargue" }
|
||||
|
||||
ListElement{ name:"Mike Labranche" }
|
||||
|
||||
ListElement{ name:"Fredrik Larsson" }
|
||||
|
||||
ListElement{ name:"Pablo Lema" }
|
||||
|
||||
ListElement{ name:"David Llama" }
|
||||
|
||||
ListElement{ name:"Matt Lipski" }
|
||||
|
||||
ListElement{ name:"Les Newell" }
|
||||
|
||||
ListElement{ name:"Ken Northup" }
|
||||
|
||||
ListElement{ name:"Greg Matthews" }
|
||||
|
||||
ListElement{ name:"Guy McCaldin" }
|
||||
|
||||
ListElement{ name:"Gary Mortimer" }
|
||||
|
||||
ListElement{ name:"Alessio Morale" }
|
||||
|
||||
ListElement{ name:"Cathy Moss" }
|
||||
|
||||
ListElement{ name:"Angus Peart" }
|
||||
|
||||
ListElement{ name:"John Pike" }
|
||||
|
||||
ListElement{ name:"Dmytro Poplavskiy" }
|
||||
|
||||
ListElement{ name:"Eric Price" }
|
||||
|
||||
ListElement{ name:"Richard Querin" }
|
||||
|
||||
ListElement{ name:"Randy Ram" }
|
||||
|
||||
ListElement{ name:"Philippe Renon" }
|
||||
|
||||
ListElement{ name:"Laurent Ribon" }
|
||||
|
||||
ListElement{ name:"Mathieu Rondonneau" }
|
||||
|
||||
ListElement{ name:"Julien Rouviere" }
|
||||
|
||||
ListElement{ name:"Jackson Russell" }
|
||||
|
||||
ListElement{ name:"Zik Saleeba" }
|
||||
|
||||
ListElement{ name:"Professor Dale Schinstock" }
|
||||
|
||||
ListElement{ name:"Professor Kenn Sebesta" }
|
||||
|
||||
ListElement{ name:"Oleg Semyonov" }
|
||||
|
||||
ListElement{ name:"Stacey Sheldon" }
|
||||
|
||||
ListElement{ name:"Troy Schultz" }
|
||||
|
||||
ListElement{ name:"Dr. Erhard Siegl" }
|
||||
|
||||
ListElement{ name:"Mike Smith" }
|
||||
|
||||
ListElement{ name:"Alex Sowa" }
|
||||
|
||||
ListElement{ name:"Pete Stapley" }
|
||||
|
||||
ListElement{ name:"Vova Starikh" }
|
||||
|
||||
ListElement{ name:"Rowan Taubitz" }
|
||||
|
||||
ListElement{ name:"Andrew Thoms" }
|
||||
|
||||
ListElement{ name:"Philippe Vanhaesendonck" }
|
||||
|
||||
ListElement{ name:"Jasper van Loenen" }
|
||||
|
||||
ListElement{ name:"Vassilis Varveropoulos" }
|
||||
|
||||
ListElement{ name:"Kevin Vertucio" }
|
||||
|
||||
ListElement{ name:"Alex Vrubel" }
|
||||
|
||||
ListElement{ name:"Brian Webb" }
|
||||
|
||||
ListElement{ name:"Justin Welander" }
|
||||
|
||||
ListElement{ name:"Mat Wellington" }
|
||||
|
||||
ListElement{ name:"Kendal Wells" }
|
||||
|
||||
ListElement { name: "David Willis" }
|
||||
|
||||
ListElement{ name:"Dmitriy Zaitsev" }
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/*
|
||||
This list model was created for the AuthorsDialog.
|
||||
*/
|
||||
import QtQuick 1.1
|
||||
|
||||
ListModel {
|
||||
${LIST_ELEMENTS}
|
||||
}
|
23
ground/openpilotgcs/src/python.pri
Normal file
23
ground/openpilotgcs/src/python.pri
Normal file
@ -0,0 +1,23 @@
|
||||
# We use python to extract git version info and generate some other files,
|
||||
# but it may be installed locally. The expected python version should be
|
||||
# kept in sync with make/tools.mk.
|
||||
PYTHON_DIR = python-2.7.4
|
||||
|
||||
ROOT_DIR = $$GCS_SOURCE_TREE/../..
|
||||
|
||||
# Search the python using environment override first
|
||||
OPENPILOT_TOOLS_DIR = $$(OPENPILOT_TOOLS_DIR)
|
||||
!isEmpty(OPENPILOT_TOOLS_DIR):exists($$OPENPILOT_TOOLS_DIR/$$PYTHON_DIR/python*) {
|
||||
PYTHON = \"$$OPENPILOT_TOOLS_DIR/$$PYTHON_DIR/python\"
|
||||
} else {
|
||||
# If not found, search the predefined tools path
|
||||
exists($$ROOT_DIR/tools/$$PYTHON_DIR/python*) {
|
||||
PYTHON = \"$$ROOT_DIR/tools/$$PYTHON_DIR/python\"
|
||||
} else {
|
||||
# not found, hope it's in the path...
|
||||
PYTHON = \"python\"
|
||||
}
|
||||
}
|
||||
|
||||
PYTHON = $$replace(PYTHON, \\\\, /)
|
||||
message(Using python interpreter: $$PYTHON)
|
@ -81,7 +81,7 @@ endif
|
||||
|
||||
GTEST_URL := http://wiki.openpilot.org/download/attachments/18612236/gtest-1.6.0.zip
|
||||
|
||||
# Changing PYTHON_DIR, also update it in ground\openpilotgcs\src\app\gcsversioninfo.pri
|
||||
# Changing PYTHON_DIR, also update it in ground/openpilotgcs/src/python.pri
|
||||
ARM_SDK_DIR := $(TOOLS_DIR)/gcc-arm-none-eabi-4_7-2013q1
|
||||
QT_SDK_DIR := $(TOOLS_DIR)/qt-4.8.4
|
||||
MINGW_DIR := $(TOOLS_DIR)/mingw-4.4.0
|
||||
|
Loading…
Reference in New Issue
Block a user