11 Feb 2016
A better one
I have changed addon interface to allow better representation of current
state of system. You can see history of various parameters from latest one.
Parameters
Theese parameters are:
time
- hour
work
- generated energy in Wh but in file there is in Joules)
coil time
- time of working turbine by coil voltage higher than 5V
batt time
- time of working turbine by charging current higher than 0.5A
res time
- time of working resistor as a brake
max b curr
- maximum charging current
max b v
- maximum battery voltage
max coil v
- maximum voltage on coil (one preselected)
Sample image
04 Feb 2016
The best lazy solution to memory leak
Shared pointers allow me to utilize power of pointers without thinking
about memory deallocation - delete
function.
Overhead in that method is max 1-3% depends on compiler.
At this moment only ncurses related code is not using shared pointers.
02 Feb 2016
My friend told my about cmake
that it is his favourite
building tool.
At start I had big problem to understand how this tool works. I need to create simple
“hello world” program and compile it. Next thing was try to integrate with HomeIO and
from that point it started to work quite fast.
The biggest pros of cmake
is that if make compiling much faster
in development by compiling only what has been changed. After compile error I don’t have
to wait to compile what was already done.
There are some things to do, like put some cmake
snippets in better format than
shell scripts. I don’t want to use makefile
to run another makefile
.
30 Jan 2016
New interface
HomeIO was created as a server-like application which everything important is
rendered as log-like response.
Wind turbine instance is very dynamic. There was too much of information rendered
too fast. It was nearly not readable at all. I need to change it.
I wanted to try ncurses as one of the
most popular tool to create console interface. It was quite some work which
allowed me to perform a lot of other changes and fixes.
Now, you can see current measurements without using frontend.
Tabs
Interface consist of various tabs which I will describe below.
- Home - status of all modules, boot and shutdown
- Log - last log messages, scrollable
- Meas - current measurements
- Action - list of actions
- Overseer - list of overseer: current state, measurement and executable action
- Addons - every addon has its own page
- Stats - at this moment only resource usage stats
Future
I want to add theese features soon:
- Better addons interface: wind turbine with more meaningful data, …
- Some actions can executable from interface. It will be probably accessible by
addon page.
- More stats
28 Dec 2015
Refactoring
I’m in the middle of refactoring to more proper code structure: header structure
and all code (*.cpp
) files as input for compiler. My friend told me that approach
is much more secure, and allow to detect errors much more easily.
I’ve managed to make backend compilable and run it on local instance for tests,
but there is a some work to do.
clang
I’ve managed to allow to compile backend using clang. I’ve always used GCC, and
I’m not going to change it.
Clang is much more verbose and detects other types of errors (or warnings). Testing
on both compilers allow creation of much more portable code.
ncurses
I’m thinking about using some basic text interface, but allow to change to old
log-style output.
This should make backend process much more readable and usable.