Welcome to the Cumulus Support forum.

Latest Cumulus MX V3 release 3.28.6 (build 3283) - 21 March 2024

Cumulus MX V4 beta test release 4.0.0 (build 4017) - 17 March 2024

Legacy Cumulus 1 release v1.9.4 (build 1099) - 28 November 2014 (a patch is available for 1.9.4 build 1099 that extends the date range of drop-down menus to 2030)

Download the Software (Cumulus MX / Cumulus 1 and other related items) from the Wiki

System.NullReferenceException:

Topics about the Beta trials up to Build 3043, the last build by Cumulus's founder Steve Loft. It was by this time way out of Beta but Steve wanted to keep it that way until he made a decision on his and Cumulus's future.

Moderator: mcrossley

User avatar
steve
Cumulus Author
Posts: 26702
Joined: Mon 02 Jun 2008 6:49 pm
Weather Station: None
Operating System: None
Location: Vienne, France
Contact:

Re: System.NullReferenceException:

Post by steve »

If you're suggesting that I should make MX behave like the Davis DLL, I don't propose to do that. The Davis DLL causes a number of problems and one of the big advantages of the new code I've spent a long time writing is that I no longer rely on it.

As I've said in the thread about the WeatherDuino (which may or may not be the same issue), if you can tell me what it is that MX is doing that the device doesn't like, and I can change it without breaking support for 'real' devices, I can look into it. The code appears to work OK with genuine loggers and with Virtual VP, both of which have been around for a very long time.
Steve
BCJKiwi
Posts: 1255
Joined: Mon 09 Jul 2012 8:40 pm
Weather Station: Davis VP2 Cabled
Operating System: Windows 10 Pro
Location: Auckland, New Zealand
Contact:

Re: System.NullReferenceException:

Post by BCJKiwi »

Well I'm doing everything I can to give you that info.

It is clear the serial port is configured significantly differently by MX than it is by 1. I can only give you the information I can access.
I am not suggesting you "should make MX behave like the Davis DLL" in all respects. However the serial port setup is an essential part of the reliability process. I do wonder if this is the same issue being experienced by some La Crosse models.

There is other software that does not use the Davis DLL that works with my setup for the VUE but that does appear to include FTDI specific .dll and .sys files.

Also I asked "Will CumulusMX b3003 run without a logger as I can knock up a quick and dirty non logger serial interface for test on the Vue in an hour or so?"
Same applies to b3004 which I have downloaded but not yet had a chance to install.
It is not clear to me if the comment re 'third party' in the FAQ post relates to this particular situation and I don't wish to spend time working on a testing setup to no avail.
As I said earlier I have also spent money on Silabs USB/Serial interface but have to wait for it to arrive.

Thanks
User avatar
steve
Cumulus Author
Posts: 26702
Joined: Mon 02 Jun 2008 6:49 pm
Weather Station: None
Operating System: None
Location: Vienne, France
Contact:

Re: System.NullReferenceException:

Post by steve »

BCJKiwi wrote:However the serial port setup is an essential part of the reliability process.
The serial spec says the following:
"Serial communication parameters are:
8 data bits, 1 start bit, 1 stop bit, and no parity.
Default baud rate is 19200"

Those are the settings I'm using. The spec mentions no other settings.
I do wonder if this is the same issue being experienced by some La Crosse models.
What's that got to do with anything? The code is different, and the way La Crosse stations use the serial port is completely non-standard and not the same as the way Davis stations work. So you've decided that I've got the La Crosse code wrong, and hence I also have the Davis code wrong, despite it working with the official hardware?
Also I asked "Will CumulusMX b3003 run without a logger as I can knock up a quick and dirty non logger serial interface for test on the Vue in an hour or so?"
Same applies to b3004 which I have downloaded but not yet had a chance to install.
It is not clear to me if the comment re 'third party' in the FAQ post relates to this particular situation and I don't wish to spend time working on a testing setup to no avail.
Well, pretty obviously it does as it refers to turning off the use of the data logger and says it is fixed for Davis stations. However, it appears that using the setting causes a problem in as yet untested code.

Please don't be difficult with me, I have enough on at the moment as it is.
Steve
BCJKiwi
Posts: 1255
Joined: Mon 09 Jul 2012 8:40 pm
Weather Station: Davis VP2 Cabled
Operating System: Windows 10 Pro
Location: Auckland, New Zealand
Contact:

Re: System.NullReferenceException:

Post by BCJKiwi »

