All of those terms are defined in the BACnet standard. The standard is not free, but you are unlikely to get very far in understanding BACnet without it.
There is no way to do this with unmodified OBS. As ltribble's response from 2010 said, there once was a device called an "NBLINK" that could do this, but it has been obsolete for many years.
VTS hasn't seen any serious development for almost 10 years. So if UI issues are your biggest complaints, you are doing pretty well with a program written around the turn of the century. The UI is pretty much stock MFC circa 2000. That said, the source code is right there for you or anyone who wants to make it beautiful. You'll get paid the same wages as most of the people who worked on it back in the day.
Your EPICS specifies which objects your test implementation has, what properties those objects have, and whether or not the properties are writable. Please be aware that VTS has not been under active development for a long time. It supports almost nothing after protocol revision 12, and I don't think it supports everything in 12. That said, it may still be useful in helping you debug your implementation
Scripting in VTS is deeply entangled with the GUI, so you can't do this via command line. Given the limitations of VTS scripting (no loops, almost no conditionals) I think you would be better off looking at one of the Python BACnet libraries. (Sorry, I can't recommend one)
Congratulations on being able to build! The only documentation is what's in the "Docs" directory, and that is almost entirely user-level stuff. The badly-named "QuickStart.html" starts with how-to, but the latter parts are mostly code check-in comments. I used them to find features that never made it into the documentation. In terms of code documentation, it begins with either // or /* (Even that puts you ahead of many open source projects, which have few or no comments beyond the GPL boilerplate)...
I won't argue that "it would be great" if VTS supported Protocol Revision 19. But since the current codebase has only partial support for even Revision 12, and since there have been no check-ins since August 2018, all I can suggest is "use the Source, Luke". The good news is that even the free version of Microsoft Developer's Studio now supports MFC. The bad news is that VTS is a large and sometimes messy program, much of which dates back 10 to 20 years. So start small, and fix small things that...
An exact update (changing a few variable names) of your code would be IUT_NET = 'MyEther' IUT_ADDR = 112233445566 OBJECT1 = device, 555 -- Product Name OBJECT2 = analog-input, 1 -- AMD Airflow OBJECT3 = analog-input, 2 -- AMD Temperature OBJECT4 = analog-input, 4 -- AMD Alarm Status OBJECT5 = analog-value, 1 -- AMD Area OBJECT6 = analog-value, 10 -- Traverse Status SECTION Read Properties of OBJECT1 TEST#1.1 - Read object-identifier DEPENDENCIES None SEND ( NETWORK = IUT_NET DA = IUT_ADDR DER = TRUE...
On the "Edit" menu, select "Ports" and configure the port to use Ethernet rather than IP. Are you testing ONLY BACnet/Eth, or also BACnet/IP? VTS allows you to create multiple ports - such as one for IP and one for raw Ethernet. However, as the "VTS Survival Guide" (in the docs folder) says Define one and only one Port. Otherwise VTS won’t have a default and you will need to pick a Port each time you want to send a message using the message dialogs, and your scripts will need to specify a Port, which...
The current COV handler (VTSServer::CovNotification) has a comment // todo: need to decode the COVNotification packet to ensure it // is encoded correctly and then perform any functions we might // need to do. Then send the simpleAck. Currently we just send // the simpleAck. So you will ALWAYS get a SimpleAck. There is some commented-out rudimentary PDU decoding that could get you started on doing a fuller decode, and return whatever responses you wish.
Show primitive type and context tag value on Device Tree values
Save context tag value on change to edit field
It ain't pretty, but it can be done. I set the list-of-property-references in a schedule object. I'll try to attach images Use "New Value" to add the first component, and set its context tag Right click on the first value and use "New Value Component" to add the next component and its tag Repeat for all components My example property is a list, so I used "New Value" to begin the second value Due to a bug in VTS, a context tag value won't be used or remembered unless you click on a different value,...
I just successfully ran a script with this snippet: SEND ( PDU = Confirmed-Request Service = ReadProperty Object = 0, OBJECT1 Property = 1, local-date ) EXPECT ( PDU = ComplexAck Service = ReadProperty Object = 0, OBJECT1 Property = 1, local-date OpenTag 3 DATE ? CloseTag 3 ) So "?" works there. This is primitively tagged
To wildcard the entire item, you can use ?. So, in an EXPECT you might have Date ? if the Date has a primitive tag, or Date 1, ? if the Date has a context tag of 1. The "Survial Guide" makes a passing reference to this, pointing at the "Quick Start". Search the latter document for 618176.
Version 3.6.7 release.
It appears that the reason I can't commit is that SourceForge is moving to a new data center, so we will hope that things will be fixed within a few days. Regarding changing VTS to UNICODE: good luck. Some chunks of the VTS code base are C code dating from the mid to late 1990s, and even much of the newer code contains char arrays and assumes "character is a byte". So converting to UNICODE would be a massive undertaking and not worth the effort: if you have that much time and interest, do a rewrite...
I still can't commit, or log in to do the full release. I WAS able to upload my build. I didn't mark it as "official" pending checkin, but you can get it by clicking on the "Files" tab, selecting VTS 3.x, selecting VTS 3.6.7, and download the ZIP.
I just built it with VS 2010, which is the latest that I have, and it builds there. A little more detail than "didn't suceed" would be nice if you want help in building VTS. The most common issues are MS tightening the screws on things they don't like. I am trying to do an official release. Unfortunately, I have retired and no longer have access to the machine from which I did the last set of commits in January. And I haven't been able to commit or upload a new build from this machine today. Not...
Update VendorID string table. Add pointer to release generation instructions.
Version 3.6.7
Generated script to read EPICS properties: expect Error for log-buffer, since it can't be read with ReadProperty
I don't know anything about WINE. On Windows, the "can't find DLL" messages usally come from the OS as it tries to load the application, not from code in the application itself. Run VTS on Windows, and use Dependency Walker, a debugger, or a similar tool to see what DLLs it loads. Do this on RUNNING VTS, since some DLLs may be loaded at runtime rather than specified in the link. VTS uses WinPCAP for naked Ethernet access. I don't recall whether VTS links to it or loads it manually. VTS uses (or used...
Does VTS receive and show OTHER messages? Can you do a ReadProperty of a device on...
Version 3.6.6
Bug in VTS. The "null" choice is missing from StringTables.cpp BACnetDoorValue_orNull....
VTS was written mostly to test BACnet servers. Its client capabilities are pretty...
VTS scrips are pretty limited as far as conditional operations go. Read other discussion...
The problem is that the VTS scripting "language" is very weak. You can easily craft...
By "version of the test conformance" do you mean "what version of 135.1"? If so,...
Register-Foreign-Device must be sent to a BBMD that accepts foreign registrations....
VTS was designed mostly as a BACnet client, to test BACnet server devices. It implements...
One option for you might be to use the WAIT command between your EXPECT and the next...
A quick test shows that "SEND AFTER" does work on a series of SENDs with no EXPECTS...
The packets sent and received by a script are shown in the main VTS window, just...
There is no such capability in VTS today. In general, VTS is pretty limited as a...
It seems likely that there are three devices. The duplication of I-Am with different...
Please try to THINK a little. I told you what you did wrong: you are sending a WriteProperty,...
Are you talking about VTS's BAcnet decoder, the Send Dialog, or VTS scripting? I...
You SEND a WritePropery. You then EXPECT the response to ReadProperty. Note that...
I suggested two alternatives, and you seem to have mixed them With the "Name" that...
Is there a way around his? Sure: download the source code to VTS and implement the...
You should start by reading "VTS Survival Guide.doc" in your VTS doc folder. Then...
Fixed by svn 1008
StringTables.cpp has some units with space which don't work in VTS
Fixed by svn 1008
It certainly WOULD be nice to be able to generate scripts from the Send dialogs....
Bug 324: change BACnetEngineeringUnits strings ...
Bug in VTS: It SHOULD BE power-factor, as in clause 21 But the table in \vts\VTS3_release\Sniffer\StringTables.cpp...
The responce of my device is : ERROR-CHOICE but nothing else is explained. What does...
The example you are looking at seems to be the one in scripts\old. These are mostly...
VTS is a crusty and peculiar beast. It was mainly intended as a CLIENT, to send requests...
One technique that works pretty well is to follow the installation instructions in...
Do you have the BBMDs configured so that their BDTs each contain both their own address,...
3.6.5, released last Friday, replacing 3.6.5 released last December. I see now that...
error 10049 breaks forever
A potenial fix (Using SO_REUSEADDR and showing an explicit error message) has now...
This fix has now been released in VTS 3.6.5
Version 3.6.5 release: update vendorID strings,...
Update images to current UI and best practice
Cleanup: eliminate some unused definitions
Modify IP startup (add SO_REUSEADDR etc) to bet...
Please clarify: you say the error message has "sendto" in it, but appears at STARTUP?...
Do you have the ability to build VTS locally? I think this was fixed by snv commit...
VTS itself will not act as a BBMD. There is a radio button for this in the Port Configuration...
Eliminate redundant tables of enumeration strin...
VTS as a BACnet server can respond to ReadProperty and WriteProperty. So you could...
Features are added to VTS primarily by the people who need them. Feel free to download...
Show some love to the TD's object editor: add c...
Fix crash in Send Event Notification caused by ...
Add parse and test of MaxSegs value in Expect C...
Modify Expect ANY to allow zero-length data
Fix length calculation bug in BACnetAPDUDecoder...
Make BACnetOctet* argument const
Version 3.6.4 release. VendorIDs up through 797
Eliminate warning on Enable3dControls with curr...
Better display of ConfReq second header byte as...
Plug yet another EPICS parser hole (calendar re...
Tweaks of float and double string output to ens...
Add write-back test option to EPICS generator
Device Address Binding Error
Fixed by svn 988 and 989 (which also refactor Match functions for other types)
Wrong DADR value generated
Fixed by svn 987: generate script using X'12345678' format rather than 12-34-56-...
Bug 322: add Match method to BACnetAddr. Refac...
Bug 322: add Match method to BACnetAddr. Refac...
Bug 320: Change format of DADDR in generated re...
Read latest version from http://vts.sourceforge...
Eliminate duplicate resource IDs, renumbering a...
Seems like as-designed to me. If you don't care WHETHER you get a response, omit...
empty EXPECT statement
I am not quite clear on what you are doing. What you you mean by "it is generated...
Fixed by svn 984. Stored 8 bits, referenced 16, so that first character of device-type...
Wrong Value Read for Multi-State-Input
Fig for Bug321: MI stored only 8 bits for prese...
Gussy up EPICS generator: include property-list...
Had = instead of == in ReadFloat. Someday I wi...
Accept special Real and Double values NaN, +inf...
- Fix bug in parsing tag values 15 and above (f...