Category:Cumulus MX: Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
14,910 bytes added ,  06:44, 4 August 2020
m
mNo edit summary
(21 intermediate revisions by 3 users not shown)
Line 26: Line 26:
You might be afraid to add your contribution because my style is not the same as your natural one. Don't worry; as long as you use short paragraphs or bullet points, with lots of headings, then your contribution can blend in.
You might be afraid to add your contribution because my style is not the same as your natural one. Don't worry; as long as you use short paragraphs or bullet points, with lots of headings, then your contribution can blend in.


This article was originally comparatively short, as it gets longer I have moved some parts out. You may have suggestions for what else can be moved out of this article into separate articles?
This article was originally comparatively short, as it gets longer I have moved some parts out. You may have suggestions for what else can be moved out of this article into separate articles? When in doubt to apply changes, please use the discussion page first.


= Cumulus flavours =
= Cumulus flavours =


*When this article was first created in 2017, Cumulus 1 was still recommended for most users.
==Cumulus 1 ==
*It had extensive help screens built into the package, it had an installation package, and produced a main screen when it was running that summarised the weather and gave access to all the settings and editors.
 
*In 2017, Cumulus 3 also known as MX, was experimental and it had limited functionality, much less that was available in Cumulus 1.
*Cumulus 1 was created in 2003 when Steve Loft moved to Wanlockhead and bought himself a weather station. Initial releases were very much tailored to his needs, changing what weather station it supported to match the make he was using.
*Subsequently, he made his software available to anybody, and enhanced what it did to suit not only his requirements buy also what other users asked for.
*The functionality of Cumulus grew and grew, there were a few bugs, and a few mistakes, but generally Cumulus software had a high reliability, and grew in popularity, especially when the internet made it easier for people to praise Cumulus on many unrelated sites.
*Increased popularity meant an increase in demand for more functionality, increased functionality made it more popular, and the spiral of development continued.
*Cumulus 1 had extensive help screens built into the package, it had an installation package, and produced a main screen when it was running that summarised the weather and gave access to all the settings and editors. This made Cumulus 1 very user friendly.
*Demand for enhancements soon exceeded the amount of spare time, Steve could devote to Cumulus outside his full-time job. A register of enhancement requests was created, so that Steve could track which he had implemented, but that register was lost when Steve moved to a different host.
*One widely supported request could not be implemented for Cumulus 1, to offer a version that would run on multiple operating systems, so Cumulus 2 was born (see below).
*Cumulus 1 development was halted for a while by the focus on Cumulus 2.
*Cumulus 1 development restarted when Cumulus 2 was aborted.
*The development environment for Cumulus 1 became obsolete, and Windows operating systems changed, making the development of Cumulus 1 more difficult, so Steve decided to have another go at a replacement (Cumulus 3).
*Development of Cumulus 1 ceased once Cumulus 3 (aka MX, see below) was able to work better than its C# predecessor Cumulus 2.
*Steve Loft decided not to release source code for Cumulus 1, so nobody else can develop Cumulus 1 any further.
*Consequently, Cumulus 1 functionality can not be changed, and without knowledge of how it was written, there is no ongoing support, just the experience of those who have used it, or are still using it.
*Fortunately, Steve Loft documented Cumulus 1 very well in the forum, and in the new Wiki that was started in August 2009, so Cumulus 1 continued to attract new users even when Cumulus 3 was made available as MX.
*When this article was first created in 2017, Cumulus 1 was still recommended for most users, and it would remain so for another couple of years.
*Even now in 2020, '''there are many, many more people using Cumulus 1 than are using MX'''.
 
 
== Cumulus 2 ==
 
*Steve Loft produced a Cumulus 2 where he tried to start again in September 2009. It was written in C# (which is the language used for MX), and it is fair to say that Steve did not find that new programming language easy, and in March 2010 he was really struggling to make Cumulus 2 work how he desired.
* Cumulus 2 did prove that a number of concepts (like separating "engine" from "admin interface") could work and it was a useful learning curve for when Steve decided to write Cumulus 3 (see below).
*One change that had been requested by several Cumulus 1 users was for better international viewing of web pages, with less dependence on time zones. To achieve this, one suggestion was that Cumulus should work in GMT (more widely known now as UTC). Cumulus 2 therefore read and logged all readings by UTC. Unfortunately, converting from local time used by weather stations, and most computer devices, never worked as smoothly as Steve Loft hoped, so this is one idea that was not adopted for Cumulus 3.
* Furthermore, Cumulus 2 never succeeded in getting some of the basic functionality like driving web pages to work, so it never offered much of the more useful functionality of Cumulus 1.
*But it was a good testing ground for new functionality and enhancements and regardless of whether they could be made to work fully in Cumulus 2, some were highlighting what Cumulus 1 lacked.
*In August 2010, the new features being tested in Cumulus 2 were added to Cumulus 1, and Cumulus 2 was discontinued.
 
