diff --git a/README.md b/README.md index 09278b27..c01d86f4 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,42 @@ sensor in order to reduce load when doing multiple reads to sensor data. ### Example -A sensor/actuator is expected to work as such (here is the servo ES08A API): -@snippet es08a.cxx Interesting +A sensor/actuator is expected to work as such (here is the MMA7660 accelerometer API): +```C++ + // Instantiate an MMA7660 on I2C bus 0 + upm::MMA7660 *accel = new upm::MMA7660(MMA7660_I2C_BUS, + MMA7660_DEFAULT_I2C_ADDR); + + // place device in standby mode so we can write registers + accel->setModeStandby(); + + // enable 64 samples per second + accel->setSampleRate(upm::MMA7660::AUTOSLEEP_64); + + // place device into active mode + accel->setModeActive(); + + while (shouldRun) + { + int x, y, z; + + accel->getRawValues(&x, &y, &z); + cout << "Raw values: x = " << x + << " y = " << y + << " z = " << z + << endl; + + float ax, ay, az; + + accel->getAcceleration(&ax, &ay, &az); + cout << "Acceleration: x = " << ax + << "g y = " << ay + << "g z = " << az + << "g" << endl; + + usleep(500000); + } +``` However implementation and API design is completely up to the developer, some enumerable sensors for example may provide much clever instantiation. Displays @@ -40,21 +74,21 @@ This will show you how to import the code and configure your project. ### Building UPM -See @ref building [here](docs/building.md). +See building documentation [here](docs/building.md). ### Making your own UPM module -@ref porting [link](docs/porting.md) has more information on making new UPM modules. +Porting [link](docs/porting.md) has more information on making new UPM modules. -There is also an example available for @ref max31855 [sensor](docs/max31855.md). +There is also an example available for max31855 [sensor](docs/max31855.md). ### Naming conventions and rules for new UPM contributions -Before you begin development, take a look at our @ref naming [conventions](docs/naming.md). +Before you begin development, take a look at our naming [conventions](docs/naming.md). -Also, please read the guidelines for @ref contributions [to UPM](docs/contributions.md). +Also, please read the guidelines for contributions [to UPM](docs/contributions.md). -Don't forget to check the @ref documentation [section](docs/documentation.md). +Don't forget to check the documentation [section](docs/documentation.md). Make sure you add yourself as an author on every new code file submitted. If you are providing a fix with significant changes, feel free to add yourself @@ -63,17 +97,13 @@ as a contributor. Signing-off your commits is mandatory. API Documentation ============== -@htmlonly - -@endhtmlonly - ##### Changelog -Version @ref changelog [here](docs/changelog.md). +Version changelog [here](docs/changelog.md). ##### Known Limitations -List of @ref knownlimitations [here](docs/knownlimitations.md). +List of known limitations [here](docs/knownlimitations.md). diff --git a/doxy/Doxyfile.in b/doxy/Doxyfile.in index 32e90b21..83db5afb 100644 --- a/doxy/Doxyfile.in +++ b/doxy/Doxyfile.in @@ -767,7 +767,7 @@ WARN_LOGFILE = INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/upm.h \ @CMAKE_CURRENT_SOURCE_DIR@/src \ @CMAKE_CURRENT_SOURCE_DIR@/docs \ - @CMAKE_CURRENT_SOURCE_DIR@/README.md + @CMAKE_CURRENT_SOURCE_DIR@/doxy/README.cpp.md # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -946,7 +946,7 @@ FILTER_SOURCE_PATTERNS = # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = @CMAKE_CURRENT_SOURCE_DIR@/README.md +USE_MDFILE_AS_MAINPAGE = @CMAKE_CURRENT_SOURCE_DIR@/doxy/README.cpp.md #--------------------------------------------------------------------------- # Configuration options related to source browsing diff --git a/doxy/README.cpp.md b/doxy/README.cpp.md new file mode 100644 index 00000000..09278b27 --- /dev/null +++ b/doxy/README.cpp.md @@ -0,0 +1,79 @@ +UPM (Useful Packages & Modules) Sensor/Actuator repository for libmraa +============== + +UPM is a high level repository for sensors that use libmraa. Each sensor links +to libmraa and are not meant to be interlinked although some groups of sensors +may be. Each sensor contains a header which allows to interface with it. +Typically a sensor is represented as a class and instantiated. + +The constructor is expected to initialise the sensor and parameters may be used +to provide identification/pin location on the board. + +Typically an update() function will be called in order to get new data from the +sensor in order to reduce load when doing multiple reads to sensor data. + +### Example + +A sensor/actuator is expected to work as such (here is the servo ES08A API): +@snippet es08a.cxx Interesting + +However implementation and API design is completely up to the developer, some +enumerable sensors for example may provide much clever instantiation. Displays +may also create more complex structures in order to interface with them. + +Browse through the list of all [examples](https://github.com/intel-iot-devkit/upm/tree/master/examples). + +Multi-sensor samples for the starter and specialized kits can be found in the +[iot-devkit-samples](https://github.com/intel-iot-devkit/iot-devkit-samples) repository. + +### Supported Sensors + +Supported [sensor list](http://iotdk.intel.com/docs/master/upm/modules.html) from API documentation. + +You can also refer to the [IntelĀ® IoT Developer Zone](https://software.intel.com/iot/sensors). + +### IDE Integration + +If you would like to create Eclipse IDE projects using the UPM C++ samples, +please follow the instructions posted [here](https://software.intel.com/en-us/node/551014). +This will show you how to import the code and configure your project. + +### Building UPM + +See @ref building [here](docs/building.md). + +### Making your own UPM module + +@ref porting [link](docs/porting.md) has more information on making new UPM modules. + +There is also an example available for @ref max31855 [sensor](docs/max31855.md). + +### Naming conventions and rules for new UPM contributions + +Before you begin development, take a look at our @ref naming [conventions](docs/naming.md). + +Also, please read the guidelines for @ref contributions [to UPM](docs/contributions.md). + +Don't forget to check the @ref documentation [section](docs/documentation.md). + +Make sure you add yourself as an author on every new code file submitted. +If you are providing a fix with significant changes, feel free to add yourself +as a contributor. Signing-off your commits is mandatory. + +API Documentation +============== + +@htmlonly + + + + + + +@endhtmlonly + +##### Changelog +Version @ref changelog [here](docs/changelog.md). + +##### Known Limitations +List of @ref knownlimitations [here](docs/knownlimitations.md).