My friend suggested me that I should write Doton in a .NET. A Huge challenge, I never thought about it but maybe we can do some research in this matter?
I installed Windows 10 IoT edition on my Raspi, started Visual Studio 2015 and.. stopped 😀 I had no idea what to do. Googling and I found something that was beautiful and crazy at the same time.
It was an information that we can use a Python… So maybe we can port a project to Windows 10 IoT? Let’s see!
We can display only 6 tiles on the screen. It is not too much. But when we redesigned GUI we prepared touch spots to scroll between pages.
A page is a group of maximum 6 tiles so one page fits on the screen. And with a few pages, we can have much more information available.
I’m little afraid of inaccuracy of touch panel. Why? See that scroll down area overlaps our two widget buttons. We may be forced to move them up to the middle row. But we will see 🙂 (more…)
We have a touch driver in our GfxLCD package so we can upgrade Doton a little. We will add clickable widgets.
Our window managers will handle touch propagation. For the first widget with action, we will create a light switcher.
We still have the weather widget to finish. But before that, I’m thinking about big changes in tile layout. Why?
Because tiles are rectangles and they cannot be used in vertical mode, square tiles would be much better.
This should give us a free space on top and bottom of the display for a nice functionality in near future (do not forget that out TFT is a touch screen) 🙂
Let’s get to work! Part 1 Part 2
We may now return to the main task, the Control Node with all data from all sources. We will present data in form of a tile.
I’m thinking about creating widgets for both Node One sensors.
Each node is the one tile. We could present light and movement with small icons and humidity and temperature with numbers. It sounds nice and simple but there is a catch. If we refresh the whole screen it would take around 5s to change its content. So we must find a way of repainting only required parts of the screen.
Docker, Docker everywhere… you open the fridge and.. docker with butter and cheese, Docker may save the day but it may also make it horrible… But it doesn’t matter if you like it or not. Docker is here, its containers are everywhere. So lets join the flow 🙂
We will dockerize ProxyLCD in CLI mode. No more running the app manually:) Laziness ! (more…)
Our previous computer app was a failure. Happens from time to time:) Choosing wxPython was a huge mistake. Seems wx bindings are outdated.
After a long walk to cool of my head and think a little (but mostly catching pokemons) I recovered my strength and began second approach. This time I’m using PyQt5. It has Python3 bindings and lots of nice features, like ability to emit signals to other objects.
We need something to see the state. I think the best way is to display icon in the taskbar. It must work under Windows 10 and Ubuntu/Mint.
To build GUI I will try and use wxPython. Sadly their bindings are for Python 2.7 not 3.x. I found wxPython Phoenix Project but for now lets stick with official release.
Spolier: we gonna fail – see running section. This is why code is dirty and nasty – no reason for refactor. (more…)
Lately we started using Jenkins at work. With proper configuration for PHP it allow us to perform predefined list of tasks in response to merge requests. Tasks consist of performing tests, code coverage, PMD analyse, search for duplicate code, find CRAP code and detect massive amount of violations – from code format to function complexity. Of course nice report and charts are generated after. Its possible to browse reports, go into files and see what is wrong with them all with comments. Very, very useful. So why not use it with our Python app ? I searched The Web and found lots of information but mostly outdated. Not a nice beginning. After some research and test I managed to run nosetests with coverage report, pylint, pyflakes, SLOCCount and clonedigger. Something to start with 🙂 So lets try and create our own Jenkins Server. We will install Jenkins (on VirtualBox in my case), required plugins and additional software. Next we will create new project and link it with git repository (with Bitbucket in my case but any will do). Finally we will add all those tasks and reports. (more…)