== Cumulus 3 ==
 
*In 2015, Cumulus 3 also known as MX once it was made available to users, was experimental and it had limited functionality, much less than was available in Cumulus 1. This made MX innovative, but unfriendly.
*Consequently, at that time, most Cumulus users were using Cumulus 1, and just those wishing to take part in beta testing used MX.
*Consequently, at that time, most Cumulus users were using Cumulus 1, and just those wishing to take part in beta testing used MX.
*Even now in 2020, there are many, many more people using Cumulus 1 than are using MX.
*Steve Loft started development of MX while he was still in full-time employment, but as retirement approached he worked fewer days per week and was faced with the question as to whether to spend more time on MX or more time with his wife, Beth, exploring places.
* During 2020 much extra functionality has been added to MX, and MX is now able to persuade Cumulus 1 to make the swap to MX.
*When he fully retired, a life on the road beckoned, and they started travelling. Work on MX decreased, and work on Cumulus 1 was no longer possible, as he was limited to what his laptop and internet connection at stops could cope with.
*Steve Loft who wrote and developed Cumulus 1 and MX, no longer offers any support.  
*Various people offered to help him with MX if he was willing to make his source code available. Initially, Steve did not want anyone else to interfere with his creation, but when he and his wife found a new home the priorities changed in favour of a focus on his new life, and he wanted to cease involvement with Cumulus software, its wiki and forum.  
*The source code for Cumulus 1 is not available, and it was developed using a coding environment that is no longer available.
*Steve Loft who wrote and developed Cumulus 1 and MX while he was in Scotland, decided to cease to offer any support from his new home in France. After quite a while considering it, he decided to make the source code available.
*Consequently, Cumulus 1 functionality can not be changed, and without knowledge of how it was written, there is no ongoing support, just the experience of those who have used it, or are still using it.
*The various people who had offered to help develop MX now were able to see the source code and decide whether they really did want to get involved.
*One programmer launched Cumulus 4, a new approach. Work continued on this for a while, but as far as I know it never made it into a working system, and I believe like Cumulus 2, it is abandoned.
*Other programmers looked at the source and thought we can make MX useful by adding the missing functionality, both what Steve added in the source but never got into a public release; and the functionality that makes Cumulus 1 so popular but is missing in MX and makes it difficult for those who are using MX.
 
== The MX future ==
 
