Contents
Tags
account Arduino ARM ATmega avr brace-enclosed initializer list C++ C++0X C++1X C++17 C99 cash CAT5 cojson collaboration comments constrained Cortex-M0 Cortex-M4 designated initializer embedded embedded systems engine engine hour meter engine runtime garden tractor hour meter infra red infrared IR IR repeater json JSON for embedded systems json parser json serializer lawn mower lawnmower lawn mower hour meter lawnmower hour meter low end MCU MCU Particle Photon PSoC USBArchives
- December 2023
- January 2020
- March 2019
- October 2018
- September 2018
- April 2018
- December 2017
- April 2017
- March 2017
- June 2016
- October 2015
- April 2015
- March 2015
- November 2014
- November 2012
- March 2010
- December 2009
- November 2009
- July 2009
- March 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- April 2003
Categories
Meta
VLC multiroom
Wednesday, December 27, 2017
VLC-multiroom is a shell script that on a Linux-based media computer configures systemd to run multiple VLC Media Player instances for audio playback via all available ALSA sound cards and for web based remote control with a purpose to make the media computer the core of a multiroom audio system.
Building MiniDLNA for OpenIndiana
Thursday, December 14, 2017
MiniDLNA is a lightweight media server available for Linux platforms. It also may work on a wider range of Unix systems, but that capability does not come out of the box.
This post provides some instructions on building MiniDLNA on OpenIndiana, Hipster release.
(Continued)μcuREST Tutorial
Monday, April 17, 2017
Getting Started
With μcuREST you can implement REST services and/or a web application for communication with your embedded application. First you’ll need to decide which resources (variables or functions of your application) you wish to expose via HTTP and assign URI to those resources. Then define a μcuRESTresource map, binding URI names to the resources. Use this map to instantiate a micurest::application
and start a network stack for that application.
Cascaded Configuration Sets for C++1y
Tuesday, April 4, 2017
Introduction
Preprocessor macros are widely used in C++ for configuring reusable modules, targeting different platforms or working around compiler’s differences. Such approach is inherited from C and used even in modern pure C++ libraries, such as boost.
The aim of this work is to research on suitability of C++ templates and language features for establishing and maintaining compile time configuration of run-time values without use of the preprocessor. Although there are many disputes on advantages and disadvantages of templates vs macros, author’s belief is templates are better in many cases just because they are the first class citizens of C++ language.
μcuREST – an application server for constrained platforms
Tuesday, March 14, 2017
Introduction
μcuREST (micurest) is a C++11 library for implementing REST services on constrained platforms, such as bare metal applications on low-end MCUs. The library is platform-agnostic, zero-allocation, and has almost no external dependencies. It allows mapping hierarchically organized URIs to C/C++ variables, constants and methods, and exposing the URIs via HTTP protocol.
(Continued)
USBUART
Friday, June 10, 2016
USBUART is a cross-platform libusb-based library for reading/wring data via USB-UART adapters with Android support.
It implements a relay from endpoints of a USB-UART converter to a pair of I/O resources, either appointed by given file descriptors, or created inside the library with pipe(2). User application may then use standard I/O operations for reading and writing data.
(Continued)
cojson tutorial v2.0
Monday, October 19, 2015
1. Getting Started
For a quick start the easiest way is using codegen. Paste you JSON into the left editor, hit button Run and collect results in the right editor. Adjust options if necessary and build with your application.
With instructions, given in this tutorial, you may manually craft or adjust auto-generated structure of your JSON object by mapping its elements to cojson elements, bind them to members of your C++ class (see Section 2), implement the interfaces for the data streams you have, and build cojson library with your application (see Section 3).
(Continued)cojson – a JSON parser for constrained platforms
Friday, October 16, 2015
Introduction
cojson is a C++ pull-type JSON parser/serializer for constrained platforms, such as bare metal applications on low-end MCUs. It does not use memory allocation and has almost no external dependencies. It is not intrusive – it neither forces nor implies any particular design of the application. Instead it adapts to fit any existing application code. It is tolerant to data type mismatching. When such occurs, parser just skips mismatching data and makes best efforts to continue parsing. The parser is recursive, e.g. nested JSON elements are handled with the recursion. However, this recursion is driven by the structure definition, not by the input data, which prevents stack faults on malformed input data.
cojson is character type neutral – it can work with signed or unsigned character, as well as with standard wide character types: wchar_t, char16_t and char32_t. It is also transparent for UTF8 and properly handles BOM sequence.
Моторес додаток для Android смартфону
Tuesday, April 21, 2015
Вступ
Бензинові двигуни в косарках, мотоблоках та садових тракторах потребують регулярного обслуговування (заміни оливи, повітряного фільтра, тощо) кожні 20-30 годин роботи. Цей додаток допоможе відстежувати мотогодини в ручному режимі, коли користувач власноруч ініціює події пуску і зупинки, чи у напівавтоматичному режимі через "прислуховування" до шуму. Коли лічильник мотогодин досягне відмітки в графіку обслуговування, додаток відобразить цю подію на екрані. Індикація події на екрані буде зберігатись поки не буде явно знята через пункт меню. Відвідайте сторінку додатку в PlayStore
(Continued)Motores app for Android phones
Tuesday, April 14, 2015
Introduction
Petrol engines used in lawnmowers, tillers, garden tractors require regular maintenance (such as changing oil, air cleaner, etc) every 20-30 hours of runtime. This app helps tracking engine runtime in manual mode, when user initiates start and stop events or in semi-automatic mode by "listening" to the noise. Once engine's runtime reaches a point from a predefined maintenance schedule the app indicates this event on the screen. The indication will remain until explicitly cleared via a menu command. Visit app page in PlayStore
(Continued)