VirtualVP - multiple programs to one VP station

I hope this shameless plug does not seem inappropriate here.

I’m nearing release of a new shareware program that will allow up to 4 weather programs to connect to a single Vantage Pro or Vantage Pro 2 station. All the programs can be in full mode. VirtualVP brokers the communications, so the programs do not confuse each other. It does everything it can to insure that none of the programs miss any sensor data from the console. This includes maintaining an exact mirror of the console’s entire archive data so that requests for that data can be served quickly without interrupting the console. It will be $30 US, with a fully functional trial version so you can try it out first.

It supports serial connections (you need to first install a virtual serial port driver - there are two freeware drivers available). It also supports tcp/ip network connections (you need to first install a tcp/ip to serial bridge or redirector on the client machines - there are two freeware solutions available).

I’m working on the documentation and installation program now. As soon as that’s done I will make it available. It should be within the next few days.

Here is an image of the program in operation:
http://www.softwx.com/weather/virtualvp/virtualvp.png

and here is an overview of the architecture which might explain some of the possibilities:
http://www.softwx.com/weather/virtualvp.html

Based on this limited info, I’d be interested in hearing if anyone has some obvious feature requests that haven’t occurred to me, or if you think up to 4 weather programs is not enough (how many is enough?).

Steve (aka tinplate)

Will it have the option to also feed add-ons, like 1-wire, etc.

One? I have enough trouble keeping up with all the features in WD without trying to use another ‘full’ weather software package, e.g. VWS/WeatherLink. I could understand using some other specialist weather products that did very specific things with VP2 data, but I’m afraid I don’t know of any of those (that’s not to say there aren’t any). It would be interesting to see suggestions of software that talks to VP’s with the special features that they offer (that WD doesn’t offer).

The first version deals only with the Vantage Pro console.

If the 1-wire devices only send data and don’t receive commands, then something like VirtualVP wouldn’t be needed for that since there is no two-way communications to broker. You would only need something that splits the transmission. There are probably things already available that would do that.

If 1-wire devices do require a two-way dialog, then something like Virtual VP that virtualizes the access and brokers the communication could be useful. I don’t have any 1-wire equipment to test with, nor even any documentation of the communications protocols. If you could point me to some docs that go into detail on the communications protocols, I could give it a look and see how hard or easy that would be, or let you know if I’ve bumped into something already that might already do that.

If I were to make such a program, rather than shoe horn that into VirtualVP, it would probably be a separate dedicated program, but since I’m leveraging off my existing developed codebase, it might be doable in a reasonable amount of time.

Unfortunately, I have only a limited amount of time for these weather software projects.

Steve

One? I have enough trouble keeping up with all the features in WD without trying to use another 'full' weather software package

heh heh, WD does have all the features!

Personally, I like to run WeatherLink just for the logging, since it makes practically a literal dump of the Console’s own archive data (and the Console’s archive is the golden source since it gets the sensor data directly). The WeatherLink archive files are a great resource for having a solid backup of all data since just about everything out there (WD included) can import those files.

I run WD for desktop display, Wunderground uploads, and WDLive uploads.

I run VPLive for CWOP uploads since I can control completely the data averaging specs, etc (I have the source code!).

Some people who do lots of web stuff also like to pick and chose features from various weather programs.

The possiblity to transmit the data over a network also opens some possibilities.

With something like this available, people wouldn’t need to rely on only one monilithic weather program. It would be neat if folks that can write software put together small freeware or inexpensive shareware apps that served new, focused purposes. In the past there’d be no point in doing that because no one would give up their main weather program to run such a program. But with virtualized access to the console, it becomes possible.

Steve