Well I'm sorry. I was trying to be careful not to upset you as I do appreciate you have a lot on your plate.
And I was trying to help by supplying the maximum information I could.

I'll just shut up an put all this to one side until the SiLabs parts turn up and try again then.
BCJKiwi
Posts: 1255
Joined: Mon 09 Jul 2012 8:40 pm
Weather Station: Davis VP2 Cabled
Operating System: Windows 10 Pro
Location: Auckland, New Zealand
Contact:

Re: System.NullReferenceException:

Post by BCJKiwi »

DAVIS 'CLONE' LOGGER COMMS PROBLEM FOUND AND SOLVED!
There are two ways to run a 'SIMPLE' serial connection;
A. 3 wire connection RX, TX, Signal Ground.
B. 5 wire connection RX, TX, CTS, RTS, Signal Ground.
The FTDI cable being used provides CTS and RTS wires but the Davis Logger does not have the matching connections.

If the device being connected to does not provide CTS & RTS then serial software will either manage its way around the problem and establish a connection or the connection will fail.
It seems the Davis dll and the other software used in testing did manage to sort this out so the logger was built using the 3 wire circuit.
However CumulusMX is in the group that needs CTS/RTS working. Please note this does NOT suggest there is anything wrong with CumulusMX - it is just more particular about the serial hardware setup than Cumulus1/Davis dll.

So how is this resolved?
CTS and RTS are linked together so the serial software gets the response it expects (from itself!).
The logger was un-potted, CTS and RTS linked together, and now CumulusMX is working. Cumulus1 works as well.

There is one difference in the Cumulus MX serial comms data setup process as shown by the separate serial port monitor software;
Without the RTS CTS link this step reported:-
Handflow: ControlHandShake=(CTS_HANDSHAKE), FlowReplace=(TRANSMIT_TOGGLE, RTS_HANDSHAKE), XonLimit=1024, XoffLimit=1024
Now with CTS RTS linked the step includes XOFF_CONTINUE;
Handflow: ControlHandShake=(DTR_CONTROL, CTS_HANDSHAKE), FlowReplace=(TRANSMIT_TOGGLE, RTS_HANDSHAKE, XOFF_CONTINUE), XonLimit=1024, XoffLimit=1024

The connection is established on the first <LF>.

Also on further inspection, Cumulus1/Davis dll was not sending <LF> and <CR> but was in fact sending <LF> and receiving <CR>;
Note the TX and RX at the end of the time stamps from the separate serial port monitor software included in the previous attachments.
<20150107170102.330 TX>
<LF>
<20150107170102.597 RX>
[len=0]
<20150107170102.597 RX>
<CR>

So, sorry Steve for taking up your time on this but I just could not fathom the reason for the difference but hopefully this explanation may help others.

Now onto more enjoyable tasks with the new wonder of CumulusMX!
uncle_bob
Posts: 505
Joined: Wed 17 Aug 2011 2:58 pm
Weather Station: WeatherDuino Pro2
Operating System: 2008
Location: Canberra

Re: System.NullReferenceException:

Post by uncle_bob »

BCJKiwi wrote: hopefully this explanation may help others.
Yes indeed. Thanks for posting this BCJKiwi (you Kiwi folks are a mighty helpful bunch, unless you're playing Rugby against them :) )
Interested in building your own Weather Station? Maybe check out the WeatherDuino Pro Project Here
Conder, Canberra Weather
Image
User avatar
steve
Cumulus Author
Posts: 26702
Joined: Mon 02 Jun 2008 6:49 pm
Weather Station: None
Operating System: None
Location: Vienne, France
Contact:

Re: System.NullReferenceException:

Post by steve »

Cumulus MX uses the following settings on the serial port:

{Handshake = Handshake.RequestToSend, DtrEnable = true};

The spec doesn't mention those settings, I think I got them from the 'net somewhere. If those are causing an issue with clone loggers and I can change those without the real loggers getting upset I'd be happy to do so. I'd just need to know what to change them to. Should handshake be 'none'?
Steve
BCJKiwi
Posts: 1255
Joined: Mon 09 Jul 2012 8:40 pm
Weather Station: Davis VP2 Cabled
Operating System: Windows 10 Pro
Location: Auckland, New Zealand
Contact:

Re: System.NullReferenceException:

Post by BCJKiwi »

With the CTS/RTS linked together, everything is working fine so no need to change anything in CumulusMX.
I should have taken my more usual "belts and braces" approach and linked CTS RTS when the logger was built in the first place - was just happy to get it running at the time!
Locked