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.
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
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:
Moderator: mcrossley
-
- 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:
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
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
- 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:
The serial spec says the following:BCJKiwi wrote:However the serial port setup is an essential part of the reliability process.
"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.
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?I do wonder if this is the same issue being experienced by some La Crosse models.
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.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.
Please don't be difficult with me, I have enough on at the moment as it is.
Steve
-
- 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:
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.
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.
-
- 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:
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!
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!
-
- Posts: 505
- Joined: Wed 17 Aug 2011 2:58 pm
- Weather Station: WeatherDuino Pro2
- Operating System: 2008
- Location: Canberra
Re: System.NullReferenceException:
Yes indeed. Thanks for posting this BCJKiwi (you Kiwi folks are a mighty helpful bunch, unless you're playing Rugby against them )BCJKiwi wrote: hopefully this explanation may help others.
Interested in building your own Weather Station? Maybe check out the WeatherDuino Pro Project Here
Conder, Canberra Weather
Conder, Canberra Weather
- 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:
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'?
{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
-
- 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:
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!
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!