programming
C++ Reflection approach
A brief article on C++ reflection approach implemented in ESFWX framework
ES Framework
ExacTsoft C++ framework is kind of creature, that was born back in 2000s, when I realized, that products, I developed back there, need common functional codebase.
What was needed (click to unfold)
There was set of criteria, that gradually grew over time, which motivated me to create the basic framework skeleton at first, then add considerable amount of functional 'meat', sometimes reinventing the wheels, sometimes inventing the square-wheeled bicycles, sometimes doing something completely new (for me, of course).- Strict separation of non-visual, and visual (GUI) areas of functionality
- Some generic cross-platform implementations, for file primitives, for instance
- Extendability
- String class + its satellites, like I18N, locale, misc encoding converters, tokenizer, RegEx
- File, Path, etc. primitives
- Streams
- Basic XML support
- Math, advanced math
- Communications
- Reflection
- Scripting
ES Script example of communicating with AD-7732 UART camera
This example demonstrates ES Script capabilities when interfacing AD-7732 UART camera module. Source may be directly copied into ES Scripting console, and executed from there.
ES Script example of FTDI MPSSE controlling 28BYJ-48 stepper motor
Following a release of updated ES Scripting console, which is built upon updated ES Framework ver. 1.21, an expample script is available, to demonstrate how easy stepper motor is controlled directly from scripting console. Demo uses FT232H breakout board and 28BYJ-48 + interface board. Though I2C MPSSE interface object is used, the same GPIO functionality is included in SPI interface as well.
ES Script example of I2C interfacing to OPT3001 lighting sensor
The following example shows scripting FTDI MPSSE usage to interface OPT3001 lighting sensor on I2C bus. As usual, paste the script into console, compile, and run, providing you have proper HW config ready, and have proper OPT3001 I2C address in script code.
ES scripting framework
ES scripting framework description, cookbook, sources, examples
Example of changes to the new version of esscript
An ESS code snippet demonstrating changes introduced in esscript engine included in upcoming release of esframework version 1.23
Firemonkey style hack
FMX framework automatically maintains style loading for Controls which implement StyleLookup property. What would you do, to quickly implement compound control, with automatic styling support, without actually write a "true" component class for it?
FTDI EVE header library
Recently I've implemented lightweight header library to encapsulate interfacing with FTDI EVE chip, namely, FT800, in templated OO manner. It should compile in modern embedded x86/ARM toolchains, like ones Keil or C++ Builder have.
The idea is as follows - while your core framework provides standard IO bus interface, like mine esfwxe, via EseChannel templated abstract facade, the rest is done in modular manner by EVE library classes.
It's dynamic linking time, with C++Bulder and OSX
What would old tethered programmer want from its main working tool? Obviously, it must, no, MUST work as expected, and provide an expected, I emphasize, EXPECTED result(s). Recently, we tried to compile our middle-sized application project group for MAC OS. All components were separately ported beforehand, to be at least compileable under toolchains other than Win32|Win64. Needless to say, that after a few tries to compile entire project group, and getting a load of ‘unresolved externals’, I started to suspect that something is wrong there :) Test project for the article.
NMEA parser extension for MTK 3333
NMEA0183 parser object, implemented in ES script language
PO2TXT converter script for FMX TLang
For the recent mobile FMX application development, I had a challenge, do not use any service from my full-featured cross-platform framework, to minimize application bloat, besides, FMX framework itself is rather big piece of cake.
One of the cornerstones is a I18N support which in my framework is based upon custom implementation of gettext. In current case, I decided to wrap I18N manager coode around FMX's TLang. As far as TLang may use, besides its binary stoarage, the plain text files as well, formatted as key=value pair.
Resources
Embaradero and -related resources.
Restricting Windows FMX application to single instance
Recently, I got to, as many many years ago, dive in Windows API, to implement a rather simple task. I needed to restrict an FMX-based application, namely its Windows-flavour target, to be single-instance, so any attempt to launch yet anther copy of its process would (try to) bring up the first running one.
SDMMC over SPI library with ESP8266
I started ESP8266 project, the first step was to support SDMMC over SPI. I have implemented SDMMC SPI interface years ago. The main challenge was to adapt it to new MCU core. After many attempts, it was up and running. Below are lessons learned.
Some notes on working with FMX styles
That topic covers the case, when platform and custom styles may be seamlessly used together.
Using distinct elements of standard style in our own GUI elements
Article explains how to use standard style elements to customize LookAndFeel of own GUI elements.