Just to let people know what I've been adding to the project, in case someone is planning to duplicate my effort:
The ability to save the state of the device/object/property heirarchy to a text/XML file at shutdown. This is mostly complete, semi-tested.
The ability to save object properties and their respective values. This is somewhat complete. A few more days to any kind of general release.
Sometime fairly soon, the ability to read the XML file into the database at startup, reducing the considerable network activity and lengthy discovery process. Still contemplating what to do about changing configurations between runs. Welcome any advice about handling that or anything else I might bump into. I'd like the systemm to be able to enter the COV subscription state ASAP on startup. Also browsing for a toolkit for parsing/decoding XML in a clean way. I looked at libxml2; looks a bit complex. Suggestions anyone?
Hopefully...
Exporting the database via some form of virtual file system (similar to the /proc filesystem). Thanks to Steve for that idea. It will be a very clean fit for my own purpose and should be generally useful. Anyone know of a good tutorial/reference/toolkit for developing that sort of thing?
A bit of extra info to the HTTP interface, particularly status information as regards the state of the discovery process. Source code snippets for this are posted in another thread.
Note to Steve:
I have been modifying the 0.3.6 distribution. I hope there isn't much change in the way the device and object structures have been laid out in whatever revision you are at. I've added some structures to get the property lists associated with the owner objects.
My development environment is firewalled like crazy, and uploading to the Sourceforge CVS repository is difficult. Any suggestions for uploading my work for general distribution? I'm thinking tarballs forwarded to you as private e-mail attachments is do-able for me.
---- rod.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sounds like you have been busy! BTW - the better place for this discussion would be the developers mailing list. You can join under lists. It is low traffic.
Yes, those pesky firewalls. I was able to get my IT department to open up SSH (port 22) for me for doing CVS at sourceforge. You are welcome to tarball the source to me as long as you let me know what version you started from. We could also try to figure out how the Patch feature of source forge works - perhaps you would upload the patch to SF and we would integrate into the main code base from there.
BTW - your html changes are checked into CVS.
I have been working on the encoding-decoding portion, and rewrote it entirely. However, integrating it touches a handful of files. I have been trying to get the server to be able to see itself.
Best Regards,
Steve
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Okay, I now have functional code that reads and writes XML formated data for initialization of the BACnet database. This code uses the open source package 'expat' for parsing the XML data file.
Also, I now have functional code that exports the BACnet database as a virtual filesystem, so any application that can open and read files on a linux filesystem can access the data in real-time. This functionality relies upon the open source package 'fuse', to provide the 'file system in userspace'. While this method of exporting data is fairly nice in terms of simplicity for the 'client' application, it is a major CPU hog if you want to use it to continuously poll for new data.
In response to that shortcoming, I also have developed code that exports the data using IPC message queues. A message is stuffed into the queue on each COV monitor received. This allows a client application to block pending receipt of new data, and turns out to be very efficient. A simple client application demonstrates all of the code required to hook up to the BACnet stack. This seems to address the wishes of one post in the 'feature-request' facility of sourceforge.
All of the code I've written is based on the 0.3.6 release, and I've modified the Makefile in ways that assume the user has the expat and fuse libraries installed. I really don't know how this assumption squares with the philosophy of the package, so I haven't uploaded anything to the CVS repository yet. If I was any good at writing Makefiles, I'd probably try to put in some kind of conditional building to either use the external library functionality, or not. I'm thinking maybe this should be a branch point in the evolution of the package, but I don't really know how that works, either.
I would like to get the code uploaded fairly soon, though.
Comments?
---- rod.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Steve: Not trying to disregard your suggestion of posting to the developers forum. I just thought it made sense to carry on the existing thread. I would have cross-posted if it was possible. Or is it?
---- rod.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not a problem with posting here - I would just rather have the developer stuff on the developer list, which is seen by more developers (unlike this forum which is only seen by people wandering by or by someone who selected the option to Monitor This Forum).
AFAIK, the only way to cross post is by replying to the monitored e-mail and changing the reply-to address But it wouldn't repost it to the forum.
You could have also created a feature request and assigned it to yourself, and commented on it. But it still doesn't bring all the developers in to comment on it (if that is your desire).
Best Regards,
Steve
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
HI
I am working on bacnet protocol. I am trying install bacnet protocol stack on my linux and also install bacnet simulator on the remote system [windows]and moniter the frames and packet flow using wireshark. but the thing is how do i start the communication? any commands that i need to type from command line!i am using Scada bacnet simulator on client[windows] and bacnet protocol stack on pc[server]. Any help pls
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Just to let people know what I've been adding to the project, in case someone is planning to duplicate my effort:
The ability to save the state of the device/object/property heirarchy to a text/XML file at shutdown. This is mostly complete, semi-tested.
The ability to save object properties and their respective values. This is somewhat complete. A few more days to any kind of general release.
Sometime fairly soon, the ability to read the XML file into the database at startup, reducing the considerable network activity and lengthy discovery process. Still contemplating what to do about changing configurations between runs. Welcome any advice about handling that or anything else I might bump into. I'd like the systemm to be able to enter the COV subscription state ASAP on startup. Also browsing for a toolkit for parsing/decoding XML in a clean way. I looked at libxml2; looks a bit complex. Suggestions anyone?
Hopefully...
Exporting the database via some form of virtual file system (similar to the /proc filesystem). Thanks to Steve for that idea. It will be a very clean fit for my own purpose and should be generally useful. Anyone know of a good tutorial/reference/toolkit for developing that sort of thing?
A bit of extra info to the HTTP interface, particularly status information as regards the state of the discovery process. Source code snippets for this are posted in another thread.
Note to Steve:
I have been modifying the 0.3.6 distribution. I hope there isn't much change in the way the device and object structures have been laid out in whatever revision you are at. I've added some structures to get the property lists associated with the owner objects.
My development environment is firewalled like crazy, and uploading to the Sourceforge CVS repository is difficult. Any suggestions for uploading my work for general distribution? I'm thinking tarballs forwarded to you as private e-mail attachments is do-able for me.
Hi Rod,
Sounds like you have been busy! BTW - the better place for this discussion would be the developers mailing list. You can join under lists. It is low traffic.
Yes, those pesky firewalls. I was able to get my IT department to open up SSH (port 22) for me for doing CVS at sourceforge. You are welcome to tarball the source to me as long as you let me know what version you started from. We could also try to figure out how the Patch feature of source forge works - perhaps you would upload the patch to SF and we would integrate into the main code base from there.
BTW - your html changes are checked into CVS.
I have been working on the encoding-decoding portion, and rewrote it entirely. However, integrating it touches a handful of files. I have been trying to get the server to be able to see itself.
Best Regards,
Steve
Okay, I now have functional code that reads and writes XML formated data for initialization of the BACnet database. This code uses the open source package 'expat' for parsing the XML data file.
Also, I now have functional code that exports the BACnet database as a virtual filesystem, so any application that can open and read files on a linux filesystem can access the data in real-time. This functionality relies upon the open source package 'fuse', to provide the 'file system in userspace'. While this method of exporting data is fairly nice in terms of simplicity for the 'client' application, it is a major CPU hog if you want to use it to continuously poll for new data.
In response to that shortcoming, I also have developed code that exports the data using IPC message queues. A message is stuffed into the queue on each COV monitor received. This allows a client application to block pending receipt of new data, and turns out to be very efficient. A simple client application demonstrates all of the code required to hook up to the BACnet stack. This seems to address the wishes of one post in the 'feature-request' facility of sourceforge.
All of the code I've written is based on the 0.3.6 release, and I've modified the Makefile in ways that assume the user has the expat and fuse libraries installed. I really don't know how this assumption squares with the philosophy of the package, so I haven't uploaded anything to the CVS repository yet. If I was any good at writing Makefiles, I'd probably try to put in some kind of conditional building to either use the external library functionality, or not. I'm thinking maybe this should be a branch point in the evolution of the package, but I don't really know how that works, either.
I would like to get the code uploaded fairly soon, though.
Comments?
Steve: Not trying to disregard your suggestion of posting to the developers forum. I just thought it made sense to carry on the existing thread. I would have cross-posted if it was possible. Or is it?
Hi Rod,
Not a problem with posting here - I would just rather have the developer stuff on the developer list, which is seen by more developers (unlike this forum which is only seen by people wandering by or by someone who selected the option to Monitor This Forum).
AFAIK, the only way to cross post is by replying to the monitored e-mail and changing the reply-to address But it wouldn't repost it to the forum.
You could have also created a feature request and assigned it to yourself, and commented on it. But it still doesn't bring all the developers in to comment on it (if that is your desire).
Best Regards,
Steve
HI
I am working on bacnet protocol. I am trying install bacnet protocol stack on my linux and also install bacnet simulator on the remote system [windows]and moniter the frames and packet flow using wireshark. but the thing is how do i start the communication? any commands that i need to type from command line!i am using Scada bacnet simulator on client[windows] and bacnet protocol stack on pc[server]. Any help pls
See bacnet-stack/bin/readme.txt for info on the command line demo tools.