1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-19 09:54:15 +01:00

RELEASE-13.06 Italian Stallion

This commit is contained in:
Oleg Semyonov 2013-06-22 14:29:21 +03:00
commit f0dcb73bf9
5666 changed files with 1062535 additions and 471449 deletions

34
.gitattributes vendored Normal file
View File

@ -0,0 +1,34 @@
#
# Line endings normalization: http://wiki.openpilot.org/display/Doc/Coding+Style
# You need at least git 1.7.2 for this to work (previous versions ignore text and eol attributes).
#
# To merge your old branch with new normalized version use the following git option:
# git merge ... -X renormalize
#
# To reformat your local branch completely make sure you have committed all local changes first.
# Then use the following bash commands:
#
# Minimal normalization:
# git rm --cached -r .
# git reset --hard
# git add .
# git commit -m "Normalize line endings"
#
# Or full normalization (don't do that on Windows, it breaks file modes):
# git rm --cached -r .
# git diff --cached --name-only -z | xargs -0 git add
# git commit -m "Normalize line endings"
# git ls-files -z | xargs -0 rm
# git checkout .
#
# Set default behaviour (do not convert line endings regardless of local git core settings)
* -text
# All *.txt files in the root should be Windows-readable (CRLF)
/*.txt text eol=crlf
# Root Makefile has LF line endings
/Makefile text eol=lf
# More attributes are defined in per-directory .gitattributes which override this file

112
.gitignore vendored
View File

@ -1,85 +1,65 @@
# Exclude temporary and system files
.DS_Store
# Ignore artifacts of top-level Makefile
/downloads
/tools
/build
# /flight/
# Exclude temporary and system files
Thumbs.db
.DS_Store
GPATH
GRTAGS
GSYMS
GTAGS
# flight
/flight/*.pnproj
/flight/*.pnps
/flight/.cproject
/flight/.metadata
/flight/.project
/flight/.settings
/flight/Build
# /flight/AHRS/
/flight/AHRS/Build
# /flight/Bootloaders/OpenPilot.old/
/flight/Bootloaders/OpenPilot.old/Build
# /flight/OpenPilot/
/flight/OpenPilot/Build
/flight/OpenPilot/Build.win32
#flight/Project/OpenPilotOSX
flight/Project/OpenPilotOSX/build
# /flight/PipBee/
/flight/PipBee/Build
# /ground/
/ground/Build
/ground/openpilotgcs/share/openpilotgcs/models/Easystar/Thumbs.db
/ground/openpilotgcs/share/openpilotgcs/sounds/normalize.exe
/ground/openpilotgcs/share/openpilotgcs/sounds/default/normalize.exe
/ground/openpilotgcs/share/openpilotgcs/translations/extract-mimetypes.xq
/ground/openpilotgcs/src/experimental/OPMapWidget/core/header.h
/ground/openpilotgcs/src/experimental/tools/DocumentationHelper/ui_mainwindow.h
/ground/openpilotgcs/src/libs/qextserialport/.hg
/ground/openpilotgcs/src/libs/qextserialport/.hgtags
/ground/openpilotgcs/src/libs/qwt/qwt.prf
/ground/openpilotgcs/src/libs/qwt/designer
/ground/openpilotgcs/src/plugins/ipconnection/ui_ipconnectionoptionspage.h
# Ignore artifacts of top-level Makefile
/downloads
/tools
/build
/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/*.mode1v3
/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/*.pbxuser
# ground
openpilotgcs-build-desktop
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/*.mode1v3
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/*.pbxuser
# Ignore some of the .pro.user files
ground/openpilotgcs/openpilotgcs.pro.user
ground/uavobjgenerator/uavobjgenerator.pro.user
ground/uavobjects/uavobjects.pro.user
ground/ground.pro.user
/ground/openpilotgcs/openpilotgcs.pro.user
/ground/uavobjgenerator/uavobjgenerator.pro.user
/ground/uavobjects/uavobjects.pro.user
/ground/ground.pro.user
GPATH
GRTAGS
GSYMS
GTAGS
plane
quad
# Misc artifacts
/ground/openpilotgcs/share/openpilotgcs/sounds/normalize.exe
/ground/openpilotgcs/share/openpilotgcs/sounds/default/normalize.exe
/ground/openpilotgcs/share/openpilotgcs/translations/extract-mimetypes.xq
/ground/openpilotgcs/src/experimental/tools/DocumentationHelper/ui_mainwindow.h
/ground/openpilotgcs/src/libs/qextserialport/.hg
/ground/openpilotgcs/src/libs/qextserialport/.hgtags
/ground/openpilotgcs/src/libs/qwt/qwt.prf
/ground/openpilotgcs/src/libs/qwt/designer
/ground/openpilotgcs/src/plugins/ipconnection/ui_ipconnectionoptionspage.h
# Ignore intermediate files generated by command-line android builds
# Couldn't figure out how to force these files into the ./build directory
androidgcs/build.xml
androidgcs/local.properties
androidgcs/proguard-project.txt
/androidgcs/build.xml
/androidgcs/local.properties
/androidgcs/proguard-project.txt
# Ignore build output from Eclipse android builds
androidgcs/bin/
androidgcs/gen/
/androidgcs/bin/
/androidgcs/gen/
# Ignore Eclipse Projects and Metadata
/.cproject
/.project
/.metadata
# Ignore Eclipse temp folder, git plugin based?
RemoteSystemsTempFiles
# Ignore patch-related files
*.rej
*.orig
*.diff~

2
.gitmodules vendored
View File

@ -1,3 +1,3 @@
[submodule "overo"]
path = overo
url = git@github.com:peabody124/op_overo.git
url = gitolite@git.openpilot.org:op_overo.git

View File

@ -1,205 +1,83 @@
This is a credits file of people that are or have been key contributors to the OpenPilot code base in this Git repository.
Without the work of the people in this file and many that are not who help the community, OpenPilot would not be what it is today.
It is sorted alphabetically by name and formatted so that it allows for easy grepping and beautification by scripts.
The fields are:
Name (N)
Description of work (D)
Current maintainer function (M)
----------
N: Connor Abbott
D: Win32 OpenPilot port
N: David Ankers
D: Co-founder, Project Coordination
D: Minor GCS infrastructure, updating the credit file
M: Admin
N: Sergiy Anikeyev
D: Improvments to Camera Gimbal control
N: Pedro Assuncao
D: Initial GCS Settings Gadget work
N: Fredrik Arvidsson
D: GCS Setup Wizard
M: GCS Setup Wizard
N: Werner Backes
D: Port of CopterControl to PS3 Move Controller (MoveCopter)
N: Jose Barros
D: Next-Gen OP Map Lib, Y-Modem Library, Uploader Plugin
D: OP Bootloader, AHRS Bootloader, OPUploadTool and much else
M: Bootloader, OP MAP Lib
N: David "Buzz" Carlson
D: 3D ModelView GCS Plugin, sponsor of HITL merge work and XPlane addition
N: James Cotton
D: Multiplatform HID implementation (firmware & GCS), GCS Joystick control
D: Posix OpenPilot work and Mac implementation
D: Firmware implementation of Professor Schinstock's INS/GPS
D: Android GCS and much else
M: Architecture co-lead, Android GCS Lead
N: Steve Doll
D: Much Artwork, Logo rework, Welcome page design
N: Piotr Esden-Tempski
D: Floss-JTAG Rev A, 4-layer initial design
N: Richard Flay
D: Multiple fixes / Review guru
N: Darren Furniss
D: GCS Artwork and Android GCS Artwork
N: Frederic Goddeeris
D: I2C work and FreeRTOS work, MK integration
D: EagleTree OSD implementation
N: Daniel Godin
D: Sponsor: Notify Plugin for the GCS
N: Bani Greyling
D: GCS Scope plugin
N: Nuno Guedes
D: 3D artwork, moving surfaces and work on ModelView
D: PFD Artwork
N: Erik Gustavsson
D: Attitude LPF improvments to Self Level
N: Peter Gunnarsson
D: GCS Core Developer
D: Multiple GCS plugins, Gadget foundations, UAVObject viewer
N: Dean Hall
D: Creator of http://pythononachip.org
N: Joe Hlebasko
D: Early versions of Main Board & Production OP GPS
M: Hardware Architecture Team
N: Andy Honecker
D: Hardware design review and optimisation
N: Mark James
D: Some of Silk Icon set used in GCS - http://www.famfamfam.com/lab/icons/silk
N: Sami Korhonen
D: GPS Module, Spektrum RC Module, OSD work
M: OpenPilot OSD
N: Thorsten Klose
D: Embedded STM32 infrastructure
N: Hallvard Kristiansen
D: GCS Artwork, Quad layout diagrams
N: Mike Labranche
D: Tab bar Telem Monitor
N: Edouard Lafargue
D: GCS Dial Plugins, GCS PFD Plugin, GCS GPS plugin, GCS Config plugin
D: Artwork including standard display dials
N: Matt Lipski
D: Deluxe Dials Set artwork, (Artificial Horizon, Compass, Turn Indicator)
N: Les Newell
D: Advanced mixer matrix, SPI protocol based on UAVObjects, feedforward
N: Ken Northup
D: 3D Modelling, Easystar adaption from FMS
N: Guy McCaldin
D: Artwork and design including work on the Deluxe Dial Set
N: Alessio Morale
D: Firmware/Architecture Lead
N: Cathy Moss
D: Hardware design Lead: Gen 2 Mainboard, PipXtreme, Current Sensor
D: PipXtreme designer, creator OP Map Plugin
N: Angus Peart
D: Co-founder, Principal hardware architect.
D: Hardware design of early OpenPilot, AHRS, GPS and other hardware
N: Dmytro Poplavskiy
D: QML PFD, QML Welcome page
M: Qml plugins
N: Eric Price
D: IL2 HITL GCS Plugin, Posix OpenPilot, Advanced stabilisation module
M: SITL Posix, SLAM work
N: Richard Querin
D: Graphic Design, OpenPilot Logo
N: Laurent Ribon
D: The GLC_lib as used in the ModelView Plugin
D: See: http://www.glc-lib.net/
N: Julien Rouviere
D: GCS Framework and Plugins for the GCS
N: Zik Saleeba
D: Initial schematic based on Zik's Flying Fox schematic
N: Professor Dale Schinstock
D: Lead INS Developer
D: Creator of the OpenPilot INS / EKF
N: Professor Kenn Sebesta
D: Lead Fixed Wing Developer CC3D / Controls
D: GCS improvments including HiTL Merge
M: Fixed Wing support CC3D
N: Oleg Semyonov
D: Core Developer & Project organisation
M: TxPID module
M: Common part of multi-platform packaging system
M: Windows NSIS Installer
N: Stacey Sheldon
D: Core Embedded Developer
D: SPI protocol for AHRS, I2C rewrite and much core work
N: Troy Schultz
D: INS design review and optimisation
N: Dr. Erhard Siegl
D: Configuration engine for the GCS
N: Pete Stapley
D: PPM inputs
N: Rowan Taubitz
D: Hardware debugging and testing, creation of 2-layer Floss-JTAG Rev B
D: Creation of Next-Gen FOSS-JTAG board
N: Andrew Thoms
D: IP Telemtry plugin for the GCS
D: Helicopter support code and mixing for CCPM
N: Vassilis Varveropoulos
D: Co-founder, Principal embedded software architect.
D: Module architecture and UAVTalk/UAVObjects implementation.
N: Alex Vrubel
D: Russian translation of the GCS
N: Brian Webb
D: Modem lead developer
M: OP Modems
N: Dmitriy Zaitsev
D: AeroSim-RC HiTL plugin
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
Anthony Gomez
Bani Greyling
Nuno Guedes
Erik Gustavsson
Peter Gunnarsson
Dean Hall
Joe Hlebasko
Andy Honecker
Ryan Hunt
Mark James
Sami Korhonen
Thorsten Klose
Ricky King
Hallvard Kristiansen
Edouard Lafargue
Mike Labranche
Fredrik Larsson
Pablo Lema
David Llama
Matt Lipski
Les Newell
Ken Northup
Ben Matthews
Greg Matthews
Guy McCaldin
Gary Mortimer
Alessio Morale
Cathy Moss
Angus Peart
John Pike
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
Dusty Anne Smith
Mike Smith
Alex Sowa
Pete Stapley
Vova Starikh
Rowan Taubitz
Andrew Thoms
Philippe Vanhaesendonck
Jasper van Loenen
Vassilis Varveropoulos
Kevin Vertucio
Alex Vrubel
Mike Walters
Brian Webb
Justin Welander
Mat Wellington
Kendal Wells
David Willis
Dmitriy Zaitsev

View File

@ -1,200 +0,0 @@
Short summary of changes. For a complete list see the git log.
--- RELEASE-12.10.2 --- Mayan Apocalypse Release ---
List of issues resolved in this maintenance release:
http://progress.openpilot.org/issues/?filter=10361
OP-459, OP-545, OP-674, OP-679, OP-685, OP-686, OP-687, OP-690, OP-691,
OP-702, OP-703, OP-714, OP-715, OP-716, OP-721, OP-728, OP-746, OP-748,
OP-749, OP-750, OP-758, OP-759, OP-760
2012-11-12
Implemented smoothing filter for accelerometer data.
2012-11-11
Added support for Mode 3 and Mode 4 to the TX Configuration Wizard.
--- RELEASE-12.10.1 ---
2012-10-26
Temporary disabled AutoTune GCS GUI. It was listed as an experimental
feature in the previous release, there were however a few cases where
it did not behave as expected.
--- RELEASE-12.10 ---
2012-10-06
Receiver port can now be configured as PPM *and* PWM inputs.
Pin 1 is PPM, other pins are PWM inputs.
2012-07-27
Added the ability to load stylesheets from external file according to operating system:
macos.qss, linux.qss, windows.qss
Files should be placed inside the app folder.
2012-07-27
Several UI changes.
MixerCurveWidget refactoring, now as a simple and advanced view.
2012-07-27
Added "advanced mode" option to general settings. Right now it only shows the hidden apply buttons.
To enable go to tools->options->General and click one of the checkboxes to give focus to the form,
then press F7
2012-07-27
Made the flight mode switch and accessory pots move according to user input on the input wizard.
2012-07-27
Changed the board pictures on the uploader widget
2012-07-27
Add more verbose debug output on the UAVOBJECTS saving code.
2012-08-11
CopterControl can now emulate an 8-channel USB HID joystick. Primarily,
this lets you use any RC transmitter with flight simulators on your PC.
2012-07-20
AeroSimRC simulator plugin is now included into the Windows distribution
(will be installed into .../OpenPilot/misc/AeroSIM-RC directory). Still
being an experimental development tool, it could be used to play with
HITL version 2. Other platforms include udp_test utility which can be
used to check the connectivity with AeroSimRC plugin running on Windows
machine.
2012-07-10
On Windows the installation mode was changed from per-user to per-machine
(for all users) installation. It is recommended to completely uninstall
previous version before installing new one to remove per-user installed
files. Per-machine installation requires elevated (administrator) previleges
during install. But since the same rights are now required to install
optional CDC driver (virtual communication port), it was deemed acceptable.
2012-06-04
AeroSimRC support merged into next
2012-05-26
VirtualFlybar which allows a more aggressive flight mode than rate mode
support. Also PiroCompensation added.
2012-05-26
Revert some UI changes that didn't work consistently between OSX and Windows.
2012-05-24
Merged the updated firmware for the PipXtreme, thanks to Brian for a lot of
work on this.
2012-05-04
Support for CC3D. This involved changes to various things such as the sensors
being split from AttitudeRaw to Accels,Gyros,Magnetometer. A single firmware
image fw_coptercontrol will run on both CC and CC3D. When compiling the
bootloader one must set the HW_REVISION to the appropriate value. 0x01 is for
CC and 0x02 is for CC3D. If the wrong bootloader is installed the firmware
will not run.
2012-05-02
Reduction in the memory usage due to the UAVObject metadata. Now the update
periods are using a smaller data type and the various flags relating to access
controls and update modes are stored in a bitfield. The UAVObjectBrowser has
not been updated to allow these modes to be easily changed.
2012-03-31
Support for ground vehicle configuration has been added to the the GCS.
2012-02-14
New QML based system to allow more flexible UI. Upgraded stabilization
configuration.
2012-01-02
CC FW now supports USB Virtual Com Port (VCP/CDC) in addition to the original HID interface
New ComUsbBridge module can bridge any serial port to the USB CDC port
CC FW now detects repeated faults during init and boots with default hwsettings
2012-01-02
Added new camera stabilization features: AxisLock mode and LPF.
2011-12-10
Merged a change that sorts the UAVO fields based on size. Because this changes
all of the objects, erase all existing flash files based on this.
2011-11-04
New Spektrum/JR satellite receiver driver implementation.
It now provides explicit selection of DSM2 (and DSMJ), DSMX (10bit) and
DSMX (11bit) serial protocol variations to better serve different frame
and resolution modes. The protocol name used now is DSM instead of
previously used Spektrum to make it less ambiguous when used with JR
2.4GHz radios.
2011-10-20
Inputs can be remapped to outputs to allow up to 10 channels of control. The
receiver inputs remap as follows:
Receiver 3 because output channel 7
Receiver 4 because output channel 8
Receiver 5 because output channel 9
Receiver 6 because output channel 10
2011-10-11
Fix for the Mac telemetry rates and specifically how long enumeration took.
2011-10-08
Make the flash chip need to be have bad magic for a full second before erasing
settings. Should avoid random lost settings.
2011-09-12
Max rate now ONLY applies to attitude and axis lock mode. Manual rate is the
only term that limits the rate mode now (and in axis lock when you push stick
only manual rate applies). Also integrals are reset when unused.
2011-09-09
Some large updates to the input system. Now multiple receivers can be
connected at once. A wizard was added for configuring the input channels. A
specific collective pitch channel was added.
2011-09-04
Improvements to the failsafe handling code for inputs. PWM power off is now
detected properly. Powering on transmitter for Spektrum Satellite no longer
causes a glitch on servos.
2011-08-10
Added Camera Stabilization and a gui to configure this. This is a software
selectable module from the GUI. However, a restart is required to make it
active. The GUI does not currently expose the configuration for using the
transmitter to change the view angle but this is supported by the hardware.
2011-08-10
By default a lot of diagnostic objects that were enabled by default are now
disabled in the build. This include TaskInfo (and all the FreeRTOS options
that provide that debugging information). Also MixerStatus, I2CStatus,
WatchdogStatus and RateDesired. These can be reenabled for debugging with
-DDIAGNOSTICS.
2011-08-04
Fixed packaging aesthetic issues. Also avoid runtime issues on OSX Lion by
disabling the ModelView and Notify plugins for now (sorry).
2011-07-29
Added support for PPM receivers from James W. Now all 4 interfaces (R/C
standard PWM, combined PPM (MK), Spektrum satellite, Futaba S.Bus) are
supported and configurable through the GCS hardware configuration tab.
2011-07-17
Updated module initialization from Mathieu which separates the initialization
from the task startup. Also implements a method to reclaim unused ram from
initialization and end of memory for the FreeRTOS heap.
2011-07-12
Improvements to the stabilization code. Included a LPF on the gyros to smooth
out noise in high vibration environments. Also two new modes: axis-lock and
weak leveling. Axis-lock will try and hold an axis at a fixed position and
reject any disturbances. This is like heading-hold on a heli for the tail but
can be useful for other axes. Weak leveling is rate mode with a weak
correction to self level the craft - good for easier rate mode flying.
2011-07-07
Dynamic hardware configuration from Stac. The input type is now
selected from ManualControlSettings.InputMode and the aircraft must be rebooted
after changing this. Also for CopterControl the HwSettings object must
indicate which modules are connected to which ports. PPM currently not
working.

View File

@ -1,21 +0,0 @@
Here is a list of some known unresolved issues. If an issue has JIRA ID [OP-XXX], you may track it using the
following URL: http://bugs.openpilot.org/browse/OP-XXX
+ Missing Translations, use English.
+ Radio Wizard confused by a reversed throttle, fix it on your transmitter before starting wizard.
+ Radio Wizard Throttle display does not show full range properly.
+ [Windows 8] USB Driver is broken.
+ Firmware Update Instructions on Firmware Tab not entirely accurate for all upgrade paths.
+ Tricopter's using Vehicle Wizard need to check servo does not need reversed manually.
+ XAircraft ESCs uses non-standard PPM range which may cause issues with Vehicle Wizard.
+ Spectrum Satellite Receivers setup in Radio Wizard may have wrong protocol set.
+ Old Intel 965 have an OpenGL bug that turns the QML PFD black and while.
+ [OP-732] Import UAV Settings for inactive modules crashes the running firmware (board restarts).
Workaround: update firmware, power cycle, enable modules, power cycle, import configuration.
+ [OP-747] Board infinitely reboots itself after firmware upgrade (settings erase firmware is a workaround).
+ [OP-723] GCS uses the system language ot the 1st run. After restart it uses English (can be changed later).
+ [OP-725] GCS camera stab config error message disappears too fast (but config error is cleared as it should)
+ [OP-767] GCS does not send AttitudeActual packets over serial port when GPS is connected and system is armed
+ [OP-768] GCS does not show UAV position on the map (master or next CC branches, but works in Revo branches)
+ [OP-682] GCS crashes on firmware page. Noted on Windows and OSX platforms, difficult to reproduce.
Workaround: use Vehicle setup wizard to update the firmware.

View File

@ -1,42 +1,64 @@
The OpenPilot code is licensed under the GPLv3, there are a few minor exceptions to this so please see the headers of all source code for copyright and license information.
The full text of the GPLv3 can be read here: http://www.gnu.org/licenses/gpl-3.0.txt
Artwork is licensed under the Creative Commons BY-SA v3 license.
Documentation including translations is also licensed under the Creative Commons BY-SA v3 license.
For details please see: http://creativecommons.org/licenses/by-sa/3.0/
Licenses for the hardware files are included in the directories that contain the hardware, not all items are under the same license and you must check the files for each individual hardware design.
Please note that some of the hardware files are licensed under the Creative Commons BY-NC-SA v3 license, this is a Non-commercial license. OpenPilot is purely a non-profit hobby project with zero commercial intent, if you just want people to work for free or do your R&D for zero cost, please find a project that allows this as that not what OpenPilot is about.
We are hobbyists and we want to share our work with fellow hobbyists, additionally we need to ensure the future of the project and make sure it is sustainable.
If you wish to sell / distribute OpenPilot hardware or derivatives of OpenPilot hardware that are under a non-commercial license, please get in touch with one of the members of OpenPilot Foundation's administration committee. We can then negotiate a license waiver where a portion of the profits are donated to the OpenPilot Project to ensure its survival and future progression. Please note that this is in reference to PCB and Schematic designs, for people wishing to combine OpenPilot in to a Ready to Fly solution, this is perfectly fine as long as OpenPilot PCBs are bought from the OpenPilot project or one of the approved distributors.
For details the Non-Commercial license please see: http://creativecommons.org/licenses/by-nc-sa/3.0/
A quick summary of what this license talk means, firstly using any work that is licensed under a form of the Creative Commons BY license, requires that credit is to be given.
The SA or Share Alike part of the license means that you must also use the same license in any work derived from the work under this license.
Hardware
The items under the non-commercial license means exactly that: they are for non-commercial use only and any derivatives that are made are also covered by the same non-commercial license. The hardware files under a non-commercial license are for
reference and for fellow hobbyists; they are not to be used to generate profit of any kind. Please note that even the OpenPilot project its self is a non-profit project.
For all items both non-commercial and items that allows commercial use, the OP logo must be placed on any work or derivative work and be clearly visible. If any web addresses are present on the hardware, these are also required to remain on any replications or any derivative work.
Documentation
In documentation, authors names must be kept along with any logos. If documentation is for a physical product such as a schematic, the OpenPilot logo should be shown and any web addresses also displayed on the final physical hardware it was derived from.
Artwork
If artwork is to be reused, the OpenPilot project should be credited. If for example this is a software application, credit should be given on the application splash screen or in a separate part of the application that is visible to users. For example the Help / About screen.
Contact Us
If you are unsure, please contact one of the OpenPilot Foundation's administrators. Additionally, if you plan to use parts of the OpenPilot project in your own work, we would appreciate it if you get in touch with us anyway, it is possible we could combine efforts or have some work already in progress that might be helpful. This of course is our baby and we want to see what great things people do with it as well.
A final note, OpenPilot is a non-profit for fun project and we have only volunteers. A great deal of time, money and effort has been donated to this project; please respect the people that are part of it and their generosity. OpenPilot is funded entirely by the generous people who donate money and time to the community and help it grow. Giving full and proper credit is not only a legal requirement of the CC-BY-SA license, it is also the right thing to do.
Buying hardware from the OpenPilot project is very important to the survival and continuing progress of the project, a project like OpenPilot is extremely expensive to produce.
The OpenPilot code is licensed under the GPLv3. There are a few minor exceptions to this so please see
the headers of all source code for copyright and license information. The full text of the GPLv3 can be
read here: http://www.gnu.org/licenses/gpl-3.0.txt
Artwork is licensed under the Creative Commons BY-SA v3 license.
Documentation including translations is also licensed under the Creative Commons BY-SA v3 license.
For details please see: http://creativecommons.org/licenses/by-sa/3.0/
Licenses for the hardware files are included in the directories that contain the hardware, not all items
are under the same license and you must check the files for each individual hardware design. Please note
that some of the hardware files are licensed under the Creative Commons BY-NC-SA v3 license, this is a
non-commercial license. OpenPilot is purely a non-profit hobby project with zero commercial intent. If you
just want people to work for free or do your R&D for zero cost, please find a project that allows this as
that not what OpenPilot is about. We are hobbyists and we want to share our work with fellow hobbyists,
additionally we need to ensure the future of the project and make sure it is sustainable.
If you wish to sell/distribute OpenPilot hardware or derivatives of OpenPilot hardware that are under a
non-commercial license, please get in touch with one of the members of OpenPilot Foundation's
administration committee. We can then negotiate a license waiver where a portion of the profits are donated
to the OpenPilot Project to ensure its survival and future progression. Please note that this is in
reference to PCB and Schematic designs. For people wishing to combine OpenPilot in to a Ready to Fly
solution, this is perfectly fine as long as OpenPilot PCBs are bought from the OpenPilot project or one
of the approved distributors.
For details the non-commercial license please see: http://creativecommons.org/licenses/by-nc-sa/3.0/
A quick summary of what this license talk means, firstly using any work that is licensed under a form of
the Creative Commons BY license, requires that credit is to be given. The SA or Share Alike part of the
license means that you must also use the same license in any work derived from the work under this license.
Hardware
The items under the non-commercial license means exactly that: they are for non-commercial use only and
any derivatives that are made are also covered by the same non-commercial license. The hardware files
under a non-commercial license are for reference and for fellow hobbyists; they are not to be used to
generate profit of any kind. Please note that even the OpenPilot project its self is a non-profit project.
For all items both non-commercial and items that allows commercial use, the OP logo must be placed on any
work or derivative work and be clearly visible. If any web addresses are present on the hardware, these
are also required to remain on any replications or any derivative work.
Documentation
In documentation, authors names must be kept along with any logos. If documentation is for a physical
product such as a schematic, the OpenPilot logo should be shown and any web addresses also displayed on
the final physical hardware it was derived from.
Artwork
If artwork is to be reused, the OpenPilot project should be credited. If for example this is a software
application, credit should be given on the application splash screen or in a separate part of the
application that is visible to users. For example the Help/About screen.
Contact Us
If you are unsure, please contact one of the OpenPilot Foundation's administrators. Additionally, if you
plan to use parts of the OpenPilot project in your own work, we would appreciate it if you get in touch
with us anyway, it is possible we could combine efforts or have some work already in progress that might
be helpful. This of course is our baby and we want to see what great things people do with it as well.
A final note, OpenPilot is a non-profit for fun project and we have only volunteers. A great deal of time,
money and effort has been donated to this project; please respect the people that are part of it and their
generosity. OpenPilot is funded entirely by the generous people who donate money and time to the community
and help it grow. Giving full and proper credit is not only a legal requirement of the CC-BY-SA license,
it is also the right thing to do.
Buying hardware from the OpenPilot project is very important to the survival and continuing progress of
the project, a project like OpenPilot is extremely expensive to produce.

View File

@ -1,257 +1,267 @@
This is the Milestones file of the OpenPilot project, its intent is to record the major accomplishments achieved by people using the OpenPilot platform and who gets the karma for performing them.
The CREDITS.txt in SVN records the developers and the achievements made by each individual; this file is different as it is aimed at recording and giving credit to the people who achieve milestones in the use of OpenPilot.
The fields are:
Milestone description (M)
Credited to (C)
Date (D)
Video (V) - Optional link to video showing milestone
M: OpenPilot driving EagleTree OSD
C: Frederic Goddeeris
D: August 2010
V: http://vimeo.com/13659819
M: First manual fixed wing flight
C: James Cotton
D: September 2010
M: First stabilised fixed wing flight
C: Edouard Lafargue
D: September 2010
M: First stabilised Quad flight
C: James Cotton
D: September 2010
M: First stabilised Tri-Copter flight
C: Gary Mortimer and the Scorpion
D: October 2010
M: First communication between by PipX modems
C: Cathy Moss
D: October 2010
M: First OpenPilot night flight
C: Dale Schinstock
D: October 2010
V: http://www.youtube.com/watch?v=yk8ckeRMV8U
M: First stabilised Hexa flight
C: Sami Korhonen (Sambas)
D: November 2010
V: http://www.youtube.com/watch?v=CIL29Yqt8Ck
M: First -10 Deg C flight
C: Sami Korhonen (Sambas)
D: November 2010
V: http://vimeo.com/17488702
M: First solid OpenPilot Position Hold
C: Dale Schinstock
D: December 2010
V: http://www.youtube.com/watch?v=BBCGVP0Vpgw
M: First intentional flip on a multirotor with OpenPilot
C: Sami Korhonen (Sambas)
D: December 2010
V: http://vimeo.com/18318478
M: First CopterControl flight on a Quad
C: Sami Korhonen (Sambas)
D: January 2011
V: http://vimeo.com/19592820
M: First UAVTalk connection across several continents - over the Internet
C: Eric Price (CorvusCorax), James Cotton
D: February 2011
V: http://cybertrench.com/vixen/internet-telemetry_small.avi
M: First CopterControl flight on a Fixed Wing
C: Oleg Semyonov (osnwt)
D: February 2011
V: http://www.youtube.com/watch?v=gt1ok7iSGDY
M: First intentional flip on a multirotor with CopterControl
C: Sami Korhonen (Sambas)
D: February 2011
V: http://vimeo.com/20159015
M: First CopterControl Position Hold on a Fixed Wing
C: Eric Price (Corvus Corax)
D: March 2011
V: http://www.youtube.com/watch?v=QtaefhmGbio
M: Dave's First Flight. Pathetically delayed.
C: David Ankers
D: March 2011
V: http://vimeo.com/22221798
M: First CopterControl flight on a Hexa
C: Edouard Lafargue
D: March 2011
V: http://vimeo.com/21476466
M: First CopterControl flight on a Tri
C: Gary Mortimer and the Scorpion
D: March 2011
V: http://vimeo.com/22104334
M: First Y6 OpenPilot flight
C: Sami Korhonen (Sambas)
D: May 2011
V: http://www.vimeo.com/23637586
M: First CopterControl flight on a Flybarless Heli
C: Oleg Semyonov (osnwt)
D: May 2011
V: http://www.youtube.com/watch?v=-J8cxqzxxWw
M: First V8 Octo OpenPilot flight
C: Sami Korhonen (Sambas)
D: May 2011
V: http://vimeo.com/24258192
M: First Y6 CopterControl flight
C: Michel Pet
D: June 2011
V: http://www.youtube.com/watch?v=QsE2MQELPZY
M: First MoveCopter flight
C: Werner Backes
D: July 2011
V: http://vimeo.com/25983655
M: First Y4 CopterControl flight
C: Mat Wellington
D: July 2011
V: http://www.youtube.com/watch?v=TxZ4MDGIj1o
M: First V-Tail4 CopterControl flight
C: Mat Wellington
D: July 2011
V: http://www.youtube.com/watch?v=YE4Fd9vdg1I
M: First CopterControl Flybared Heli inverted flight (2:33)
C: Maxim Izergin (Maximus43)
D: August 2011
V: http://www.youtube.com/watch?v=8SrfIS7OkB4
M: First CopterControl Flybared Heli funnel (4:18), loop (5:35)
C: Sergey Solodennikov (alconaft43)
D: August 2011
V: http://www.youtube.com/watch?v=8SrfIS7OkB4
This is the Milestones file of the OpenPilot project, its intent is to record the major accomplishments
achieved by people using the OpenPilot platform and who gets the karma for performing them.
M: First CopterControl Return to Base Fixed Wing
C: Eric Price (Corvus Corax)
D: August 2011
V: http://www.youtube.com/watch?v=CugI0oBSQn8
M: First CopterControl flip on a Flybarless Heli
C: Anders Johansson (dezent)
D: November 2011
V: http://www.youtube.com/watch?v=Xfas2TUhOPw
M: First CopterControl over 1km FixedWing navigation flight
C: Eric Price (Corvus Corax)
D: December 2011
V: http://www.youtube.com/watch?v=nWNWuUiUTNg
M: First successful flight using the GCS only and no RC TX
C:
D:
V:
M: First successful flight using just a mobile phone
C: Jose (please complete details), demoed in Portugal
D:
V:
M: First Revo Altitude Hold using Sonar
C:
D:
V:
M: First CopterControl Navigation on RC Ground Vechicle
C:
D:
V:
M: First CopterControl Navigation on RC Water Vechicle
C:
D:
V:
M: First Revo Navigated flight on a FixedWing
C: It got done somewhere along the line, likely Corvus.
M: First Revo Navigated flight on a MultiRotor
C: It got done somewhere along the line, James or Sami
M: First Revo Navigated flight on a Heli
C:
D:
V:
M: First Revo 1km Navigated flight on a MultiRotor
C:
D:
V:
M: First Revo 5km Navigated flight on a MultiRotor
C:
D:
V:
M: First Revo 5km Navigated flight on a FixedWing
C:
D:
V:
M: First Revo 1km Navigated flight on a Heli
C:
D:
V:
M: First Revo 5km Navigated flight on a Heli
C:
D:
V:
M: First use of the Magic Waypoint feature
C:
D:
V:
M: First Auto spot landing on a fixed Wing using Revo
C:
D:
V:
M: First Auto take-off on a MultiRotor using Revo
C:
D:
V:
M: First Auto landing on a MultiRotor using Revo
C:
D:
V:
M: First Auto take-off on a Heli using Revo
C:
D:
V:
M: First Auto landing on a Heli using Revo
C:
D:
V:
The Contributors list in the About dialog of the GCS application records the developers and contributors.
This file is different as it is aimed at recording and giving credit to the people who achieve milestones
in the use of OpenPilot.
Notice: now we have the rule: no video - it has never happened. So please make sure you have video
recorded if you want to submit your milestone (listed below or not yet) to this list.
The fields are:
(M) Milestone description
(C) Credited to
(D) Date
(V) Link to video showing milestone
M: OpenPilot driving EagleTree OSD
C: Frederic Goddeeris
D: August 2010
V: http://vimeo.com/13659819
M: First manual fixed wing flight
C: James Cotton
D: September 2010
M: First stabilised fixed wing flight
C: Edouard Lafargue
D: September 2010
M: First stabilised Quad flight
C: James Cotton
D: September 2010
M: First stabilised Tri-Copter flight
C: Gary Mortimer and the Scorpion
D: October 2010
M: First communication between by PipX modems
C: Cathy Moss
D: October 2010
M: First OpenPilot night flight
C: Dale Schinstock
D: October 2010
V: http://www.youtube.com/watch?v=yk8ckeRMV8U
M: First stabilised Hexa flight
C: Sami Korhonen (Sambas)
D: November 2010
V: http://www.youtube.com/watch?v=CIL29Yqt8Ck
M: First -10 Deg C flight
C: Sami Korhonen (Sambas)
D: November 2010
V: http://vimeo.com/17488702
M: First solid OpenPilot Position Hold
C: Dale Schinstock
D: December 2010
V: http://www.youtube.com/watch?v=BBCGVP0Vpgw
M: First intentional flip on a multirotor with OpenPilot
C: Sami Korhonen (Sambas)
D: December 2010
V: http://vimeo.com/18318478
M: First CopterControl flight on a Quad
C: Sami Korhonen (Sambas)
D: January 2011
V: http://vimeo.com/19592820
M: First UAVTalk connection across several continents - over the Internet
C: Eric Price (CorvusCorax), James Cotton
D: February 2011
V: http://cybertrench.com/vixen/internet-telemetry_small.avi
M: First CopterControl flight on a Fixed Wing
C: Oleg Semyonov (osnwt)
D: February 2011
V: http://www.youtube.com/watch?v=gt1ok7iSGDY
M: First intentional flip on a multirotor with CopterControl
C: Sami Korhonen (Sambas)
D: February 2011
V: http://vimeo.com/20159015
M: First CopterControl Position Hold on a Fixed Wing
C: Eric Price (Corvus Corax)
D: March 2011
V: http://www.youtube.com/watch?v=QtaefhmGbio
M: Dave's First Flight. Pathetically delayed.
C: David Ankers
D: March 2011
V: http://vimeo.com/22221798
M: First CopterControl flight on a Hexa
C: Edouard Lafargue
D: March 2011
V: http://vimeo.com/21476466
M: First CopterControl flight on a Tri
C: Gary Mortimer and the Scorpion
D: March 2011
V: http://vimeo.com/22104334
M: First Y6 OpenPilot flight
C: Sami Korhonen (Sambas)
D: May 2011
V: http://www.vimeo.com/23637586
M: First CopterControl flight on a Flybarless Heli
C: Oleg Semyonov (osnwt)
D: May 2011
V: http://www.youtube.com/watch?v=-J8cxqzxxWw
M: First V8 Octo OpenPilot flight
C: Sami Korhonen (Sambas)
D: May 2011
V: http://vimeo.com/24258192
M: First Y6 CopterControl flight
C: Michel Pet
D: June 2011
V: http://www.youtube.com/watch?v=QsE2MQELPZY
M: First MoveCopter flight
C: Werner Backes
D: July 2011
V: http://vimeo.com/25983655
M: First Y4 CopterControl flight
C: Mat Wellington
D: July 2011
V: http://www.youtube.com/watch?v=TxZ4MDGIj1o
M: First V-Tail4 CopterControl flight
C: Mat Wellington
D: July 2011
V: http://www.youtube.com/watch?v=YE4Fd9vdg1I
M: First CopterControl Flybared Heli inverted flight (2:33)
C: Maxim Izergin (Maximus43)
D: August 2011
V: http://www.youtube.com/watch?v=8SrfIS7OkB4
M: First CopterControl Flybared Heli funnel (4:18), loop (5:35)
C: Sergey Solodennikov (alconaft43)
D: August 2011
V: http://www.youtube.com/watch?v=8SrfIS7OkB4
M: First CopterControl Return to Base Fixed Wing
C: Eric Price (Corvus Corax)
D: August 2011
V: http://www.youtube.com/watch?v=CugI0oBSQn8
M: First CopterControl flip on a Flybarless Heli
C: Anders Johansson (dezent)
D: November 2011
V: http://www.youtube.com/watch?v=Xfas2TUhOPw
M: First CopterControl over 1km FixedWing navigation flight
C: Eric Price (Corvus Corax)
D: December 2011
V: http://www.youtube.com/watch?v=nWNWuUiUTNg
M: First CopterControl over 5km FixedWing navigation flight
C: Kavin Gustafson (k_g)
D: October 2012
V: http://www.youtube.com/watch?v=MGO68TqIwKk
M: First successful flight using just a mobile phone
C: Jose (please complete details), demoed in Portugal
D:
V:
M: First CopterControl over 10km FixedWing navigation flight
C:
D:
V:
M: First successful flight using the GCS only and no RC TX
C:
D:
V:
M: First CopterControl Navigation on RC Ground Vechicle
C:
D:
V:
M: First CopterControl Navigation on RC Water Vechicle
C:
D:
V:
M: First Revo Navigated flight on a FixedWing
C: It got done somewhere along the line, likely Corvus.
M: First Revo 5km Navigated flight on a FixedWing
C: Eric Price (Corvus Corax)
D: March 2012
V:
M: First Revo Navigated flight on a MultiRotor
C: It got done somewhere along the line, James or Sami
M: First Revo 1km Navigated flight on a MultiRotor
C:
D:
V:
M: First Revo 5km Navigated flight on a MultiRotor
C:
D:
V:
M: First Revo Navigated flight on a Heli
C:
D:
V:
M: First Revo 1km Navigated flight on a Heli
C:
D:
V:
M: First Revo 5km Navigated flight on a Heli
C:
D:
V:
M: First Revo Altitude Hold using Sonar
C:
D:
V:
M: First use of the Magic Waypoint feature
C:
D:
V:
M: First Auto spot landing on a fixed Wing using Revo
C:
D:
V:
M: First Auto take-off on a MultiRotor using Revo
C:
D:
V:
M: First Auto landing on a MultiRotor using Revo
C: Sami (please complete details)
D:
V:
M: First Auto take-off on a Heli using Revo
C:
D:
V:
M: First Auto landing on a Heli using Revo
C:
D:
V:

1526
Makefile
View File

@ -1,24 +1,67 @@
# Set up a default goal
.DEFAULT_GOAL := help
#
# Top level Makefile for the OpenPilot project build system.
# Copyright (c) 2010-2013, The OpenPilot Team, http://www.openpilot.org
# Use 'make help' for instructions.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Set up some macros for common directories within the tree
ROOT_DIR=$(CURDIR)
TOOLS_DIR=$(ROOT_DIR)/tools
BUILD_DIR=$(ROOT_DIR)/build
DL_DIR=$(ROOT_DIR)/downloads
# This top level Makefile passes down some variables to sub-makes through
# the environment. They are explicitly exported using the export keyword.
# Lower level makefiles assume that these variables are defined. To ensure
# that a special magic variable is exported here. It must be checked for
# existance by each sub-make.
export OPENPILOT_IS_COOL := Fuck Yeah!
# It is possible to set OPENPILOT_DL_DIR and/or OPENPILOT_TOOLS_DIR environment
# variables to override local tools download and installation directorys. So the
# same toolchains can be used for all working copies. Particularly useful for CI
# server build agents, but also for local installations.
#
# If no OPENPILOT_* variables found, makefile internal DL_DIR and TOOLS_DIR paths
# will be used. They still can be overriden by the make command line parameters:
# make DL_DIR=/path/to/download/directory TOOLS_DIR=/path/to/tools/directory targets...
# Function for converting Windows style slashes into Unix style
slashfix = $(subst \,/,$(1))
# Function for converting an absolute path to one relative
# to the top of the source tree.
# to the top of the source tree
toprel = $(subst $(realpath $(ROOT_DIR))/,,$(abspath $(1)))
# Set up some macros for common directories within the tree
export ROOT_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
export DL_DIR := $(if $(OPENPILOT_DL_DIR),$(call slashfix,$(OPENPILOT_DL_DIR)),$(ROOT_DIR)/downloads)
export TOOLS_DIR := $(if $(OPENPILOT_TOOLS_DIR),$(call slashfix,$(OPENPILOT_TOOLS_DIR)),$(ROOT_DIR)/tools)
export BUILD_DIR := $(ROOT_DIR)/build
export PACKAGE_DIR := $(ROOT_DIR)/build/package
# Set up default build configurations (debug | release)
GCS_BUILD_CONF := release
UAVOGEN_BUILD_CONF := release
ANDROIDGCS_BUILD_CONF := debug
GOOGLE_API_VERSION := 14
# Clean out undesirable variables from the environment and command-line
# to remove the chance that they will cause problems with our build
define SANITIZE_VAR
$(if $(filter-out undefined,$(origin $(1))),
$(info *NOTE* Sanitized $(2) variable '$(1)' from $(origin $(1)))
MAKEOVERRIDES = $(filter-out $(1)=%,$(MAKEOVERRIDES))
override $(1) :=
unexport $(1)
$(info $(EMPTY) NOTE Sanitized $(2) variable '$(1)' from $(origin $(1)))
MAKEOVERRIDES = $(filter-out $(1)=%,$(MAKEOVERRIDES))
override $(1) :=
unexport $(1)
)
endef
@ -28,810 +71,298 @@ SANITIZE_GCC_VARS += CFLAGS CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE
$(foreach var, $(SANITIZE_GCC_VARS), $(eval $(call SANITIZE_VAR,$(var),disallowed)))
# These specific variables used to be valid but now they make no sense
SANITIZE_DEPRECATED_VARS := USE_BOOTLOADER
SANITIZE_DEPRECATED_VARS := USE_BOOTLOADER CLEAN_BUILD
$(foreach var, $(SANITIZE_DEPRECATED_VARS), $(eval $(call SANITIZE_VAR,$(var),deprecated)))
# We almost need to consider autoconf/automake instead of this
# I don't know if windows supports uname :-(
QT_SPEC=win32-g++
UAVOBJGENERATOR="$(BUILD_DIR)/ground/uavobjgenerator/debug/uavobjgenerator.exe"
UNAME := $(shell uname)
ARCH := $(shell uname -m)
ifeq ($(UNAME), Linux)
QT_SPEC=linux-g++
UAVOBJGENERATOR="$(BUILD_DIR)/ground/uavobjgenerator/uavobjgenerator"
# Make sure this isn't being run as root (no whoami on Windows, but that is ok here)
ifeq ($(shell whoami 2>/dev/null),root)
$(error You should not be running this as root)
endif
ifeq ($(UNAME), Darwin)
QT_SPEC=macx-g++
UAVOBJGENERATOR="$(BUILD_DIR)/ground/uavobjgenerator/uavobjgenerator"
endif
# OpenPilot GCS build configuration (debug | release)
GCS_BUILD_CONF ?= debug
# Set up misc host tools
RM=rm
# Decide on a verbosity level based on the V= parameter
export AT := @
ifndef V
export V0 :=
export V1 := $(AT)
export V0 :=
export V1 := $(AT)
else ifeq ($(V), 0)
export V0 := $(AT)
export V1 := $(AT)
export V0 := $(AT)
export V1 := $(AT)
else ifeq ($(V), 1)
endif
.PHONY: help
help:
@echo
@echo " This Makefile is known to work on Linux and Mac in a standard shell environment."
@echo " It also works on Windows by following the instructions in make/winx86/README.txt."
@echo
@echo " Here is a summary of the available targets:"
@echo
@echo " [Tool Installers]"
@echo " qt_sdk_install - Install the QT v4.7.3 tools"
@echo " arm_sdk_install - Install the Code Sourcery ARM gcc toolchain"
@echo " openocd_install - Install the OpenOCD JTAG daemon"
@echo " stm32flash_install - Install the stm32flash tool for unbricking boards"
@echo " dfuutil_install - Install the dfu-util tool for unbricking F4-based boards"
@echo " android_sdk_install - Install the Android SDK tools"
@echo
@echo " [Big Hammer]"
@echo " all - Generate UAVObjects, build openpilot firmware and gcs"
@echo " all_flight - Build all firmware, bootloaders and bootloader updaters"
@echo " all_fw - Build only firmware for all boards"
@echo " all_bl - Build only bootloaders for all boards"
@echo " all_bu - Build only bootloader updaters for all boards"
@echo
@echo " all_clean - Remove your build directory ($(BUILD_DIR))"
@echo " all_flight_clean - Remove all firmware, bootloaders and bootloader updaters"
@echo " all_fw_clean - Remove firmware for all boards"
@echo " all_bl_clean - Remove bootlaoders for all boards"
@echo " all_bu_clean - Remove bootloader updaters for all boards"
@echo
@echo " all_<board> - Build all available images for <board>"
@echo " all_<board>_clean - Remove all available images for <board>"
@echo
@echo " [Firmware]"
@echo " <board> - Build firmware for <board>"
@echo " supported boards are ($(ALL_BOARDS))"
@echo " fw_<board> - Build firmware for <board>"
@echo " supported boards are ($(FW_BOARDS))"
@echo " fw_<board>_clean - Remove firmware for <board>"
@echo " fw_<board>_program - Use OpenOCD + JTAG to write firmware to <board>"
@echo
@echo " [Bootloader]"
@echo " bl_<board> - Build bootloader for <board>"
@echo " supported boards are ($(BL_BOARDS))"
@echo " bl_<board>_clean - Remove bootloader for <board>"
@echo " bl_<board>_program - Use OpenOCD + JTAG to write bootloader to <board>"
@echo
@echo " [Bootloader Updater]"
@echo " bu_<board> - Build bootloader updater for <board>"
@echo " supported boards are ($(BU_BOARDS))"
@echo " bu_<board>_clean - Remove bootloader updater for <board>"
@echo
@echo " [Unbrick a board]"
@echo " unbrick_<board> - Use the STM32's built in boot ROM to write a bootloader to <board>"
@echo " supported boards are ($(BL_BOARDS))"
@echo
@echo " [Simulation]"
@echo " sim_win32 - Build OpenPilot simulation firmware for"
@echo " Windows using mingw and msys"
@echo " sim_win32_clean - Delete all build output for the win32 simulation"
@echo
@echo " [GCS]"
@echo " gcs - Build the Ground Control System (GCS) application"
@echo " gcs_clean - Remove the Ground Control System (GCS) application"
@echo
@echo " [UAVObjects]"
@echo " uavobjects - Generate source files from the UAVObject definition XML files"
@echo " uavobjects_test - parse xml-files - check for valid, duplicate ObjId's, ... "
@echo " uavobjects_<group> - Generate source files from a subset of the UAVObject definition XML files"
@echo " supported groups are ($(UAVOBJ_TARGETS))"
@echo
@echo " Note: All tools will be installed into $(TOOLS_DIR)"
@echo " All build output will be placed in $(BUILD_DIR)"
@echo
# Make sure we know few things about the architecture before including
# the tools.mk to ensure that we download/install the right tools.
UNAME := $(shell uname)
ARCH := $(shell uname -m)
# Here and everywhere if not Linux or Mac then assume Windows
ifeq ($(filter Linux Darwin, $(UNAME)), )
UNAME := Windows
endif
# Include tools installers
include $(ROOT_DIR)/make/tools.mk
# We almost need to consider autoconf/automake instead of this
ifeq ($(UNAME), Linux)
QT_SPEC = linux-g++
UAVOBJGENERATOR = "$(BUILD_DIR)/uavobjgenerator/uavobjgenerator"
else ifeq ($(UNAME), Darwin)
QT_SPEC = macx-g++
UAVOBJGENERATOR = "$(BUILD_DIR)/uavobjgenerator/uavobjgenerator"
else ifeq ($(UNAME), Windows)
QT_SPEC = win32-g++
UAVOBJGENERATOR = "$(BUILD_DIR)/uavobjgenerator/$(UAVOGEN_BUILD_CONF)/uavobjgenerator.exe"
endif
##############################
#
# All targets
#
##############################
.PHONY: all
all: uavobjects all_ground all_flight
.PHONY: all_clean
all_clean:
[ ! -d "$(BUILD_DIR)" ] || $(RM) -rf "$(BUILD_DIR)"
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR))"
$(V1) [ ! -d "$(BUILD_DIR)" ] || $(RM) -rf "$(BUILD_DIR)"
$(DL_DIR):
mkdir -p $@
$(MKDIR) -p $@
$(TOOLS_DIR):
mkdir -p $@
$(MKDIR) -p $@
$(BUILD_DIR):
mkdir -p $@
###############################################################
#
# Installers for tools required by the ground and flight builds
#
# NOTE: These are not tied to the default goals
# and must be invoked manually
#
###############################################################
# Set up QT toolchain
QT_SDK_DIR := $(TOOLS_DIR)/qtsdk-v1.2.1
.PHONY: qt_sdk_install
# Choose the appropriate installer based on host architecture
ifneq (,$(filter $(ARCH), x86_64 amd64))
# 64-bit
qt_sdk_install: QT_SDK_FILE := QtSdk-offline-linux-x86_64-v1.2.1.run
qt_sdk_install: QT_SDK_URL := http://www.developer.nokia.com/dp?uri=http://sw.nokia.com/id/14b2039c-0e1f-4774-a4f2-9aa60b6d5313/Qt_SDK_Lin64_offline
else
# 32-bit
qt_sdk_install: QT_SDK_URL := http://www.developer.nokia.com/dp?uri=http://sw.nokia.com/id/8ea74da4-fec1-4277-8b26-c58cc82e204b/Qt_SDK_Lin32_offline
qt_sdk_install: QT_SDK_FILE := QtSdk-offline-linux-x86-v1.2.1.run
endif
# order-only prereq on directory existance:
qt_sdk_install : | $(DL_DIR) $(TOOLS_DIR)
qt_sdk_install: qt_sdk_clean
# download the source only if it's newer than what we already have
$(V1) wget -N --content-disposition -P "$(DL_DIR)" "$(QT_SDK_URL)"
# tell the user exactly which path they should select in the GUI
$(V1) echo "*** NOTE NOTE NOTE ***"
$(V1) echo "*"
$(V1) echo "* In the GUI, please use exactly this path as the installation path:"
$(V1) echo "* $(QT_SDK_DIR)"
$(V1) echo "*"
$(V1) echo "*** NOTE NOTE NOTE ***"
#installer is an executable, make it executable and run it
$(V1) chmod u+x "$(DL_DIR)/$(QT_SDK_FILE)"
$(V1) "$(DL_DIR)/$(QT_SDK_FILE)" -style cleanlooks
.PHONY: qt_sdk_clean
qt_sdk_clean:
$(V1) [ ! -d "$(QT_SDK_DIR)" ] || $(RM) -rf $(QT_SDK_DIR)
# Set up ARM (STM32) SDK
ARM_SDK_DIR := $(TOOLS_DIR)/arm-2011.03
.PHONY: arm_sdk_install
arm_sdk_install: ARM_SDK_URL := https://sourcery.mentor.com/sgpp/lite/arm/portal/package8736/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
arm_sdk_install: ARM_SDK_FILE := $(notdir $(ARM_SDK_URL))
# order-only prereq on directory existance:
arm_sdk_install: | $(DL_DIR) $(TOOLS_DIR)
arm_sdk_install: arm_sdk_clean
# download the source only if it's newer than what we already have
$(V1) wget --no-check-certificate -N -P "$(DL_DIR)" "$(ARM_SDK_URL)"
# binary only release so just extract it
$(V1) tar -C $(TOOLS_DIR) -xjf "$(DL_DIR)/$(ARM_SDK_FILE)"
.PHONY: arm_sdk_clean
arm_sdk_clean:
$(V1) [ ! -d "$(ARM_SDK_DIR)" ] || $(RM) -r $(ARM_SDK_DIR)
# Set up openocd tools
OPENOCD_DIR := $(TOOLS_DIR)/openocd
OPENOCD_WIN_DIR := $(TOOLS_DIR)/openocd_win
OPENOCD_BUILD_DIR := $(DL_DIR)/openocd-build
.PHONY: openocd_install
openocd_install: | $(DL_DIR) $(TOOLS_DIR)
openocd_install: OPENOCD_URL := http://sourceforge.net/projects/openocd/files/openocd/0.5.0/openocd-0.5.0.tar.bz2/download
openocd_install: OPENOCD_FILE := openocd-0.5.0.tar.bz2
openocd_install: openocd_clean
# download the source only if it's newer than what we already have
$(V1) wget -N -P "$(DL_DIR)" --trust-server-name "$(OPENOCD_URL)"
# extract the source
$(V1) [ ! -d "$(OPENOCD_BUILD_DIR)" ] || $(RM) -r "$(OPENOCD_BUILD_DIR)"
$(V1) mkdir -p "$(OPENOCD_BUILD_DIR)"
$(V1) tar -C $(OPENOCD_BUILD_DIR) -xjf "$(DL_DIR)/$(OPENOCD_FILE)"
# build and install
$(V1) mkdir -p "$(OPENOCD_DIR)"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR)/openocd-0.5.0 ; \
./configure --prefix="$(OPENOCD_DIR)" --enable-ft2232_libftdi ; \
$(MAKE) --silent ; \
$(MAKE) --silent install ; \
)
# delete the extracted source when we're done
$(V1) [ ! -d "$(OPENOCD_BUILD_DIR)" ] || $(RM) -rf "$(OPENOCD_BUILD_DIR)"
.PHONY: ftd2xx_install
FTD2XX_DIR := $(DL_DIR)/ftd2xx
ftd2xx_install: | $(DL_DIR)
ftd2xx_install: FTD2XX_URL := http://www.ftdichip.com/Drivers/CDM/Beta/CDM20817.zip
ftd2xx_install: FTD2XX_FILE := CDM20817.zip
ftd2xx_install: ftd2xx_clean
# download the file only if it's newer than what we already have
$(V0) @echo " DOWNLOAD $(FTD2XX_URL)"
$(V1) wget -q -N -P "$(DL_DIR)" "$(FTD2XX_URL)"
# extract the source
$(V0) @echo " EXTRACT $(FTD2XX_FILE) -> $(FTD2XX_DIR)"
$(V1) mkdir -p "$(FTD2XX_DIR)"
$(V1) unzip -q -d "$(FTD2XX_DIR)" "$(DL_DIR)/$(FTD2XX_FILE)"
.PHONY: ftd2xx_clean
ftd2xx_clean:
$(V0) @echo " CLEAN $(FTD2XX_DIR)"
$(V1) [ ! -d "$(FTD2XX_DIR)" ] || $(RM) -r "$(FTD2XX_DIR)"
.PHONY: ftd2xx_install
LIBUSB_WIN_DIR := $(DL_DIR)/libusb-win32-bin-1.2.6.0
libusb_win_install: | $(DL_DIR)
libusb_win_install: LIBUSB_WIN_URL := http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
libusb_win_install: LIBUSB_WIN_FILE := libusb-win32-bin-1.2.6.0.zip
libusb_win_install: libusb_win_clean
# download the file only if it's newer than what we already have
$(V0) @echo " DOWNLOAD $(LIBUSB_WIN_URL)"
$(V1) wget -q -N -P "$(DL_DIR)" --trust-server-name "$(LIBUSB_WIN_URL)"
# extract the source
$(V0) @echo " EXTRACT $(LIBUSB_WIN_FILE) -> $(LIBUSB_WIN_DIR)"
$(V1) mkdir -p "$(LIBUSB_WIN_DIR)"
$(V1) unzip -q -d "$(DL_DIR)" "$(DL_DIR)/$(LIBUSB_WIN_FILE)"
# fixup .h file needed by openocd build
$(V0) @echo " FIXUP $(LIBUSB_WIN_DIR)"
$(V1) ln -s "$(LIBUSB_WIN_DIR)/include/lusb0_usb.h" "$(LIBUSB_WIN_DIR)/include/usb.h"
.PHONY: libusb_win_clean
libusb_win_clean:
$(V0) @echo " CLEAN $(LIBUSB_WIN_DIR)"
$(V1) [ ! -d "$(LIBUSB_WIN_DIR)" ] || $(RM) -r "$(LIBUSB_WIN_DIR)"
.PHONY: openocd_git_win_install
openocd_git_win_install: | $(DL_DIR) $(TOOLS_DIR)
openocd_git_win_install: OPENOCD_URL := git://openocd.git.sourceforge.net/gitroot/openocd/openocd
openocd_git_win_install: OPENOCD_REV := f1c0133321c8fcadadd10bba5537c0a634eb183b
openocd_git_win_install: openocd_win_clean libusb_win_install ftd2xx_install
# download the source
$(V0) @echo " DOWNLOAD $(OPENOCD_URL) @ $(OPENOCD_REV)"
$(V1) [ ! -d "$(OPENOCD_BUILD_DIR)" ] || $(RM) -rf "$(OPENOCD_BUILD_DIR)"
$(V1) mkdir -p "$(OPENOCD_BUILD_DIR)"
$(V1) git clone --no-checkout $(OPENOCD_URL) "$(DL_DIR)/openocd-build"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR) ; \
git checkout -q $(OPENOCD_REV) ; \
)
# apply patches
$(V0) @echo " PATCH $(OPENOCD_BUILD_DIR)"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR) ; \
git apply < $(ROOT_DIR)/flight/Project/OpenOCD/0001-armv7m-remove-dummy-FP-regs-for-new-gdb.patch ; \
git apply < $(ROOT_DIR)/flight/Project/OpenOCD/0002-rtos-add-stm32_stlink-to-FreeRTOS-targets.patch ; \
)
# build and install
$(V0) @echo " BUILD $(OPENOCD_WIN_DIR)"
$(V1) mkdir -p "$(OPENOCD_WIN_DIR)"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR) ; \
./bootstrap ; \
./configure --enable-maintainer-mode --prefix="$(OPENOCD_WIN_DIR)" \
--build=i686-pc-linux-gnu --host=i586-mingw32msvc \
CPPFLAGS=-I$(LIBUSB_WIN_DIR)/include \
LDFLAGS=-L$(LIBUSB_WIN_DIR)/lib/gcc \
--enable-ft2232_ftd2xx --with-ftd2xx-win32-zipdir=$(FTD2XX_DIR) \
--disable-werror \
--enable-stlink ; \
$(MAKE) ; \
$(MAKE) install ; \
)
# delete the extracted source when we're done
$(V1) [ ! -d "$(OPENOCD_BUILD_DIR)" ] || $(RM) -rf "$(OPENOCD_BUILD_DIR)"
.PHONY: openocd_win_clean
openocd_win_clean:
$(V0) @echo " CLEAN $(OPENOCD_WIN_DIR)"
$(V1) [ ! -d "$(OPENOCD_WIN_DIR)" ] || $(RM) -r "$(OPENOCD_WIN_DIR)"
.PHONY: openocd_git_install
openocd_git_install: | $(DL_DIR) $(TOOLS_DIR)
openocd_git_install: OPENOCD_URL := git://openocd.git.sourceforge.net/gitroot/openocd/openocd
openocd_git_install: OPENOCD_REV := f1c0133321c8fcadadd10bba5537c0a634eb183b
openocd_git_install: openocd_clean
# download the source
$(V0) @echo " DOWNLOAD $(OPENOCD_URL) @ $(OPENOCD_REV)"
$(V1) [ ! -d "$(OPENOCD_BUILD_DIR)" ] || $(RM) -rf "$(OPENOCD_BUILD_DIR)"
$(V1) mkdir -p "$(OPENOCD_BUILD_DIR)"
$(V1) git clone --no-checkout $(OPENOCD_URL) "$(OPENOCD_BUILD_DIR)"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR) ; \
git checkout -q $(OPENOCD_REV) ; \
)
# apply patches
$(V0) @echo " PATCH $(OPENOCD_DIR)"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR) ; \
git apply < $(ROOT_DIR)/flight/Project/OpenOCD/0001-armv7m-remove-dummy-FP-regs-for-new-gdb.patch ; \
git apply < $(ROOT_DIR)/flight/Project/OpenOCD/0002-rtos-add-stm32_stlink-to-FreeRTOS-targets.patch ; \
)
# build and install
$(V0) @echo " BUILD $(OPENOCD_DIR)"
$(V1) mkdir -p "$(OPENOCD_DIR)"
$(V1) ( \
cd $(OPENOCD_BUILD_DIR) ; \
./bootstrap ; \
./configure --enable-maintainer-mode --prefix="$(OPENOCD_DIR)" --enable-ft2232_libftdi --enable-buspirate --enable-stlink ; \
$(MAKE) ; \
$(MAKE) install ; \
)
# delete the extracted source when we're done
$(V1) [ ! -d "$(OPENOCD_BUILD_DIR)" ] || $(RM) -rf "$(OPENOCD_BUILD_DIR)"
.PHONY: openocd_clean
openocd_clean:
$(V0) @echo " CLEAN $(OPENOCD_DIR)"
$(V1) [ ! -d "$(OPENOCD_DIR)" ] || $(RM) -r "$(OPENOCD_DIR)"
STM32FLASH_DIR := $(TOOLS_DIR)/stm32flash
.PHONY: stm32flash_install
stm32flash_install: STM32FLASH_URL := http://stm32flash.googlecode.com/svn/trunk
stm32flash_install: STM32FLASH_REV := 61
stm32flash_install: stm32flash_clean
# download the source
$(V0) @echo " DOWNLOAD $(STM32FLASH_URL) @ r$(STM32FLASH_REV)"
$(V1) svn export -q -r "$(STM32FLASH_REV)" "$(STM32FLASH_URL)" "$(STM32FLASH_DIR)"
# build
$(V0) @echo " BUILD $(STM32FLASH_DIR)"
$(V1) $(MAKE) --silent -C $(STM32FLASH_DIR) all
.PHONY: stm32flash_clean
stm32flash_clean:
$(V0) @echo " CLEAN $(STM32FLASH_DIR)"
$(V1) [ ! -d "$(STM32FLASH_DIR)" ] || $(RM) -r "$(STM32FLASH_DIR)"
DFUUTIL_DIR := $(TOOLS_DIR)/dfu-util
.PHONY: dfuutil_install
dfuutil_install: DFUUTIL_URL := http://dfu-util.gnumonks.org/releases/dfu-util-0.5.tar.gz
dfuutil_install: DFUUTIL_FILE := $(notdir $(DFUUTIL_URL))
dfuutil_install: | $(DL_DIR) $(TOOLS_DIR)
dfuutil_install: dfuutil_clean
# download the source
$(V0) @echo " DOWNLOAD $(DFUUTIL_URL)"
$(V1) wget -N -P "$(DL_DIR)" "$(DFUUTIL_URL)"
# extract the source
$(V0) @echo " EXTRACT $(DFUUTIL_FILE)"
$(V1) [ ! -d "$(DL_DIR)/dfuutil-build" ] || $(RM) -r "$(DL_DIR)/dfuutil-build"
$(V1) mkdir -p "$(DL_DIR)/dfuutil-build"
$(V1) tar -C $(DL_DIR)/dfuutil-build -xf "$(DL_DIR)/$(DFUUTIL_FILE)"
# build
$(V0) @echo " BUILD $(DFUUTIL_DIR)"
$(V1) mkdir -p "$(DFUUTIL_DIR)"
$(V1) ( \
cd $(DL_DIR)/dfuutil-build/dfu-util-0.5 ; \
./configure --prefix="$(DFUUTIL_DIR)" ; \
$(MAKE) ; \
$(MAKE) install ; \
)
.PHONY: dfuutil_clean
dfuutil_clean:
$(V0) @echo " CLEAN $(DFUUTIL_DIR)"
$(V1) [ ! -d "$(DFUUTIL_DIR)" ] || $(RM) -r "$(DFUUTIL_DIR)"
# see http://developer.android.com/sdk/ for latest versions
ANDROID_SDK_DIR := $(TOOLS_DIR)/android-sdk-linux
.PHONY: android_sdk_install
android_sdk_install: ANDROID_SDK_URL := http://dl.google.com/android/android-sdk_r20.0.3-linux.tgz
android_sdk_install: ANDROID_SDK_FILE := $(notdir $(ANDROID_SDK_URL))
# order-only prereq on directory existance:
android_sdk_install: | $(DL_DIR) $(TOOLS_DIR)
android_sdk_install: android_sdk_clean
# download the source only if it's newer than what we already have
$(V0) @echo " DOWNLOAD $(ANDROID_SDK_URL)"
$(V1) wget --no-check-certificate -N -P "$(DL_DIR)" "$(ANDROID_SDK_URL)"
# binary only release so just extract it
$(V0) @echo " EXTRACT $(ANDROID_SDK_FILE)"
$(V1) tar -C $(TOOLS_DIR) -xf "$(DL_DIR)/$(ANDROID_SDK_FILE)"
.PHONY: android_sdk_clean
android_sdk_clean:
$(V0) @echo " CLEAN $(ANDROID_SDK_DIR)"
$(V1) [ ! -d "$(ANDROID_SDK_DIR)" ] || $(RM) -r $(ANDROID_SDK_DIR)
.PHONY: android_sdk_update
android_sdk_update:
$(V0) @echo " UPDATE $(ANDROID_SDK_DIR)"
$(ANDROID_SDK_DIR)/tools/android update sdk --no-ui -t platform-tools,android-16,addon-google_apis-google-16
$(MKDIR) -p $@
##############################
#
# Set up paths to tools
# UAVObjects
#
##############################
ifeq ($(shell [ -d "$(QT_SDK_DIR)" ] && echo "exists"), exists)
QMAKE=$(QT_SDK_DIR)/Desktop/Qt/4.8.1/gcc/bin/qmake
ifeq ($(V), 1)
UAVOGEN_SILENT :=
else
# not installed, hope it's in the path...
QMAKE=qmake
UAVOGEN_SILENT := silent
endif
ifeq ($(shell [ -d "$(ARM_SDK_DIR)" ] && echo "exists"), exists)
ARM_SDK_PREFIX := $(ARM_SDK_DIR)/bin/arm-none-eabi-
else
# not installed, hope it's in the path...
ARM_SDK_PREFIX ?= arm-none-eabi-
endif
ifeq ($(shell [ -d "$(OPENOCD_DIR)" ] && echo "exists"), exists)
OPENOCD := $(OPENOCD_DIR)/bin/openocd
else
# not installed, hope it's in the path...
OPENOCD ?= openocd
endif
ifeq ($(shell [ -d "$(ANDROID_SDK_DIR)" ] && echo "exists"), exists)
ANDROID := $(ANDROID_SDK_DIR)/tools/android
ANDROID_DX := $(ANDROID_SDK_DIR)/platform-tools/dx
else
# not installed, hope it's in the path...
ANDROID ?= android
ANDROID_DX ?= dx
endif
##############################
#
# GCS related components
#
##############################
.PHONY: all_ground
all_ground: openpilotgcs
# Convenience target for the GCS
.PHONY: gcs gcs_clean
gcs: openpilotgcs
gcs_clean: openpilotgcs_clean
.PHONY: openpilotgcs
openpilotgcs: uavobjects_gcs
$(V1) mkdir -p $(BUILD_DIR)/ground/$@
$(V1) ( cd $(BUILD_DIR)/ground/$@ && \
$(QMAKE) $(ROOT_DIR)/ground/openpilotgcs/openpilotgcs.pro -spec $(QT_SPEC) -r CONFIG+=$(GCS_BUILD_CONF) $(GCS_QMAKE_OPTS) && \
$(MAKE) -w ; \
)
.PHONY: openpilotgcs_clean
openpilotgcs_clean:
$(V0) @echo " CLEAN $@"
$(V1) [ ! -d "$(BUILD_DIR)/ground/openpilotgcs" ] || $(RM) -r "$(BUILD_DIR)/ground/openpilotgcs"
.PHONY: uavobjgenerator
uavobjgenerator:
$(V1) mkdir -p $(BUILD_DIR)/ground/$@
$(V1) ( cd $(BUILD_DIR)/ground/$@ && \
$(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro -spec $(QT_SPEC) -r CONFIG+=debug && \
$(MAKE) --no-print-directory -w ; \
$(V1) $(MKDIR) -p $(BUILD_DIR)/$@
$(V1) ( cd $(BUILD_DIR)/$@ && \
$(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro -spec $(QT_SPEC) -r CONFIG+="$(UAVOGEN_BUILD_CONF) $(UAVOGEN_SILENT)" && \
$(MAKE) --no-print-directory -w ; \
)
UAVOBJ_TARGETS := gcs flight python matlab java wireshark
.PHONY:uavobjects
.PHONY: uavobjects
uavobjects: $(addprefix uavobjects_, $(UAVOBJ_TARGETS))
UAVOBJ_XML_DIR := $(ROOT_DIR)/shared/uavobjectdefinition
UAVOBJ_OUT_DIR := $(BUILD_DIR)/uavobject-synthetics
$(UAVOBJ_OUT_DIR):
$(V1) mkdir -p $@
$(V1) $(MKDIR) -p $@
uavobjects_%: $(UAVOBJ_OUT_DIR) uavobjgenerator
$(V1) ( cd $(UAVOBJ_OUT_DIR) && \
$(UAVOBJGENERATOR) -$* $(UAVOBJ_XML_DIR) $(ROOT_DIR) ; \
$(UAVOBJGENERATOR) -$* $(UAVOBJ_XML_DIR) $(ROOT_DIR) ; \
)
uavobjects_test: $(UAVOBJ_OUT_DIR) uavobjgenerator
$(V1) $(UAVOBJGENERATOR) -v -none $(UAVOBJ_XML_DIR) $(ROOT_DIR)
uavobjects_clean:
$(V0) @echo " CLEAN $@"
@$(ECHO) " CLEAN $(call toprel, $(UAVOBJ_OUT_DIR))"
$(V1) [ ! -d "$(UAVOBJ_OUT_DIR)" ] || $(RM) -r "$(UAVOBJ_OUT_DIR)"
################################
#
# Android GCS related components
#
################################
# Build the output directory for the Android GCS build
ANDROIDGCS_OUT_DIR := $(BUILD_DIR)/androidgcs
$(ANDROIDGCS_OUT_DIR):
$(V1) mkdir -p $@
# Build the asset directory for the android assets
ANDROIDGCS_ASSETS_DIR := $(ANDROIDGCS_OUT_DIR)/assets
$(ANDROIDGCS_ASSETS_DIR)/uavos:
$(V1) mkdir -p $@
ifeq ($(V), 1)
ANT_QUIET :=
ANDROID_SILENT :=
else
ANT_QUIET := -q
ANDROID_SILENT := -s
endif
.PHONY: androidgcs
androidgcs: uavo-collections_java
$(V0) @echo " ANDROID $(call toprel, $(ANDROIDGCS_OUT_DIR))"
$(V1) mkdir -p $(ANDROIDGCS_OUT_DIR)
$(V1) $(ANDROID) $(ANDROID_SILENT) update project --target 'Google Inc.:Google APIs:16' --name androidgcs --path ./androidgcs
$(V1) ant -f ./androidgcs/build.xml \
$(ANT_QUIET) \
-Dout.dir="../$(call toprel, $(ANDROIDGCS_OUT_DIR)/bin)" \
-Dgen.absolute.dir="$(ANDROIDGCS_OUT_DIR)/gen" \
debug
.PHONY: androidgcs_clean
androidgcs_clean:
$(V0) @echo " CLEAN $@"
$(V1) [ ! -d "$(ANDROIDGCS_OUT_DIR)" ] || $(RM) -r "$(ANDROIDGCS_OUT_DIR)"
# We want to take snapshots of the UAVOs at each point that they change
# to allow the GCS to be compatible with as many versions as possible.
#
# Find the git hashes of each commit that changes uavobjects with:
# git log --format=%h -- shared/uavobjectdefinition/ | head -n 2
UAVO_GIT_VERSIONS := 684620d 43f85d9
# All versions includes a pseudo collection called "working" which represents
# the UAVOs in the source tree
UAVO_ALL_VERSIONS := $(UAVO_GIT_VERSIONS) srctree
# This is where the UAVO collections are stored
UAVO_COLLECTION_DIR := $(BUILD_DIR)/uavo-collections
# $(1) git hash of a UAVO snapshot
define UAVO_COLLECTION_GIT_TEMPLATE
# Make the output directory that will contain all of the synthetics for the
# uavo collection referenced by the git hash $(1)
$$(UAVO_COLLECTION_DIR)/$(1):
$$(V1) mkdir -p $$(UAVO_COLLECTION_DIR)/$(1)
# Extract the snapshot of shared/uavobjectdefinition from git hash $(1)
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar: | $$(UAVO_COLLECTION_DIR)/$(1)
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar:
$$(V0) @echo " UAVOTAR $(1)"
$$(V1) git archive $(1) -o $$@ -- shared/uavobjectdefinition/
# Extract the uavo xml files from our snapshot
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml: $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar
$$(V0) @echo " UAVOUNTAR $(1)"
$$(V1) rm -rf $$@
$$(V1) mkdir -p $$@
$$(V1) tar -C $$@ -xf $$< || rm -rf $$@
endef
# Map the current working directory into the set of UAVO collections
$(UAVO_COLLECTION_DIR)/srctree:
$(V1) mkdir -p $@
$(UAVO_COLLECTION_DIR)/srctree/uavo-xml: | $(UAVO_COLLECTION_DIR)/srctree
$(UAVO_COLLECTION_DIR)/srctree/uavo-xml: $(UAVOBJ_XML_DIR)
$(V1) ln -sf $(ROOT_DIR) $(UAVO_COLLECTION_DIR)/srctree/uavo-xml
# $(1) git hash (or symbolic name) of a UAVO snapshot
define UAVO_COLLECTION_BUILD_TEMPLATE
# This leaves us with a (broken) symlink that points to the full sha1sum of the collection
$$(UAVO_COLLECTION_DIR)/$(1)/uavohash: $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml
# Compute the sha1 hash for this UAVO collection
$$(V1) python $$(ROOT_DIR)/make/scripts/version-info.py \
--path=$$(ROOT_DIR) \
--uavodir=$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml/shared/uavobjectdefinition \
--format='$$$${UAVOSHA1TXT}' | sed -n 's/^\(................\).*/\1/p' | xargs -n1 -I{} ln -sf {} $$(UAVO_COLLECTION_DIR)/$(1)/uavohash
# Create the target of the symlink (ie. a directory named by the actual UAVO hash)
$$(V0) @echo " UAVOHASH $(1) ->" $$$$(readlink $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) mkdir -p $$(UAVO_COLLECTION_DIR)/$(1)/$$$$(readlink $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
# Generate the java uavobjects for this UAVO collection
$$(UAVO_COLLECTION_DIR)/$(1)/uavohash/java-build/java: $$(UAVO_COLLECTION_DIR)/$(1)/uavohash
$$(V0) @echo " UAVOJAVA $(1) " $$$$(readlink $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) mkdir -p $$@
$$(V1) ( \
cd $$(UAVO_COLLECTION_DIR)/$(1)/uavohash/java-build && \
$$(UAVOBJGENERATOR) -java $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml/shared/uavobjectdefinition $$(ROOT_DIR) ; \
)
# Build a jar file for this UAVO collection
$$(UAVO_COLLECTION_DIR)/$(1)/uavohash/java-build/uavobjects.jar: | $$(ANDROIDGCS_ASSETS_DIR)/uavos
$$(UAVO_COLLECTION_DIR)/$(1)/uavohash/java-build/uavobjects.jar: $$(UAVO_COLLECTION_DIR)/$(1)/uavohash/java-build/java
$$(V0) @echo " UAVOJAR $(1) " $$$$(readlink $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) ( \
HASH=$$$$(readlink $$(UAVO_COLLECTION_DIR)/$(1)/uavohash) && \
cd $$(UAVO_COLLECTION_DIR)/$(1)/uavohash/java-build && \
javac java/*.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVDataObject.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVObject*.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVMetaObject.java \
-d . && \
find ./org/openpilot/uavtalk/uavobjects -type f -name '*.class' > classlist.txt && \
jar cf tmp_uavobjects.jar @classlist.txt && \
$$(ANDROID_DX) \
--dex \
--output $$(ANDROIDGCS_ASSETS_DIR)/uavos/$$$${HASH}.jar \
tmp_uavobjects.jar && \
ln -sf $$(ANDROIDGCS_ASSETS_DIR)/uavos/$$$${HASH}.jar uavobjects.jar \
)
endef
# One of these for each element of UAVO_GIT_VERSIONS so we can extract the UAVOs from git
$(foreach githash, $(UAVO_GIT_VERSIONS), $(eval $(call UAVO_COLLECTION_GIT_TEMPLATE,$(githash))))
# One of these for each UAVO_ALL_VERSIONS which includes the ones in the srctree
$(foreach githash, $(UAVO_ALL_VERSIONS), $(eval $(call UAVO_COLLECTION_BUILD_TEMPLATE,$(githash))))
.PHONY: uavo-collections_java
uavo-collections_java: $(foreach githash, $(UAVO_ALL_VERSIONS), $(UAVO_COLLECTION_DIR)/$(githash)/uavohash/java-build/uavobjects.jar)
.PHONY: uavo-collections
uavo-collections: uavo-collections_java
.PHONY: uavo-collections_clean
uavo-collections_clean:
$(V0) @echo " CLEAN $(UAVO_COLLECTION_DIR)"
$(V1) [ ! -d "$(UAVO_COLLECTION_DIR)" ] || $(RM) -r $(UAVO_COLLECTION_DIR)
##############################
#
# Flight related components
#
##############################
# Define some pointers to the various important pieces of the flight code
# to prevent these being repeated in every sub makefile
export PIOS := $(ROOT_DIR)/flight/pios
export FLIGHTLIB := $(ROOT_DIR)/flight/libraries
export OPMODULEDIR := $(ROOT_DIR)/flight/modules
export OPUAVOBJ := $(ROOT_DIR)/flight/uavobjects
export OPUAVTALK := $(ROOT_DIR)/flight/uavtalk
export OPUAVSYNTHDIR := $(BUILD_DIR)/uavobject-synthetics/flight
export OPGCSSYNTHDIR := $(BUILD_DIR)/openpilotgcs-synthetics
# Define supported board lists
ALL_BOARDS := coptercontrol oplinkmini revolution osd revoproto simposix
# Short names of each board (used to display board name in parallel builds)
coptercontrol_short := 'cc '
oplinkmini_short := 'oplm'
revolution_short := 'revo'
osd_short := 'osd '
revoproto_short := 'revp'
simposix_short := 'posx'
# SimPosix only builds on Linux so drop it from the list for
# all other platforms.
ifneq ($(UNAME), Linux)
ALL_BOARDS := $(filter-out simposix, $(ALL_BOARDS))
endif
# Start out assuming that we'll build fw, bl and bu for all boards
FW_BOARDS := $(ALL_BOARDS)
BL_BOARDS := $(ALL_BOARDS)
BU_BOARDS := $(ALL_BOARDS)
EF_BOARDS := $(ALL_BOARDS)
# SimPosix doesn't have a BL, BU or EF target so we need to
# filter them out to prevent errors on the all_flight target.
BL_BOARDS := $(filter-out simposix, $(BL_BOARDS))
BU_BOARDS := $(filter-out simposix, $(BU_BOARDS))
EF_BOARDS := $(filter-out simposix, $(EF_BOARDS))
# Generate the targets for whatever boards are left in each list
FW_TARGETS := $(addprefix fw_, $(FW_BOARDS))
BL_TARGETS := $(addprefix bl_, $(BL_BOARDS))
BU_TARGETS := $(addprefix bu_, $(BU_BOARDS))
EF_TARGETS := $(addprefix ef_, $(EF_BOARDS))
# When building any of the "all_*" targets, tell all sub makefiles to display
# additional details on each line of output to describe which build and target
# that each line applies to. The same applies also to all, opfw_resource,
# package and clean_package targets
ifneq ($(strip $(filter all_% all opfw_resource package clean_package,$(MAKECMDGOALS))),)
export ENABLE_MSG_EXTRA := yes
endif
# When building more than one goal in a single make invocation, also
# enable the extra context for each output line
ifneq ($(word 2,$(MAKECMDGOALS)),)
export ENABLE_MSG_EXTRA := yes
endif
# TEMPLATES (used to generate build rules)
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Name of board used in source tree (e.g. CopterControl)
# $(3) = Short name for board (e.g CC)
# $(2) = Short name for board (e.g cc)
define FW_TEMPLATE
.PHONY: $(1) fw_$(1)
$(1): fw_$(1)_opfw
fw_$(1): fw_$(1)_opfw
fw_$(1)_%: uavobjects_flight
$(V1) mkdir -p $(BUILD_DIR)/fw_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/$(2) && \
$(V1) $$(ARM_GCC_VERSION_CHECK_TEMPLATE)
$(V1) $(MKDIR) -p $(BUILD_DIR)/fw_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/targets/boards/$(1)/firmware && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(3) \
BUILD_TYPE=fw \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
TOPDIR=$(ROOT_DIR)/flight/targets/boards/$(1)/firmware \
OUTDIR=$(BUILD_DIR)/fw_$(1) \
TARGET=fw_$(1) \
$$*
.PHONY: $(1)_clean
$(1)_clean: fw_$(1)_clean
fw_$(1)_clean:
$(V0) @echo " CLEAN $$@"
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/fw_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/fw_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Name of board used in source tree (e.g. CopterControl)
# $(2) = Short name for board (e.g cc)
define BL_TEMPLATE
.PHONY: bl_$(1)
bl_$(1): bl_$(1)_bin
bl_$(1)_bino: bl_$(1)_bin
bl_$(1)_%:
$(V1) mkdir -p $(BUILD_DIR)/bl_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/$(2) && \
$(V1) $$(ARM_GCC_VERSION_CHECK_TEMPLATE)
$(V1) $(MKDIR) -p $(BUILD_DIR)/bl_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/targets/boards/$(1)/bootloader && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(3) \
BUILD_TYPE=bl \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
TOPDIR=$(ROOT_DIR)/flight/targets/boards/$(1)/bootloader \
OUTDIR=$(BUILD_DIR)/bl_$(1) \
TARGET=bl_$(1) \
$$*
.PHONY: unbrick_$(1)
unbrick_$(1): bl_$(1)_hex
$(if $(filter-out undefined,$(origin UNBRICK_TTY)),
$(V0) @echo " UNBRICK $(1) via $$(UNBRICK_TTY)"
$(V0) @$(ECHO) " UNBRICK $(1) via $$(UNBRICK_TTY)"
$(V1) $(STM32FLASH_DIR)/stm32flash \
-w $(BUILD_DIR)/bl_$(1)/bl_$(1).hex \
-g 0x0 \
$$(UNBRICK_TTY)
,
$(V0) @echo
$(V0) @echo "ERROR: You must specify UNBRICK_TTY=<serial-device> to use for unbricking."
$(V0) @echo " eg. $$(MAKE) $$@ UNBRICK_TTY=/dev/ttyUSB0"
$(V0) @$(ECHO)
$(V0) @$(ECHO) "ERROR: You must specify UNBRICK_TTY=<serial-device> to use for unbricking."
$(V0) @$(ECHO) " eg. $$(MAKE) $$@ UNBRICK_TTY=/dev/ttyUSB0"
)
.PHONY: bl_$(1)_clean
bl_$(1)_clean:
$(V0) @echo " CLEAN $$@"
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/bl_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/bl_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Short name for board (e.g cc)
define BU_TEMPLATE
.PHONY: bu_$(1)
bu_$(1): bu_$(1)_opfw
bu_$(1)_%: bl_$(1)_bino
$(V1) mkdir -p $(BUILD_DIR)/bu_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
$(V1) $(MKDIR) -p $(BUILD_DIR)/bu_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/targets/common/bootloader_updater && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(3) \
BUILD_TYPE=bu \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
TOPDIR=$(ROOT_DIR)/flight/targets/common/bootloader_updater \
OUTDIR=$(BUILD_DIR)/bu_$(1) \
TARGET=bu_$(1) \
$$*
.PHONY: bu_$(1)_clean
bu_$(1)_clean:
$(V0) @echo " CLEAN $$@"
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/bu_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/bu_$(1)
endef
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Short name for board (e.g cc)
define EF_TEMPLATE
.PHONY: ef_$(1)
ef_$(1): ef_$(1)_bin
ef_$(1)_%: bl_$(1)_bin fw_$(1)_opfw
$(V1) mkdir -p $(BUILD_DIR)/ef_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/EntireFlash && \
$(V1) $(MKDIR) -p $(BUILD_DIR)/ef_$(1)
$(V1) cd $(ROOT_DIR)/flight/targets/common/entire_flash && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(3) \
BUILD_TYPE=ef \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
BOARD_NAME=$(1) \
BOARD_SHORT_NAME=$(2) \
DFU_CMD="$(DFUUTIL_DIR)/bin/dfu-util" \
TOPDIR=$(ROOT_DIR)/flight/targets/common/entire_flash \
OUTDIR=$(BUILD_DIR)/ef_$(1) \
TARGET=ef_$(1) \
$$*
.PHONY: ef_$(1)_clean
ef_$(1)_clean:
$(V0) @echo " CLEAN $$@"
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/ef_$(1))"
$(V1) $(RM) -fr $(BUILD_DIR)/ef_$(1)
endef
# When building any of the "all_*" targets, tell all sub makefiles to display
# additional details on each line of output to describe which build and target
# that each line applies to.
ifneq ($(strip $(filter all_%,$(MAKECMDGOALS))),)
export ENABLE_MSG_EXTRA := yes
endif
# When building more than one goal in a single make invocation, also
# enable the extra context for each output line
ifneq ($(word 2,$(MAKECMDGOALS)),)
export ENABLE_MSG_EXTRA := yes
endif
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
define BOARD_PHONY_TEMPLATE
.PHONY: all_$(1)
@ -847,56 +378,7 @@ all_$(1)_clean: $$(addsuffix _clean, $$(filter bu_$(1), $$(BU_TARGETS)))
all_$(1)_clean: $$(addsuffix _clean, $$(filter ef_$(1), $$(EF_TARGETS)))
endef
ALL_BOARDS := coptercontrol pipxtreme simposix
# SimPosix only builds on Linux so drop it from the list for
# all other platforms.
ifneq ($(UNAME), Linux)
ALL_BOARDS := $(filter-out simposix, $(ALL_BOARDS))
endif
# Friendly names of each board (used to find source tree)
coptercontrol_friendly := CopterControl
pipxtreme_friendly := PipXtreme
revolution_friendly := Revolution
simposix_friendly := SimPosix
# SimPosix only builds on Linux so drop it from the list for
# all other platforms.
ifneq ($(UNAME), Linux)
ALL_BOARDS := $(filter-out simposix, $(ALL_BOARDS))
endif
# Short hames of each board (used to display board name in parallel builds)
coptercontrol_short := 'cc '
pipxtreme_short := 'pipx'
revolution_short := 'revo'
simposix_short := 'posx'
osd_short := 'osd '
# Start out assuming that we'll build fw, bl and bu for all boards
FW_BOARDS := $(ALL_BOARDS)
BL_BOARDS := $(ALL_BOARDS)
BU_BOARDS := $(ALL_BOARDS)
EF_BOARDS := $(ALL_BOARDS)
# FIXME: The INS build doesn't have a bootloader or bootloader
# updater yet so we need to filter them out to prevent errors.
BL_BOARDS := $(filter-out ins, $(BL_BOARDS))
BU_BOARDS := $(filter-out ins, $(BU_BOARDS))
# SimPosix doesn't have a BL, BU or EF target so we need to
# filter them out to prevent errors on the all_flight target.
BL_BOARDS := $(filter-out simposix, $(BL_BOARDS))
BU_BOARDS := $(filter-out simposix, $(BU_BOARDS))
EF_BOARDS := $(filter-out simposix, $(EF_BOARDS))
# Generate the targets for whatever boards are left in each list
FW_TARGETS := $(addprefix fw_, $(FW_BOARDS))
BL_TARGETS := $(addprefix bl_, $(BL_BOARDS))
BU_TARGETS := $(addprefix bu_, $(BU_BOARDS))
EF_TARGETS := $(addprefix ef_, $(EF_BOARDS))
# Generate flight build rules
.PHONY: all_fw all_fw_clean
all_fw: $(addsuffix _opfw, $(FW_TARGETS))
all_fw_clean: $(addsuffix _clean, $(FW_TARGETS))
@ -920,25 +402,279 @@ all_flight_clean: all_fw_clean all_bl_clean all_bu_clean all_ef_clean
# Expand the groups of targets for each board
$(foreach board, $(ALL_BOARDS), $(eval $(call BOARD_PHONY_TEMPLATE,$(board))))
# Expand the bootloader updater rules
$(foreach board, $(ALL_BOARDS), $(eval $(call BU_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
# Expand the firmware rules
$(foreach board, $(ALL_BOARDS), $(eval $(call FW_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
$(foreach board, $(ALL_BOARDS), $(eval $(call FW_TEMPLATE,$(board),$($(board)_short))))
# Expand the bootloader rules
$(foreach board, $(ALL_BOARDS), $(eval $(call BL_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
$(foreach board, $(ALL_BOARDS), $(eval $(call BL_TEMPLATE,$(board),$($(board)_short))))
# Expand the bootloader updater rules
$(foreach board, $(ALL_BOARDS), $(eval $(call BU_TEMPLATE,$(board),$($(board)_short))))
# Expand the entire-flash rules
$(foreach board, $(ALL_BOARDS), $(eval $(call EF_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
$(foreach board, $(ALL_BOARDS), $(eval $(call EF_TEMPLATE,$(board),$($(board)_short))))
.PHONY: sim_win32
sim_win32: sim_win32_exe
sim_win32_%: uavobjects_flight
$(V1) mkdir -p $(BUILD_DIR)/sitl_win32
$(V1) $(MKDIR) -p $(BUILD_DIR)/sitl_win32
$(V1) $(MAKE) --no-print-directory \
-C $(ROOT_DIR)/flight/OpenPilot --file=$(ROOT_DIR)/flight/OpenPilot/Makefile.win32 $*
-C $(ROOT_DIR)/flight/targets/OpenPilot --file=$(ROOT_DIR)/flight/targets/OpenPilot/Makefile.win32 $*
.PHONY: sim_osx
sim_osx: sim_osx_elf
sim_osx_%: uavobjects_flight
$(V1) $(MKDIR) -p $(BUILD_DIR)/sim_osx
$(V1) $(MAKE) --no-print-directory \
-C $(ROOT_DIR)/flight/targets/SensorTest --file=$(ROOT_DIR)/flight/targets/SensorTest/Makefile.osx $*
##############################
#
# GCS related components
#
##############################
.PHONY: all_ground
all_ground: openpilotgcs
# Convenience target for the GCS
.PHONY: gcs gcs_clean
gcs: openpilotgcs
gcs_clean: openpilotgcs_clean
ifeq ($(V), 1)
GCS_SILENT :=
else
GCS_SILENT := silent
endif
.PHONY: openpilotgcs
openpilotgcs: uavobjects_gcs
$(V1) $(MKDIR) -p $(BUILD_DIR)/$@_$(GCS_BUILD_CONF)
$(V1) ( cd $(BUILD_DIR)/$@_$(GCS_BUILD_CONF) && \
$(QMAKE) $(ROOT_DIR)/ground/openpilotgcs/openpilotgcs.pro -spec $(QT_SPEC) -r CONFIG+="$(GCS_BUILD_CONF) $(GCS_SILENT)" $(GCS_QMAKE_OPTS) && \
$(MAKE) -w ; \
)
.PHONY: openpilotgcs_clean
openpilotgcs_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/openpilotgcs_$(GCS_BUILD_CONF))"
$(V1) [ ! -d "$(BUILD_DIR)/openpilotgcs_$(GCS_BUILD_CONF)" ] || $(RM) -r "$(BUILD_DIR)/openpilotgcs_$(GCS_BUILD_CONF)"
################################
#
# Android GCS related components
#
################################
# Build the output directory for the Android GCS build
ANDROIDGCS_OUT_DIR := $(BUILD_DIR)/androidgcs
$(ANDROIDGCS_OUT_DIR):
$(V1) $(MKDIR) -p $@
# Build the asset directory for the android assets
ANDROIDGCS_ASSETS_DIR := $(ANDROIDGCS_OUT_DIR)/assets
$(ANDROIDGCS_ASSETS_DIR)/uavos:
$(V1) $(MKDIR) -p $@
ifeq ($(V), 1)
ANT_QUIET :=
ANDROID_SILENT :=
else
ANT_QUIET := -q
ANDROID_SILENT := -s
endif
.PHONY: androidgcs
androidgcs: uavo-collections_java
$(V0) @$(ECHO) " ANDROID $(call toprel, $(ANDROIDGCS_OUT_DIR))"
$(V1) $(MKDIR) -p $(ANDROIDGCS_OUT_DIR)
$(V1) $(ANDROID) $(ANDROID_SILENT) update project \
--target "Google Inc.:Google APIs:$(GOOGLE_API_VERSION)" \
--name androidgcs \
--path ./androidgcs
$(V1) $(ANT) -f ./androidgcs/build.xml \
$(ANT_QUIET) \
-Dout.dir="../$(call toprel, $(ANDROIDGCS_OUT_DIR)/bin)" \
-Dgen.absolute.dir="$(ANDROIDGCS_OUT_DIR)/gen" \
$(ANDROIDGCS_BUILD_CONF)
.PHONY: androidgcs_clean
androidgcs_clean:
@$(ECHO) " CLEAN $(call toprel, $(ANDROIDGCS_OUT_DIR))"
$(V1) [ ! -d "$(ANDROIDGCS_OUT_DIR)" ] || $(RM) -r "$(ANDROIDGCS_OUT_DIR)"
# We want to take snapshots of the UAVOs at each point that they change
# to allow the GCS to be compatible with as many versions as possible.
# We always include a pseudo collection called "srctree" which represents
# the UAVOs in the source tree. So not necessary to add current tree UAVO
# hash here, it is always included.
# Find the git hashes of each commit that changes uavobjects with:
# git log --format=%h -- shared/uavobjectdefinition/ | head -n 2
# List only UAVO hashes of past releases, do not list current hash.
# Past compatible versions are so far: RELEASE-12.10.2
UAVO_GIT_VERSIONS := 5e14f53
# All versions includes also the current source tree UAVO hash
UAVO_ALL_VERSIONS := $(UAVO_GIT_VERSIONS) srctree
# This is where the UAVO collections are stored
UAVO_COLLECTION_DIR := $(BUILD_DIR)/uavo-collections
# $(1) git hash of a UAVO snapshot
define UAVO_COLLECTION_GIT_TEMPLATE
# Make the output directory that will contain all of the synthetics for the
# uavo collection referenced by the git hash $(1)
$$(UAVO_COLLECTION_DIR)/$(1):
$$(V1) $(MKDIR) -p $$(UAVO_COLLECTION_DIR)/$(1)
# Extract the snapshot of shared/uavobjectdefinition from git hash $(1)
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar: | $$(UAVO_COLLECTION_DIR)/$(1)
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar:
$$(V0) @$(ECHO) " UAVOTAR $(1)"
$$(V1) $(GIT) archive $(1) -o $$@ -- shared/uavobjectdefinition/
# Extract the uavo xml files from our snapshot
$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml: $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml.tar
$$(V0) @$(ECHO) " UAVOUNTAR $(1)"
$$(V1) $(RM) -rf $$@
$$(V1) $(MKDIR) -p $$@
$$(V1) $(TAR) -C $$(call toprel, $$@) -xf $$(call toprel, $$<) || $(RM) -rf $$@
endef
# Map the current working directory into the set of UAVO collections
$(UAVO_COLLECTION_DIR)/srctree:
$(V1) $(MKDIR) -p $@
$(UAVO_COLLECTION_DIR)/srctree/uavo-xml: | $(UAVO_COLLECTION_DIR)/srctree
$(UAVO_COLLECTION_DIR)/srctree/uavo-xml: $(UAVOBJ_XML_DIR)
$(V1) $(LN) -sf $(ROOT_DIR) $(UAVO_COLLECTION_DIR)/srctree/uavo-xml
# $(1) git hash (or symbolic name) of a UAVO snapshot
define UAVO_COLLECTION_BUILD_TEMPLATE
# This leaves us with a (broken) symlink that points to the full sha1sum of the collection
$$(UAVO_COLLECTION_DIR)/$(1)/uavohash: $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml
# Compute the sha1 hash for this UAVO collection
# The sed bit truncates the UAVO hash to 16 hex digits
$$(V1) $$(VERSION_INFO) \
--uavodir=$$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml/shared/uavobjectdefinition \
--format='$$$${UAVO_HASH}' | \
$(SED) -e 's|\(................\).*|\1|' > $$@
$$(V0) @$(ECHO) " UAVOHASH $(1) ->" $$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
# Generate the java uavobjects for this UAVO collection
$$(UAVO_COLLECTION_DIR)/$(1)/java-build/java: $$(UAVO_COLLECTION_DIR)/$(1)/uavohash
$$(V0) @$(ECHO) " UAVOJAVA $(1) " $$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) $(MKDIR) -p $$@
$$(V1) ( \
cd $$(UAVO_COLLECTION_DIR)/$(1)/java-build && \
$$(UAVOBJGENERATOR) -java $$(UAVO_COLLECTION_DIR)/$(1)/uavo-xml/shared/uavobjectdefinition $$(ROOT_DIR) ; \
)
# Build a jar file for this UAVO collection
$$(UAVO_COLLECTION_DIR)/$(1)/java-build/uavobjects.jar: | $$(ANDROIDGCS_ASSETS_DIR)/uavos
$$(UAVO_COLLECTION_DIR)/$(1)/java-build/uavobjects.jar: $$(UAVO_COLLECTION_DIR)/$(1)/java-build/java
$$(V0) @$(ECHO) " UAVOJAR $(1) " $$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash)
$$(V1) ( \
HASH=$$$$(cat $$(UAVO_COLLECTION_DIR)/$(1)/uavohash) && \
cd $$(UAVO_COLLECTION_DIR)/$(1)/java-build && \
$(JAVAC) java/*.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVDataObject.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVObject*.java \
$$(ROOT_DIR)/androidgcs/src/org/openpilot/uavtalk/UAVMetaObject.java \
-d . && \
find ./org/openpilot/uavtalk/uavobjects -type f -name '*.class' > classlist.txt && \
$(JAR) cf tmp_uavobjects.jar @classlist.txt && \
$$(ANDROID_DX) \
--dex \
--output $$(ANDROIDGCS_ASSETS_DIR)/uavos/$$$${HASH}.jar \
tmp_uavobjects.jar && \
$(LN) -sf $$(ANDROIDGCS_ASSETS_DIR)/uavos/$$$${HASH}.jar uavobjects.jar \
)
endef
# One of these for each element of UAVO_GIT_VERSIONS so we can extract the UAVOs from git
$(foreach githash, $(UAVO_GIT_VERSIONS), $(eval $(call UAVO_COLLECTION_GIT_TEMPLATE,$(githash))))
# One of these for each UAVO_ALL_VERSIONS which includes the ones in the srctree
$(foreach githash, $(UAVO_ALL_VERSIONS), $(eval $(call UAVO_COLLECTION_BUILD_TEMPLATE,$(githash))))
.PHONY: uavo-collections_java
uavo-collections_java: $(foreach githash, $(UAVO_ALL_VERSIONS), $(UAVO_COLLECTION_DIR)/$(githash)/java-build/uavobjects.jar)
.PHONY: uavo-collections
uavo-collections: uavo-collections_java
.PHONY: uavo-collections_clean
uavo-collections_clean:
@$(ECHO) " CLEAN $(call toprel, $(UAVO_COLLECTION_DIR))"
$(V1) [ ! -d "$(UAVO_COLLECTION_DIR)" ] || $(RM) -r $(UAVO_COLLECTION_DIR)
##############################
#
# Unit Tests
#
##############################
ALL_UNITTESTS := logfs
# Build the directory for the unit tests
UT_OUT_DIR := $(BUILD_DIR)/unit_tests
$(UT_OUT_DIR):
$(V1) $(MKDIR) -p $@
.PHONY: all_ut
all_ut: $(addsuffix _elf, $(addprefix ut_, $(ALL_UNITTESTS)))
.PHONY: all_ut_xml
all_ut_xml: $(addsuffix _xml, $(addprefix ut_, $(ALL_UNITTESTS)))
.PHONY: all_ut_run
all_ut_run: $(addsuffix _run, $(addprefix ut_, $(ALL_UNITTESTS)))
.PHONY: all_ut_clean
all_ut_clean:
@$(ECHO) " CLEAN $(call toprel, $(UT_OUT_DIR))"
$(V1) [ ! -d "$(UT_OUT_DIR)" ] || $(RM) -r "$(UT_OUT_DIR)"
# $(1) = Unit test name
define UT_TEMPLATE
.PHONY: ut_$(1)
ut_$(1): ut_$(1)_run
ut_$(1)_%: $$(UT_OUT_DIR)
$(V1) $(MKDIR) -p $(UT_OUT_DIR)/$(1)
$(V1) cd $(ROOT_DIR)/flight/tests/$(1) && \
$$(MAKE) -r --no-print-directory \
BUILD_TYPE=ut \
BOARD_SHORT_NAME=$(1) \
TOPDIR=$(ROOT_DIR)/flight/tests/$(1) \
OUTDIR="$(UT_OUT_DIR)/$(1)" \
TARGET=$(1) \
$$*
.PHONY: ut_$(1)_clean
ut_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(UT_OUT_DIR)/$(1))"
$(V1) [ ! -d "$(UT_OUT_DIR)/$(1)" ] || $(RM) -r "$(UT_OUT_DIR)/$(1)"
endef
# Expand the unittest rules
$(foreach ut, $(ALL_UNITTESTS), $(eval $(call UT_TEMPLATE,$(ut))))
# Disable parallel make when the all_ut_run target is requested otherwise the TAP
# output is interleaved with the rest of the make output.
ifneq ($(strip $(filter all_ut_run,$(MAKECMDGOALS))),)
.NOTPARALLEL:
$(info $(EMPTY) NOTE Parallel make disabled by all_ut_run target so we have sane console output)
endif
##############################
#
@ -946,10 +682,308 @@ sim_win32_%: uavobjects_flight
#
##############################
.PHONY: package
package:
$(V1) cd $@ && $(MAKE) --no-print-directory $@
# Firmware files to package
PACKAGE_FW_TARGETS := $(filter-out fw_simposix, $(FW_TARGETS))
PACKAGE_ELF_TARGETS := $(filter fw_simposix, $(FW_TARGETS))
.PHONY: package_resources
package_resources:
$(V1) cd package && $(MAKE) --no-print-directory opfw_resource
# Rules to generate GCS resources used to embed firmware binaries into the GCS.
# They are used later by the vehicle setup wizard to update board firmware.
# To open a firmware image use ":/firmware/fw_coptercontrol.opfw"
OPFW_RESOURCE := $(OPGCSSYNTHDIR)/opfw_resource.qrc
OPFW_RESOURCE_PREFIX := ../../
OPFW_FILES := $(foreach fw_targ, $(PACKAGE_FW_TARGETS), $(call toprel, $(BUILD_DIR)/$(fw_targ)/$(fw_targ).opfw))
OPFW_CONTENTS := \
<!DOCTYPE RCC><RCC version="1.0"> \
<qresource prefix="/firmware"> \
$(foreach fw_file, $(OPFW_FILES), <file alias="$(notdir $(fw_file))">$(OPFW_RESOURCE_PREFIX)$(fw_file)</file>) \
</qresource> \
</RCC>
.PHONY: opfw_resource
opfw_resource: $(OPFW_RESOURCE)
$(OPFW_RESOURCE): $(FW_TARGETS)
@$(ECHO) Generating OPFW resource file $(call toprel, $@)
$(V1) $(MKDIR) -p $(dir $@)
$(V1) $(ECHO) $(QUOTE)$(OPFW_CONTENTS)$(QUOTE) > $@
# If opfw_resource or all firmware are requested, GCS should depend on the resource
ifneq ($(strip $(filter opfw_resource all all_fw all_flight,$(MAKECMDGOALS))),)
$(eval openpilotgcs: $(OPFW_RESOURCE))
endif
# Packaging targets: package, clean_package
# - removes build directory (clean_package only)
# - builds all firmware, opfw_resource, gcs
# - copies firmware into a package directory
# - calls paltform-specific packaging script
# Do some checks and define some values if package is requested
ifneq ($(strip $(filter package clean_package,$(MAKECMDGOALS))),)
# Define some variables
export PACKAGE_LBL := $(shell $(VERSION_INFO) --format=\$${LABEL})
export PACKAGE_NAME := OpenPilot
export PACKAGE_SEP := -
# We can only package release builds
ifneq ($(GCS_BUILD_CONF),release)
$(error Packaging is currently supported for release builds only)
endif
# Packaged GCS should depend on opfw_resource
ifneq ($(strip $(filter package clean_package,$(MAKECMDGOALS))),)
$(eval openpilotgcs: $(OPFW_RESOURCE))
endif
# Clean the build directory if clean_package is requested
ifneq ($(strip $(filter clean_package,$(MAKECMDGOALS))),)
$(info Cleaning build directory before packaging...)
ifneq ($(shell $(MAKE) all_clean >/dev/null 2>&1 && $(ECHO) "clean"), clean)
$(error Cannot clean build directory)
endif
.PHONY: clean_package
clean_package: package
endif
endif
# Copy file template. Empty line before the endef is required, do not remove
# $(1) = copy file name without extension
# $(2) = source file extension
# $(3) = destination file extension
define COPY_FW_FILES
$(V1) $(CP) "$(BUILD_DIR)/$(1)/$(1)$(2)" "$(PACKAGE_DIR)/firmware/$(1)$(PACKAGE_SEP)$(PACKAGE_LBL)$(3)"
endef
# Build and copy package files into the package directory
# and call platform-specific packaging script
.PHONY: package
package: all_fw all_ground uavobjects_matlab
@$(ECHO) "Packaging for $(UNAME) $(ARCH) into $(call toprel, $(PACKAGE_DIR)) directory"
$(V1) [ ! -d "$(PACKAGE_DIR)" ] || $(RM) -rf "$(PACKAGE_DIR)"
$(V1) $(MKDIR) -p "$(PACKAGE_DIR)/firmware"
$(foreach fw_targ, $(PACKAGE_FW_TARGETS), $(call COPY_FW_FILES,$(fw_targ),.opfw,.opfw))
$(foreach fw_targ, $(PACKAGE_ELF_TARGETS), $(call COPY_FW_FILES,$(fw_targ),.elf,.elf))
$(MAKE) --no-print-directory -C $(ROOT_DIR)/package --file=$(UNAME).mk $@
##############################
#
# Source code formatting
#
##############################
UNCRUSTIFY_TARGETS := flight ground
# $(1) = Uncrustify target (e.g flight or ground)
# $(2) = Target root directory
define UNCRUSTIFY_TEMPLATE
.PHONY: uncrustify_$(1)
uncrustify_$(1):
@$(ECHO) "Auto-formatting $(1) source code"
$(V1) UNCRUSTIFY_CONFIG="$(ROOT_DIR)/make/uncrustify/uncrustify.cfg" $(SHELL) make/scripts/uncrustify.sh $(call toprel, $(2))
endef
$(foreach uncrustify_targ, $(UNCRUSTIFY_TARGETS), $(eval $(call UNCRUSTIFY_TEMPLATE,$(uncrustify_targ),$(ROOT_DIR)/$(uncrustify_targ))))
.PHONY: uncrustify_all
uncrustify_all: $(addprefix uncrustify_,$(UNCRUSTIFY_TARGETS))
##############################
#
# Doxygen documentation
#
# Each target should have own Doxyfile.$(target) with build directory build/docs/$(target),
# proper source directory (e.g. $(target)) and appropriate other doxygen options.
#
##############################
DOCS_TARGETS := flight ground uavobjects
# $(1) = Doxygen target (e.g flight or ground)
define DOXYGEN_TEMPLATE
.PHONY: docs_$(1)
docs_$(1): docs_$(1)_clean
@$(ECHO) "Generating $(1) documentation"
$(V1) $(MKDIR) -p $(BUILD_DIR)/docs/$(1)
$(V1) $(DOXYGEN) $(ROOT_DIR)/make/doxygen/Doxyfile.$(1)
.PHONY: docs_$(1)_clean
docs_$(1)_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/docs/$(1))"
$(V1) [ ! -d "$(BUILD_DIR)/docs/$(1)" ] || $(RM) -r "$(BUILD_DIR)/docs/$(1)"
endef
$(foreach docs_targ, $(DOCS_TARGETS), $(eval $(call DOXYGEN_TEMPLATE,$(docs_targ))))
.PHONY: docs_all
docs_all: $(addprefix docs_,$(DOCS_TARGETS))
.PHONY: docs_all_clean
docs_all_clean:
@$(ECHO) " CLEAN $(call toprel, $(BUILD_DIR)/docs)"
$(V1) [ ! -d "$(BUILD_DIR)/docs" ] || $(RM) -rf "$(BUILD_DIR)/docs"
##############################
#
# Build info
#
##############################
.PHONY: build-info
build-info:
@$(ECHO) " BUILD-INFO $(call toprel, $(BUILD_DIR)/$@.txt)"
$(V1) $(MKDIR) -p $(BUILD_DIR)
$(V1) $(VERSION_INFO) \
--uavodir=$(ROOT_DIR)/shared/uavobjectdefinition \
--template="make/templates/$@.txt" \
--outfile="$(BUILD_DIR)/$@.txt"
##############################
#
# Help message, the default Makefile goal
#
##############################
.DEFAULT_GOAL := help
.PHONY: help
help:
@$(ECHO)
@$(ECHO) " This Makefile is known to work on Linux and Mac in a standard shell environment."
@$(ECHO) " It also works on Windows by following the instructions given on this wiki page:"
@$(ECHO) " http://wiki.openpilot.org/display/Doc/Windows%3A+Building+and+Packaging"
@$(ECHO)
@$(ECHO) " Here is a summary of the available targets:"
@$(ECHO)
@$(ECHO) " [Tool Installers]"
@$(ECHO) " arm_sdk_install - Install the GNU ARM gcc toolchain"
@$(ECHO) " qt_sdk_install - Install the QT development tools"
@$(ECHO) " mingw_install - Install the MinGW toolchain (Windows only)"
@$(ECHO) " python_install - Install the Python interpreter (Windows only)"
@$(ECHO) " nsis_install - Install the NSIS Unicode (Windows only)"
@$(ECHO) " uncrustify_install - Install the Uncrustify source code beautifier"
@$(ECHO) " doxygen_install - Install the Doxygen documentation generator"
@$(ECHO) " gtest_install - Install the GoogleTest framework"
@$(ECHO) " These targets are not updated yet and are probably broken:"
@$(ECHO) " openocd_install - Install the OpenOCD JTAG daemon"
@$(ECHO) " stm32flash_install - Install the stm32flash tool for unbricking F1-based boards"
@$(ECHO) " dfuutil_install - Install the dfu-util tool for unbricking F4-based boards"
@$(ECHO) " android_sdk_install - Install the Android SDK tools"
@$(ECHO) " Install all available tools:"
@$(ECHO) " all_sdk_install - Install all of above (platform-dependent)"
@$(ECHO) " build_sdk_install - Install only essential for build tools (platform-dependent)"
@$(ECHO)
@$(ECHO) " Other tool options are:"
@$(ECHO) " <tool>_version - Display <tool> version"
@$(ECHO) " <tool>_clean - Remove installed <tool>"
@$(ECHO) " <tool>_distclean - Remove downloaded <tool> distribution file(s)"
@$(ECHO)
@$(ECHO) " [Big Hammer]"
@$(ECHO) " all - Generate UAVObjects, build openpilot firmware and gcs"
@$(ECHO) " all_flight - Build all firmware, bootloaders and bootloader updaters"
@$(ECHO) " all_fw - Build only firmware for all boards"
@$(ECHO) " all_bl - Build only bootloaders for all boards"
@$(ECHO) " all_bu - Build only bootloader updaters for all boards"
@$(ECHO)
@$(ECHO) " all_clean - Remove your build directory ($(BUILD_DIR))"
@$(ECHO) " all_flight_clean - Remove all firmware, bootloaders and bootloader updaters"
@$(ECHO) " all_fw_clean - Remove firmware for all boards"
@$(ECHO) " all_bl_clean - Remove bootloaders for all boards"
@$(ECHO) " all_bu_clean - Remove bootloader updaters for all boards"
@$(ECHO)
@$(ECHO) " all_<board> - Build all available images for <board>"
@$(ECHO) " all_<board>_clean - Remove all available images for <board>"
@$(ECHO)
@$(ECHO) " all_ut - Build all unit tests"
@$(ECHO) " all_ut_tap - Run all unit tests and capture all TAP output to files"
@$(ECHO) " all_ut_run - Run all unit tests and dump TAP output to console"
@$(ECHO)
@$(ECHO) " [Firmware]"
@$(ECHO) " <board> - Build firmware for <board>"
@$(ECHO) " Supported boards are ($(ALL_BOARDS))"
@$(ECHO) " fw_<board> - Build firmware for <board>"
@$(ECHO) " Supported boards are ($(FW_BOARDS))"
@$(ECHO) " fw_<board>_clean - Remove firmware for <board>"
@$(ECHO) " fw_<board>_program - Use OpenOCD + JTAG to write firmware to <board>"
@$(ECHO)
@$(ECHO) " [Bootloader]"
@$(ECHO) " bl_<board> - Build bootloader for <board>"
@$(ECHO) " Supported boards are ($(BL_BOARDS))"
@$(ECHO) " bl_<board>_clean - Remove bootloader for <board>"
@$(ECHO) " bl_<board>_program - Use OpenOCD + JTAG to write bootloader to <board>"
@$(ECHO)
@$(ECHO) " [Entire Flash]"
@$(ECHO) " ef_<board> - Build entire flash image for <board>"
@$(ECHO) " Supported boards are ($(EF_BOARDS))"
@$(ECHO) " ef_<board>_clean - Remove entire flash image for <board>"
@$(ECHO) " ef_<board>_program - Use OpenOCD + JTAG to write entire flash image to <board>"
@$(ECHO)
@$(ECHO) " [Bootloader Updater]"
@$(ECHO) " bu_<board> - Build bootloader updater for <board>"
@$(ECHO) " Supported boards are ($(BU_BOARDS))"
@$(ECHO) " bu_<board>_clean - Remove bootloader updater for <board>"
@$(ECHO)
@$(ECHO) " [Unbrick a board]"
@$(ECHO) " unbrick_<board> - Use the STM32's built in boot ROM to write a bootloader to <board>"
@$(ECHO) " Supported boards are ($(BL_BOARDS))"
@$(ECHO) " [Unittests]"
@$(ECHO) " ut_<test> - Build unit test <test>"
@$(ECHO) " ut_<test>_xml - Run test and capture XML output into a file"
@$(ECHO) " ut_<test>_run - Run test and dump output to console"
@$(ECHO)
@$(ECHO) " [Simulation]"
@$(ECHO) " sim_osx - Build OpenPilot simulation firmware for OSX"
@$(ECHO) " sim_osx_clean - Delete all build output for the osx simulation"
@$(ECHO) " sim_win32 - Build OpenPilot simulation firmware for Windows"
@$(ECHO) " using mingw and msys"
@$(ECHO) " sim_win32_clean - Delete all build output for the win32 simulation"
@$(ECHO)
@$(ECHO) " [GCS]"
@$(ECHO) " gcs - Build the Ground Control System (GCS) application (debug|release)"
@$(ECHO) " gcs_clean - Remove the Ground Control System (GCS) application (debug|release)"
@$(ECHO) " Supported build configurations: GCS_BUILD_CONF=debug|release (default is $(GCS_BUILD_CONF))"
@$(ECHO)
@$(ECHO) " [AndroidGCS]"
@$(ECHO) " androidgcs - Build the Android Ground Control System (GCS) application"
@$(ECHO) " androidgcs_install - Use ADB to install the Android GCS application"
@$(ECHO) " androidgcs_run - Run the Android GCS application"
@$(ECHO) " androidgcs_clean - Remove the Android GCS application"
@$(ECHO)
@$(ECHO) " [UAVObjects]"
@$(ECHO) " uavobjects - Generate source files from the UAVObject definition XML files"
@$(ECHO) " uavobjects_test - Parse xml-files - check for valid, duplicate ObjId's, ..."
@$(ECHO) " uavobjects_<group> - Generate source files from a subset of the UAVObject definition XML files"
@$(ECHO) " Supported groups are ($(UAVOBJ_TARGETS))"
@$(ECHO)
@$(ECHO) " [Packaging]"
@$(ECHO) " clean_package - Clean, build and package the OpenPilot platform-dependent package"
@$(ECHO) " package - Build and package the OpenPilot platform-dependent package (no clean)"
@$(ECHO) " opfw_resource - Generate resources to embed firmware binaries into the GCS"
@$(ECHO)
@$(ECHO) " [Code Formatting]"
@$(ECHO) " uncrustify_<source> - Reformat <source> code according to the project's standards"
@$(ECHO) " Supported sources are ($(UNCRUSTIFY_TARGETS))"
@$(ECHO) " uncrustify_all - Reformat all source code"
@$(ECHO)
@$(ECHO) " [Code Documentation]"
@$(ECHO) " docs_<source> - Generate HTML documentation for <source>"
@$(ECHO) " Supported sources are ($(DOCS_TARGETS))"
@$(ECHO) " docs_all - Generate HTML documentation for all"
@$(ECHO) " docs_<source>_clean - Delete generated documentation for <source>"
@$(ECHO) " docs_all_clean - Delete all generated documentation"
@$(ECHO)
@$(ECHO) " Hint: Add V=1 to your command line to see verbose build output."
@$(ECHO)
@$(ECHO) " Notes: All tool distribution files will be downloaded into $(DL_DIR)"
@$(ECHO) " All tools will be installed into $(TOOLS_DIR)"
@$(ECHO) " All build output will be placed in $(BUILD_DIR)"
@$(ECHO)
@$(ECHO) " Tool download and install directories can be changed using environment variables:"
@$(ECHO) " OPENPILOT_DL_DIR full path to downloads directory [downloads if not set]"
@$(ECHO) " OPENPILOT_TOOLS_DIR full path to installed tools directory [tools if not set]"
@$(ECHO) " More info: http://wiki.openpilot.org/display/Doc/OpenPilot+Build+System+Overview"
@$(ECHO)

44
README.txt Normal file
View File

@ -0,0 +1,44 @@
What is OpenPilot all about?
----------------------------
The project aims at implementing the best features of all existing similar systems developed by
enthusiasts and combines them into a single, easy-to-use software/hardware package. The ease-of-use
in this case does not imply functional simplicity or compromises. There are no rigidly defined
constraints and settings, but a full-fledged programming language configuration loaded via a
Ground Control Station and other advanced features. OpenPilot is developed as a powerful platform
for all types of vehicles.
This is a non-profit project of the OpenPilot Foundation
--------------------------------------------------------
This is a project using only volunteer personnel who have donated enormous amounts of time, money
and effort. Please respect the people that are part of the project and their generosity. OpenPilot
is funded entirely at the expense of those who spend their time and money in the development of the
public project which helps it grow. Giving complete and correct references to all their work is not
only a legal requirement of the CC-BY-SA license, but also simple respect for their work. The people
who create this project, really deserve it for their very hard work.
The OpenPilot project web sites
-------------------------------
The project provides feature-rich development and collaboration environment using advanced tools such
as GCC compilers, git, Atlassian JIRA, Confluence, FishEye, Crucible, Bamboo, Crowd, forums and blogs.
Main project web site: http://www.openpilot.org/
Project forums: http://forums.openpilot.org/
Wiki, docs and manuals: http://wiki.openpilot.org/
Bug and issue tracker: http://progress.openpilot.org/
Source code repository: http://git.openpilot.org/
Crucible code reviews: http://reviews.openpilot.org/cru
Project build server: http://bamboo.openpilot.org/
Community blogs: http://forums.openpilot.org/blogs/
Software downloads: http://wiki.openpilot.org/display/BUILDS/OpenPilot+Software+Downloads
How to build from source?
-------------------------
make all_sdk_install
make all
The project supports Windows, Linux and Mac OS X platforms as well as Android.
Check the wiki for more details: http://wiki.openpilot.org/display/Doc/OpenPilot+Developer+Manual

521
WHATSNEW.txt Normal file
View File

@ -0,0 +1,521 @@
--- RELEASE-13.06 --- Italian Stallion Release ---
This is the first official OpenPilot Revolution software release. This version
also supports the CopterControl, CC3D, OPLinkMini and the upcoming OP OSD.
There a number of significant backend changes in this version compared to
previous software releases: from new toolchains and build system to a source
code reformatting that is inline with our project style guidelines.
The goal of this release is to provide CC3D-style features for the new
Revolution platform (using the Revo's internal modem and external OPLinkMini
board). Advanced features such as Altitude Hold, Position Hold, Guidance,
Return to Home, and AutoLanding are still in development and will be available
in future releases. The availability of those features will depend on how many
people are able to contribute with code, testing and documentation.
Remember that the first Revo hardware batch was intended for developers/
bleeding-edge testers, not end users who want a 100% final platform.
- New bootloaders are REQUIRED for this release to support new features such
as erase settings and others. As always, bootloaders can be updated without
any special programmer hardware using the bootloader updater firmware files.
- F1 boards (CC, CC3D, OPLinkMini) require bootloader version 4 or higher.
- F4 boards (Revolution, OSD prototype) require bootloader version 5 or higher.
- Check the wiki for details of how to update them:
http://wiki.openpilot.org/display/BUILDS/Bootloader+update
Please remember to take a moment to view these important tutorials:
http://wiki.openpilot.org/display/Doc/OpenPilot+Tutorials
What's New / Release Notes
--------------------------
NEW:
- Firmware folders removed.
The firmware files folder has been removed in this release. These files
are now integrated into the GCS so they are always up to date and there is
less risk of a firmware mismatch. To update your firmware you must use
either Vehicle Setup Wizard (big green button at the top right on the
Welcome GCS tab) or the new Auto-Update button on the GCS Firmware tab.
- Responsiveness sliders.
To simplify tuning, we have introduced a new Responsiveness slider that
will allow you to modify stick response. For best results, you should
still tune your system with PIDs as tight as possible for better
stabilisation. This will result in better stabilisation, and at the
same time soft or sharp response according to your preferences.
- Auto-Update firmware.
This feature simplifies all OpenPilot board firmware updates. Now all
you have to do is click "Auto-update" on the Firmware tab and follow the
instructions to reflash your OpenPilot board. This is essentially the
same as Rescue but uses the embedded firmware images so there is no need
to browse for them anymore.
- Erase Settings Option.
We previously had a hacky way to delete bad or incompatible settings from
our OpenPilot boards. This old special firmware that did this is now
deprecated and the functionality is now integrated into the latest
bootloaders and firmwares.
To erase settings enter DFU (boot) mode (using Halt or Rescue function)
and click the "Erase settings" button on the Firmware tab and follow the
instructions. This will NOT work with an older bootloader and the "Erase
settings" button will be disabled if an out of date bootloader is detected.
- Language defaults.
GCS now uses the system default language (only French and English are
available currently, please contribute translations). You can change the
language in the GCS Options at any time.
- CDC driver install option (Windows only).
This is an optional USB virtual serial port that is useful, for example,
for updating your GPS configuration using the U-Blox u-Center software.
It is NOT required for normal configuration of OpenPilot boards. If it is
not installed, virtual serial port features will not be available. This
driver is not signed by Microsoft, but in fact it uses serial port drivers
from Windows and only the driver information INF file is supplied by
OpenPilot.
- Lots of help tooltips were added to the GCS. Hovering your mouse over an
option in the GCS will show them, please review for help during tuning/
setting up.
- A large amount of general improvements, code clean ups and minor bugs
resolved.
KNOWN ISSUES:
- On Linux you should remove the OpenPilot package if it was previously
installed, then install this new one. This is a known issue and likely
be fixed later.
- Due to changes in USB descriptors to support new features, USB drivers
on Windows must be updated. If after using Rescue or Wizard or Auto-Update
button the GCS cannot connect to the board, you may be experiencing this
USB issue. To resolve it you should remove the old drivers (ones with
yellow exclamation mark) and allow Windows to find them again.
Here is how to do it:
Windows XP:
- Right click on "My Computer" on your desktop and select "Properties".
- Select the "Hardware" tab.
- Select the "Device Manager".
- Scroll down the list until you see the "Universal Serial Bus Controllers"
selection.
- Click it to expand the list of USB drivers. Right-click on the driver(s)
you wish to uninstall and select "Uninstall".
Windows 7/Vista:
- Right click on "My Computer" on your desktop and select "Properties".
- Select "Device Manager" in the upper left-hand corner of the window.
- Scroll down the list until you see the "Universal Serial Bus Controllers"
selection.
- Click it to expand the list of USB drivers. Right-click on the driver(s)
you wish to uninstall and select "Uninstall".
Then disconnect the board from USB, wait few seconds and re-connect it to
your computer. Windows should find new drivers and install them properly.
- If GCS crashes when switching to the Flight Data tab, it usually means
your PC needs newer video drivers. That tab contains a ModelView widget
which uses OpenGL. It is known to crash on some graphics cards with old
and buggy drivers.
- Sensor calibration is not final. It will be reworked completely to
increase its accuracy and make it easier to use.
- Until the calibration is reworked, default attitude estimation algorithm
used by Revo is a complimentary filter with magnetometers disabled. Hence
Revo does not use them yet to correct yaw drift. Magnetometers can be
enabled, but you should properly calibrate them first. That's the reason
why they are disabled by default.
- AltitudeHold mode is enabled, but it is not officially supported. Do
not expect it to work perfectly and be considered production quality.
You may play with it and report your issues and suggestions at your own
risk. If you are not using a case for your Revo, we strongly recommend
covering the barometer sensor with some foam to shield the sensor from
wind and light.
- Note that throttle stick in AltitudeHold mode is used to control vertical
velocity, sometimes called vario altitude in other platforms, centre stick
means hold altitude and there is a dead band around centre stick.
- There are currently no configuration options for the Radio module in
the Revolution except for Radio enable/disable and output power. This is
intentional because all configuration should be done using its paired
ground OPLink coordinator.
How to configure the Revolution to OPLinkMini radio link:
- Make sure you have the newest bootloaders and matching firmwares
between the Revolution, GCS and OPLink.
- Enable the radio in the Revolution, click save and disconnect the board
from USB.
- Power it from external supply to continue.
- Then connect the OPLink board to USB and scroll down in the GCS config
widget to find OPLink icon at the end of list. This icon is only
available when an OPLink is detected.
- To pair the two radios, select the Revolution side radio address in the
list of found boards, select it, click Add to add to the list of paired
radios and click Save. After unplugging the board from the USB and
plugging back your OPLink it should show "Connected", and you can
continue with the configuration.
- Do not set the Revolution modem or OPLinkMini output power to high values
without antenna connected, this can damage the hardware.
JIRA issues addressed in this release:
Due to major rework of all code and integration of Revo code into mainline
(next) it is almost impossible to list all corresponding JIRA issues for the
list above. Some of them can be found using this link:
http://progress.openpilot.org/issues/?filter=10860
OP-678, OP-693, OP-719, OP-726, OP-727, OP-747, OP-761, OP-769, OP-770,
OP-772, OP-784, OP-792, OP-804, OP-807, OP-812, OP-816, OP-817, OP-820,
OP-821, OP-843, OP-846, OP-854, OP-855, OP-856, OP-861, OP-864, OP-867,
OP-871, OP-873, OP-874, OP-875, OP-879, OP-885, OP-886, OP-888, OP-889,
OP-890, OP-891, OP-892, OP-893, OP-894, OP-895, OP-896, OP-897, OP-898,
OP-899, OP-900, OP-903, OP-905, OP-906, OP-907, OP-910, OP-912, OP-917,
OP-920, OP-925, OP-926, OP-928, OP-935, OP-936, OP-939, OP-952, OP-955,
OP-957, OP-958, OP-965, OP-968, OP-969, OP-970, OP-977, OP-979, OP-980,
OP-981, OP-982, OP-983, OP-988, OP-989, OP-990, OP-991, OP-993, OP-997,
OP-998, OP-999, OP-1000, OP-1002, OP-1005, OP-1007, OP-1008, OP-1009, OP-1010,
OP-1011, OP-1012, OP-1013, OP-1015, OP-1016, OP-1021
Short summary of changes. For a complete list see the git log.
Flight code changes:
- initial version of Revo code;
- initial version of OPLinkMini code;
- CopterControl/CC3D code reworked to reuse parts of Revo code;
- switched to new ARM-supported GCC 4.7 toolchain with hardware floating point support;
- major code cleanup and use of compiler warning flags to early catch errors;
- major directory and Makefiles reorganisation and cleanup;
- all source code fixed to use float variables instead of doubles (to use hardware FPU);
- added multi-binding support for OPLinkMini;
- added frequency hopping for Revo and OPLinkMini;
- added auto-configuration for OPLinkMini remote modem / Revo;
- replaced entire flash generation code;
- new U-Blox GPS binary protocol parser;
- added STM32 DSP library;
- updated STM32 CMSIS library;
- updated STM32 USB OTG driver;
- updated STM32 F1 StdPeriph driver library;
- updated STM32 F4 StdPeriph driver library;
- updated FreeRTOS (real-time operating system used by the flight code to run many tasks);
- PyMite moved to a library;
- fixed nasty bug in PyMite Makefile, single file was rebuilt 5 times fo no reason;
- added configurable accel/gyro rates;
- added visualisation of errors in bootloader updater;
- added numerous sanity checks to the flight code to prevent unsafe arming;
- new flash file system, much faster and higly optimised;
- Revo settings are now stored in embedded MCU flash freeing up external one for flight logs;
- OPLinkMini now stores settings in the MCU flash using FlashFS too;
- a catalog of known flash types is used to support different flash types by the same firmware;
- fixed broken overo submodule remote repository link;
- fixed DSMX protocol error with some Tx/Rx combintions;
- added new pios_*.h headers to support commonly used constants, functions and defines;
- numerous fixes for data alignment and memory allocation strategy;
- new bootloaders to support more features (for example, board settings erase);
- added new feature to erase settings without special firmware;
- removed CC/CC3D setting erase firmware (now not necessary due to new erase feature);
- introduced new delayed callback scheduler to run modules from a single task;
- many changes to AeroSim-RC simulator interface;
- fixed broken debug pins API;
- fixed few bugs in the EKF code;
- introduced bootloader updater for F4 boards (including Revo and OSD);
- some changes in RAM and flash memory partitioning to better utilize resources;
- changes in bootloader to allow remote reboot via serial port or radio modem;
- the EKF "Huge Formula" is replaced by optimised set of of loops to make it editable;
- Cyr's attitude patch is ported from CC3D to Revo;
- added magnetometer options (mags are disabled by default for Revo complimenary filter);
- advance camera stabilisation is now officially released;
- Revo alarm led now distinguish between Critical(lit led), Error(blink fast), Warning(blink slowly) Alarm condition
- Revo alarm led flash fast(like in Error Alarm) during calibration using complementary attitude estimation.
- Redo gyro bias zero after calibration parameters changes
- Do not raise GPS alarm if a gps port is not configured.
- fixed numerous internal firmware bugs (too many to list here).
GCS code changes:
- nice loading splash screen;
- now GCS uses system language by default if translation is available, English otherwise;
- French translation officially added. Please help with other languages;
- fixed some crashes of uploader gadget;
- fixed double config read on restore;
- improvements in GCS options dialog handling;
- optimised option dialog creating;
- added UI tooltips for many options;
- removed unused yet options from configuration UI;
- removed GCS config dialog on the first run, one default is used now if missing;
- added Revo configuration page, similar to CC/CC3D one;
- added OPLinkMini configuration page;
- hardware options are now dynamically enabled/disabled to allow supported configurations only;
- new artwork for all boards everywhere;
- optimised some 3D models;
- new About dialog showing version info and contributors list;
- fixed badly broken HiTL options dialog;
- fixed compilation problem on OSX, now GCS should be compatible with OSX 10.5+;
- major vehicle config cleanup with lazy creation (speeds up GCS start);
- UI config pages improvements (responsiveness, etc)
- new auto-update feature added, *.opfw firmware files removed from distributables;
- anti-aliased scope plugin;
- numerous code fixes and cleanups (too many to list here);
- USB HID code is replaced by new cross-platform hidapi library to fix old Linux/OSX problems.
- Adds GUI to set Altitude Hold filter parameters.
- Adds configurable units for velocity/speed and altitude in QML PFD. Units are configured in settings panel.
- Reduces precision of the PDOP value in the PFD display to 1 decimal.
- Remove deprecated powerlog
Common parts:
- added simple toolchain install make targets;
- added self-hosted toolchains to ensure that they're always available;
- added support for globally istalled tools used by many working copies;
- added Windows bootstrap script to pull all other build tools;
- added unit testing framework, also supported by Bamboo CI server and agents;
- added code style formatting make targets, easy to use by developers;
- added doxygen make targets. The documentation still must be completely revised, though;
- enforced global line ending policy, source files are updated accordingly;
- reworked packaging to provide correct dependencies and safe multi-threaded builds;
- multiply renames of board names and directories, now we have correct names;
- fixed dependencies in Makefiles, now 'make -j' works reliably;
- CLEAN_BUILD make option is deprecated, use 'package' or 'clean_package' instead;
- simposix elf is now included into linux distribution and can be run with default GCS settings;
- revised 'make help' message;
- updated Windows driver to support Revolution and use correct board names.
Android GCS:
- old and buggy code was removed;
- full rewrite has been started.
Infrastructure:
- Bamboo continuous integration server is actively used;
- around 10 build agents running 4 different operating systems are set up;
- every push to any branch is now build-tested, and unit tests run are performed;
2012-11-17
Advanced camera stabilization features.
They include optional manual control input filtering (moved from camera stabilization to manual
control input and now available also for main controls), optional airframe attitude filtering
used by camera stabilization, and optional camera actuator feed forward to improve gimbal response.
--- RELEASE-12.10.2 --- Mayan Apocalypse Release ---
List of issues resolved in this maintenance release:
http://progress.openpilot.org/issues/?filter=10361
OP-459, OP-545, OP-674, OP-679, OP-685, OP-686, OP-687, OP-690, OP-691,
OP-702, OP-703, OP-714, OP-715, OP-716, OP-721, OP-728, OP-746, OP-748,
OP-749, OP-750, OP-758, OP-759, OP-760
Here is a list of some known unresolved issues. If an issue has JIRA ID [OP-XXX],
you may track it using the following URL: http://bugs.openpilot.org/browse/OP-XXX
+ Only French translation is updated, use English for other locales or help with translations.
+ Radio Wizard confused by a reversed throttle, fix it on your transmitter before starting wizard.
+ Radio Wizard Throttle display does not show full range properly.
+ [Windows 8] USB Driver is broken.
+ Firmware Update Instructions on Firmware Tab not entirely accurate for all upgrade paths.
+ Tricopter's using Vehicle Wizard need to check servo does not need reversed manually.
+ XAircraft ESCs uses non-standard PPM range which may cause issues with Vehicle Wizard.
+ Spectrum Satellite Receivers setup in Radio Wizard may have wrong protocol set.
+ Old Intel 965 have an OpenGL bug that turns the QML PFD black and while.
+ [OP-732] Import UAV Settings for inactive modules crashes the running firmware (board restarts).
Workaround: update firmware, power cycle, enable modules, power cycle, import configuration.
+ [OP-747] Board infinitely reboots itself after firmware upgrade (settings erase firmware is a workaround).
+ [OP-723] GCS uses the system language ot the 1st run. After restart it uses English (can be changed later).
+ [OP-725] GCS camera stab config error message disappears too fast (but config error is cleared as it should)
+ [OP-767] GCS does not send AttitudeActual packets over serial port when GPS is connected and system is armed
+ [OP-768] GCS does not show UAV position on the map (master or next CC branches, but works in Revo branches)
+ [OP-769] Can't enter "12,45" on German system. Workaround: change GCS language (in fact, locale) to German.
2012-11-12
Implemented smoothing filter for accelerometer data.
Added support for Mode 3 and Mode 4 to the TX Configuration Wizard.
--- RELEASE-12.10.1 ---
2012-10-26
Temporary disabled AutoTune GCS GUI. It was listed as an experimental
feature in the previous release, there were however a few cases where
it did not behave as expected.
--- RELEASE-12.10 ---
2012-10-06
Receiver port can now be configured as PPM *and* PWM inputs.
Pin 1 is PPM, other pins are PWM inputs.
2012-07-27
Added the ability to load stylesheets from external file according to operating system:
macos.qss, linux.qss, windows.qss
Files should be placed inside the app folder.
2012-07-27
Several UI changes.
MixerCurveWidget refactoring, now as a simple and advanced view.
2012-07-27
Added "advanced mode" option to general settings. Right now it only shows the hidden apply buttons.
To enable go to tools->options->General and click one of the checkboxes to give focus to the form,
then press F7
2012-07-27
Made the flight mode switch and accessory pots move according to user input on the input wizard.
2012-07-27
Changed the board pictures on the uploader widget
2012-07-27
Add more verbose debug output on the UAVOBJECTS saving code.
2012-08-11
CopterControl can now emulate an 8-channel USB HID joystick. Primarily,
this lets you use any RC transmitter with flight simulators on your PC.
2012-07-20
AeroSimRC simulator plugin is now included into the Windows distribution
(will be installed into .../OpenPilot/misc/AeroSIM-RC directory). Still
being an experimental development tool, it could be used to play with
HITL version 2. Other platforms include udp_test utility which can be
used to check the connectivity with AeroSimRC plugin running on Windows
machine.
2012-07-10
On Windows the installation mode was changed from per-user to per-machine
(for all users) installation. It is recommended to completely uninstall
previous version before installing new one to remove per-user installed
files. Per-machine installation requires elevated (administrator) previleges
during install. But since the same rights are now required to install
optional CDC driver (virtual communication port), it was deemed acceptable.
2012-06-04
AeroSimRC support merged into next
2012-05-26
VirtualFlybar which allows a more aggressive flight mode than rate mode
support. Also PiroCompensation added.
2012-05-26
Revert some UI changes that didn't work consistently between OSX and Windows.
2012-05-24
Merged the updated firmware for the PipXtreme, thanks to Brian for a lot of
work on this.
2012-05-04
Support for CC3D. This involved changes to various things such as the sensors
being split from AttitudeRaw to Accels,Gyros,Magnetometer. A single firmware
image fw_coptercontrol will run on both CC and CC3D. When compiling the
bootloader one must set the HW_REVISION to the appropriate value. 0x01 is for
CC and 0x02 is for CC3D. If the wrong bootloader is installed the firmware
will not run.
2012-05-02
Reduction in the memory usage due to the UAVObject metadata. Now the update
periods are using a smaller data type and the various flags relating to access
controls and update modes are stored in a bitfield. The UAVObjectBrowser has
not been updated to allow these modes to be easily changed.
2012-03-31
Support for ground vehicle configuration has been added to the the GCS.
2012-02-14
New QML based system to allow more flexible UI. Upgraded stabilization
configuration.
2012-01-02
CC FW now supports USB Virtual Com Port (VCP/CDC) in addition to the original HID interface
New ComUsbBridge module can bridge any serial port to the USB CDC port
CC FW now detects repeated faults during init and boots with default hwsettings
2012-01-02
Added new camera stabilization features: AxisLock mode and LPF.
2011-12-10
Merged a change that sorts the UAVO fields based on size. Because this changes
all of the objects, erase all existing flash files based on this.
2011-11-04
New Spektrum/JR satellite receiver driver implementation.
It now provides explicit selection of DSM2 (and DSMJ), DSMX (10bit) and
DSMX (11bit) serial protocol variations to better serve different frame
and resolution modes. The protocol name used now is DSM instead of
previously used Spektrum to make it less ambiguous when used with JR
2.4GHz radios.
2011-10-20
Inputs can be remapped to outputs to allow up to 10 channels of control. The
receiver inputs remap as follows:
Receiver 3 because output channel 7
Receiver 4 because output channel 8
Receiver 5 because output channel 9
Receiver 6 because output channel 10
2011-10-11
Fix for the Mac telemetry rates and specifically how long enumeration took.
2011-10-08
Make the flash chip need to be have bad magic for a full second before erasing
settings. Should avoid random lost settings.
2011-09-12
Max rate now ONLY applies to attitude and axis lock mode. Manual rate is the
only term that limits the rate mode now (and in axis lock when you push stick
only manual rate applies). Also integrals are reset when unused.
2011-09-09
Some large updates to the input system. Now multiple receivers can be
connected at once. A wizard was added for configuring the input channels. A
specific collective pitch channel was added.
2011-09-04
Improvements to the failsafe handling code for inputs. PWM power off is now
detected properly. Powering on transmitter for Spektrum Satellite no longer
causes a glitch on servos.
2011-08-10
Added Camera Stabilization and a gui to configure this. This is a software
selectable module from the GUI. However, a restart is required to make it
active. The GUI does not currently expose the configuration for using the
transmitter to change the view angle but this is supported by the hardware.
2011-08-10
By default a lot of diagnostic objects that were enabled by default are now
disabled in the build. This include TaskInfo (and all the FreeRTOS options
that provide that debugging information). Also MixerStatus, I2CStatus,
WatchdogStatus and RateDesired. These can be reenabled for debugging with
-DDIAG_ALL.
2011-08-04
Fixed packaging aesthetic issues. Also avoid runtime issues on OSX Lion by
disabling the ModelView and Notify plugins for now (sorry).
2011-07-29
Added support for PPM receivers from James W. Now all 4 interfaces (R/C
standard PWM, combined PPM (MK), Spektrum satellite, Futaba S.Bus) are
supported and configurable through the GCS hardware configuration tab.
2011-07-17
Updated module initialization from Mathieu which separates the initialization
from the task startup. Also implements a method to reclaim unused ram from
initialization and end of memory for the FreeRTOS heap.
2011-07-12
Improvements to the stabilization code. Included a LPF on the gyros to smooth
out noise in high vibration environments. Also two new modes: axis-lock and
weak leveling. Axis-lock will try and hold an axis at a fixed position and
reject any disturbances. This is like heading-hold on a heli for the tail but
can be useful for other axes. Weak leveling is rate mode with a weak
correction to self level the craft - good for easier rate mode flying.
2011-07-07
Dynamic hardware configuration from Stac. The input type is now
selected from ManualControlSettings.InputMode and the aircraft must be rebooted
after changing this. Also for CopterControl the HwSettings object must
indicate which modules are connected to which ports. PPM currently not
working.

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

View File

@ -1,83 +0,0 @@
!SESSION 2012-02-04 14:21:36.086 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_29
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments: -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -keyring /Users/jcotton81/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -data /Users/jcotton81/Documents/Programming/OpenPilot/androidgcs -product org.eclipse.epp.package.cpp.product -keyring /Users/jcotton81/.eclipse_keyring -showlocation
!ENTRY org.eclipse.core.net 1 0 2012-02-04 14:21:41.864
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
!ENTRY org.eclipse.ui.intro.universal 4 0 2012-02-04 14:21:44.892
!MESSAGE /Users/jcotton81/Documents/Programming/eclipse/Eclipse.app/Contents/MacOS/introData.xml (No such file or directory)
!STACK 0
java.io.FileNotFoundException: /Users/jcotton81/Documents/Programming/eclipse/Eclipse.app/Contents/MacOS/introData.xml (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
at org.eclipse.ui.internal.intro.universal.IntroData.parse(IntroData.java:159)
at org.eclipse.ui.internal.intro.universal.IntroData.initialize(IntroData.java:63)
at org.eclipse.ui.internal.intro.universal.IntroData.<init>(IntroData.java:47)
at org.eclipse.ui.internal.intro.universal.CustomizationContentsArea.loadData(CustomizationContentsArea.java:624)
at org.eclipse.ui.internal.intro.universal.CustomizationContentsArea.addPages(CustomizationContentsArea.java:489)
at org.eclipse.ui.internal.intro.universal.CustomizationContentsArea.createContents(CustomizationContentsArea.java:453)
at org.eclipse.ui.internal.intro.universal.CustomizationDialog.createDialogArea(CustomizationDialog.java:44)
at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:760)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
at org.eclipse.jface.window.Window.open(Window.java:790)
at org.eclipse.ui.internal.intro.universal.CustomizeAction.run(CustomizeAction.java:35)
at org.eclipse.ui.internal.intro.universal.CustomizeAction.run(CustomizeAction.java:29)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3543)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1250)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1273)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3441)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3100)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
!SESSION 2012-02-04 15:23:30.048 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_29
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments: -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -keyring /Users/jcotton81/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -product org.eclipse.epp.package.cpp.product -data /Users/jcotton81/Documents/Programming/OpenPilot/androidgcs -product org.eclipse.epp.package.cpp.product -keyring /Users/jcotton81/.eclipse_keyring -showlocation
!ENTRY org.eclipse.core.net 1 0 2012-02-04 15:23:34.575
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences

View File

@ -1 +0,0 @@
*** SESSION Feb 04, 2012 14:21:39.72 -------------------------------------------

View File

@ -1,5 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
spelling_locale_initialized=true
useAnnotationsPrefPage=true
eclipse.preferences.version=1
useQuickDiffPrefPage=true

View File

@ -1,3 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
version=1
eclipse.preferences.version=1

View File

@ -1,3 +0,0 @@
#Sat Feb 04 14:21:44 CST 2012
org.eclipse.epp.usagedata.recording.last-upload=1328386904231
eclipse.preferences.version=1

View File

@ -1,15 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
useQuickDiffPrefPage=true
proposalOrderMigrated=true
tabWidthPropagated=true
content_assist_proposals_background=255,255,255
org.eclipse.jdt.ui.javadoclocations.migrated=true
useAnnotationsPrefPage=true
org.eclipse.jface.textfont=1|Monaco|11.0|0|COCOA|1|;
org.eclipse.jdt.internal.ui.navigator.layout=2
org.eclipse.jdt.ui.editor.tab.width=
org.eclipse.jdt.ui.formatterprofiles.version=11
spelling_locale_initialized=true
eclipse.preferences.version=1
content_assist_proposals_foreground=0,0,0
fontPropagated=true

View File

@ -1,3 +0,0 @@
#Sat Feb 04 14:21:42 CST 2012
eclipse.preferences.version=1
mylyn.attention.migrated=true

View File

@ -1,3 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
pref_first_startup=false
eclipse.preferences.version=1

View File

@ -1,3 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
eclipse.preferences.version=1
org.eclipse.team.ui.first_time=false

View File

@ -1,3 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
eclipse.preferences.version=1
overviewRuler_migration=migrated_3.1

View File

@ -1,5 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
eclipse.preferences.version=1
tipsAndTricks=true
platformState=1328386704250
PROBLEMS_FILTERS_MIGRATE=true

View File

@ -1,3 +0,0 @@
#Sat Feb 04 15:21:25 CST 2012
eclipse.preferences.version=1
showIntro=false

View File

@ -1,3 +0,0 @@
#Sat Feb 04 14:21:42 CST 2012
eclipse.preferences.version=1
ENABLED_DECORATORS=com.android.ide.eclipse.adt.project.FolderDecorator\:true,org.eclipse.cdt.ui.indexedFiles\:false,org.eclipse.jdt.ui.override.decorator\:true,org.eclipse.jdt.ui.interface.decorator\:false,org.eclipse.jdt.ui.buildpath.decorator\:true,org.eclipse.mylyn.context.ui.decorator.interest\:true,org.eclipse.mylyn.tasks.ui.decorators.task\:true,org.eclipse.mylyn.team.ui.changeset.decorator\:true,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,

View File

@ -1,251 +0,0 @@
what,kind,bundleId,bundleVersion,description,time
activated,perspective,org.eclipse.cdt.ui,,"org.eclipse.cdt.ui.CPerspective",1328386903139
started,bundle,org.eclipse.osgi,3.5.2.R35x_v20100126,"org.eclipse.osgi",1328386903141
started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.101.R35x_v20090807-1100,"org.eclipse.equinox.simpleconfigurator",1328386903142
started,bundle,com.ibm.icu,4.0.1.v20090822,"com.ibm.icu",1328386903143
started,bundle,org.eclipse.cdt.core,5.1.2.201002161416,"org.eclipse.cdt.core",1328386903143
started,bundle,org.eclipse.cdt.make.ui,6.0.1.201002161416,"org.eclipse.cdt.make.ui",1328386903144
started,bundle,org.eclipse.cdt.ui,5.1.2.201002161416,"org.eclipse.cdt.ui",1328386903147
started,bundle,org.eclipse.core.contenttype,3.4.1.R35x_v20090826-0451,"org.eclipse.core.contenttype",1328386903148
started,bundle,org.eclipse.core.databinding.observable,1.2.0.M20090902-0800,"org.eclipse.core.databinding.observable",1328386903148
started,bundle,org.eclipse.core.expressions,3.4.101.R35x_v20100209,"org.eclipse.core.expressions",1328386903149
started,bundle,org.eclipse.core.filebuffers,3.5.0.v20090526-2000,"org.eclipse.core.filebuffers",1328386903149
started,bundle,org.eclipse.core.filesystem,1.2.1.R35x_v20091203-1235,"org.eclipse.core.filesystem",1328386903150
started,bundle,org.eclipse.core.jobs,3.4.100.v20090429-1800,"org.eclipse.core.jobs",1328386903151
started,bundle,org.eclipse.core.net,1.2.1.r35x_20090812-1200,"org.eclipse.core.net",1328386903152
started,bundle,org.eclipse.core.resources,3.5.2.R35x_v20091203-1235,"org.eclipse.core.resources",1328386903153
started,bundle,org.eclipse.core.runtime,3.5.0.v20090525,"org.eclipse.core.runtime",1328386903153
started,bundle,org.eclipse.core.runtime.compatibility,3.2.0.v20090413,"org.eclipse.core.runtime.compatibility",1328386903154
started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.100.v20090413,"org.eclipse.core.runtime.compatibility.auth",1328386903154
started,bundle,org.eclipse.ecf,3.0.0.v20090831-1906,"org.eclipse.ecf",1328386903155
started,bundle,org.eclipse.ecf.filetransfer,3.0.0.v20090831-1906,"org.eclipse.ecf.filetransfer",1328386903155
started,bundle,org.eclipse.ecf.identity,3.0.0.v20090831-1906,"org.eclipse.ecf.identity",1328386903156
started,bundle,org.eclipse.ecf.provider.filetransfer,3.0.1.v20090831-1906,"org.eclipse.ecf.provider.filetransfer",1328386903157
started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,3.0.1.v20090831-1906,"org.eclipse.ecf.provider.filetransfer.httpclient",1328386903158
started,bundle,org.eclipse.epp.usagedata.gathering,1.1.1.R201001291118,"org.eclipse.epp.usagedata.gathering",1328386903159
started,bundle,org.eclipse.epp.usagedata.recording,1.1.1.R201001291118,"org.eclipse.epp.usagedata.recording",1328386903161
started,bundle,org.eclipse.equinox.app,1.2.1.R35x_v20091203,"org.eclipse.equinox.app",1328386903164
started,bundle,org.eclipse.equinox.common,3.5.1.R35x_v20090807-1100,"org.eclipse.equinox.common",1328386903165
started,bundle,org.eclipse.equinox.ds,1.1.1.R35x_v20090806,"org.eclipse.equinox.ds",1328386903166
started,bundle,org.eclipse.equinox.frameworkadmin,1.0.100.v20090520-1905,"org.eclipse.equinox.frameworkadmin",1328386903166
started,bundle,org.eclipse.equinox.frameworkadmin.equinox,1.0.101.R35x_v20091214,"org.eclipse.equinox.frameworkadmin.equinox",1328386903166
started,bundle,org.eclipse.equinox.p2.core,1.0.101.R35x_v20090819,"org.eclipse.equinox.p2.core",1328386903167
started,bundle,org.eclipse.equinox.p2.director,1.0.101.R35x_v20100112,"org.eclipse.equinox.p2.director",1328386903168
started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.100.v20090525,"org.eclipse.equinox.p2.directorywatcher",1328386903168
started,bundle,org.eclipse.equinox.p2.engine,1.0.102.R35x_v20091117,"org.eclipse.equinox.p2.engine",1328386903169
started,bundle,org.eclipse.equinox.p2.exemplarysetup,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.exemplarysetup",1328386903169
started,bundle,org.eclipse.equinox.p2.garbagecollector,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.garbagecollector",1328386903170
started,bundle,org.eclipse.equinox.p2.metadata,1.0.101.R35x_v20100112,"org.eclipse.equinox.p2.metadata",1328386903170
started,bundle,org.eclipse.equinox.p2.metadata.repository,1.0.101.R35x_v20090812,"org.eclipse.equinox.p2.metadata.repository",1328386903171
started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.reconciler.dropins",1328386903171
started,bundle,org.eclipse.equinox.p2.repository,1.0.1.R35x_v20100105,"org.eclipse.equinox.p2.repository",1328386903172
started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.0.v20090520-1905,"org.eclipse.equinox.p2.ui.sdk.scheduler",1328386903172
started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.0.v20090520-1905,"org.eclipse.equinox.p2.updatechecker",1328386903172
started,bundle,org.eclipse.equinox.preferences,3.2.301.R35x_v20091117,"org.eclipse.equinox.preferences",1328386903175
started,bundle,org.eclipse.equinox.registry,3.4.100.v20090520-1800,"org.eclipse.equinox.registry",1328386903176
started,bundle,org.eclipse.equinox.security,1.0.100.v20090520-1800,"org.eclipse.equinox.security",1328386903177
started,bundle,org.eclipse.equinox.simpleconfigurator.manipulator,1.0.101.R35x_v20100209,"org.eclipse.equinox.simpleconfigurator.manipulator",1328386903177
started,bundle,org.eclipse.equinox.util,1.0.100.v20090520-1800,"org.eclipse.equinox.util",1328386903178
started,bundle,org.eclipse.help,3.4.1.v20090805_35x,"org.eclipse.help",1328386903179
started,bundle,org.eclipse.jface,3.5.2.M20100120-0800,"org.eclipse.jface",1328386903179
started,bundle,org.eclipse.jsch.core,1.1.100.I20090430-0408,"org.eclipse.jsch.core",1328386903180
started,bundle,org.eclipse.ltk.core.refactoring,3.5.0.v20090513-2000,"org.eclipse.ltk.core.refactoring",1328386903180
started,bundle,org.eclipse.mylyn.bugzilla.core,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.bugzilla.core",1328386903181
started,bundle,org.eclipse.mylyn.bugzilla.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.bugzilla.ui",1328386903181
started,bundle,org.eclipse.mylyn.commons.net,3.2.0.v20090617-0100-e3x,"org.eclipse.mylyn.commons.net",1328386903182
started,bundle,org.eclipse.mylyn.commons.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.commons.ui",1328386903183
started,bundle,org.eclipse.mylyn.context.core,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.context.core",1328386903183
started,bundle,org.eclipse.mylyn.context.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.context.ui",1328386903184
started,bundle,org.eclipse.mylyn.monitor.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.monitor.ui",1328386903185
started,bundle,org.eclipse.mylyn.tasks.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.tasks.ui",1328386903186
started,bundle,org.eclipse.mylyn.team.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.team.ui",1328386903186
started,bundle,org.eclipse.team.core,3.5.1.r35x_20100113-0800,"org.eclipse.team.core",1328386903187
started,bundle,org.eclipse.team.cvs.core,3.3.200.I20090430-0408,"org.eclipse.team.cvs.core",1328386903188
started,bundle,org.eclipse.team.cvs.ui,3.3.202.r35x_20090930-0800,"org.eclipse.team.cvs.ui",1328386903189
started,bundle,org.eclipse.team.ui,3.5.0.I20090430-0408,"org.eclipse.team.ui",1328386903189
started,bundle,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui",1328386903191
started,bundle,org.eclipse.ui.console,3.4.0.v20090513,"org.eclipse.ui.console",1328386903191
started,bundle,org.eclipse.ui.editors,3.5.0.v20090527-2000,"org.eclipse.ui.editors",1328386903195
started,bundle,org.eclipse.ui.forms,3.4.1.v20090714_35x,"org.eclipse.ui.forms",1328386903196
started,bundle,org.eclipse.ui.ide,3.5.2.M20100113-0800,"org.eclipse.ui.ide",1328386903198
started,bundle,org.eclipse.ui.intro,3.3.2.v20100111_35x,"org.eclipse.ui.intro",1328386903198
started,bundle,org.eclipse.ui.intro.universal,3.2.300.v20090526,"org.eclipse.ui.intro.universal",1328386903198
started,bundle,org.eclipse.ui.navigator,3.4.2.M20100120-0800,"org.eclipse.ui.navigator",1328386903199
started,bundle,org.eclipse.ui.navigator.resources,3.4.1.M20090826-0800,"org.eclipse.ui.navigator.resources",1328386903200
started,bundle,org.eclipse.ui.net,1.2.1.r35x_20090812-1200,"org.eclipse.ui.net",1328386903200
started,bundle,org.eclipse.ui.views,3.4.1.M20090826-0800,"org.eclipse.ui.views",1328386903201
started,bundle,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"org.eclipse.ui.workbench",1328386903202
started,bundle,org.eclipse.ui.workbench.texteditor,3.5.1.r352_v20100105,"org.eclipse.ui.workbench.texteditor",1328386903203
started,bundle,org.eclipse.update.configurator,3.3.0.v20090312,"org.eclipse.update.configurator",1328386903207
started,bundle,org.eclipse.update.core,3.2.300.v20090525,"org.eclipse.update.core",1328386903209
started,bundle,org.eclipse.update.scheduler,3.2.200.v20081127,"org.eclipse.update.scheduler",1328386903210
started,bundle,org.eclipse.jdt.core,3.5.2.v_981_R35x,"org.eclipse.jdt.core",1328386903211
started,bundle,org.eclipse.jdt.core.manipulation,1.3.0.v20090603,"org.eclipse.jdt.core.manipulation",1328386903212
started,bundle,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui",1328386903218
os,sysinfo,,,"macosx",1328386903226
arch,sysinfo,,,"x86_64",1328386903226
ws,sysinfo,,,"cocoa",1328386903226
locale,sysinfo,,,"en_US",1328386903226
processors,sysinfo,,,"4",1328386903226
java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1328386903226
java.runtime.version,sysinfo,,,"1.6.0_29-b11-402-11M3527",1328386903227
java.specification.name,sysinfo,,,"Java Platform API Specification",1328386903227
java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1328386903227
java.specification.version,sysinfo,,,"1.6",1328386903227
java.vendor,sysinfo,,,"Apple Inc.",1328386903227
java.version,sysinfo,,,"1.6.0_29",1328386903227
java.vm.info,sysinfo,,,"mixed mode",1328386903227
java.vm.name,sysinfo,,,"Java HotSpot(TM) 64-Bit Server VM",1328386903227
java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1328386903227
java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1328386903227
java.vm.specification.version,sysinfo,,,"1.0",1328386903227
java.vm.vendor,sysinfo,,,"Apple Inc.",1328386903227
java.vm.version,sysinfo,,,"20.4-b02-402",1328386903227
started,bundle,org.eclipse.equinox.p2.extensionlocation,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.extensionlocation",1328386903389
started,bundle,org.eclipse.equinox.p2.artifact.repository,1.0.101.R35x_v20090721,"org.eclipse.equinox.p2.artifact.repository",1328386903414
started,bundle,org.eclipse.equinox.p2.publisher,1.0.1.R35x_20100105,"org.eclipse.equinox.p2.publisher",1328386903450
started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,1.0.101.R35x_20090820-1821,"org.eclipse.equinox.p2.touchpoint.eclipse",1328386903464
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328386903480
activated,view,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui.internal.introview",1328386903487
error,log,,,"/Users/jcotton81/Documents/Programming/eclipse/Eclipse.app/Contents/MacOS/introData.xml (No such file or directory)",1328386904897
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328386905209
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328386906797
started,bundle,org.eclipse.equinox.p2.updatesite,1.0.101.R35x_20100105,"org.eclipse.equinox.p2.updatesite",1328386912464
activated,view,org.eclipse.ui.navigator.resources,3.4.1.M20090826-0800,"org.eclipse.ui.navigator.ProjectExplorer",1328386912583
activated,view,org.eclipse.ui.navigator.resources,3.4.1.M20090826-0800,"org.eclipse.ui.navigator.ProjectExplorer",1328386912596
closed,view,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui.internal.introview",1328386912607
started,bundle,org.eclipse.equinox.p2.ui,1.0.101.R35x_v20090819,"org.eclipse.equinox.p2.ui",1328386912856
started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.ui.sdk",1328386912895
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328386920116
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328387108087
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328387114332
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328387670491
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328387680147
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328389984496
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328389985341
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390196855
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390210754
started,bundle,com.android.ide.eclipse.ddms,10.0.1.v201103111512-110841,"com.android.ide.eclipse.ddms",1328390214192
started,bundle,org.eclipse.wst.sse.core,1.1.402.v201001251516,"org.eclipse.wst.sse.core",1328390214246
started,bundle,com.android.ide.eclipse.adt,10.0.1.v201103111512-110841,"com.android.ide.eclipse.adt",1328390214248
started,bundle,org.eclipse.ltk.ui.refactoring,3.4.101.r352_v20100209,"org.eclipse.ltk.ui.refactoring",1328390214467
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390455517
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390462855
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390470613
opened,view,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.PackageExplorer",1328390470944
started,bundle,org.eclipse.search,3.5.1.r351_v20090708-0800,"org.eclipse.search",1328390471037
opened,view,org.eclipse.mylyn.tasks.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.tasks.ui.views.tasks",1328390471127
activated,perspective,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.JavaPerspective",1328390471151
activated,view,org.eclipse.ui.ide,3.5.2.M20100113-0800,"org.eclipse.ui.views.ProblemView",1328390471175
executed,command,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui.perspectives.showPerspective",1328390471213
executed,command,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui.perspectives.showPerspective",1328390471213
opened,view,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.JavadocView",1328390474490
activated,view,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.JavadocView",1328390474500
opened,view,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.SourceView",1328390475141
activated,view,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.SourceView",1328390475161
activated,view,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui.JavadocView",1328390475451
activated,view,org.eclipse.ui.ide,3.5.2.M20100113-0800,"org.eclipse.ui.views.ProblemView",1328390475842
closed,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390485206
stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.0.0.201002161416,"org.eclipse.cdt.debug.mi.ui",1328390485703
stopped,bundle,org.eclipse.cdt.debug.gdbjtag.ui,5.0.100.201002161416,"org.eclipse.cdt.debug.gdbjtag.ui",1328390485704
stopped,bundle,org.eclipse.cdt.debug.gdbjtag.core,5.0.100.201002161416,"org.eclipse.cdt.debug.gdbjtag.core",1328390485704
stopped,bundle,org.eclipse.cdt.debug.mi.core,6.0.0.201002161416,"org.eclipse.cdt.debug.mi.core",1328390485705
stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.0.0.201002161416,"org.eclipse.cdt.dsf.gdb.ui",1328390485706
stopped,bundle,org.eclipse.cdt.dsf.ui,2.0.1.201002161416,"org.eclipse.cdt.dsf.ui",1328390485707
stopped,bundle,org.eclipse.cdt.launch,6.0.0.201002161416,"org.eclipse.cdt.launch",1328390485707
stopped,bundle,org.eclipse.cdt.debug.ui,6.0.0.201002161416,"org.eclipse.cdt.debug.ui",1328390485708
stopped,bundle,org.eclipse.cdt.dsf.gdb,2.0.0.201002161416,"org.eclipse.cdt.dsf.gdb",1328390485709
stopped,bundle,org.eclipse.cdt.dsf,2.0.0.201002161416,"org.eclipse.cdt.dsf",1328390485709
stopped,bundle,org.eclipse.cdt.debug.core,6.0.0.201002161416,"org.eclipse.cdt.debug.core",1328390485710
stopped,bundle,org.eclipse.cdt.managedbuilder.ui,5.1.0.201002161416,"org.eclipse.cdt.managedbuilder.ui",1328390485710
stopped,bundle,org.eclipse.cdt.make.ui,6.0.1.201002161416,"org.eclipse.cdt.make.ui",1328390485711
stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,5.0.100.201002161416,"org.eclipse.cdt.managedbuilder.gnu.ui",1328390485711
stopped,bundle,org.eclipse.cdt.managedbuilder.core,6.0.0.201002161416,"org.eclipse.cdt.managedbuilder.core",1328390485712
stopped,bundle,org.eclipse.cdt.make.core,6.0.0.201002161416,"org.eclipse.cdt.make.core",1328390485713
stopped,bundle,org.eclipse.cdt.mylyn.ui,1.0.100.201002161416,"org.eclipse.cdt.mylyn.ui",1328390485713
stopped,bundle,org.eclipse.cdt.ui,5.1.2.201002161416,"org.eclipse.cdt.ui",1328390485713
stopped,bundle,org.eclipse.cdt.core,5.1.2.201002161416,"org.eclipse.cdt.core",1328390485714
stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.bugzilla.ui",1328390485714
stopped,bundle,org.eclipse.mylyn.ide.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.ide.ui",1328390485714
stopped,bundle,org.eclipse.mylyn.team.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.team.ui",1328390485715
stopped,bundle,org.eclipse.mylyn.resources.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.resources.ui",1328390485715
stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.1.3.v20100217-0100-e3x,"org.eclipse.mylyn.wikitext.tasks.ui",1328390485716
stopped,bundle,org.eclipse.mylyn.context.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.context.ui",1328390485716
stopped,bundle,org.eclipse.mylyn.help.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.help.ui",1328390485716
stopped,bundle,org.eclipse.mylyn.tasks.bugs,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.tasks.bugs",1328390485717
stopped,bundle,org.eclipse.mylyn.tasks.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.tasks.ui",1328390485719
stopped,bundle,org.eclipse.ant.ui,3.4.2.v20091204_r352,"org.eclipse.ant.ui",1328390485719
stopped,bundle,com.android.ide.eclipse.adt,10.0.1.v201103111512-110841,"com.android.ide.eclipse.adt",1328390485719
stopped,bundle,org.eclipse.jdt.junit,3.5.2.r352_v20100113-0800,"org.eclipse.jdt.junit",1328390485720
stopped,bundle,org.eclipse.jdt.debug.ui,3.4.1.v20090811_r351,"org.eclipse.jdt.debug.ui",1328390485721
stopped,bundle,org.eclipse.jdt.apt.ui,3.3.200.v20090930-2100_R35x,"org.eclipse.jdt.apt.ui",1328390485722
stopped,bundle,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui",1328390485726
stopped,bundle,org.eclipse.wst.dtd.ui,1.0.400.v200904300717,"org.eclipse.wst.dtd.ui",1328390485730
stopped,bundle,org.eclipse.wst.xsd.ui,1.2.204.v200909021537,"org.eclipse.wst.xsd.ui",1328390485747
stopped,bundle,org.eclipse.wst.xml.ui,1.1.2.v201001222130,"org.eclipse.wst.xml.ui",1328390485747
stopped,bundle,org.eclipse.wst.common.ui,1.1.402.v200901262305,"org.eclipse.wst.common.ui",1328390485748
stopped,bundle,org.eclipse.wst.sse.ui,1.1.102.v200910200227,"org.eclipse.wst.sse.ui",1328390485749
stopped,bundle,org.eclipse.search,3.5.1.r351_v20090708-0800,"org.eclipse.search",1328390485750
stopped,bundle,org.eclipse.ltk.ui.refactoring,3.4.101.r352_v20100209,"org.eclipse.ltk.ui.refactoring",1328390485750
stopped,bundle,org.eclipse.team.cvs.ui,3.3.202.r35x_20090930-0800,"org.eclipse.team.cvs.ui",1328390485751
stopped,bundle,org.eclipse.team.ui,3.5.0.I20090430-0408,"org.eclipse.team.ui",1328390485751
stopped,bundle,org.eclipse.compare,3.5.2.r35x_20100113-0800,"org.eclipse.compare",1328390485752
stopped,bundle,org.eclipse.ui.externaltools,3.2.0.v20090504,"org.eclipse.ui.externaltools",1328390485753
stopped,bundle,org.eclipse.debug.ui,3.5.2.v20091028_r352,"org.eclipse.debug.ui",1328390485756
stopped,bundle,org.eclipse.mylyn.wikitext.ui,1.1.3.v20100217-0100-e3x,"org.eclipse.mylyn.wikitext.ui",1328390485757
stopped,bundle,com.android.ide.eclipse.hierarchyviewer,10.0.1.v201103111512-110841,"com.android.ide.eclipse.hierarchyviewer",1328390485757
stopped,bundle,com.android.ide.eclipse.ddms,10.0.1.v201103111512-110841,"com.android.ide.eclipse.ddms",1328390485757
stopped,bundle,org.eclipse.ui.console,3.4.0.v20090513,"org.eclipse.ui.console",1328390485757
stopped,bundle,org.eclipse.mylyn.commons.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.commons.ui",1328390485757
stopped,bundle,org.eclipse.ui.editors,3.5.0.v20090527-2000,"org.eclipse.ui.editors",1328390485758
stopped,bundle,org.eclipse.ui.navigator.resources,3.4.1.M20090826-0800,"org.eclipse.ui.navigator.resources",1328390485758
activated,perspective,org.eclipse.jdt.ui,,"org.eclipse.jdt.ui.JavaPerspective",1328390616647
started,bundle,org.eclipse.osgi,3.5.2.R35x_v20100126,"org.eclipse.osgi",1328390616648
started,bundle,org.eclipse.equinox.simpleconfigurator,1.0.101.R35x_v20090807-1100,"org.eclipse.equinox.simpleconfigurator",1328390616653
started,bundle,com.ibm.icu,4.0.1.v20090822,"com.ibm.icu",1328390616654
started,bundle,org.eclipse.core.contenttype,3.4.1.R35x_v20090826-0451,"org.eclipse.core.contenttype",1328390616654
started,bundle,org.eclipse.core.databinding.observable,1.2.0.M20090902-0800,"org.eclipse.core.databinding.observable",1328390616655
started,bundle,org.eclipse.core.expressions,3.4.101.R35x_v20100209,"org.eclipse.core.expressions",1328390616656
started,bundle,org.eclipse.core.filebuffers,3.5.0.v20090526-2000,"org.eclipse.core.filebuffers",1328390616656
started,bundle,org.eclipse.core.jobs,3.4.100.v20090429-1800,"org.eclipse.core.jobs",1328390616656
started,bundle,org.eclipse.core.net,1.2.1.r35x_20090812-1200,"org.eclipse.core.net",1328390616657
started,bundle,org.eclipse.core.resources,3.5.2.R35x_v20091203-1235,"org.eclipse.core.resources",1328390616658
started,bundle,org.eclipse.core.runtime,3.5.0.v20090525,"org.eclipse.core.runtime",1328390616659
started,bundle,org.eclipse.core.runtime.compatibility,3.2.0.v20090413,"org.eclipse.core.runtime.compatibility",1328390616659
started,bundle,org.eclipse.core.runtime.compatibility.auth,3.2.100.v20090413,"org.eclipse.core.runtime.compatibility.auth",1328390616660
started,bundle,org.eclipse.ecf,3.0.0.v20090831-1906,"org.eclipse.ecf",1328390616660
started,bundle,org.eclipse.ecf.filetransfer,3.0.0.v20090831-1906,"org.eclipse.ecf.filetransfer",1328390616661
started,bundle,org.eclipse.ecf.identity,3.0.0.v20090831-1906,"org.eclipse.ecf.identity",1328390616662
started,bundle,org.eclipse.ecf.provider.filetransfer,3.0.1.v20090831-1906,"org.eclipse.ecf.provider.filetransfer",1328390616663
started,bundle,org.eclipse.ecf.provider.filetransfer.httpclient,3.0.1.v20090831-1906,"org.eclipse.ecf.provider.filetransfer.httpclient",1328390616663
started,bundle,org.eclipse.epp.usagedata.gathering,1.1.1.R201001291118,"org.eclipse.epp.usagedata.gathering",1328390616664
started,bundle,org.eclipse.epp.usagedata.recording,1.1.1.R201001291118,"org.eclipse.epp.usagedata.recording",1328390616668
started,bundle,org.eclipse.equinox.app,1.2.1.R35x_v20091203,"org.eclipse.equinox.app",1328390616676
started,bundle,org.eclipse.equinox.common,3.5.1.R35x_v20090807-1100,"org.eclipse.equinox.common",1328390616676
started,bundle,org.eclipse.equinox.ds,1.1.1.R35x_v20090806,"org.eclipse.equinox.ds",1328390616677
started,bundle,org.eclipse.equinox.frameworkadmin,1.0.100.v20090520-1905,"org.eclipse.equinox.frameworkadmin",1328390616679
started,bundle,org.eclipse.equinox.frameworkadmin.equinox,1.0.101.R35x_v20091214,"org.eclipse.equinox.frameworkadmin.equinox",1328390616680
started,bundle,org.eclipse.equinox.p2.core,1.0.101.R35x_v20090819,"org.eclipse.equinox.p2.core",1328390616681
started,bundle,org.eclipse.equinox.p2.director,1.0.101.R35x_v20100112,"org.eclipse.equinox.p2.director",1328390616682
started,bundle,org.eclipse.equinox.p2.directorywatcher,1.0.100.v20090525,"org.eclipse.equinox.p2.directorywatcher",1328390616688
started,bundle,org.eclipse.equinox.p2.engine,1.0.102.R35x_v20091117,"org.eclipse.equinox.p2.engine",1328390616689
started,bundle,org.eclipse.equinox.p2.exemplarysetup,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.exemplarysetup",1328390616690
started,bundle,org.eclipse.equinox.p2.garbagecollector,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.garbagecollector",1328390616691
started,bundle,org.eclipse.equinox.p2.metadata,1.0.101.R35x_v20100112,"org.eclipse.equinox.p2.metadata",1328390616692
started,bundle,org.eclipse.equinox.p2.metadata.repository,1.0.101.R35x_v20090812,"org.eclipse.equinox.p2.metadata.repository",1328390616692
started,bundle,org.eclipse.equinox.p2.reconciler.dropins,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.reconciler.dropins",1328390616693
started,bundle,org.eclipse.equinox.p2.repository,1.0.1.R35x_v20100105,"org.eclipse.equinox.p2.repository",1328390616693
started,bundle,org.eclipse.equinox.p2.ui.sdk.scheduler,1.0.0.v20090520-1905,"org.eclipse.equinox.p2.ui.sdk.scheduler",1328390616694
started,bundle,org.eclipse.equinox.p2.updatechecker,1.1.0.v20090520-1905,"org.eclipse.equinox.p2.updatechecker",1328390616695
started,bundle,org.eclipse.equinox.preferences,3.2.301.R35x_v20091117,"org.eclipse.equinox.preferences",1328390616695
started,bundle,org.eclipse.equinox.registry,3.4.100.v20090520-1800,"org.eclipse.equinox.registry",1328390616696
started,bundle,org.eclipse.equinox.security,1.0.100.v20090520-1800,"org.eclipse.equinox.security",1328390616697
started,bundle,org.eclipse.equinox.simpleconfigurator.manipulator,1.0.101.R35x_v20100209,"org.eclipse.equinox.simpleconfigurator.manipulator",1328390616697
started,bundle,org.eclipse.equinox.util,1.0.100.v20090520-1800,"org.eclipse.equinox.util",1328390616698
started,bundle,org.eclipse.help,3.4.1.v20090805_35x,"org.eclipse.help",1328390616698
started,bundle,org.eclipse.jface,3.5.2.M20100120-0800,"org.eclipse.jface",1328390616699
started,bundle,org.eclipse.jsch.core,1.1.100.I20090430-0408,"org.eclipse.jsch.core",1328390616705
started,bundle,org.eclipse.mylyn.bugzilla.core,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.bugzilla.core",1328390616705
started,bundle,org.eclipse.mylyn.bugzilla.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.bugzilla.ui",1328390616706
started,bundle,org.eclipse.mylyn.commons.net,3.2.0.v20090617-0100-e3x,"org.eclipse.mylyn.commons.net",1328390616706
started,bundle,org.eclipse.mylyn.commons.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.commons.ui",1328390616707
1 what kind bundleId bundleVersion description time
2 activated perspective org.eclipse.cdt.ui org.eclipse.cdt.ui.CPerspective 1328386903139
3 started bundle org.eclipse.osgi 3.5.2.R35x_v20100126 org.eclipse.osgi 1328386903141
4 started bundle org.eclipse.equinox.simpleconfigurator 1.0.101.R35x_v20090807-1100 org.eclipse.equinox.simpleconfigurator 1328386903142
5 started bundle com.ibm.icu 4.0.1.v20090822 com.ibm.icu 1328386903143
6 started bundle org.eclipse.cdt.core 5.1.2.201002161416 org.eclipse.cdt.core 1328386903143
7 started bundle org.eclipse.cdt.make.ui 6.0.1.201002161416 org.eclipse.cdt.make.ui 1328386903144
8 started bundle org.eclipse.cdt.ui 5.1.2.201002161416 org.eclipse.cdt.ui 1328386903147
9 started bundle org.eclipse.core.contenttype 3.4.1.R35x_v20090826-0451 org.eclipse.core.contenttype 1328386903148
10 started bundle org.eclipse.core.databinding.observable 1.2.0.M20090902-0800 org.eclipse.core.databinding.observable 1328386903148
11 started bundle org.eclipse.core.expressions 3.4.101.R35x_v20100209 org.eclipse.core.expressions 1328386903149
12 started bundle org.eclipse.core.filebuffers 3.5.0.v20090526-2000 org.eclipse.core.filebuffers 1328386903149
13 started bundle org.eclipse.core.filesystem 1.2.1.R35x_v20091203-1235 org.eclipse.core.filesystem 1328386903150
14 started bundle org.eclipse.core.jobs 3.4.100.v20090429-1800 org.eclipse.core.jobs 1328386903151
15 started bundle org.eclipse.core.net 1.2.1.r35x_20090812-1200 org.eclipse.core.net 1328386903152
16 started bundle org.eclipse.core.resources 3.5.2.R35x_v20091203-1235 org.eclipse.core.resources 1328386903153
17 started bundle org.eclipse.core.runtime 3.5.0.v20090525 org.eclipse.core.runtime 1328386903153
18 started bundle org.eclipse.core.runtime.compatibility 3.2.0.v20090413 org.eclipse.core.runtime.compatibility 1328386903154
19 started bundle org.eclipse.core.runtime.compatibility.auth 3.2.100.v20090413 org.eclipse.core.runtime.compatibility.auth 1328386903154
20 started bundle org.eclipse.ecf 3.0.0.v20090831-1906 org.eclipse.ecf 1328386903155
21 started bundle org.eclipse.ecf.filetransfer 3.0.0.v20090831-1906 org.eclipse.ecf.filetransfer 1328386903155
22 started bundle org.eclipse.ecf.identity 3.0.0.v20090831-1906 org.eclipse.ecf.identity 1328386903156
23 started bundle org.eclipse.ecf.provider.filetransfer 3.0.1.v20090831-1906 org.eclipse.ecf.provider.filetransfer 1328386903157
24 started bundle org.eclipse.ecf.provider.filetransfer.httpclient 3.0.1.v20090831-1906 org.eclipse.ecf.provider.filetransfer.httpclient 1328386903158
25 started bundle org.eclipse.epp.usagedata.gathering 1.1.1.R201001291118 org.eclipse.epp.usagedata.gathering 1328386903159
26 started bundle org.eclipse.epp.usagedata.recording 1.1.1.R201001291118 org.eclipse.epp.usagedata.recording 1328386903161
27 started bundle org.eclipse.equinox.app 1.2.1.R35x_v20091203 org.eclipse.equinox.app 1328386903164
28 started bundle org.eclipse.equinox.common 3.5.1.R35x_v20090807-1100 org.eclipse.equinox.common 1328386903165
29 started bundle org.eclipse.equinox.ds 1.1.1.R35x_v20090806 org.eclipse.equinox.ds 1328386903166
30 started bundle org.eclipse.equinox.frameworkadmin 1.0.100.v20090520-1905 org.eclipse.equinox.frameworkadmin 1328386903166
31 started bundle org.eclipse.equinox.frameworkadmin.equinox 1.0.101.R35x_v20091214 org.eclipse.equinox.frameworkadmin.equinox 1328386903166
32 started bundle org.eclipse.equinox.p2.core 1.0.101.R35x_v20090819 org.eclipse.equinox.p2.core 1328386903167
33 started bundle org.eclipse.equinox.p2.director 1.0.101.R35x_v20100112 org.eclipse.equinox.p2.director 1328386903168
34 started bundle org.eclipse.equinox.p2.directorywatcher 1.0.100.v20090525 org.eclipse.equinox.p2.directorywatcher 1328386903168
35 started bundle org.eclipse.equinox.p2.engine 1.0.102.R35x_v20091117 org.eclipse.equinox.p2.engine 1328386903169
36 started bundle org.eclipse.equinox.p2.exemplarysetup 1.0.100.v20090520-1905 org.eclipse.equinox.p2.exemplarysetup 1328386903169
37 started bundle org.eclipse.equinox.p2.garbagecollector 1.0.100.v20090520-1905 org.eclipse.equinox.p2.garbagecollector 1328386903170
38 started bundle org.eclipse.equinox.p2.metadata 1.0.101.R35x_v20100112 org.eclipse.equinox.p2.metadata 1328386903170
39 started bundle org.eclipse.equinox.p2.metadata.repository 1.0.101.R35x_v20090812 org.eclipse.equinox.p2.metadata.repository 1328386903171
40 started bundle org.eclipse.equinox.p2.reconciler.dropins 1.0.100.v20090520-1905 org.eclipse.equinox.p2.reconciler.dropins 1328386903171
41 started bundle org.eclipse.equinox.p2.repository 1.0.1.R35x_v20100105 org.eclipse.equinox.p2.repository 1328386903172
42 started bundle org.eclipse.equinox.p2.ui.sdk.scheduler 1.0.0.v20090520-1905 org.eclipse.equinox.p2.ui.sdk.scheduler 1328386903172
43 started bundle org.eclipse.equinox.p2.updatechecker 1.1.0.v20090520-1905 org.eclipse.equinox.p2.updatechecker 1328386903172
44 started bundle org.eclipse.equinox.preferences 3.2.301.R35x_v20091117 org.eclipse.equinox.preferences 1328386903175
45 started bundle org.eclipse.equinox.registry 3.4.100.v20090520-1800 org.eclipse.equinox.registry 1328386903176
46 started bundle org.eclipse.equinox.security 1.0.100.v20090520-1800 org.eclipse.equinox.security 1328386903177
47 started bundle org.eclipse.equinox.simpleconfigurator.manipulator 1.0.101.R35x_v20100209 org.eclipse.equinox.simpleconfigurator.manipulator 1328386903177
48 started bundle org.eclipse.equinox.util 1.0.100.v20090520-1800 org.eclipse.equinox.util 1328386903178
49 started bundle org.eclipse.help 3.4.1.v20090805_35x org.eclipse.help 1328386903179
50 started bundle org.eclipse.jface 3.5.2.M20100120-0800 org.eclipse.jface 1328386903179
51 started bundle org.eclipse.jsch.core 1.1.100.I20090430-0408 org.eclipse.jsch.core 1328386903180
52 started bundle org.eclipse.ltk.core.refactoring 3.5.0.v20090513-2000 org.eclipse.ltk.core.refactoring 1328386903180
53 started bundle org.eclipse.mylyn.bugzilla.core 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.bugzilla.core 1328386903181
54 started bundle org.eclipse.mylyn.bugzilla.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.bugzilla.ui 1328386903181
55 started bundle org.eclipse.mylyn.commons.net 3.2.0.v20090617-0100-e3x org.eclipse.mylyn.commons.net 1328386903182
56 started bundle org.eclipse.mylyn.commons.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.commons.ui 1328386903183
57 started bundle org.eclipse.mylyn.context.core 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.context.core 1328386903183
58 started bundle org.eclipse.mylyn.context.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.context.ui 1328386903184
59 started bundle org.eclipse.mylyn.monitor.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.monitor.ui 1328386903185
60 started bundle org.eclipse.mylyn.tasks.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.tasks.ui 1328386903186
61 started bundle org.eclipse.mylyn.team.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.team.ui 1328386903186
62 started bundle org.eclipse.team.core 3.5.1.r35x_20100113-0800 org.eclipse.team.core 1328386903187
63 started bundle org.eclipse.team.cvs.core 3.3.200.I20090430-0408 org.eclipse.team.cvs.core 1328386903188
64 started bundle org.eclipse.team.cvs.ui 3.3.202.r35x_20090930-0800 org.eclipse.team.cvs.ui 1328386903189
65 started bundle org.eclipse.team.ui 3.5.0.I20090430-0408 org.eclipse.team.ui 1328386903189
66 started bundle org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui 1328386903191
67 started bundle org.eclipse.ui.console 3.4.0.v20090513 org.eclipse.ui.console 1328386903191
68 started bundle org.eclipse.ui.editors 3.5.0.v20090527-2000 org.eclipse.ui.editors 1328386903195
69 started bundle org.eclipse.ui.forms 3.4.1.v20090714_35x org.eclipse.ui.forms 1328386903196
70 started bundle org.eclipse.ui.ide 3.5.2.M20100113-0800 org.eclipse.ui.ide 1328386903198
71 started bundle org.eclipse.ui.intro 3.3.2.v20100111_35x org.eclipse.ui.intro 1328386903198
72 started bundle org.eclipse.ui.intro.universal 3.2.300.v20090526 org.eclipse.ui.intro.universal 1328386903198
73 started bundle org.eclipse.ui.navigator 3.4.2.M20100120-0800 org.eclipse.ui.navigator 1328386903199
74 started bundle org.eclipse.ui.navigator.resources 3.4.1.M20090826-0800 org.eclipse.ui.navigator.resources 1328386903200
75 started bundle org.eclipse.ui.net 1.2.1.r35x_20090812-1200 org.eclipse.ui.net 1328386903200
76 started bundle org.eclipse.ui.views 3.4.1.M20090826-0800 org.eclipse.ui.views 1328386903201
77 started bundle org.eclipse.ui.workbench 3.5.2.M20100113-0800 org.eclipse.ui.workbench 1328386903202
78 started bundle org.eclipse.ui.workbench.texteditor 3.5.1.r352_v20100105 org.eclipse.ui.workbench.texteditor 1328386903203
79 started bundle org.eclipse.update.configurator 3.3.0.v20090312 org.eclipse.update.configurator 1328386903207
80 started bundle org.eclipse.update.core 3.2.300.v20090525 org.eclipse.update.core 1328386903209
81 started bundle org.eclipse.update.scheduler 3.2.200.v20081127 org.eclipse.update.scheduler 1328386903210
82 started bundle org.eclipse.jdt.core 3.5.2.v_981_R35x org.eclipse.jdt.core 1328386903211
83 started bundle org.eclipse.jdt.core.manipulation 1.3.0.v20090603 org.eclipse.jdt.core.manipulation 1328386903212
84 started bundle org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui 1328386903218
85 os sysinfo macosx 1328386903226
86 arch sysinfo x86_64 1328386903226
87 ws sysinfo cocoa 1328386903226
88 locale sysinfo en_US 1328386903226
89 processors sysinfo 4 1328386903226
90 java.runtime.name sysinfo Java(TM) SE Runtime Environment 1328386903226
91 java.runtime.version sysinfo 1.6.0_29-b11-402-11M3527 1328386903227
92 java.specification.name sysinfo Java Platform API Specification 1328386903227
93 java.specification.vendor sysinfo Sun Microsystems Inc. 1328386903227
94 java.specification.version sysinfo 1.6 1328386903227
95 java.vendor sysinfo Apple Inc. 1328386903227
96 java.version sysinfo 1.6.0_29 1328386903227
97 java.vm.info sysinfo mixed mode 1328386903227
98 java.vm.name sysinfo Java HotSpot(TM) 64-Bit Server VM 1328386903227
99 java.vm.specification.name sysinfo Java Virtual Machine Specification 1328386903227
100 java.vm.specification.vendor sysinfo Sun Microsystems Inc. 1328386903227
101 java.vm.specification.version sysinfo 1.0 1328386903227
102 java.vm.vendor sysinfo Apple Inc. 1328386903227
103 java.vm.version sysinfo 20.4-b02-402 1328386903227
104 started bundle org.eclipse.equinox.p2.extensionlocation 1.0.100.v20090520-1905 org.eclipse.equinox.p2.extensionlocation 1328386903389
105 started bundle org.eclipse.equinox.p2.artifact.repository 1.0.101.R35x_v20090721 org.eclipse.equinox.p2.artifact.repository 1328386903414
106 started bundle org.eclipse.equinox.p2.publisher 1.0.1.R35x_20100105 org.eclipse.equinox.p2.publisher 1328386903450
107 started bundle org.eclipse.equinox.p2.touchpoint.eclipse 1.0.101.R35x_20090820-1821 org.eclipse.equinox.p2.touchpoint.eclipse 1328386903464
108 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328386903480
109 activated view org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui.internal.introview 1328386903487
110 error log /Users/jcotton81/Documents/Programming/eclipse/Eclipse.app/Contents/MacOS/introData.xml (No such file or directory) 1328386904897
111 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328386905209
112 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328386906797
113 started bundle org.eclipse.equinox.p2.updatesite 1.0.101.R35x_20100105 org.eclipse.equinox.p2.updatesite 1328386912464
114 activated view org.eclipse.ui.navigator.resources 3.4.1.M20090826-0800 org.eclipse.ui.navigator.ProjectExplorer 1328386912583
115 activated view org.eclipse.ui.navigator.resources 3.4.1.M20090826-0800 org.eclipse.ui.navigator.ProjectExplorer 1328386912596
116 closed view org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui.internal.introview 1328386912607
117 started bundle org.eclipse.equinox.p2.ui 1.0.101.R35x_v20090819 org.eclipse.equinox.p2.ui 1328386912856
118 started bundle org.eclipse.equinox.p2.ui.sdk 1.0.100.v20090520-1905 org.eclipse.equinox.p2.ui.sdk 1328386912895
119 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328386920116
120 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328387108087
121 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328387114332
122 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328387670491
123 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328387680147
124 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328389984496
125 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328389985341
126 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390196855
127 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390210754
128 started bundle com.android.ide.eclipse.ddms 10.0.1.v201103111512-110841 com.android.ide.eclipse.ddms 1328390214192
129 started bundle org.eclipse.wst.sse.core 1.1.402.v201001251516 org.eclipse.wst.sse.core 1328390214246
130 started bundle com.android.ide.eclipse.adt 10.0.1.v201103111512-110841 com.android.ide.eclipse.adt 1328390214248
131 started bundle org.eclipse.ltk.ui.refactoring 3.4.101.r352_v20100209 org.eclipse.ltk.ui.refactoring 1328390214467
132 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390455517
133 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390462855
134 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390470613
135 opened view org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.PackageExplorer 1328390470944
136 started bundle org.eclipse.search 3.5.1.r351_v20090708-0800 org.eclipse.search 1328390471037
137 opened view org.eclipse.mylyn.tasks.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.tasks.ui.views.tasks 1328390471127
138 activated perspective org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.JavaPerspective 1328390471151
139 activated view org.eclipse.ui.ide 3.5.2.M20100113-0800 org.eclipse.ui.views.ProblemView 1328390471175
140 executed command org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui.perspectives.showPerspective 1328390471213
141 executed command org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui.perspectives.showPerspective 1328390471213
142 opened view org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.JavadocView 1328390474490
143 activated view org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.JavadocView 1328390474500
144 opened view org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.SourceView 1328390475141
145 activated view org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.SourceView 1328390475161
146 activated view org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui.JavadocView 1328390475451
147 activated view org.eclipse.ui.ide 3.5.2.M20100113-0800 org.eclipse.ui.views.ProblemView 1328390475842
148 closed workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390485206
149 stopped bundle org.eclipse.cdt.debug.mi.ui 6.0.0.201002161416 org.eclipse.cdt.debug.mi.ui 1328390485703
150 stopped bundle org.eclipse.cdt.debug.gdbjtag.ui 5.0.100.201002161416 org.eclipse.cdt.debug.gdbjtag.ui 1328390485704
151 stopped bundle org.eclipse.cdt.debug.gdbjtag.core 5.0.100.201002161416 org.eclipse.cdt.debug.gdbjtag.core 1328390485704
152 stopped bundle org.eclipse.cdt.debug.mi.core 6.0.0.201002161416 org.eclipse.cdt.debug.mi.core 1328390485705
153 stopped bundle org.eclipse.cdt.dsf.gdb.ui 2.0.0.201002161416 org.eclipse.cdt.dsf.gdb.ui 1328390485706
154 stopped bundle org.eclipse.cdt.dsf.ui 2.0.1.201002161416 org.eclipse.cdt.dsf.ui 1328390485707
155 stopped bundle org.eclipse.cdt.launch 6.0.0.201002161416 org.eclipse.cdt.launch 1328390485707
156 stopped bundle org.eclipse.cdt.debug.ui 6.0.0.201002161416 org.eclipse.cdt.debug.ui 1328390485708
157 stopped bundle org.eclipse.cdt.dsf.gdb 2.0.0.201002161416 org.eclipse.cdt.dsf.gdb 1328390485709
158 stopped bundle org.eclipse.cdt.dsf 2.0.0.201002161416 org.eclipse.cdt.dsf 1328390485709
159 stopped bundle org.eclipse.cdt.debug.core 6.0.0.201002161416 org.eclipse.cdt.debug.core 1328390485710
160 stopped bundle org.eclipse.cdt.managedbuilder.ui 5.1.0.201002161416 org.eclipse.cdt.managedbuilder.ui 1328390485710
161 stopped bundle org.eclipse.cdt.make.ui 6.0.1.201002161416 org.eclipse.cdt.make.ui 1328390485711
162 stopped bundle org.eclipse.cdt.managedbuilder.gnu.ui 5.0.100.201002161416 org.eclipse.cdt.managedbuilder.gnu.ui 1328390485711
163 stopped bundle org.eclipse.cdt.managedbuilder.core 6.0.0.201002161416 org.eclipse.cdt.managedbuilder.core 1328390485712
164 stopped bundle org.eclipse.cdt.make.core 6.0.0.201002161416 org.eclipse.cdt.make.core 1328390485713
165 stopped bundle org.eclipse.cdt.mylyn.ui 1.0.100.201002161416 org.eclipse.cdt.mylyn.ui 1328390485713
166 stopped bundle org.eclipse.cdt.ui 5.1.2.201002161416 org.eclipse.cdt.ui 1328390485713
167 stopped bundle org.eclipse.cdt.core 5.1.2.201002161416 org.eclipse.cdt.core 1328390485714
168 stopped bundle org.eclipse.mylyn.bugzilla.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.bugzilla.ui 1328390485714
169 stopped bundle org.eclipse.mylyn.ide.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.ide.ui 1328390485714
170 stopped bundle org.eclipse.mylyn.team.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.team.ui 1328390485715
171 stopped bundle org.eclipse.mylyn.resources.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.resources.ui 1328390485715
172 stopped bundle org.eclipse.mylyn.wikitext.tasks.ui 1.1.3.v20100217-0100-e3x org.eclipse.mylyn.wikitext.tasks.ui 1328390485716
173 stopped bundle org.eclipse.mylyn.context.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.context.ui 1328390485716
174 stopped bundle org.eclipse.mylyn.help.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.help.ui 1328390485716
175 stopped bundle org.eclipse.mylyn.tasks.bugs 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.tasks.bugs 1328390485717
176 stopped bundle org.eclipse.mylyn.tasks.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.tasks.ui 1328390485719
177 stopped bundle org.eclipse.ant.ui 3.4.2.v20091204_r352 org.eclipse.ant.ui 1328390485719
178 stopped bundle com.android.ide.eclipse.adt 10.0.1.v201103111512-110841 com.android.ide.eclipse.adt 1328390485719
179 stopped bundle org.eclipse.jdt.junit 3.5.2.r352_v20100113-0800 org.eclipse.jdt.junit 1328390485720
180 stopped bundle org.eclipse.jdt.debug.ui 3.4.1.v20090811_r351 org.eclipse.jdt.debug.ui 1328390485721
181 stopped bundle org.eclipse.jdt.apt.ui 3.3.200.v20090930-2100_R35x org.eclipse.jdt.apt.ui 1328390485722
182 stopped bundle org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui 1328390485726
183 stopped bundle org.eclipse.wst.dtd.ui 1.0.400.v200904300717 org.eclipse.wst.dtd.ui 1328390485730
184 stopped bundle org.eclipse.wst.xsd.ui 1.2.204.v200909021537 org.eclipse.wst.xsd.ui 1328390485747
185 stopped bundle org.eclipse.wst.xml.ui 1.1.2.v201001222130 org.eclipse.wst.xml.ui 1328390485747
186 stopped bundle org.eclipse.wst.common.ui 1.1.402.v200901262305 org.eclipse.wst.common.ui 1328390485748
187 stopped bundle org.eclipse.wst.sse.ui 1.1.102.v200910200227 org.eclipse.wst.sse.ui 1328390485749
188 stopped bundle org.eclipse.search 3.5.1.r351_v20090708-0800 org.eclipse.search 1328390485750
189 stopped bundle org.eclipse.ltk.ui.refactoring 3.4.101.r352_v20100209 org.eclipse.ltk.ui.refactoring 1328390485750
190 stopped bundle org.eclipse.team.cvs.ui 3.3.202.r35x_20090930-0800 org.eclipse.team.cvs.ui 1328390485751
191 stopped bundle org.eclipse.team.ui 3.5.0.I20090430-0408 org.eclipse.team.ui 1328390485751
192 stopped bundle org.eclipse.compare 3.5.2.r35x_20100113-0800 org.eclipse.compare 1328390485752
193 stopped bundle org.eclipse.ui.externaltools 3.2.0.v20090504 org.eclipse.ui.externaltools 1328390485753
194 stopped bundle org.eclipse.debug.ui 3.5.2.v20091028_r352 org.eclipse.debug.ui 1328390485756
195 stopped bundle org.eclipse.mylyn.wikitext.ui 1.1.3.v20100217-0100-e3x org.eclipse.mylyn.wikitext.ui 1328390485757
196 stopped bundle com.android.ide.eclipse.hierarchyviewer 10.0.1.v201103111512-110841 com.android.ide.eclipse.hierarchyviewer 1328390485757
197 stopped bundle com.android.ide.eclipse.ddms 10.0.1.v201103111512-110841 com.android.ide.eclipse.ddms 1328390485757
198 stopped bundle org.eclipse.ui.console 3.4.0.v20090513 org.eclipse.ui.console 1328390485757
199 stopped bundle org.eclipse.mylyn.commons.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.commons.ui 1328390485757
200 stopped bundle org.eclipse.ui.editors 3.5.0.v20090527-2000 org.eclipse.ui.editors 1328390485758
201 stopped bundle org.eclipse.ui.navigator.resources 3.4.1.M20090826-0800 org.eclipse.ui.navigator.resources 1328390485758
202 activated perspective org.eclipse.jdt.ui org.eclipse.jdt.ui.JavaPerspective 1328390616647
203 started bundle org.eclipse.osgi 3.5.2.R35x_v20100126 org.eclipse.osgi 1328390616648
204 started bundle org.eclipse.equinox.simpleconfigurator 1.0.101.R35x_v20090807-1100 org.eclipse.equinox.simpleconfigurator 1328390616653
205 started bundle com.ibm.icu 4.0.1.v20090822 com.ibm.icu 1328390616654
206 started bundle org.eclipse.core.contenttype 3.4.1.R35x_v20090826-0451 org.eclipse.core.contenttype 1328390616654
207 started bundle org.eclipse.core.databinding.observable 1.2.0.M20090902-0800 org.eclipse.core.databinding.observable 1328390616655
208 started bundle org.eclipse.core.expressions 3.4.101.R35x_v20100209 org.eclipse.core.expressions 1328390616656
209 started bundle org.eclipse.core.filebuffers 3.5.0.v20090526-2000 org.eclipse.core.filebuffers 1328390616656
210 started bundle org.eclipse.core.jobs 3.4.100.v20090429-1800 org.eclipse.core.jobs 1328390616656
211 started bundle org.eclipse.core.net 1.2.1.r35x_20090812-1200 org.eclipse.core.net 1328390616657
212 started bundle org.eclipse.core.resources 3.5.2.R35x_v20091203-1235 org.eclipse.core.resources 1328390616658
213 started bundle org.eclipse.core.runtime 3.5.0.v20090525 org.eclipse.core.runtime 1328390616659
214 started bundle org.eclipse.core.runtime.compatibility 3.2.0.v20090413 org.eclipse.core.runtime.compatibility 1328390616659
215 started bundle org.eclipse.core.runtime.compatibility.auth 3.2.100.v20090413 org.eclipse.core.runtime.compatibility.auth 1328390616660
216 started bundle org.eclipse.ecf 3.0.0.v20090831-1906 org.eclipse.ecf 1328390616660
217 started bundle org.eclipse.ecf.filetransfer 3.0.0.v20090831-1906 org.eclipse.ecf.filetransfer 1328390616661
218 started bundle org.eclipse.ecf.identity 3.0.0.v20090831-1906 org.eclipse.ecf.identity 1328390616662
219 started bundle org.eclipse.ecf.provider.filetransfer 3.0.1.v20090831-1906 org.eclipse.ecf.provider.filetransfer 1328390616663
220 started bundle org.eclipse.ecf.provider.filetransfer.httpclient 3.0.1.v20090831-1906 org.eclipse.ecf.provider.filetransfer.httpclient 1328390616663
221 started bundle org.eclipse.epp.usagedata.gathering 1.1.1.R201001291118 org.eclipse.epp.usagedata.gathering 1328390616664
222 started bundle org.eclipse.epp.usagedata.recording 1.1.1.R201001291118 org.eclipse.epp.usagedata.recording 1328390616668
223 started bundle org.eclipse.equinox.app 1.2.1.R35x_v20091203 org.eclipse.equinox.app 1328390616676
224 started bundle org.eclipse.equinox.common 3.5.1.R35x_v20090807-1100 org.eclipse.equinox.common 1328390616676
225 started bundle org.eclipse.equinox.ds 1.1.1.R35x_v20090806 org.eclipse.equinox.ds 1328390616677
226 started bundle org.eclipse.equinox.frameworkadmin 1.0.100.v20090520-1905 org.eclipse.equinox.frameworkadmin 1328390616679
227 started bundle org.eclipse.equinox.frameworkadmin.equinox 1.0.101.R35x_v20091214 org.eclipse.equinox.frameworkadmin.equinox 1328390616680
228 started bundle org.eclipse.equinox.p2.core 1.0.101.R35x_v20090819 org.eclipse.equinox.p2.core 1328390616681
229 started bundle org.eclipse.equinox.p2.director 1.0.101.R35x_v20100112 org.eclipse.equinox.p2.director 1328390616682
230 started bundle org.eclipse.equinox.p2.directorywatcher 1.0.100.v20090525 org.eclipse.equinox.p2.directorywatcher 1328390616688
231 started bundle org.eclipse.equinox.p2.engine 1.0.102.R35x_v20091117 org.eclipse.equinox.p2.engine 1328390616689
232 started bundle org.eclipse.equinox.p2.exemplarysetup 1.0.100.v20090520-1905 org.eclipse.equinox.p2.exemplarysetup 1328390616690
233 started bundle org.eclipse.equinox.p2.garbagecollector 1.0.100.v20090520-1905 org.eclipse.equinox.p2.garbagecollector 1328390616691
234 started bundle org.eclipse.equinox.p2.metadata 1.0.101.R35x_v20100112 org.eclipse.equinox.p2.metadata 1328390616692
235 started bundle org.eclipse.equinox.p2.metadata.repository 1.0.101.R35x_v20090812 org.eclipse.equinox.p2.metadata.repository 1328390616692
236 started bundle org.eclipse.equinox.p2.reconciler.dropins 1.0.100.v20090520-1905 org.eclipse.equinox.p2.reconciler.dropins 1328390616693
237 started bundle org.eclipse.equinox.p2.repository 1.0.1.R35x_v20100105 org.eclipse.equinox.p2.repository 1328390616693
238 started bundle org.eclipse.equinox.p2.ui.sdk.scheduler 1.0.0.v20090520-1905 org.eclipse.equinox.p2.ui.sdk.scheduler 1328390616694
239 started bundle org.eclipse.equinox.p2.updatechecker 1.1.0.v20090520-1905 org.eclipse.equinox.p2.updatechecker 1328390616695
240 started bundle org.eclipse.equinox.preferences 3.2.301.R35x_v20091117 org.eclipse.equinox.preferences 1328390616695
241 started bundle org.eclipse.equinox.registry 3.4.100.v20090520-1800 org.eclipse.equinox.registry 1328390616696
242 started bundle org.eclipse.equinox.security 1.0.100.v20090520-1800 org.eclipse.equinox.security 1328390616697
243 started bundle org.eclipse.equinox.simpleconfigurator.manipulator 1.0.101.R35x_v20100209 org.eclipse.equinox.simpleconfigurator.manipulator 1328390616697
244 started bundle org.eclipse.equinox.util 1.0.100.v20090520-1800 org.eclipse.equinox.util 1328390616698
245 started bundle org.eclipse.help 3.4.1.v20090805_35x org.eclipse.help 1328390616698
246 started bundle org.eclipse.jface 3.5.2.M20100120-0800 org.eclipse.jface 1328390616699
247 started bundle org.eclipse.jsch.core 1.1.100.I20090430-0408 org.eclipse.jsch.core 1328390616705
248 started bundle org.eclipse.mylyn.bugzilla.core 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.bugzilla.core 1328390616705
249 started bundle org.eclipse.mylyn.bugzilla.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.bugzilla.ui 1328390616706
250 started bundle org.eclipse.mylyn.commons.net 3.2.0.v20090617-0100-e3x org.eclipse.mylyn.commons.net 1328390616706
251 started bundle org.eclipse.mylyn.commons.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.commons.ui 1328390616707

View File

@ -1,83 +0,0 @@
what,kind,bundleId,bundleVersion,description,time
started,bundle,org.eclipse.mylyn.context.core,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.context.core",1328390616707
started,bundle,org.eclipse.mylyn.context.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.context.ui",1328390616708
started,bundle,org.eclipse.mylyn.monitor.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.monitor.ui",1328390616708
started,bundle,org.eclipse.mylyn.tasks.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.tasks.ui",1328390616709
started,bundle,org.eclipse.mylyn.team.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.team.ui",1328390616710
started,bundle,org.eclipse.search,3.5.1.r351_v20090708-0800,"org.eclipse.search",1328390616711
started,bundle,org.eclipse.team.core,3.5.1.r35x_20100113-0800,"org.eclipse.team.core",1328390616712
started,bundle,org.eclipse.team.cvs.core,3.3.200.I20090430-0408,"org.eclipse.team.cvs.core",1328390616712
started,bundle,org.eclipse.team.cvs.ui,3.3.202.r35x_20090930-0800,"org.eclipse.team.cvs.ui",1328390616713
started,bundle,org.eclipse.team.ui,3.5.0.I20090430-0408,"org.eclipse.team.ui",1328390616714
started,bundle,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui",1328390616715
started,bundle,org.eclipse.ui.console,3.4.0.v20090513,"org.eclipse.ui.console",1328390616716
started,bundle,org.eclipse.ui.editors,3.5.0.v20090527-2000,"org.eclipse.ui.editors",1328390616717
started,bundle,org.eclipse.ui.forms,3.4.1.v20090714_35x,"org.eclipse.ui.forms",1328390616717
started,bundle,org.eclipse.ui.ide,3.5.2.M20100113-0800,"org.eclipse.ui.ide",1328390616718
started,bundle,org.eclipse.ui.net,1.2.1.r35x_20090812-1200,"org.eclipse.ui.net",1328390616719
started,bundle,org.eclipse.ui.views,3.4.1.M20090826-0800,"org.eclipse.ui.views",1328390616720
started,bundle,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"org.eclipse.ui.workbench",1328390616720
started,bundle,org.eclipse.ui.workbench.texteditor,3.5.1.r352_v20100105,"org.eclipse.ui.workbench.texteditor",1328390616721
started,bundle,org.eclipse.update.configurator,3.3.0.v20090312,"org.eclipse.update.configurator",1328390616722
started,bundle,org.eclipse.update.core,3.2.300.v20090525,"org.eclipse.update.core",1328390616722
started,bundle,org.eclipse.update.scheduler,3.2.200.v20081127,"org.eclipse.update.scheduler",1328390616723
started,bundle,org.eclipse.jdt.core,3.5.2.v_981_R35x,"org.eclipse.jdt.core",1328390616724
started,bundle,org.eclipse.jdt.core.manipulation,1.3.0.v20090603,"org.eclipse.jdt.core.manipulation",1328390616725
started,bundle,org.eclipse.jdt.ui,3.5.2.r352_v20100106-0800,"org.eclipse.jdt.ui",1328390616730
os,sysinfo,,,"macosx",1328390616740
arch,sysinfo,,,"x86_64",1328390616740
ws,sysinfo,,,"cocoa",1328390616740
locale,sysinfo,,,"en_US",1328390616740
processors,sysinfo,,,"4",1328390616740
java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1328390616740
java.runtime.version,sysinfo,,,"1.6.0_29-b11-402-11M3527",1328390616740
java.specification.name,sysinfo,,,"Java Platform API Specification",1328390616740
java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1328390616740
java.specification.version,sysinfo,,,"1.6",1328390616740
java.vendor,sysinfo,,,"Apple Inc.",1328390616740
java.version,sysinfo,,,"1.6.0_29",1328390616740
java.vm.info,sysinfo,,,"mixed mode",1328390616740
java.vm.name,sysinfo,,,"Java HotSpot(TM) 64-Bit Server VM",1328390616740
java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1328390616740
java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1328390616740
java.vm.specification.version,sysinfo,,,"1.0",1328390616740
java.vm.vendor,sysinfo,,,"Apple Inc.",1328390616740
java.vm.version,sysinfo,,,"20.4-b02-402",1328390616740
started,bundle,org.eclipse.equinox.p2.extensionlocation,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.extensionlocation",1328390616768
started,bundle,org.eclipse.equinox.p2.artifact.repository,1.0.101.R35x_v20090721,"org.eclipse.equinox.p2.artifact.repository",1328390616783
started,bundle,org.eclipse.equinox.p2.publisher,1.0.1.R35x_20100105,"org.eclipse.equinox.p2.publisher",1328390616808
started,bundle,org.eclipse.equinox.p2.touchpoint.eclipse,1.0.101.R35x_20090820-1821,"org.eclipse.equinox.p2.touchpoint.eclipse",1328390616820
deactivated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390619481
started,bundle,org.eclipse.equinox.p2.updatesite,1.0.101.R35x_20100105,"org.eclipse.equinox.p2.updatesite",1328390623001
started,bundle,org.eclipse.equinox.p2.ui,1.0.101.R35x_v20090819,"org.eclipse.equinox.p2.ui",1328390623371
started,bundle,org.eclipse.equinox.p2.ui.sdk,1.0.100.v20090520-1905,"org.eclipse.equinox.p2.ui.sdk",1328390623409
started,bundle,org.eclipse.core.filesystem,1.2.1.R35x_v20091203-1235,"org.eclipse.core.filesystem",1328390630622
activated,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390659248
executed,command,org.eclipse.ui,3.5.2.M20100120-0800,"org.eclipse.ui.file.import",1328390659277
closed,workbench,org.eclipse.ui.workbench,3.5.2.M20100113-0800,"",1328390663881
stopped,bundle,org.eclipse.cdt.debug.mi.ui,6.0.0.201002161416,"org.eclipse.cdt.debug.mi.ui",1328390664441
stopped,bundle,org.eclipse.cdt.debug.gdbjtag.ui,5.0.100.201002161416,"org.eclipse.cdt.debug.gdbjtag.ui",1328390664442
stopped,bundle,org.eclipse.cdt.debug.gdbjtag.core,5.0.100.201002161416,"org.eclipse.cdt.debug.gdbjtag.core",1328390664442
stopped,bundle,org.eclipse.cdt.debug.mi.core,6.0.0.201002161416,"org.eclipse.cdt.debug.mi.core",1328390664443
stopped,bundle,org.eclipse.cdt.dsf.gdb.ui,2.0.0.201002161416,"org.eclipse.cdt.dsf.gdb.ui",1328390664443
stopped,bundle,org.eclipse.cdt.dsf.ui,2.0.1.201002161416,"org.eclipse.cdt.dsf.ui",1328390664444
stopped,bundle,org.eclipse.cdt.launch,6.0.0.201002161416,"org.eclipse.cdt.launch",1328390664445
stopped,bundle,org.eclipse.cdt.debug.ui,6.0.0.201002161416,"org.eclipse.cdt.debug.ui",1328390664446
stopped,bundle,org.eclipse.cdt.dsf.gdb,2.0.0.201002161416,"org.eclipse.cdt.dsf.gdb",1328390664446
stopped,bundle,org.eclipse.cdt.dsf,2.0.0.201002161416,"org.eclipse.cdt.dsf",1328390664447
stopped,bundle,org.eclipse.cdt.debug.core,6.0.0.201002161416,"org.eclipse.cdt.debug.core",1328390664448
stopped,bundle,org.eclipse.cdt.managedbuilder.ui,5.1.0.201002161416,"org.eclipse.cdt.managedbuilder.ui",1328390664449
stopped,bundle,org.eclipse.cdt.make.ui,6.0.1.201002161416,"org.eclipse.cdt.make.ui",1328390664452
stopped,bundle,org.eclipse.cdt.managedbuilder.gnu.ui,5.0.100.201002161416,"org.eclipse.cdt.managedbuilder.gnu.ui",1328390664453
stopped,bundle,org.eclipse.cdt.managedbuilder.core,6.0.0.201002161416,"org.eclipse.cdt.managedbuilder.core",1328390664454
stopped,bundle,org.eclipse.cdt.make.core,6.0.0.201002161416,"org.eclipse.cdt.make.core",1328390664455
stopped,bundle,org.eclipse.cdt.mylyn.ui,1.0.100.201002161416,"org.eclipse.cdt.mylyn.ui",1328390664455
stopped,bundle,org.eclipse.cdt.ui,5.1.2.201002161416,"org.eclipse.cdt.ui",1328390664458
stopped,bundle,org.eclipse.cdt.core,5.1.2.201002161416,"org.eclipse.cdt.core",1328390664459
stopped,bundle,org.eclipse.mylyn.bugzilla.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.bugzilla.ui",1328390664460
stopped,bundle,org.eclipse.mylyn.ide.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.ide.ui",1328390664460
stopped,bundle,org.eclipse.mylyn.team.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.team.ui",1328390664460
stopped,bundle,org.eclipse.mylyn.resources.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.resources.ui",1328390664461
stopped,bundle,org.eclipse.mylyn.wikitext.tasks.ui,1.1.3.v20100217-0100-e3x,"org.eclipse.mylyn.wikitext.tasks.ui",1328390664461
stopped,bundle,org.eclipse.mylyn.context.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.context.ui",1328390664462
stopped,bundle,org.eclipse.mylyn.help.ui,3.2.3.v20100217-0100-e3x,"org.eclipse.mylyn.help.ui",1328390664462
1 what kind bundleId bundleVersion description time
2 started bundle org.eclipse.mylyn.context.core 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.context.core 1328390616707
3 started bundle org.eclipse.mylyn.context.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.context.ui 1328390616708
4 started bundle org.eclipse.mylyn.monitor.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.monitor.ui 1328390616708
5 started bundle org.eclipse.mylyn.tasks.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.tasks.ui 1328390616709
6 started bundle org.eclipse.mylyn.team.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.team.ui 1328390616710
7 started bundle org.eclipse.search 3.5.1.r351_v20090708-0800 org.eclipse.search 1328390616711
8 started bundle org.eclipse.team.core 3.5.1.r35x_20100113-0800 org.eclipse.team.core 1328390616712
9 started bundle org.eclipse.team.cvs.core 3.3.200.I20090430-0408 org.eclipse.team.cvs.core 1328390616712
10 started bundle org.eclipse.team.cvs.ui 3.3.202.r35x_20090930-0800 org.eclipse.team.cvs.ui 1328390616713
11 started bundle org.eclipse.team.ui 3.5.0.I20090430-0408 org.eclipse.team.ui 1328390616714
12 started bundle org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui 1328390616715
13 started bundle org.eclipse.ui.console 3.4.0.v20090513 org.eclipse.ui.console 1328390616716
14 started bundle org.eclipse.ui.editors 3.5.0.v20090527-2000 org.eclipse.ui.editors 1328390616717
15 started bundle org.eclipse.ui.forms 3.4.1.v20090714_35x org.eclipse.ui.forms 1328390616717
16 started bundle org.eclipse.ui.ide 3.5.2.M20100113-0800 org.eclipse.ui.ide 1328390616718
17 started bundle org.eclipse.ui.net 1.2.1.r35x_20090812-1200 org.eclipse.ui.net 1328390616719
18 started bundle org.eclipse.ui.views 3.4.1.M20090826-0800 org.eclipse.ui.views 1328390616720
19 started bundle org.eclipse.ui.workbench 3.5.2.M20100113-0800 org.eclipse.ui.workbench 1328390616720
20 started bundle org.eclipse.ui.workbench.texteditor 3.5.1.r352_v20100105 org.eclipse.ui.workbench.texteditor 1328390616721
21 started bundle org.eclipse.update.configurator 3.3.0.v20090312 org.eclipse.update.configurator 1328390616722
22 started bundle org.eclipse.update.core 3.2.300.v20090525 org.eclipse.update.core 1328390616722
23 started bundle org.eclipse.update.scheduler 3.2.200.v20081127 org.eclipse.update.scheduler 1328390616723
24 started bundle org.eclipse.jdt.core 3.5.2.v_981_R35x org.eclipse.jdt.core 1328390616724
25 started bundle org.eclipse.jdt.core.manipulation 1.3.0.v20090603 org.eclipse.jdt.core.manipulation 1328390616725
26 started bundle org.eclipse.jdt.ui 3.5.2.r352_v20100106-0800 org.eclipse.jdt.ui 1328390616730
27 os sysinfo macosx 1328390616740
28 arch sysinfo x86_64 1328390616740
29 ws sysinfo cocoa 1328390616740
30 locale sysinfo en_US 1328390616740
31 processors sysinfo 4 1328390616740
32 java.runtime.name sysinfo Java(TM) SE Runtime Environment 1328390616740
33 java.runtime.version sysinfo 1.6.0_29-b11-402-11M3527 1328390616740
34 java.specification.name sysinfo Java Platform API Specification 1328390616740
35 java.specification.vendor sysinfo Sun Microsystems Inc. 1328390616740
36 java.specification.version sysinfo 1.6 1328390616740
37 java.vendor sysinfo Apple Inc. 1328390616740
38 java.version sysinfo 1.6.0_29 1328390616740
39 java.vm.info sysinfo mixed mode 1328390616740
40 java.vm.name sysinfo Java HotSpot(TM) 64-Bit Server VM 1328390616740
41 java.vm.specification.name sysinfo Java Virtual Machine Specification 1328390616740
42 java.vm.specification.vendor sysinfo Sun Microsystems Inc. 1328390616740
43 java.vm.specification.version sysinfo 1.0 1328390616740
44 java.vm.vendor sysinfo Apple Inc. 1328390616740
45 java.vm.version sysinfo 20.4-b02-402 1328390616740
46 started bundle org.eclipse.equinox.p2.extensionlocation 1.0.100.v20090520-1905 org.eclipse.equinox.p2.extensionlocation 1328390616768
47 started bundle org.eclipse.equinox.p2.artifact.repository 1.0.101.R35x_v20090721 org.eclipse.equinox.p2.artifact.repository 1328390616783
48 started bundle org.eclipse.equinox.p2.publisher 1.0.1.R35x_20100105 org.eclipse.equinox.p2.publisher 1328390616808
49 started bundle org.eclipse.equinox.p2.touchpoint.eclipse 1.0.101.R35x_20090820-1821 org.eclipse.equinox.p2.touchpoint.eclipse 1328390616820
50 deactivated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390619481
51 started bundle org.eclipse.equinox.p2.updatesite 1.0.101.R35x_20100105 org.eclipse.equinox.p2.updatesite 1328390623001
52 started bundle org.eclipse.equinox.p2.ui 1.0.101.R35x_v20090819 org.eclipse.equinox.p2.ui 1328390623371
53 started bundle org.eclipse.equinox.p2.ui.sdk 1.0.100.v20090520-1905 org.eclipse.equinox.p2.ui.sdk 1328390623409
54 started bundle org.eclipse.core.filesystem 1.2.1.R35x_v20091203-1235 org.eclipse.core.filesystem 1328390630622
55 activated workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390659248
56 executed command org.eclipse.ui 3.5.2.M20100120-0800 org.eclipse.ui.file.import 1328390659277
57 closed workbench org.eclipse.ui.workbench 3.5.2.M20100113-0800 1328390663881
58 stopped bundle org.eclipse.cdt.debug.mi.ui 6.0.0.201002161416 org.eclipse.cdt.debug.mi.ui 1328390664441
59 stopped bundle org.eclipse.cdt.debug.gdbjtag.ui 5.0.100.201002161416 org.eclipse.cdt.debug.gdbjtag.ui 1328390664442
60 stopped bundle org.eclipse.cdt.debug.gdbjtag.core 5.0.100.201002161416 org.eclipse.cdt.debug.gdbjtag.core 1328390664442
61 stopped bundle org.eclipse.cdt.debug.mi.core 6.0.0.201002161416 org.eclipse.cdt.debug.mi.core 1328390664443
62 stopped bundle org.eclipse.cdt.dsf.gdb.ui 2.0.0.201002161416 org.eclipse.cdt.dsf.gdb.ui 1328390664443
63 stopped bundle org.eclipse.cdt.dsf.ui 2.0.1.201002161416 org.eclipse.cdt.dsf.ui 1328390664444
64 stopped bundle org.eclipse.cdt.launch 6.0.0.201002161416 org.eclipse.cdt.launch 1328390664445
65 stopped bundle org.eclipse.cdt.debug.ui 6.0.0.201002161416 org.eclipse.cdt.debug.ui 1328390664446
66 stopped bundle org.eclipse.cdt.dsf.gdb 2.0.0.201002161416 org.eclipse.cdt.dsf.gdb 1328390664446
67 stopped bundle org.eclipse.cdt.dsf 2.0.0.201002161416 org.eclipse.cdt.dsf 1328390664447
68 stopped bundle org.eclipse.cdt.debug.core 6.0.0.201002161416 org.eclipse.cdt.debug.core 1328390664448
69 stopped bundle org.eclipse.cdt.managedbuilder.ui 5.1.0.201002161416 org.eclipse.cdt.managedbuilder.ui 1328390664449
70 stopped bundle org.eclipse.cdt.make.ui 6.0.1.201002161416 org.eclipse.cdt.make.ui 1328390664452
71 stopped bundle org.eclipse.cdt.managedbuilder.gnu.ui 5.0.100.201002161416 org.eclipse.cdt.managedbuilder.gnu.ui 1328390664453
72 stopped bundle org.eclipse.cdt.managedbuilder.core 6.0.0.201002161416 org.eclipse.cdt.managedbuilder.core 1328390664454
73 stopped bundle org.eclipse.cdt.make.core 6.0.0.201002161416 org.eclipse.cdt.make.core 1328390664455
74 stopped bundle org.eclipse.cdt.mylyn.ui 1.0.100.201002161416 org.eclipse.cdt.mylyn.ui 1328390664455
75 stopped bundle org.eclipse.cdt.ui 5.1.2.201002161416 org.eclipse.cdt.ui 1328390664458
76 stopped bundle org.eclipse.cdt.core 5.1.2.201002161416 org.eclipse.cdt.core 1328390664459
77 stopped bundle org.eclipse.mylyn.bugzilla.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.bugzilla.ui 1328390664460
78 stopped bundle org.eclipse.mylyn.ide.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.ide.ui 1328390664460
79 stopped bundle org.eclipse.mylyn.team.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.team.ui 1328390664460
80 stopped bundle org.eclipse.mylyn.resources.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.resources.ui 1328390664461
81 stopped bundle org.eclipse.mylyn.wikitext.tasks.ui 1.1.3.v20100217-0100-e3x org.eclipse.mylyn.wikitext.tasks.ui 1328390664461
82 stopped bundle org.eclipse.mylyn.context.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.context.ui 1328390664462
83 stopped bundle org.eclipse.mylyn.help.ui 3.2.3.v20100217-0100-e3x org.eclipse.mylyn.help.ui 1328390664462

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<typeInfoHistroy/>

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<qualifiedTypeNameHistroy/>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<section name="org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart">
<item value="true" key="group_libraries"/>
<item value="false" key="linkWithEditor"/>
<item value="2" key="layout"/>
<item value="1" key="rootMode"/>
<item value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#x0A;&lt;packageExplorer group_libraries=&quot;1&quot; layout=&quot;2&quot; linkWithEditor=&quot;0&quot; rootMode=&quot;1&quot; workingSetName=&quot;&quot;&gt;&#x0A;&lt;customFilters userDefinedPatternsEnabled=&quot;false&quot;&gt;&#x0A;&lt;xmlDefinedFilters&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.LibraryFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.LocalTypesFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.StaticsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.ClosedProjectsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonSharedProjectsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonJavaElementFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.ContainedLibraryFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.CuAndClassFileFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonJavaProjectsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.internal.ui.PackageExplorer.EmptyInnerPackageFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.internal.ui.PackageExplorer.EmptyPackageFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.ImportDeclarationFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.FieldsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.internal.ui.PackageExplorer.HideInnerClassFilesFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonPublicFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.EmptyLibraryContainerFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.SyntheticMembersFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0A;&lt;/xmlDefinedFilters&gt;&#x0A;&lt;/customFilters&gt;&#x0A;&lt;/packageExplorer&gt;" key="memento"/>
</section>
</section>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<section name="ExternalProjectImportWizard">
<item value="false" key="WizardProjectsImportPage.STORE_ARCHIVE_SELECTED"/>
<item value="false" key="WizardProjectsImportPage.STORE_COPY_PROJECT_ID"/>
</section>
<section name="NewWizardAction">
</section>
</section>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<item value="1024" key="introLaunchBar.location"/>
</section>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<section name="ImportExportAction">
</section>
</section>

View File

@ -1,355 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<workbench progressCount="20" version="2.0">
<workbenchAdvisor/>
<window height="768" width="1024" x="270" y="82">
<fastViewData fastViewLocation="1024"/>
<perspectiveBar>
<itemSize x="160"/>
</perspectiveBar>
<coolbarLayout locked="0">
<coolItem id="group.file" itemType="typeGroupMarker"/>
<coolItem id="org.eclipse.ui.workbench.file" itemType="typeToolBarContribution" x="84" y="22"/>
<coolItem id="additions" itemType="typeGroupMarker"/>
<coolItem id="adt.actionSet.avdManager" itemType="typeToolBarContribution" x="32" y="22"/>
<coolItem id="adt.actionSet.wizards" itemType="typeToolBarContribution" x="76" y="22"/>
<coolItem id="org.eclipse.cdt.ui.CElementCreationActionSet" itemType="typeToolBarContribution" x="130" y="22"/>
<coolItem id="org.eclipse.cdt.ui.buildConfigActionSet" itemType="typeToolBarContribution" x="69" y="22"/>
<coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="100" y="22"/>
<coolItem id="org.eclipse.jdt.ui.JavaElementCreationActionSet" itemType="typeToolBarContribution" x="84" y="22"/>
<coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="84" y="22"/>
<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="54" y="22"/>
<coolItem id="org.eclipse.wst.xml.ui.perspective.NewFileToolBar" itemType="typeToolBarContribution" x="-1" y="-1"/>
<coolItem id="org.eclipse.wst.xml.ui.design.DesignToolBar" itemType="typeToolBarContribution" x="-1" y="-1"/>
<coolItem id="group.nav" itemType="typeGroupMarker"/>
<coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="152" y="22"/>
<coolItem id="group.editor" itemType="typeGroupMarker"/>
<coolItem id="group.help" itemType="typeGroupMarker"/>
<coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
</coolbarLayout>
<page aggregateWorkingSetId="Aggregate for window 1328386901227" focus="true" label="Workspace - Java">
<editors>
<editorArea activeWorkbook="DefaultEditorWorkbook">
<info part="DefaultEditorWorkbook">
<folder appearance="1" expanded="2">
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
</folder>
</info>
</editorArea>
</editors>
<views>
<view id="org.eclipse.ui.navigator.ProjectExplorer" partName="Project Explorer">
<viewState CommonNavigator.LINKING_ENABLED="0" CommonNavigator.LINKING_ENABLED.delayed="0" org.eclipse.cdt.ui.cview.groupincludes="false" org.eclipse.cdt.ui.editor.CUChildren="true" org.eclipse.ui.navigator.resources.workingSets.showTopLevelWorkingSets="0"/>
</view>
<view id="org.eclipse.jdt.ui.TypeHierarchy" partName="Hierarchy"/>
<view id="org.eclipse.ui.views.PropertySheet" partName="Properties"/>
<view id="org.eclipse.cdt.make.ui.views.MakeView" partName="Make Targets"/>
<view id="org.eclipse.ui.views.ProblemView" partName="Problems">
<viewState PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator" partName="Problems">
<columnWidths org.eclipse.ui.ide.locationField="84" org.eclipse.ui.ide.markerType="114" org.eclipse.ui.ide.pathField="144" org.eclipse.ui.ide.resourceField="114" org.eclipse.ui.ide.severityAndDescriptionField="300"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
</viewState>
</view>
<view id="org.eclipse.jdt.ui.PackageExplorer" partName="Package Explorer">
<viewState group_libraries="1" layout="2" linkWithEditor="0" rootMode="1" workingSetName="">
<customFilters userDefinedPatternsEnabled="false">
<xmlDefinedFilters>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.LibraryFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.LocalTypesFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.StaticsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.ClosedProjectsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonSharedProjectsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonJavaElementFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.ContainedLibraryFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.CuAndClassFileFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonJavaProjectsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.EmptyInnerPackageFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.EmptyPackageFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.ImportDeclarationFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.FieldsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.HideInnerClassFilesFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonPublicFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.EmptyLibraryContainerFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.SyntheticMembersFilter" isEnabled="true"/>
</xmlDefinedFilters>
</customFilters>
</viewState>
</view>
<view id="org.eclipse.ui.console.ConsoleView" partName="Console"/>
<view id="org.eclipse.mylyn.tasks.ui.views.tasks" partName="Task List">
<viewState linkWithEditor="true" presentation="org.eclipse.mylyn.tasks.ui.categorized">
<sorter groupBy="CATEGORY_QUERY">
<sorter>
<sort0 sortDirection="1" sortKey="PRIORITY"/>
<sort1 sortDirection="1" sortKey="DATE_CREATED"/>
<sort2 sortDirection="1" sortKey="NONE"/>
<sort3 sortDirection="1" sortKey="NONE"/>
</sorter>
</sorter>
</viewState>
</view>
<view id="org.eclipse.ui.views.TaskList" partName="Tasks"/>
<view id="org.eclipse.jdt.ui.SourceView" partName="Declaration">
<viewState/>
</view>
<view id="org.eclipse.ui.views.ContentOutline" partName="Outline">
<viewState/>
</view>
<view id="org.eclipse.jdt.ui.JavadocView" partName="Javadoc">
<viewState/>
</view>
</views>
<perspectives activePart="org.eclipse.ui.views.ProblemView" activePerspective="org.eclipse.jdt.ui.JavaPerspective">
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
<descriptor class="org.eclipse.cdt.internal.ui.CPerspectiveFactory" id="org.eclipse.cdt.ui.CPerspective" label="C/C++"/>
<alwaysOnActionSet id="org.eclipse.mylyn.context.ui.actionSet"/>
<alwaysOnActionSet id="org.eclipse.mylyn.doc.actionSet"/>
<alwaysOnActionSet id="org.eclipse.mylyn.tasks.ui.navigation"/>
<alwaysOnActionSet id="org.eclipse.ui.cheatsheets.actionSet"/>
<alwaysOnActionSet id="org.eclipse.search.searchActionSet"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.annotationNavigation"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.navigation"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
<alwaysOnActionSet id="org.eclipse.ui.externaltools.ExternalToolsSet"/>
<alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings"/>
<alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles"/>
<alwaysOnActionSet id="adt.actionSet.wizards"/>
<alwaysOnActionSet id="adt.actionSet.refactorings"/>
<alwaysOnActionSet id="adt.actionSet.avdManager"/>
<alwaysOnActionSet id="org.eclipse.cdt.ui.SearchActionSet"/>
<alwaysOnActionSet id="org.eclipse.cdt.ui.CElementCreationActionSet"/>
<alwaysOnActionSet id="org.eclipse.ui.NavigateActionSet"/>
<alwaysOnActionSet id="org.eclipse.debug.ui.breakpointActionSet"/>
<alwaysOnActionSet id="org.eclipse.cdt.make.ui.makeTargetActionSet"/>
<alwaysOnActionSet id="org.eclipse.debug.ui.launchActionSet"/>
<alwaysOnActionSet id="org.eclipse.cdt.ui.buildConfigActionSet"/>
<alwaysOnActionSet id="org.eclipse.cdt.ui.NavigationActionSet"/>
<alwaysOnActionSet id="org.eclipse.cdt.ui.OpenActionSet"/>
<alwaysOnActionSet id="org.eclipse.cdt.ui.CodingActionSet"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.presentation"/>
<show_view_action id="org.eclipse.ui.console.ConsoleView"/>
<show_view_action id="org.eclipse.search.ui.views.SearchView"/>
<show_view_action id="org.eclipse.ui.views.ContentOutline"/>
<show_view_action id="org.eclipse.ui.views.ProblemView"/>
<show_view_action id="org.eclipse.cdt.ui.CView"/>
<show_view_action id="org.eclipse.ui.views.ResourceNavigator"/>
<show_view_action id="org.eclipse.ui.views.PropertySheet"/>
<show_view_action id="org.eclipse.ui.views.TaskList"/>
<show_view_action id="org.eclipse.cdt.make.ui.views.MakeView"/>
<show_view_action id="org.eclipse.ui.navigator.ProjectExplorer"/>
<show_view_action id="org.eclipse.cdt.ui.includeBrowser"/>
<show_view_action id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.ConvertToMakeWizard"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewCWizard1"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewCWizard2"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewSourceFolderCreationWizard"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewFolderCreationWizard"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewSourceFileCreationWizard"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewHeaderFileCreationWizard"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewFileCreationWizard"/>
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewClassCreationWizard"/>
<new_wizard_action id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task"/>
<perspective_action id="org.eclipse.debug.ui.DebugPerspective"/>
<perspective_action id="org.eclipse.team.ui.TeamSynchronizingPerspective"/>
<hide_toolbar_item_id id="org.eclipse.ui.edit.text.toggleShowSelectedElementOnly"/>
<view id="org.eclipse.ui.navigator.ProjectExplorer"/>
<view id="org.eclipse.ui.views.ProblemView"/>
<view id="org.eclipse.ui.views.TaskList"/>
<view id="org.eclipse.ui.console.ConsoleView"/>
<view id="org.eclipse.ui.views.PropertySheet"/>
<view id="org.eclipse.ui.views.ContentOutline"/>
<view id="org.eclipse.cdt.make.ui.views.MakeView"/>
<view id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
<fastViewBars/>
<layout>&#x0A;<mainWindow>&#x0A;<info folder="true" part="topLeft">&#x0A;<folder activePageID="org.eclipse.ui.navigator.ProjectExplorer" appearance="2" expanded="2">&#x0A;<page content="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer"/>
<page content="org.eclipse.cdt.ui.CView" label="LabelNotFound"/>
<page content="org.eclipse.ui.views.ResourceNavigator" label="LabelNotFound"/>
<page content="org.eclipse.ui.views.BookmarkView" label="LabelNotFound"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">&#x0A;<part id="0"/>
</presentation>
</folder>
</info>
<info folder="true" part="org.eclipse.ui.internal.ViewStack@4b48f7e0" ratio="0.75" ratioLeft="762" ratioRight="254" relationship="2" relative="topLeft">&#x0A;<folder appearance="2" expanded="2">&#x0A;<page content="org.eclipse.help.ui.HelpView" label="LabelNotFound"/>
<page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
<page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
</folder>
</info>
<info part="org.eclipse.ui.editorss" ratio="0.25" ratioLeft="254" ratioRight="762" relationship="2" relative="topLeft"/>
<info folder="true" part="bottom" ratio="0.74963397" ratioLeft="512" ratioRight="171" relationship="4" relative="org.eclipse.ui.editorss">&#x0A;<folder activePageID="org.eclipse.ui.views.ProblemView" appearance="2" expanded="2">&#x0A;<page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
<page content="org.eclipse.ui.views.TaskList" label="Tasks"/>
<page content="org.eclipse.ui.console.ConsoleView" label="Console"/>
<page content="org.eclipse.ui.views.PropertySheet" label="Properties"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">&#x0A;<part id="0"/>
<part id="1"/>
<part id="2"/>
<part id="3"/>
</presentation>
</folder>
</info>
<info folder="true" part="topRight" ratio="0.7493438" ratioLeft="571" ratioRight="191" relationship="2" relative="org.eclipse.ui.editorss">&#x0A;<folder activePageID="org.eclipse.ui.views.ContentOutline" appearance="2" expanded="2">&#x0A;<page content="org.eclipse.ui.views.ContentOutline" label="Outline"/>
<page content="org.eclipse.cdt.make.ui.views.MakeView" label="Make Targets"/>
<page content="org.eclipse.mylyn.tasks.ui.views.tasks" label="Task List"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">&#x0A;<part id="0"/>
<part id="1"/>
<part id="2"/>
</presentation>
</folder>
</info>
</mainWindow>
</layout>
</perspective>
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
<descriptor class="org.eclipse.jdt.internal.ui.JavaPerspectiveFactory" id="org.eclipse.jdt.ui.JavaPerspective" label="Java"/>
<alwaysOnActionSet id="org.eclipse.mylyn.context.ui.actionSet"/>
<alwaysOnActionSet id="org.eclipse.mylyn.doc.actionSet"/>
<alwaysOnActionSet id="org.eclipse.mylyn.tasks.ui.navigation"/>
<alwaysOnActionSet id="org.eclipse.ui.cheatsheets.actionSet"/>
<alwaysOnActionSet id="org.eclipse.search.searchActionSet"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.annotationNavigation"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.navigation"/>
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
<alwaysOnActionSet id="org.eclipse.ui.externaltools.ExternalToolsSet"/>
<alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings"/>
<alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles"/>
<alwaysOnActionSet id="adt.actionSet.wizards"/>
<alwaysOnActionSet id="adt.actionSet.refactorings"/>
<alwaysOnActionSet id="adt.actionSet.avdManager"/>
<alwaysOnActionSet id="org.eclipse.debug.ui.launchActionSet"/>
<alwaysOnActionSet id="org.eclipse.jdt.ui.JavaActionSet"/>
<alwaysOnActionSet id="org.eclipse.jdt.ui.JavaElementCreationActionSet"/>
<alwaysOnActionSet id="org.eclipse.ui.NavigateActionSet"/>
<alwaysOnActionSet id="org.eclipse.debug.ui.breakpointActionSet"/>
<alwaysOnActionSet id="org.eclipse.jdt.debug.ui.JDTDebugActionSet"/>
<alwaysOnActionSet id="org.eclipse.jdt.junit.JUnitActionSet"/>
<show_view_action id="org.eclipse.jdt.ui.PackageExplorer"/>
<show_view_action id="org.eclipse.jdt.ui.TypeHierarchy"/>
<show_view_action id="org.eclipse.jdt.ui.SourceView"/>
<show_view_action id="org.eclipse.jdt.ui.JavadocView"/>
<show_view_action id="org.eclipse.search.ui.views.SearchView"/>
<show_view_action id="org.eclipse.ui.console.ConsoleView"/>
<show_view_action id="org.eclipse.ui.views.ContentOutline"/>
<show_view_action id="org.eclipse.ui.views.ProblemView"/>
<show_view_action id="org.eclipse.ui.views.ResourceNavigator"/>
<show_view_action id="org.eclipse.ui.views.TaskList"/>
<show_view_action id="org.eclipse.ui.views.ProgressView"/>
<show_view_action id="org.eclipse.ui.navigator.ProjectExplorer"/>
<show_view_action id="org.eclipse.ui.texteditor.TemplatesView"/>
<show_view_action id="org.eclipse.ant.ui.views.AntView"/>
<show_view_action id="org.eclipse.pde.runtime.LogView"/>
<show_view_action id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.JavaProjectWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewClassCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewEnumCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard"/>
<new_wizard_action id="org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard"/>
<new_wizard_action id="org.eclipse.ui.wizards.new.folder"/>
<new_wizard_action id="org.eclipse.ui.wizards.new.file"/>
<new_wizard_action id="org.eclipse.ui.editors.wizards.UntitledTextFileWizard"/>
<new_wizard_action id="com.android.ide.eclipse.adt.project.NewProjectWizard"/>
<new_wizard_action id="com.android.ide.eclipse.editors.wizards.NewXmlFileWizard"/>
<new_wizard_action id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard"/>
<new_wizard_action id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task"/>
<perspective_action id="com.android.ide.eclipse.ddms.Perspective"/>
<perspective_action id="com.android.ide.eclipse.hierarchyviewer.PixelPerfectPespective"/>
<perspective_action id="com.android.ide.eclipse.hierarchyviewer.TreeViewPerspective"/>
<perspective_action id="org.eclipse.debug.ui.DebugPerspective"/>
<perspective_action id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
<hide_toolbar_item_id id="org.eclipse.ui.edit.text.toggleShowSelectedElementOnly"/>
<view id="org.eclipse.jdt.ui.PackageExplorer"/>
<view id="org.eclipse.jdt.ui.TypeHierarchy"/>
<view id="org.eclipse.ui.views.ProblemView"/>
<view id="org.eclipse.jdt.ui.JavadocView"/>
<view id="org.eclipse.jdt.ui.SourceView"/>
<view id="org.eclipse.ui.views.ContentOutline"/>
<view id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
<fastViewBars/>
<layout>
<mainWindow>
<info folder="true" part="left">
<folder activePageID="org.eclipse.jdt.ui.PackageExplorer" appearance="2" expanded="2">
<page content="org.eclipse.jdt.ui.PackageExplorer" label="Package Explorer"/>
<page content="org.eclipse.jdt.ui.TypeHierarchy" label="Hierarchy"/>
<page content="org.eclipse.ui.views.ResourceNavigator" label="LabelNotFound"/>
<page content="org.eclipse.ui.navigator.ProjectExplorer" label="LabelNotFound"/>
<page content="org.eclipse.jdt.junit.ResultView" label="LabelNotFound"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
<part id="0"/>
<part id="1"/>
</presentation>
</folder>
</info>
<info folder="true" part="stickyFolderRight" ratio="0.75" ratioLeft="762" ratioRight="254" relationship="2" relative="left">
<folder appearance="2" expanded="2">
<page content="org.eclipse.help.ui.HelpView" label="LabelNotFound"/>
<page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
<page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
</folder>
</info>
<info part="org.eclipse.ui.editorss" ratio="0.25" ratioLeft="254" ratioRight="762" relationship="2" relative="left"/>
<info folder="true" part="bottom" ratio="0.74963397" ratioLeft="512" ratioRight="171" relationship="4" relative="org.eclipse.ui.editorss">
<folder activePageID="org.eclipse.ui.views.ProblemView" appearance="2" expanded="2">
<page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
<page content="org.eclipse.jdt.ui.JavadocView" label="Javadoc"/>
<page content="org.eclipse.jdt.ui.SourceView" label="Declaration"/>
<page content="org.eclipse.search.ui.views.SearchView" label="LabelNotFound"/>
<page content="org.eclipse.ui.console.ConsoleView" label="LabelNotFound"/>
<page content="org.eclipse.ui.views.BookmarkView" label="LabelNotFound"/>
<page content="org.eclipse.ui.views.ProgressView" label="LabelNotFound"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
<part id="0"/>
<part id="1"/>
<part id="2"/>
</presentation>
</folder>
</info>
<info folder="true" part="org.eclipse.ui.internal.ViewStack@2b6ea258" ratio="0.7493438" ratioLeft="571" ratioRight="191" relationship="2" relative="org.eclipse.ui.editorss">
<folder activePageID="org.eclipse.mylyn.tasks.ui.views.tasks" appearance="2" expanded="2">
<page content="org.eclipse.mylyn.tasks.ui.views.tasks" label="Task List"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
<part id="0"/>
</presentation>
</folder>
</info>
<info folder="true" part="right" ratio="0.5" ratioLeft="256" ratioRight="256" relationship="4" relative="org.eclipse.ui.internal.ViewStack@2b6ea258">
<folder activePageID="org.eclipse.ui.views.ContentOutline" appearance="2" expanded="2">
<page content="org.eclipse.ui.views.ContentOutline" label="Outline"/>
<page content="org.eclipse.ui.texteditor.TemplatesView" label="LabelNotFound"/>
<page content="org.eclipse.ant.ui.views.AntView" label="LabelNotFound"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
<part id="0"/>
</presentation>
</folder>
</info>
</mainWindow>
</layout>
</perspective>
</perspectives>
<workingSets/>
<navigationHistory/>
<input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>
</page>
<workbenchWindowAdvisor/>
<actionBarAdvisor/>
<trimLayout>
<trimArea IMemento.internal.id="128">
<trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
</trimArea>
<trimArea IMemento.internal.id="1024">
<trimItem IMemento.internal.id="org.eclise.ui.internal.FastViewBar"/>
<trimItem IMemento.internal.id="org.eclipse.jface.action.StatusLineManager"/>
<trimItem IMemento.internal.id="org.eclipse.ui.internal.progress.ProgressRegion"/>
</trimArea>
</trimLayout>
</window>
<mruList/>
</workbench>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<workingSetManager>
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1328386901229_0" label="Window Working Set" name="Aggregate for window 1328386901227"/>
</workingSetManager>

View File

@ -1 +0,0 @@
org.eclipse.core.runtime=1

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>androidgcs</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,12 +0,0 @@
#Sat Feb 04 16:05:48 CST 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.5

View File

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.openpilot.androidgcs" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.usb.host" />
<application android:icon="@drawable/ic_logo" android:label="@string/app_name" android:theme="@android:style/Theme.Holo">
<!-- for map overlay -->
<uses-library android:name="com.google.android.maps" />
<!-- Object browser - main activity at the moment -->
<activity android:name="HomePage" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- <intent-filter> -->
<!-- <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> -->
<!-- </intent-filter> -->
<!-- <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" -->
<!-- android:resource="@xml/device_filter" /> -->
</activity>
<activity android:name="ObjectBrowser" android:label="@string/object_browser_name" />
<activity android:name="PfdActivity" android:label="PFD" />
<activity android:name="Controller" android:label="@string/controller_name" />
<activity android:name="Preferences" android:label="@string/preference_title" />
<activity android:name="UAVLocation" android:label="@string/location_name" />
<activity android:name="SystemAlarmActivity" android:label="System Alarms" />
<activity android:name="TuningActivity" android:label="Tuning" />
<activity android:name="ObjectEditor" android:label="ObjectEditor"
android:theme="@android:style/Theme.Dialog" />
<activity android:name="Logger" android:label="Logger"
android:theme="@android:style/Theme.Dialog" />
<receiver android:name="TelemetryWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action android:name="org.openpilot.intent.action.CONNECTED" />
<action android:name="org.openpilot.intent.action.DISCONNECTED" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/telemetry_widget_info" />
</receiver>
<service android:name="org.openpilot.androidgcs.telemetry.OPTelemetryService"></service>
</application>
</manifest>

View File

@ -1,70 +0,0 @@
------- TELEMETRY ---------
The Telemetry system has been implemented, and is composed of a few
major components:
Telemetry.java - receives command to transmit objects through telemetry and
also emits notification when transactions are completed
TelemetryMonitor.java - monitors the FlightTelemetryStats and GCSTelemetryStats
to establish when a working connection is in place. Also initiates downloading
all the objects on a new connection.
UAVObjectManager.java - the central data store. The data is actually stored
within objects, but this maintains the handles to all of them.
UAVTalk.java - the actual communication layer. Can packetize an object and
insert into stream and process the incoming stream and update objects
accordingly.
** Threading
Currently object updates run within the thread of the function that called
update. This should be changed so that it adds a message to the Telemetry
thread which will then send on its own time.
---- MESSAGE PASSING ----
The current implementation/analog to the slots/sockets in QT are Observers
which are registered as added to an Observable. This is used extensibly within
the telemetry system. I will continue to use this _within_ the Telemetry
module so it doesn't depend on any android features.
In android there is a constraint that UI operations should all be done from the
UI thread. The most common way to do this is for the UI object (such as
Activity) to instantiate a Handler to which messages or runnables are posted.
So for external objects they will register a runnable somehow...
--- TELEMETRY SERVICE ---
The telemetry connection will be maintained by a service separate from the the
main activity(s). Although it is a bit unusual, the service will support being
started and stopped, as well as being bound. Binding will be required to get
access to the Object Manager.
In addition, to make it forward looking, the start intent can specify a
connection to open. This will allow the service in future to monitor multiple
connections.
The service will destroy itself only when all active connections disappear and
all activies are unbound.
It will also handle any logging desired (I think).
There will be a primary message handler thread. This thread will separately
launch telemetry threads when required.
The service should send broadcast intents whenever a connection is estabilished
or dropped.
I dont think the service should have the options about which UAVs are
supported.
** Telemetry IBinder
*** Give handle to the ObjectManager for each UAV
*** Call disconnect
*** Query conncetion status
--- TELEMETRY WIDGET ---
Listens for conncet/disconnect intents
Also show if service is running?
Ability to launch service?

View File

@ -1 +0,0 @@
../../build/androidgcs/assets/uavos

View File

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<lint>
</lint>

View File

@ -1,36 +0,0 @@
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembers class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

View File

@ -1,11 +0,0 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=Google Inc.:Google APIs:16

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View File

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center_horizontal" >
<Button
android:id="@+id/launch_controller"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="3"
android:layout_gravity="right"
android:layout_row="1"
android:layout_rowSpan="4"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_controller"
android:text="@string/controller_name" />
<Button
android:id="@+id/launch_object_browser"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="right|bottom"
android:layout_row="2"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_browser"
android:text="@string/object_browser_name" />
<Button
android:id="@+id/launch_location"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="2"
android:layout_gravity="right|bottom"
android:layout_row="2"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_map"
android:text="@string/location_name" />
<Button
android:id="@+id/launch_tuning"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="4"
android:layout_columnSpan="2"
android:layout_gravity="right|bottom"
android:layout_row="2"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_tuning"
android:text="@string/tuning" />
<Button
android:id="@+id/launch_alarms"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_columnSpan="2"
android:layout_gravity="left|bottom"
android:layout_row="3"
android:layout_rowSpan="3"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_alarms"
android:text="@string/alarms" />
<Button
android:id="@+id/launch_logger"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="3"
android:layout_gravity="left|bottom"
android:layout_row="3"
android:layout_rowSpan="3"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_logging"
android:text="@string/logger_name" />
<Button
android:id="@+id/launch_pfd"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="left"
android:layout_row="5"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_pfd"
android:text="@string/pfd_name" />
<Space
android:layout_width="1dp"
android:layout_height="32dp"
android:layout_column="0"
android:layout_row="0" />
<Space
android:layout_width="1dp"
android:layout_height="47dp"
android:layout_column="0"
android:layout_row="4" />
</GridLayout>

View File

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:setting_attributes="http://schemas.android.com/apk/res/org.openpilot.androidgcs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/saveBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="@string/save" />
<Button
android:id="@+id/applyBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/saveBtn"
android:text="@string/apply" />
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/rollRateKp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
setting_attributes:max_value="0.01"
setting_attributes:setting_name="Roll Rate Kp" >
</org.openpilot.androidgcs.views.ScrollBarView>
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/pitchRateKp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
setting_attributes:max_value="0.01"
setting_attributes:setting_name="Pitch Rate Kp" >
</org.openpilot.androidgcs.views.ScrollBarView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout3" >
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/rollRateKi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
setting_attributes:max_value="0.05"
setting_attributes:setting_name="Roll Rate Ki" >
</org.openpilot.androidgcs.views.ScrollBarView>
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/pitchRateKi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
setting_attributes:max_value="0.05"
setting_attributes:setting_name="Pitch Rate Ki" >
</org.openpilot.androidgcs.views.ScrollBarView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1" >
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/rollKp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
setting_attributes:max_value="5"
setting_attributes:setting_name="Roll Kp" >
</org.openpilot.androidgcs.views.ScrollBarView>
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/pitchKp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
setting_attributes:max_value="5"
setting_attributes:setting_name="Pitch Kp" >
</org.openpilot.androidgcs.views.ScrollBarView>
</LinearLayout>
</RelativeLayout>

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/manual_control_values_"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/manualControlValues"
android:layout_width="wrap_content"
android:layout_height="240dp"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" />
<com.MobileAnarchy.Android.Widgets.Joystick.DualJoystickView
android:id="@+id/dualjoystickView"
android:layout_width="fill_parent"
android:layout_height="175dip"
android:layout_marginTop="5dip" >
</com.MobileAnarchy.Android.Widgets.Joystick.DualJoystickView>
</LinearLayout>

View File

@ -1,37 +0,0 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.MobileAnarchy.Android.Widgets.Joystick.DualJoystickView
android:id="@+id/dualjoystickView" android:layout_gravity="center_horizontal"
android:layout_marginTop="5dip" android:layout_width="fill_parent"
android:layout_height="175dip" />
<TableLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dip">
<TableRow>
<TextView android:text="X" android:layout_width="50dip"
android:layout_height="wrap_content"></TextView>
<TextView android:text="" android:id="@+id/TextViewX1"
android:layout_width="150dip" android:layout_height="wrap_content"></TextView>
<TextView android:text="X" android:layout_width="50dip"
android:layout_height="wrap_content"></TextView>
<TextView android:text="" android:id="@+id/TextViewX2"
android:layout_width="100dip" android:layout_height="wrap_content"></TextView>
</TableRow>
<TableRow>
<TextView android:text="Y" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<TextView android:text="" android:id="@+id/TextViewY1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<TextView android:text="Y" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<TextView android:text="" android:id="@+id/TextViewY2"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</TableRow>
</TableLayout>
</LinearLayout>

View File

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center_horizontal" >
<Button
android:id="@+id/launch_object_browser"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="center"
android:layout_row="0"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_browser"
android:text="@string/object_browser_name" />
<Button
android:id="@+id/launch_location"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="center"
android:layout_row="0"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_map"
android:text="@string/location_name" />
<Button
android:id="@+id/launch_pfd"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="center"
android:layout_row="2"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_pfd"
android:text="@string/pfd_name" />
<Button
android:id="@+id/launch_controller"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="right"
android:layout_row="2"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_controller"
android:text="@string/controller_name" />
<Button
android:id="@+id/launch_logger"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="right"
android:layout_row="4"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_logging"
android:text="@string/logger_name" />
<Button
android:id="@+id/launch_alarms"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="right"
android:layout_row="4"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_alarms"
android:text="@string/alarms" />
<Button
android:id="@+id/launch_tuning"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="right"
android:layout_row="6"
android:layout_rowSpan="2"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_tuning"
android:text="@string/tuning" />
<Space
android:layout_width="1dp"
android:layout_height="32dp"
android:layout_column="0"
android:layout_row="0" />
<Space
android:layout_width="100dp"
android:layout_height="69dp"
android:layout_row="1" />
</GridLayout>

View File

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center_horizontal" >
<TextView
android:id="@+id/logger_number_of_objects_title"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="center"
android:layout_row="0"
android:layout_rowSpan="1"
android:text="@string/number_of_objects" />
<TextView
android:id="@+id/logger_number_of_objects"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="center"
android:layout_row="0"
android:layout_rowSpan="1"
android:text="" />
<TextView
android:id="@+id/logger_number_of_bytes_title"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_gravity="center"
android:layout_row="1"
android:layout_rowSpan="1"
android:text="@string/number_of_bytes" />
<TextView
android:id="@+id/logger_number_of_bytes"
android:layout_width="132dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="center"
android:layout_row="1"
android:layout_rowSpan="1"
android:text="" />
<Space
android:layout_width="1dp"
android:layout_height="32dp"
android:layout_column="0"
android:layout_row="0" />
<Space
android:layout_width="100dp"
android:layout_height="69dp"
android:layout_row="1" />
</GridLayout>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.android.maps.MapView
android:id="@+id/map_view" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:enabled="true"
android:clickable="true" android:apiKey="0ugzv7PkCKSo8cNXxn9A251sxOfROBdjHG0eQEw" />
<!-- Note: If you are testing this you will need to use a debugging api key -->
<!-- https://developers.google.com/maps/documentation/android/mapkey -->
</LinearLayout>

View File

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="right"
android:gravity="right" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<CheckBox
android:id="@+id/settingsCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/settings" />
<CheckBox
android:id="@+id/dataCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/data" />
</LinearLayout>
<View
android:layout_height="1dip"
android:layout_width="fill_parent"
android:background="#FFFFFFFF" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ListView
android:id="@+id/object_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:choiceMode="singleChoice"
android:drawSelectorOnTop="true" />
<View
android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#FFFFFFFF" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/object_information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="12dp"
android:layout_marginTop="12dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/editButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="@string/edit" />
<Button
android:id="@+id/object_load_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/editButton"
android:text="@string/load" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>

View File

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="500dp"
android:orientation="vertical"
tools:context=".ObjectEditor" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.56" >
<org.openpilot.androidgcs.ObjectEditView
android:id="@+id/object_edit_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</org.openpilot.androidgcs.ObjectEditView>
</ScrollView>
<!-- View android:layout_width="200dp" android:layout_height="1dip" android:background="#FFFFFFFF" / -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_weight="1"
android:gravity="right" >
<Button
android:id="@+id/object_edit_send_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send_button" />
<Button
android:id="@+id/object_edit_save_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save_button" />
</LinearLayout>
</LinearLayout>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<org.openpilot.androidgcs.AttitudeView
android:id="@+id/attitude_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" >
<fragment
android:name="org.openpilot.androidgcs.fragments.SystemAlarmsFragment"
android:id="@+id/viewer"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<fragment
android:name="org.openpilot.androidgcs.fragments.PFD"
android:id="@+id/pfd"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/system_alarms_status"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center" />
</LinearLayout>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar3"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/system_alarms_fragment_field"
android:layout_width="200dip"
android:layout_height="match_parent" />
</LinearLayout>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/searchProgressWrapper"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/telemetry_stats_rx_rate_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/rxrate" />
<TextView
android:id="@+id/telemetry_stats_rx_rate"
android:layout_width="64dp"
android:layout_height="wrap_content"
android:text="" />
<TextView
android:id="@+id/telemetry_stats_tx_rate_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txrate" />
<TextView
android:id="@+id/telemetry_stats_tx_rate"
android:layout_width="64dp"
android:layout_height="wrap_content"
android:text="" />
</LinearLayout>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:text="TextView" android:layout_width="wrap_content" android:id="@+id/telemetryWidgetStatus" android:layout_height="wrap_content"></TextView>
</LinearLayout>

View File

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:setting_attributes="http://schemas.android.com/apk/res/org.openpilot.androidgcs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/rollRateKp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting_attributes:setting_name="Roll Rate Kp"
setting_attributes:max_value="0.01" />
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/pitchRateKp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting_attributes:setting_name="Pitch Rate Kp"
setting_attributes:max_value="0.01" />
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/rollRateKi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting_attributes:setting_name="Roll Rate Ki"
setting_attributes:max_value="0.05" />
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/pitchRateKi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting_attributes:setting_name="Pitch Rate Ki"
setting_attributes:max_value="0.05" />
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/rollKp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting_attributes:setting_name="Roll Kp"
setting_attributes:max_value="5" />
<org.openpilot.androidgcs.views.ScrollBarView
android:id="@+id/pitchKp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting_attributes:setting_name="Pitch Kp"
setting_attributes:max_value="5" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right" >
<Button
android:id="@+id/applyBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/apply" />
<Button
android:id="@+id/saveBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save" />
</LinearLayout>
</LinearLayout>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/menu_item_settings" android:id="@+id/menu_settings"></item>
<item android:title="@string/menu_item_connect" android:id="@+id/menu_connect"></item>
<item android:title="@string/menu_item_disconnect" android:id="@+id/menu_disconnect"></item>
</menu>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuItemProgress"
android:title="Progress"
android:actionLayout="@layout/telemetry_stats"
android:showAsAction="always" />
</menu>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string-array name="connectTypeArray">
<item>None</item>
<item>Bluetooth</item>
<item>Network</item>
<item>HID</item>
</string-array>
<string-array name="connectTypeValues">
<item>0</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
<string-array name="controllerTypeArray">
<item>Mode 1</item>
<item>Mode 2</item>
</string-array>
<string-array name="controllerTypeValues">
<item>1</item>
<item>2</item>
</string-array>
</resources>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="setting_attributes">
<attr name="setting_name" format="string"/>
<attr name="max_value" format="float"/>
</declare-styleable>
</resources>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="background_color">#F555</color>
<color name="marker_color">#AFFF</color>
<color name="text_color">#AFFF</color>
</resources>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">OpenPilot GCS Home</string>
<string name="object_browser_name">Browser</string>
<string name="controller_name">Controller</string>
<string name="pfd_name">PFD</string>
<string name="location_name">Map</string>
<string name="logger_name">Logging</string>
<string name="menu_item_settings">Settings</string>
<string name="menu_item_connect">Connect</string>
<string name="menu_item_disconnect">Disconnect</string>
<string name="preference_title">Settings</string>
<string name="preference_checkbox_autoconnect">Automatically Connect</string>
<string name="preference_checkbox_connection_type">Connection Type</string>
<string name="preference_checkbox_bluetooth">Bluetooth</string>
<string name="preference_connection_method_summary">Select the connection method</string>
<string name="compass_name">Compass</string>
<string name="cardinal_north">N</string>
<string name="cardinal_east">E</string>
<string name="cardinal_south">S</string>
<string name="cardinal_west">W</string>
<string name="connected">Connected</string>
<string name="update_button">Update</string>
<string name="save_button">Save</string>
<string name="send_button">Send</string>
<string name="manual_control_values_">Manual control values:</string>
<string name="number_of_objects">Number of objects</string>
<string name="number_of_bytes">Number of bytes</string>
<string name="alarms">Alarms</string>
<string name="txrate">TxRate: </string>
<string name="rxrate">RxRate: </string>
<string name="tuning">Tuning</string>
<string name="apply">Apply</string>
<string name="save">Save</string>
<string name="settings">Settings</string>
<string name="data">Data</string>
<string name="edit">Edit</string>
<string name="load">Load</string>
</resources>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="Controller Settings">
<ListPreference android:title="Controller Mode"
android:key="controller_type" android:summary="Select whether you want the virtual controller to use mode 1 or mode 2 convention"
android:defaultValue="2"
android:entries="@array/controllerTypeArray"
android:entryValues="@array/controllerTypeValues"/>
</PreferenceCategory>
</PreferenceScreen>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device vendor-id="8352" product-id="16730" />
<usb-device vendor-id="8352" product-id="16731" />
<usb-device vendor-id="8352" product-id="16732" />
<usb-device vendor-id="8352" product-id="16733" />
<usb-device vendor-id="8352" product-id="16734" />
</resources>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Connection Settings">
<CheckBoxPreference android:title="@string/preference_checkbox_autoconnect"
android:key="autoconnect" />
<ListPreference android:title="@string/preference_checkbox_connection_type"
android:key="connection_type" android:summary="@string/preference_connection_method_summary"
android:defaultValue="None" android:entries="@array/connectTypeArray"
android:entryValues="@array/connectTypeValues" />
<EditTextPreference android:name="ip_address"
android:summary="Enter a TCP/IP address here"
android:defaultValue="192.168.0.1" android:title="IP address:"
android:key="ip_address" />
<EditTextPreference android:name="port"
android:summary="Enter a TCP/IP port here"
android:defaultValue="9001" android:title="Port:"
android:key="port" />
<org.openpilot.androidgcs.BluetoothDevicePreference android:name="bt_adapter"
android:key="bluetooth_mac"
android:title="Bluetooth Device"
android:dialogTitle="Choose Bluetooth Device" />
</PreferenceCategory>
</PreferenceScreen>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android">
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/telemetry_widget">
<!-- android:configure="com.example.android.ExampleAppWidgetConfigure" -->
</appwidget-provider>

View File

@ -1,319 +0,0 @@
package com.MobileAnarchy.Android.Widgets.DockPanel;
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.TranslateAnimation;
import android.view.animation.Animation.AnimationListener;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class DockPanel extends LinearLayout {
// =========================================
// Private members
// =========================================
private static final String TAG = "DockPanel";
private DockPosition position;
private int contentLayoutId;
private int handleButtonDrawableId;
private Boolean isOpen;
private Boolean animationRunning;
private FrameLayout contentPlaceHolder;
private ImageButton toggleButton;
private int animationDuration;
// =========================================
// Constructors
// =========================================
public DockPanel(Context context, int contentLayoutId,
int handleButtonDrawableId, Boolean isOpen) {
super(context);
this.contentLayoutId = contentLayoutId;
this.handleButtonDrawableId = handleButtonDrawableId;
this.isOpen = isOpen;
Init(null);
}
public DockPanel(Context context, AttributeSet attrs) {
super(context, attrs);
// to prevent from crashing the designer
try {
Init(attrs);
} catch (Exception ex) {
}
}
// =========================================
// Initialization
// =========================================
private void Init(AttributeSet attrs) {
setDefaultValues(attrs);
createHandleToggleButton();
// create the handle container
FrameLayout handleContainer = new FrameLayout(getContext());
handleContainer.addView(toggleButton);
// create and populate the panel's container, and inflate it
contentPlaceHolder = new FrameLayout(getContext());
String infService = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater li = (LayoutInflater) getContext().getSystemService(
infService);
li.inflate(contentLayoutId, contentPlaceHolder, true);
// setting the layout of the panel parameters according to the docking
// position
if (position == DockPosition.LEFT || position == DockPosition.RIGHT) {
handleContainer.setLayoutParams(new LayoutParams(
android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
android.view.ViewGroup.LayoutParams.MATCH_PARENT, 1));
contentPlaceHolder.setLayoutParams(new LayoutParams(
android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
android.view.ViewGroup.LayoutParams.MATCH_PARENT, 1));
} else {
handleContainer.setLayoutParams(new LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1));
contentPlaceHolder.setLayoutParams(new LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1));
}
// adding the view to the parent layout according to docking position
if (position == DockPosition.RIGHT || position == DockPosition.BOTTOM) {
this.addView(handleContainer);
this.addView(contentPlaceHolder);
} else {
this.addView(contentPlaceHolder);
this.addView(handleContainer);
}
if (!isOpen) {
contentPlaceHolder.setVisibility(GONE);
}
}
private void setDefaultValues(AttributeSet attrs) {
// set default values
isOpen = true;
animationRunning = false;
animationDuration = 500;
setPosition(DockPosition.RIGHT);
// Try to load values set by xml markup
if (attrs != null) {
String namespace = "http://com.MobileAnarchy.Android.Widgets";
animationDuration = attrs.getAttributeIntValue(namespace,
"animationDuration", 500);
contentLayoutId = attrs.getAttributeResourceValue(namespace,
"contentLayoutId", 0);
handleButtonDrawableId = attrs.getAttributeResourceValue(
namespace, "handleButtonDrawableResourceId", 0);
isOpen = attrs.getAttributeBooleanValue(namespace, "isOpen", true);
// Enums are a bit trickier (needs to be parsed)
try {
position = DockPosition.valueOf(attrs.getAttributeValue(
namespace, "dockPosition").toUpperCase());
setPosition(position);
} catch (Exception ex) {
// Docking to the left is the default behavior
setPosition(DockPosition.LEFT);
}
}
}
private void createHandleToggleButton() {
toggleButton = new ImageButton(getContext());
toggleButton.setPadding(0, 0, 0, 0);
toggleButton.setLayoutParams(new FrameLayout.LayoutParams(
android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.CENTER));
toggleButton.setBackgroundColor(Color.TRANSPARENT);
toggleButton.setImageResource(handleButtonDrawableId);
toggleButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
toggle();
}
});
}
private void setPosition(DockPosition position) {
this.position = position;
switch (position) {
case TOP:
setOrientation(LinearLayout.VERTICAL);
setGravity(Gravity.TOP);
break;
case RIGHT:
setOrientation(LinearLayout.HORIZONTAL);
setGravity(Gravity.RIGHT);
break;
case BOTTOM:
setOrientation(LinearLayout.VERTICAL);
setGravity(Gravity.BOTTOM);
break;
case LEFT:
setOrientation(LinearLayout.HORIZONTAL);
setGravity(Gravity.LEFT);
break;
}
}
// =========================================
// Public methods
// =========================================
public int getAnimationDuration() {
return animationDuration;
}
public void setAnimationDuration(int milliseconds) {
animationDuration = milliseconds;
}
public Boolean getIsRunning() {
return animationRunning;
}
public void open() {
if (!animationRunning) {
Log.d(TAG, "Opening...");
Animation animation = createShowAnimation();
this.setAnimation(animation);
animation.start();
isOpen = true;
}
}
public void close() {
if (!animationRunning) {
Log.d(TAG, "Closing...");
Animation animation = createHideAnimation();
this.setAnimation(animation);
animation.start();
isOpen = false;
}
}
public void toggle() {
if (isOpen) {
close();
} else {
open();
}
}
// =========================================
// Private methods
// =========================================
private Animation createHideAnimation() {
Animation animation = null;
switch (position) {
case TOP:
animation = new TranslateAnimation(0, 0, 0, -contentPlaceHolder
.getHeight());
break;
case RIGHT:
animation = new TranslateAnimation(0, contentPlaceHolder
.getWidth(), 0, 0);
break;
case BOTTOM:
animation = new TranslateAnimation(0, 0, 0, contentPlaceHolder
.getHeight());
break;
case LEFT:
animation = new TranslateAnimation(0, -contentPlaceHolder
.getWidth(), 0, 0);
break;
}
animation.setDuration(animationDuration);
animation.setInterpolator(new AccelerateInterpolator());
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
animationRunning = true;
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
contentPlaceHolder.setVisibility(View.GONE);
animationRunning = false;
}
});
return animation;
}
private Animation createShowAnimation() {
Animation animation = null;
switch (position) {
case TOP:
animation = new TranslateAnimation(0, 0, -contentPlaceHolder
.getHeight(), 0);
break;
case RIGHT:
animation = new TranslateAnimation(contentPlaceHolder.getWidth(),
0, 0, 0);
break;
case BOTTOM:
animation = new TranslateAnimation(0, 0, contentPlaceHolder
.getHeight(), 0);
break;
case LEFT:
animation = new TranslateAnimation(-contentPlaceHolder.getWidth(),
0, 0, 0);
break;
}
Log.d(TAG, "Animation duration: " + animationDuration);
animation.setDuration(animationDuration);
animation.setInterpolator(new DecelerateInterpolator());
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
animationRunning = true;
contentPlaceHolder.setVisibility(View.VISIBLE);
Log.d(TAG, "\"Show\" Animation started");
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
animationRunning = false;
Log.d(TAG, "\"Show\" Animation ended");
}
});
return animation;
}
}

Some files were not shown because too many files have changed in this diff Show More