Difference between revisions of "DevGuide/LearningToProgram"

From PaparazziUAV
Jump to navigation Jump to search
(Added a link to the contributing page of paparazzi)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Introduction ==
== Introduction ==


There sometimes comes a moment that you would like to have more functionality in the Paparazzi GCS, in the airborne code or somewhere else. This non existent functionality does not come out of the blue. It took all people involved blood swead and tears to get where the paparazzi is now. Also for you, it can be very rewarding to program improvements for the paparazzi. Some words of advise: first make sure you used the already available Paparazzi Autopilot for an extensive amount of time. Also you have read a year or so in the Wiki and are comfortable with all that there is written. You also managed to compile airborne via  the command line, then there is a moment you might delve deeper into the Paparazzi and learn to code.
There sometimes comes a moment that you would like to have more functionality in the Paparazzi GCS, in the airborne code or somewhere else. This non existent functionality does not come out of the blue. It took all the people involved blood, sweat and tears to get where the paparazzi is now. Also for you, it can be very rewarding to program improvements for the paparazzi. Paparazzi is a large project with years of development so it can be a daunting challenge to edit the source code but your efforts will be rewarded as the community will use your changes, all in an effort to improve Paparazzi software.


If this is your first programming experience it is maybe better to learn to program some generic desktop applications first. Altering and enhancing the code is even for seasoned programmers not a trivial task. Now if all of this did not make you less motivated, great! Lets get to it.
Details and tips on contributing the source code can be found here: https://github.com/paparazzi/paparazzi/blob/master/CONTRIBUTING.md


On this page you will not find in depth info of the languages use. There are much better resource on the internet already then we could ever provide in this Wiki. Therefore there are only link to learning these languages.
If this is your first programming experience it is maybe better to learn to program some generic desktop applications first. Altering and enhancing the code is even for seasoned programmers not a trivial task. Now if all of this did not make you less motivated, great! Let's get to it.


What can be found are code snippets '''directly''' related to the paparazzi code.
On this page you will not find in depth info of the languages use. There are much better resource on the internet already than we could ever provide in this Wiki. Therefore there are only link to learning these languages.


== Languages ==
== Languages ==
Line 15: Line 15:
=== OCAML ===
=== OCAML ===


The Objective Caml system is the main implementation of the Caml language. It features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development.  
The Objective Caml system is the main implementation of the Caml language. It is a functional programming language, and also features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development.  


http://www.ocaml-tutorial.org/
* http://ocaml.org/learn/
* http://www.ocaml-tutorial.org/


=== C ===
=== C ===


http://www.cprogramming.com/tutorial.html
http://www.cprogramming.com/tutorial.html
http://www.learn-c.org/


=== Python ===
=== Python ===
Line 34: Line 36:


http://www.tutorialspoint.com/makefile/index.htm
http://www.tutorialspoint.com/makefile/index.htm
[[Category:Software]] [[Category:Developer_Documentation]]

Latest revision as of 03:54, 28 November 2017

Introduction

There sometimes comes a moment that you would like to have more functionality in the Paparazzi GCS, in the airborne code or somewhere else. This non existent functionality does not come out of the blue. It took all the people involved blood, sweat and tears to get where the paparazzi is now. Also for you, it can be very rewarding to program improvements for the paparazzi. Paparazzi is a large project with years of development so it can be a daunting challenge to edit the source code but your efforts will be rewarded as the community will use your changes, all in an effort to improve Paparazzi software.

Details and tips on contributing the source code can be found here: https://github.com/paparazzi/paparazzi/blob/master/CONTRIBUTING.md

If this is your first programming experience it is maybe better to learn to program some generic desktop applications first. Altering and enhancing the code is even for seasoned programmers not a trivial task. Now if all of this did not make you less motivated, great! Let's get to it.

On this page you will not find in depth info of the languages use. There are much better resource on the internet already than we could ever provide in this Wiki. Therefore there are only link to learning these languages.

Languages

The whole of paparazzi is written in various programming languages.

OCAML

The Objective Caml system is the main implementation of the Caml language. It is a functional programming language, and also features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development.

C

http://www.cprogramming.com/tutorial.html http://www.learn-c.org/

Python

Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.

http://wiki.python.org/moin/BeginnersGuide

Makefiles

Makefiles also can be seen as small, sometimes even large programs.

http://www.tutorialspoint.com/makefile/index.htm