A new version of the FLProg program has been released with the number 7.4.0.
I remember well that I promised you version 8 with an online storage of user blocks. And moreover, the work on creating a repository has been implemented, about half. But life makes its own adjustments. For a number of reasons, I had to turn away from the previously indicated roadmap and tightly deal with ESP controllers and their web interface directly. Therefore, it turned out not an eight, but a continuation of the seventh line of programs.
A lot of time has passed since the last release. This is due to several reasons. I had some family problems. Then I “conditionally voluntarily” performed a publicly advertised procedure (as Anton Hardin says))). Why conditionally voluntary? Because the choice between shooting up and being allowed to work or starving to death without a salary, as Medvedev suggests, is one hundred percent coercion. And finally, a couple of days after the second dose, as expected, I went down with covid for a week. Not to say that he suffered hard, but he was not able to work. But now I already have two QR codes, it’s a pity, you can’t share it with anyone))).
Well, now – what’s new in version 7.4.
As always, a number of bugs have been fixed. I won’t list everything, I don’t remember myself.
The guts of the web interface for ESP controllers have been completely redesigned. Firstly, the work with the server has been changed, work with it now takes place according to a more reliable and stable algorithm. Optimized reconnection of the controller in case of loss and subsequent restoration of the Wi-Fi network. Secondly, now the web interface works via AJAX. This means that the values transmitted to the interface page are updated in real time without reloading the page at a specified interval. Similarly, the changes entered on the page are transmitted to the controller without reloading the page itself. When using the “Save” button in the interface, they are sent to the controller at the moment of pressing this button, and without it immediately after the change. For example, they clicked on the check box, and at that moment the new value flew into the controller, and the changes caused by this were immediately displayed on the page. The same applies to the radio button and the drop-down list. The values entered in the input fields are sent to the controller at the moment of pressing Enter, or changing focus.
Two new widgets have been added. Button and color indicator. I’ll tell you about them in more detail.
1. The button.
When the button is pressed, certain actions are performed in the controller. They occur instantly upon clicking, and do not depend on the presence or absence of the “Save” button on the page. Possible actions when clicking on the button depend on the parameter attached to it:
1.1. If the parameter is of the Boolean type, it is possible to set the parameter to the specified value (true or false), or invert the current parameter value.
1.2. If the parameter has a numeric type (Integer, Float ….– – it is possible to set a preset value, or change the value in the direction of decreasing / increasing by a specified step.
1.3. For a lowercase type parameter, it is only possible to set the specified value.
2. Color indicator.
In the HTML code, the background color is a DIV block, which changes depending on the bound parameter in real time with a specified frequency. Setting the color depends on the type of bound parameter.
2.1. For a Boolean type parameter, the color is set for the True value and for the False value.
2.2. For a digital type parameter – the color value in RGB. Therefore, it is advisable to use the Unsigned Long parameter type, since in other types there will be one or two bytes and it will not be possible to set the color with all the components. The color value can be viewed online in the HTML color table. It should only be taken into account that in these tables the hexadecimal value is set approximately in this format: #FFEFD5 and in the program it should be set in this format: 0xFFEFD5. The decimal format can be taken directly.
2.3. For a string type parameter, the value is set as a string with a color value from the standard HTML color table. And it is in this form as they are indicated there. You can set both the numeric value of the color (#FFEFD5) and the name of the color (rosybrown).
It is possible to insert your own HTML code in any place of the page. In addition, a context menu has been created for all elements, which facilitates working with the interface tree. For example, previously new widgets were inserted only at the end of the list, and to change its position it was necessary to raise it to the desired location. Now, using the context menu, you can insert a new widget or HTML code above or below any existing widget.
Expanded widget customization options.
1. It is now possible to set the text of the widget labels other than the widget name, change the location of the labels (top of the widget, bottom, and for the color indicator and inside it), or disable the label output altogether.
2. Access to styles for all widget elements is provided.
It is possible to change the output sequence of the main page blocks (header block, menu block, content block, basement block), as well as disable the output of each of them altogether. At this level (large blocks) the ability to enter your own HTML code blocks is also implemented.
In general, summing up, I tried to give users the maximum opportunity to create the necessary web interface design for ESP controllers. Of course, this requires knowledge of HTML and CSS. But there are a lot of specialists in this field now, and this topic itself is not difficult.
Additionally, mDNS support is implemented. It allows you to detect devices on a local network by a given name. This is especially true when the device receives an IP via DHCP. You can not only set this name when creating a project, but also change it during the operation of the device. Well, or, for example, to assemble it using some kind of header, with the addition of, for example, a Chip ID to create a unique device name, without changing the project. For our wealthy friends who have hardware with an apple on the lid, there are no problems with mDNS at all, support for this system is built into Apple’s operating systems (both desktop and mobile) by default. For us, ordinary people with Windows, Linux or android, everything is a little more complicated. I use Service Browser for android, I haven’t picked up anything for the computer yet. In general, look towards programs that support Apple Bonjour.
The work of the authorization system has been optimized – now authorization takes place at the session level. That is, if in the previous version authorization took place on the controller, and at the moment when someone was connected to the controller with administrator rights, then everyone else did the same at that moment logged on to it with the same rights until the latter exits authorization, then now each session, even simultaneously with others, contains its own user. Also now, when accessing the controller with authorization, it is possible to limit the number of simultaneous connections to the controller (by default 10).
This is, perhaps, all the innovations of the new version of the program. Perhaps I did something else, but due to the long period of time and the huge number of events that happened for me, I don’t remember everything anymore.
And of course I warn you again – this is the FIRST batka, so mistakes and falls are possible, so please do not swear much.