Hi
I have been beta testing it , and its works really great (although I have not had a chance to beta test the latest version yet).
I like it because I can use it run a test version of WD connected to my VP without needing to shut down my own version running.
Also it will mean VWS users will be able to run weather display if they want to (and take advantage of some of the better functions that WD has over VWS (once you take off the VWS tinted glasses that VWS users wear, LOL)
:wink:
It also means WD users can keep on running weather link all the time too (as people dont like change, thats human nature)

You are going to let us know when it’s ready aren’t you. I’m interested in your VPLive and am one who didn’t want to mess with WD.

–Dave

EDIT… Maybe that didn’t come out quite right. I wouldn’t be without WD. I just didn’t want to take a chance of messing up the settings that could mess up WD.

I’ll post a message in this thread as soon as it’s ready.

Steve

the other good thing about this program is it actualy means a bit faster data to WD, just over every 1 second there is new data from a VP available to WD…which is realy great :slight_smile:
(tinplate has done some great work to squeeze the most of a VP!)

Yeah, there’s only really one there that has those type of glasses on, permanently affixed to them like a welded on middle ages chastity belt. :wink:

I ended up buying gpsgate when I first started to seriously try out weather display, as I was still needing to keep my website up to date, and that was with that other software, but having gpsgate allowed me to play with weatherlink, albeit briefly.

So this VirtualVP works better than gpsgate, or just similar ?

GPSGate is great at what it does - splitting one com port into many. But it has no idea of the context of the data going back and forth. This opens up lots of opportunity for weather programs to step all over each other, or confuse the console.

VirtualVP knows all about the context of the data going back and forth, and so it can intelligently broker the commands received from various weather programs and the data that gets returned from the console.

For example, with GPS gate if one program sends a command to the console to get 5 pages of archive data, ALL the weather programs receive the data the console sends back, ready or not. When VirtualVP gets a command from a weather program, it only sends the data back to the program that asked for it. As another example, if program A asks for 100 loop packets and then right after that program B asks for 55 loop packets, in the GPSGate model, both programs will receive 55 loop packets (the second loop command overwrites the first, and program A will be wondering why the loop packets stopped early). With VirtualVP, program A will get its 100 loop packets, and program B will get its 55.

VirtualVP is constantly getting loop data and sending it out to the programs expecting it. When it receives other commands, it sends them to the console by slipping them in between the loop commands in a way that makes it very unlikely that the time between one loop packet and the next will be long enough to cause live data to be missed.

It really does much more than just split the COM port.

Steve

This isn’t a trivial suggestion to implement, but it could lead to some interesting software…

At the moment vVP sends info in VP format to a number of connected programs based on requests it receives in VP protocol. Each program then interpets the VP data in the normal way. I can see why some people would want to do this.

What about taking it a step further by adding the ability to have non-VP ports on the computer side of things. I’m guessing the VP format isn’t too bad to handle once you’ve worked out how the protocol works and have written enough code to drive it. However, there is probably a lot of overhead in understanding and code writing if you just want one or two values of data. If you had a data port interface that handled simple requests for data and responded with simple data responses there might be a lot more people who would write software packages that could take VP data and do clever things with it.

An example of what I’m thinking of for the port is something like this (> means to port and < means from port)…

Program connects to port on COMn (many programming languages have COM port interface code)

OUT_T
<7.3
OUT_H
<67
GUST
<14.2
DIR
<274
OUT_T,OUT_H,GUST
<7.3,67,14.2
etc

An example of a simple program using this kind of port might be something used by radio hams with huge rotatable antennas. When it gets windy they prefer to park them in a direction which they’re least likely to suffer damage. Such a program probably only wants wind speed and direction to automatically control the rotator. Temp/humidity and the dozens of other available values are irrelevant. I’m sure that people can come up with lots of other clever ideas to use a simple data port.

After you’ve done that, see if Brian will work with you to virtualise other types of stations in the same way. Then WD could sit on top of vVP and talk to any type of station without worrying about what it is connected to. Then you could also add a feature to allow multiple stations or station types to be connected with, say, temp coming from one, wind speed from another, etc.

That lot shouldn’t take more than 10-15 minutes to do :wink:

DANG Chris, whatch you on brother?
LOL

Two slices of toast and a cup of tea. I suspect it’s the Brownian motion in the tea that causes the best thoughts :wink:

Now I wish I didn’t register GPSgate. :slight_smile:

Oh well sh… it happens.

Man! what a great idea (the part about having virtual commands for live data elements and hi/low values. With the code I’ve already implemented in VirtualVP and VPLive, that actually would be very easy to add (a couple hours). Since VVP already supports both serial and TCP/IP socket connections, both those options would be available to access that data. I was thinking of maybe putting together a DLL or something to make it easy for folks to write little utilities that hook to VVP, but your idea would be much easier for me to implement, and probably much more useful to a larger audience. I wonder if there is another communication protocol (besides serial and TCP/IP) that would be more accessible (telnet? a mini web server? web service? …), i.e. something with no programming required. Maybe a little command line app that takes the address, port, and command as parameters, connects to the port, does the transfer, and returns the result so you can use it in batch files, scripts, etc. We’ll see if there is interest in it. If so, then maybe next version.

The part about other stations is a bit larger to chew on and won’t happen soon, if it does. I thought maybe if VVP was popular, I might implement a module for the whatever the next station is that is very popular. It would be a big chunk of work, since most of the code and time in VVP were spent fine tuning to the VP station. Having the virtual commands above as a linqua franca that would work the same with both is an interesting tie in though.

It would be easier if the manufaturer comp’ed me a station, or at least a refurbished loaner. As it is VVP will probably generate pennies per hour for the time I’ve put into it (not my main reason for doing it). I don’t think SWMBO would appreciate me buying a bunch more weather hardware when I already have one (“Why do you need TWO??!!”).

Steve

VirtualVP is now available for download at http://www.softwx.com/weather/virtualvp.html

You may want to read the online manual (especially the Overview chapter and the 3rd party driver information in the Appendix).

If you have problems, questions or comments, you can email me at [email protected]

Steve

Steve, just downloaded VirtualVP manual and it addresses VP to serial to VirtualVP. I have a USB Envoy. Am I out of luck or will it work with USB?

–Dave

That’s not a problem. When you install the software from Davis, it installs its own virtual port driver that serves as a USB to serial bridge. So, for all intents and purposes, any software connecting to a USB Vantage Pro connects to it as if it was a serial device. I have the USB data logger, and VirtualVP runs fine with it.

In my diagrams, I didn’t include the USB to serial conversion that goes on in the USB version of the Vantage Pro because I thought it might make a potentially complicated topic that much more complicated.

Steve

Thanks, Steve. I was disappointed when I read the manual as I planned on using VirtualVP. But if it works, I really don’t need the how. Nice manual, BTW. You may want to add a note saying it will work with USB.

Hopefully tomorrow I’ll have it running.

–Dave