@malaire does Geany use anything similar to Sublime Text config files?
I am thinking about adding support for these files in monomake. In Sublime Text the project json config seems to be pretty generic.
I would like to know about what kind of editor you guys use. My idea is to prioritize better support for the popular editors in monomake. So it would be nice to know about what editors are: your favorite text editor?.
So far, I have added (little) support for Atom, mainly because it was somewhat easy. However, what code editors do you like to use?
(Note that we would lean towards cross-platform editors, to easy the integration efforts.)
said in Monomake doesn't recognize Atom:
What can I do?
For Monomake to know about the existence of Atom, you must have installed the Atom Shell Commands. This enables mono to check whether Atom is installed by issuing the command line:
$ which atom
On unix system, that is. On windows a similar (yet different) command is used.
@malaire We are rolling out a version 1.7.1 in the next day or two, that marks the package
modemmanager as a Conflict. This means it must be uninstalled before
openmono can be installed.
We think this is the correct approach, because it uses the dkpg system to document the relationship. Also, it is left as a user choice. We want to avoid removing packages from a users system by default.
Hi @malaire, you are right - I guess the last build went too through to swiftly. I have now found a bug in the package build script that caused copying of the
mono directory to fail. I have fixed it now and uploaded a new build on the GitHub release site.
I have tested the new build inside a Debian jessie Docker container, and it works.
I am sorry about the repeated inconvenience. And thank you for your effort and feedback.
@malaire This was caused by a bug in the debian build system. I have uploaded a new build of the debian package: https://github.com/getopenmono/openmono_package/releases/tag/SDKv1_7
This is the 2017 summer release of Mono Framework. It includes major new features along with bug fixes.
In our effort to streamline the API and make embedded development on Mono easy and fast, we have introduced new C++ classes and augmented existing ones.
In this release note we shall driefly mention all new features in 1.7 and discuss the most important in-depth.
This is a major release with many new features, including:
DateTimeclass now builds on top of the standard libc time APIs
This release also fixes a number of bugs, these include:
PowerSaverclass is more robust when event fire in dimming animation
ScheduledTask's to wake mono each second
With the new release we are deprecating a couple of redundant methods. Mostly methods with unnecessary verbose names. If you use a deprecated method, use will get a compiler warning.
You should port your code to not use the deprecated methods, since they will be removed in future releases.
Let us take a moment to examine some of the most important features and discuss why their are important.
We repeatedly found ourselves in need of having icon-decorated push buttons. Also, we again and again needed to display some status info that would be nice to convey in form of small icons.
Therefore we have introduced a monochrome icon bitmap-format, that can be stored in flash memory and displayed in a few lines of code. Further, we added a set of commonly used icons to the framework. These include icons for speaker, wifi, battery, play, pause etc.
You can create your own icons from bitmap images using our free tool img2icon
To use icons are incredibly easy, since we added a
IconView class to display them on the display:
#include <icons/speaker-16.h> IconView icn(geo::Point(20,20), speaker16); icn.show();
You can also change the coors of icons by using the
setBackground methods on
We found we needed at way to switch between different view in applications. Say, the Alarm Clock app on MonoKiosk needs to have 3 different scenes to show:
Each scene takes up the entire display, and we needed to have an easy way to switch between these diferent scenes.
Inspired by what iOS and Andriod uses (Segues and Intents) we have created a class called
SceneController. This represents a scene of contents. A scene is logical container of
View-based objects. You add views to a scene. The scene now controls the
hide methods for all added views.
This means to can *show * and hide all the views in the scene at once, by calling the equivalent methods on the scene object. Further, scene implement an interface for implementing transitions between different scenes. This is a enforced structure that makes it easy to to setup and teardown, related to scene changes.
To use a scene you simply instanciate it and then add views to it.
#include <icons/speaker-16.h> using mono:ui; using mono::geo; SceneController scn; TextLabelView helloLabel(Rect(0,100,176,20), "Hi, I'm Mono!"); IconView icn(Point(50,100), speaker16); scn.addView(helloLabel); scn.addView(icn); scn.show();
Since Release 1.4.2 we had the RTC time and date tracking enabled. However, the RTC system was integrated only with the highlevel
DateTime class. Now we have hooked it into the lower level C API's provided by Std. Libc. This means you can use functions like
localtime. These alo wotk in conjunction with
time_t now = time(); DateTime dtNow(now); printf("Time and date: %s\r\n", dtNow.toISO8601()());
We have also fixed 2 major bugs relating to power consumption in sleep. Due to a bug in the
ScheduledTask class, Mono consumed too mucg power in sleep mode. Further, the entire I/O (GPIO) system was initialized upon the RTC seconds increments, while in sleep. This introduced even a power consumption overhead.
In 1.7 we have fixed these issues, and achieved low power consumption in sleep mode, as we originally aimed for: 35 µA in sleep mode.
I don't know why this happens. However, I have some suggestions of course.
First a little background on Mono serial port and drivers. On Windows we do not use any third-party driver - not even Cypress' driver. What we do is install a
INF file that specify our USB CDC Serial port with the systems default USB CDC driver - which is provided by Microsoft.
In the Device Manager you should be able to confirm that by clicking the tab Driver, like this one:
The driver provider should be Microsoft - not cypress or anything else.
If not, you can try our dedicated driver installer package (that installs the INF file) here.
I hope inspecting the driver configuration in device manager sheds some light on the issue.
@malaire, this is great :-) ! We should put this into the framework!
May I suggest a class that lives in the namespace
mono::power and that can return the remaining percentage of battery charge.
Maybe just extend the
BatteryPower class I sent you some days ago. Tell me what you think.