* Mark Crossley was one of those who tried updating the MX source and producing a new release.
* In 2019, he made a successful first new release, and then focussed on adding some of the missing functionality. By 2020, he was not just adding in his own version of features that had been in Cumulus 1, he was also making MX talk to new weather station designs and deal with new sensors.
* '''During 2020 much extra functionality has been added to MX''', and MX is now able to persuade [[Moving from Cumulus 1 to MX|Cumulus 1 users]] that it might be the right time to make the swap to MX.
*Cumulus 1 was designed to work with weather stations that were available when it was written, the technology used by stations, and the models available, have both been changing since then.
*Cumulus 1 was designed to work with weather stations that were available when it was written, the technology used by stations, and the models available, have both been changing since then.
*The ongoing development is adding lots more functionality into MX, it can do a lot more with the the numbers it reads from weather stations, and it can be updated when weather station features change.
*The ongoing development is adding lots more functionality into MX, it can do a lot more with the the numbers it reads from weather stations, and it can be updated when weather station features change.
Line 46: Line 83:
*Currently, Mark Crossley who has been responsible for all recent MX releases is able to answer questions in the support forum [https://cumulus.hosiene.co.uk/viewforum.php?f=40 for recent MX releases], but this article will hopefully allow him to spend less time answering questions and more time improving MX (and more time for everything else in his life)
*Currently, Mark Crossley who has been responsible for all recent MX releases is able to answer questions in the support forum [https://cumulus.hosiene.co.uk/viewforum.php?f=40 for recent MX releases], but this article will hopefully allow him to spend less time answering questions and more time improving MX (and more time for everything else in his life)


It would be wrong not to say here - '''MX is still not bug free, there is a lot more to correct as well as all the enhancements to cope with new weather station hardware'''.
It would be wrong not to repeat what Mark has said here - '''MX is still not bug free, there is a lot more to correct as well as all the enhancements to cope with new weather station hardware'''.


There is a page (created in October 2018) listing [[MX Issues|MX Issues to be resolved]], but I suspect it is out of date.  If you look through the release announcements for 2020, yes there are a lot of new features being added, but there is even more work on resolving bugs.
There is a page (created in October 2018) listing [[MX Issues|MX Issues to be resolved]], but I suspect it is out of date.  If you look through the release announcements for 2020, yes there are a lot of new features being added, but there is even more work on resolving bugs.
Line 75: Line 112:
== Documentation for MX ==
== Documentation for MX ==


=== Cross reference to article on [[Moving from Cumulus 1 to MX]] (includes general issues regarding running on Windows) ===


=== Cross-reference to [[What to do when I have a problem with MX]] ===
You may be reading this article on MX as a Cumulus 1 user considering moving to MX, if so then the separate article linked from the heading to this section will interest you as it explains all issues when moving from Cumulus 1 to MX.
 
You may have no interest in Cumulus 1, but you are using MX on Windows, if so you still may find the separate article linked from the heading to this section will interest you as it gives a lot of information about installing Cumulus MX on Windows.


The text that was here has been moved to a separate article, that makes it more accessible, please see [[What to do when I have a problem with MX|What to do when I have a problem with MX article]]
Finally, if you are using MX on another device, then ignore the link in the heading to this section.


=== Cross reference to issues relating to Cumulus on devices running Windows, including [[Moving from Cumulus 1 to MX]] ===
=== Cross reference to article on [[Updating MX to new version]] ===


This has also been moved to a separate article, so those not interested don't need to read it.
Whether you have not updated for a long time, or simply wonder whether you are updating the easiest way, follow the link in the heading for this section, to an article that focusses on all to do with updating from one MX version to another.


Please note that the same article [[Moving from Cumulus 1 to MX|Issues re Cumulus 1 and MX]], covers a lot of information about installing Cumulus MX on Windows; as well as issues when moving from Cumulus 1 to MX.
Critically, this linked article contains advice '''both''' for those updating each time there is a new release available '''and''' for those using an old version (perhaps when MX was still in beta) wishing to update to a new version skipping some in-between versions and need advice on whether to do it in multiple steps.


=== Cross reference to [[Cumulus MX FAQ]] ===
=== Cross reference to [[Cumulus MX FAQ]] ===


A new FAQ for MX has been started at [[Cumulus_MX_FAQ|another page]].
A new FAQ for MX has been started at [[Cumulus_MX_FAQ|another page]]. As I add the link here, the Cumulus MX FAQ is in a mess, but hopefully someone will have time to sort it out.


Many MX specific questions, such as those related to installation are now covered by the updated text on this "Cumulus MX" page.
Meanwhile most MX specific questions are now covered by the updating of text on this "Cumulus MX" page.


=== Cross reference to [[MX Issues]] ===
=== Cross reference to [[MX Issues]] ===


The [[MX Issues|Cumulus MX Known Issues]] article is based on [https://cumulus.hosiene.co.uk/viewtopic.php?f=39&t=12943 Steve Loft's forum post], but there has been an attempt to update the contents. Anyone willing to check it and do a further update?
The [[MX Issues|Cumulus MX Known Issues]] article was based on [https://cumulus.hosiene.co.uk/viewtopic.php?f=39&t=12943 Steve Loft's forum post] so based on an early beta version of MX, and there has been minimal attempt to update the contents as MX has been developed further and come out of the original beta. <big>Anyone willing to check the linked article and do a further update?</big>
 
 
=== Cross-reference to [[What to do when I have a problem with MX]] ===
 
The text that was here has been moved to a separate article, that makes it more accessible, please see [[What to do when I have a problem with MX|What to do when I have a problem with MX article]]


=== Cross reference to [[MX Administrative Interface|Administrative Interface]] ===
=== Cross reference to [[MX Administrative Interface|Administrative Interface]] ===
Line 100: Line 145:
This requires a whole topic to itself, and indeed it has an article to itself, reached from link in heading for this section.
This requires a whole topic to itself, and indeed it has an article to itself, reached from link in heading for this section.


=== Cross reference to article on [[Updating MX to new version]] ===


Because If you are doing an update you don't want to read a long article, this topic has an article to itself, reached from link in heading for this section.
=== Message from Steve Loft about documentation ===
 
''The following was written by Steve Loft when he first made his MX beta available to Cumulus users. Although somewhat outdated it is preserved here.''


=== Message from Steve Loft about documentation ===
There's quite a lot to read before you start - please do read all of this page and all the references it mentions, most of it is very important.  
There's quite a lot to read before you start - please do read all of this page and all the references it mentions, most of it is very important.  


Line 227: Line 272:
For Windows 10 you need version 4.8 or later, this should already be installed by your windows update feature.  The .Net download for version 4.8 should be here https://dotnet.microsoft.com/download/dotnet-framework/net48.
For Windows 10 you need version 4.8 or later, this should already be installed by your windows update feature.  The .Net download for version 4.8 should be here https://dotnet.microsoft.com/download/dotnet-framework/net48.


Cumulus MX initiates a web server, to do this it may need administrative access, consequently to avoid having to run MX as an administrator you can issue a command that allows all users to bind to port 8998 which is the web server it initiates (this is used for the Cumulus MX user interface). Note that if you plan to change the interface port by using the port parameter in your launch of MX, you should change the 8998 to whatever port you are planning on using. To enter the command, first open a command window as administrator. One way to do this is to right click the windows symbol at the start of the windows task bar. The option to choose there (on windows 10) is '''Windows PowerShell (admin)''', but an option called '''Command Prompt (Administrator)''' will also work. Once that opens a new window type:
For those who downloaded the first MX Beta in January 2015, the code was only experimental and that version had to be run by a Windows Administrative User, but Steve Loft soon improved the code and now none of the code requires any elevated rights and it can be run by a normal user (or  a user with administrative rights) without needing to be started by '''Run as administrator'''.
 
However, Cumulus MX initiates a web server, which is what runs the [[MX_Administrative_Interface|Admin Interface]]. To access that, all users need to be given elevated rights to the port on which the web server runs. By default this is port 8998, so that is used in the example below of the one-off command needed to give all users access to the port. You can use a '''-port=nnnn''' parameter when starting MX to make it use another port, if you use that then the command below needs revising accordingly.
 
To enter the command, first open a command window as administrator. One way to do this is to right click the windows symbol at the start of the windows task bar. The option to choose there is dependent on some settings which determine what appears when you right click:
*the normal default on Windows 10 is '''Windows PowerShell (admin)''',
*the normal default on earlier versions of Windows is  '''Command Prompt (Administrator)'''  
*an alternative is '''Windows Terminal'''
Whichever of these you can use, the result is it opens a new window on your monitor with a prompt for typing. In that window type the command:
<pre>
<pre>
netsh http add urlacl url=http://*:8998/ user=\users
netsh http add urlacl url=http://*:8998/ user=\users
</pre>
</pre>


You only need to do that once. After than you can initiate MX from any user, you don't need to run as administrator.
You only need to do that once. If you do not issue this command, you do need to start MX with '''Run as administrator''', otherwise you may have difficulty in using the Admin interface.
 
Talking about command windows, if you want to check that the port is open for listening (i.e. able to access the admin interface) type <tt>netstat -an | findstr 8998</tt> into the command window.


Talking about command windows, if you want to check that the port is open for listening (when MX is running, the port is used for the administrative interface) type <tt>netstat -an | findstr 8998</tt> into the command window.
The admin interface URL '''http://*:8998/''' needs to have that wildcard "*" replaced by a precise location if we are to access the admin interface.  The missing part of the URL depends on how your local network is set up.  If you are accessing the admin interface on the same device as that running MX (and you don't have another web server on that device) the "*" can be replaced by "localhost", i.e. '''http://localhost:8998/''' will be used to load the admin interface into your browser.  In the more general case when you want to access the admin interface from anywhere on your local wired and wireless interface, then the "*" needs to be replaced by a string of 4 numbers representing what is called a IPv4 address (w.x.y.z) of the device you have installed MX on.


Look at your hub or router (this should have come with instructions on how to access its settings in your browser) and on one screen it should show what devices are connected to your LAN and wifi. Look for the IPv4 address, for example 192.168.1.64, it has assigned to the device where MX is running. That is what should replace the "*".  However, there is one more complication, either the Windows networking settings may change, or else your hub or router may reconfigure, both can happen at any time and both can assign a different IPv4 address to the device running MX.


After you have done this you can run CumulusMX.exe normally without Administrator rights and therefore you can create a short-cut to run MX when your PC starts (put your user name where I have put ...), the shortcut should point to T:\CumulusMX\CumulusMX.exe (where T is used here only to denote the drive on which you have installed MX as it does not need to be the same as where your operating system is):
To give your Computer a fixed address for the MX admin interface,
C:\Users\...\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\CumulusMX.exe
#first find the network card via Network and Sharing Centre (Control Panel),  
With this you might want to right click on that shortcut, select properties, then you can set the starting position for the command window, the colours and font it will use, and even choose to start minimised, amongst many other selections.
#then click on Change Adapter Settings,
#then Right click on Ethernet or WiFi Adapter,
#next select Properties
# In the window that opens, right click on Internet Protocol Version 4 (TCP/IP 4),  
#Next select properties
# Onn that pop up screen tell the computer to "use the following IP address"
#Fill out the form with
#* a subnet mask of 255.255.255.0 and  
#*gateway address between 192.168.1.1 and 192.168.1.254 (depending on the address of your hub/router).


Look at your hub or router (this should have come with instructions on how to do this in your browser) and on one screen it should show what devices are connected to your LAN and wifi. Look for the IPv4 address (w.x.y.z) of the device you have installed MX on, for example 192.168.1.64. Then give your Computer a fixed address  for MX user interface by finding the network card via Network and Sharing Centre (Control Panel), click on Change Adapter Settings, then Right click on Ethernet or WiFi Adapter, select Properties and in the window that opens right click on Internet Protocol Version 4 (TCP/IP 4), and select properties and on that pop up screen tell the computer to "use the following IP address and fill it out with a subnet mask of 255.255.255.0 and gateway address between 192.168.1.1 and 192.168.1.254 (depending on the address of your hub/router).
==== Setting up for either manual or automatic running ====
==== Setting up for either manual or automatic running ====


There are 3 ways on Windows to create a way to run MX, you can't just click on the executable in file manager, because Windows needs to be told the path for loading all the related .dll files.
 
To run Cumulus MX, Windows needs to know
#which '''.exe''' you want to run
#the path where all the required '''.dll''' files are located
 
Therefore it is best to always start MX using what Windows calls a '''shortcut''', because when creating the shortcut you can enter all the required information into the properties.  If you want MX to automatically start whenever you log into your PC, then the place to store your shortcut is <tt>C:\Users\...\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Run_CumulusMX</tt>.  Don't forget to put your Microsoft username where I have put ...
 
With this you might want to right click on that shortcut, select properties, then you can set the starting position for the command window, the colours and font it will use, and even choose to start minimised, amongst many other selections.
 
There are 3 ways on Windows to create a shortcut to run MX, as mentioned above you can't just click on the executable in file manager, because Windows needs to be told the path for loading all the related .dll files.




Line 542: Line 614:
== Parameter for adding debugging ==
== Parameter for adding debugging ==


You can also add  '''CumulusMX.exe -debug''' (to have full debugging turned on as MX starts), '''CumulusMX.exe -Logging=1''' (for the Davis specific logging).  
MX has a default level of logging that stores in  the [[MXDiags]] folder a log file that shows some of the interaction with the weather station and some of the output actions done as MX runs. A new log is started each time MX is restarted.
 
If there is a problem, then there is a great benefit in actually increasing the level of detail in these logs; and that is done either within the settings ('''options''' section of ''station settings'') in admin interface  while MX is running, or by adding 1 or 2 parameters when you start MX.  Obviously this log file continues to grow, the longer MX is left running, and if debugging is switched on the file will grow in size must faster. Consequently, the default is not to add the extra debugging information and the settings can be used to switch it off again if you do have it switched on. Whether you start it with a parameter or enable it within settings, stopping MX will end the extra debugging, and on restart it will default back to no debugging unless turned on again with parameter or setting.
 
You can also add  '''CumulusMX.exe -debug''' (to have full debugging of actions by MX turned on as MX starts), and/or '''CumulusMX.exe -Logging=1''' (for the station to MX transfers to have increased debugging logging).  


<pre>sudo mono CumulusMX.exe -debug -Logging=1</pre>
<pre>sudo mono CumulusMX.exe -debug -Logging=1</pre>
Since this parameter is applied when you start MX, it applies while MX continues to run. Obviously, it must be applied every time you start MX if you want this increased level of logging to continue every time you restart MX.


== Parameter for changing Locale ==
== Parameter for changing Locale ==
Line 563: Line 641:
= Library software =
= Library software =


Cumulus MX uses library software for a lot of the standard functionality. The library software is largely included in the distribution zip.
For most Cumulus users, this whole section can be skipped, but I have included it for those few users who have a technical slant and might want to understand more.
 
Cumulus MX uses '''library''' software (i.e. software written by others and made available by the provider and often also by other content delivery nodes  or 'cdn')  for a lot of the standard functionality. The library software for the admin interface and the separate library software for the standard web pages are both mostly included in the distribution zip, although some is used via a link to a cdn.
 
Many of the libraries included by MX are very obsolete. However, Mark Crossley, the current developer, said the following on 30 Sept 2019:
"Chasing the latest versions of all the packages for the sake of it is a thankless task, and requires considerable effort to regression test each update. I am only updating packages when required to fix issues or for platform compatibility."
 
Just to mention the other side of this balance.  It is difficult to code an addition to MX that works with these obsolete versions of libraries.  All documentation provided by providers of the libraries relates to current versions of the packages (and what is documented to work now often will not work with obsolete versions). The documentation for the packages that are no longer supported is only available in archive sites if available at all.
 
==Library Software for the MX engine==
 
The distribution zip contains various '''.dll''' files and these are the libraries used by MX itself.
 
===Devart===
 
The two files used are both related to the database functionality of MX.
 
===FluentFTP===
 
As the name suggests, this is used by MX for controlling the file transfer functionality. This component has been updated at certain MX releases, see the announcements for details.
 
===Linq===
 
Language INtegrated Query is used to work with sequences of items and pick the ones that are needed, putting them into output format required. MX uses two files in connection with preparing output for Twitter. There is a third Linq file for other processing.
 
===MQTT===
 
When MX added capability to talk to other devices using the MQTT protocol, it added this component for that optional functionality.
 
===Newtonsoft===
 
This component is used for processing JSON strings. It is a very popular choice for developers, and used therefore very widely. However, '''SystemText''' has superseded it, so MX is using an obsolete method.
 
===Renci SSH===
 
This component is server connection software, it is what processes the host name, password, and so on.
 
===SQLite3===
 
This is used for all interactions with the [[Weather Diary|weather diary]].
 
===HTTP===
 
These files handle the optional HTTP functionality.
 
===Unosquare===
 
The EmbedIO file is open-source software that handles the web-sockets functionality of MX. The Swan file is open-source software that handles JSON formatting and threading of tasks in MX.


== Library software for admin interface ==
== Library software for admin interface ==


#'''Alpaca'''
As the following sections reveal, MX uses external libraries rather than writing its own code whenever possible.
#*Alpaca software is effectively a programming language extension to help people design forms like those MX uses for all its settings, and as a Cumulus user you really don't need to worry about it.
*However, that does not mean MX is good at meeting development standards.
#*It is used for most settings screens. See http://www.alpacajs.org/ for more information. The latest version there is 1.5.27 released on 14 May 2019.
*MX only implements small parts of the functionality of most libraries, the minimum to make a feature work, not all the features available to make it work well
#* MX uses Alpaca Release 1.1.3 from https://github.com/gitana/alpaca which was on 15 May 2014, although some individual components have been updated on that github, and others.
*MX does not use the latest versions of libraries
#'''Bootstrap'''
*MX does not attempt to obey guidance for good user interaction, and although validation is being added, many parts of MX do depend on user understanding what is valid
#*Also known by some as ''Twitter Bootstrap'' which gives a clue as to its origins as an internal tool for those building Twitter, that company still keep making updates as it is now the most popular styling library of all those available widely.
*MX does not make provision for screen readers and other accessibility aids.
#*The simplest way to think about this package is as a standard set of styling promoting easy responsive (means adapts to screen dimensions) web site design.
 
#*To give just a few examples, it defines a standard way to represent buttons, form components, lists, navigation, and breadcrumbs.
===Alpaca===
#*MX uses Bootstrap v3.3.7 (http://getbootstrap.com), which is very restricted in what it offers compared to the current Bootstrap version 4.5.0 (Bootstrap 4 released as alpha in August 2015, beta in August 2017, and with fully working releases frequently from January 2018 has been very widely praised for its improved functionality, and ability to work with latest jQuery and multiple modern devices/browsers).   
 
#*MX does not implement colouring text according to what it represents (primary, secondary, information, warning etc.), nor does MX obey modern HTML standards as it makes no provision for screen readers and other accessibility aids.
#Alpaca software is effectively a programming language extension to help people design forms like those MX uses for all its settings, and as a Cumulus user you really don't need to worry about it.
#'''dataTables'''
#It is used for most settings screens. See http://www.alpacajs.org/ for more information. The latest version there is 1.5.27 released on 14 May 2019.
#*When MX sends out multiple lines of a log file to view or edit, the application programming interface (api) that transfers the information from the MX engine sends it in dataTables format for display on the web page in the admin interface.
# MX uses Alpaca Release 1.1.3 from https://github.com/gitana/alpaca which was first released on 15 May 2014. Although some individual components have been updated on that github URL, and elsewhere, MX has not incorporated these.
#*Thus dataTables does all the work of providing the ability to move between multiple pages needed to allow MX to just send 10 lines of a log file at a time to the admin interface.
 
#*The free version of dataTables used by MX lacks the most useful functionality that needs a subscription licence. For example, editing functionality requires a subscription.
===Bootstrap===
#'''altEditor'''
 
#*This is an editing tool that can read what is in dataTables, create what it calls a modal (a pop-up dialog) where rows can be added, edited or deleted individually.
#Also known by some as ''Twitter Bootstrap'' which gives a clue as to its developer and to its origins as an internal tool for those building Twitter, that company still keep making updates as it is now the most popular styling library of all those available widely.
#** MX when it added editing of log files at version 3.4.5 - Build 3069 (Friday 13 March 2020) adopted this software as it was free (although Mark Crossley said in his release notice: "The main thrust of this release is to add some log file editing capability to Cumulus MX. It works on all three log file types, but it is fairly basic at present. You can edit or delete lines in the filesThe editing has to be done via pop-up dialog. I only found two libraries that support JQuery dataTables editing, one is very comprehensive - but costs $$$ - the other is free.  The free version does not currently support in-line editing of the table which is a shame.  If any web guru out there can come up with a better solution please post about it on the forum, or send a pull request."
*The simplest way to think about this package is as a standard set of styling promoting easy responsive (means adapts to screen dimensions) web site design.
#**The single line of fields that is result of an edit or deletion done on the modal is sent back via another api to the server (the MX engine in our case) and that then regenerates the dataTables in the state after whatever action was done, sending back again up to 10 lines for the same page as before.
*To give just a few examples, it defines a standard way to represent buttons, form components, lists, navigation, and breadcrumbs.
#*As it happens there is another JQuery dataTables editing tool, but it has not been maintained since 2012. It is found at https://github.com/NicolasCARPi/jquery_jeditable, but the documentation is now only available in an archive at https://web.archive.org/web/20200615000000*/https://appelsiini.net/projects/jeditable.  It is designed for editing table cells, so it does not involve any pop-up dialog.
*MX uses Bootstrap version 3.3.7, which is very restricted in what it offers
#'''datepicker'''
**Bootstrap version 5 is available (http://getbootstrap.com), so MX is using an obsolete library
#*Although modern browsers generally will generate a calendar type interface when they meet an entry field defined as a date, this date picker software ensures all MX users see exactly the same interface for date selection needed for both the standard log and the extra sensors log which are monthly log files (a new one is created each month). It is used for picking which standard (monthly) log or extra (monthly) log is to be viewed by selecting a month and year only.
** Bootstrap version 4.5.0 (Bootstrap 4 released as alpha in August 2015, beta in August 2017, and with fully working releases frequently from January 2018) was very widely praised for its improved functionality, and ability to work with latest jQuery and multiple modern devices/browsers.   
#*It is also used for selecting individual days in the weather diary editor.
*MX does not implement key features of Bootstrap like colouring text according to what it represents (primary, secondary, information, warning etc.)
#'''editable grid'''
 
#*As the name perhaps suggests MX only uses this for the extra web files screens where you can make selections within a grid like interface.
===dataTables===
#*I suspect it could enhance some other functionality in the future.
 
#'''handlebars'''
#When MX sends out multiple lines of a log file to view or edit, the application programming interface (api) that transfers the information from the MX engine sends it in dataTables format for display on the web page in the admin interface.
#*Put simply this is a simple HTML generator based on templates.
#Thus dataTables does all the work of providing the ability to present the data in a HTML table, the functionality to move between multiple pages needed (as MX sends only up to 10 lines of a log file at a time to the admin interface).
#*I have not found any file in the admin interface actually using this, but I am scared to delete it just in case it stops something working.
#The free version of dataTables used by MX lacks the most useful functionality that needs a subscription licence. For example, its editing functionality requires a subscription.
#'''jQuery'''
 
#*The admin interface uses version 1.9.1 of this javaSript based library. At the time of typing this, the current jQuery is version 3.5.1.
===altEditor===
#*Of all the old versions of jQuery, only one version, 1.9.1, has a serious error in its code, because it tries to load another script that does not match, and therefore the authors of jQuery strongly advise all 1.9.1 users to move to a later version.
 
#*Unfortunately, there are interdependencies between all the library code used by MX, so you cannot simply update this component.
*This is an editing tool that can read what is in dataTables, create what it calls a modal (a pop-up dialog) where rows can be added, edited, or deleted individually.
#'''SteelSeries'''
** MX when it added editing of log files at version 3.4.5 - Build 3069 (Friday 13 March 2020) adopted this software as it was free (although Mark Crossley said in his release notice: '''"The main thrust of this release is to add some log file editing capability to Cumulus MX. It works on all three log file types, but it is fairly basic at present. You can edit or delete lines in the files.  The editing has to be done via pop-up dialog.'''
#*MX uses a hacked version of the [[SteelSeries Gauges|steel series]] library described elsewhere for all the gauges (see dashboard and gauges tabs) in MX.
**'''I only found two libraries that support JQuery dataTables editing, one is very comprehensive - but costs $$$ - the other is free. The free version does not currently support in-line editing of the table which is a shame.'''
#'''x-editable'''
** '''If any web guru out there can come up with a better solution please post about it on the forum, or send a pull request."''') ''(By the way, it is possible to provide in-line editing and make it work with the existing api interface, but making it compatible with the obsolete software used by MX is hard).''
#*Put simply, this allows in-place editing of web pages using bootstrap.
*The single line of fields that is result of an edit or deletion done on the modal is sent back via another api to the server (the MX engine in our case) and that then regenerates the dataTables in the state after whatever action was done, sending back again up to 10 lines for the same page as before.
#*In MX it is used for the record editing screens where you adjust the extreme values.
*As it happens there is another JQuery dataTables editing tool, but it has not been maintained since 2012. It is found at https://github.com/NicolasCARPi/jquery_jeditable, but the documentation is now only available in an archive at https://web.archive.org/web/20200615000000*/https://appelsiini.net/projects/jeditable.  It is designed for editing table cells, so it does not involve any pop-up dialog.
 
===datepicker===
 
#Although modern browsers generally will generate a calendar type interface when they meet an entry field defined as a date, this date picker software ensures all MX users see exactly the same interface for date selection needed for both the standard log and the extra sensors log which are monthly log files (a new one is created each month). It is used for picking which standard (monthly) log or extra (monthly) log is to be viewed by selecting a month and year only.
#It is also used for selecting individual days in the weather diary editor.
 
===editable grid===
 
*As the name perhaps suggests MX only uses this for the extra web files screens where you can make selections within a grid like interface.
*I suspect it could enhance some other functionality in the future.
 
===handlebars===
 
#Put simply this is a simple HTML generator based on templates.
#I have not found any file in the admin interface actually using this, but I am scared to delete it just in case it stops something working.
 
===x-editable===
 
*Put simply, this allows in-place editing of web pages using bootstrap.
*In MX it is used for the record editing screens where you adjust the extreme values.
 
===jQuery===
 
#The admin interface uses version 1.9.1 of this JavaScript based library.
#* At the time of typing this, the current jQuery is version 3.5.1.
# Of all the old versions of jQuery to choose, MX has picked the only version that the developers withdrew due to an error when they released it.
# Version 1.9.1, has a serious error in its code, because the developers accidentally combined code from two significantly different versions when they created the release file.
#*This reveals itself in two ways:
#*# The error handling does not work.
#*# It tries to load another script that does not match.
# Consequently, the developers quickly removed it, but it remained available from Contents Delivery Nodes, which is where MX has found it.
# Not surprisingly, the authors of jQuery strongly advise all 1.9.1 users to move to a later version.
#* Unfortunately, there are interdependencies between all the library code used by MX, so you cannot simply update this component (see next library item).
 
===Jquery Template===
 
* This is also obsolete, and therefore will only work with old versions of jQuery (1.4.2 to 1.11.0).
*It was originally available from jQuery downloads, but they now offer '''jsRender.js''' for this functionality.
* It basically is used to bind the contents of objects (like array elements) into particular locations within HTML.
 
===SteelSeries===
 
MX uses a modified version of the [[SteelSeries Gauges|steel series]] library made available by Mark Crossley for all the gauges (see dashboard and gauges pages of the admin interface) in MX.
 
===Highstocks===


The odd one out is '''Highstocks''' (that includes HighCharts)
The odd one out is '''Highstocks''' (that includes HighCharts)
5,838

edits

Navigation menu