You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(40) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(3) |
Feb
(2) |
Mar
(5) |
Apr
(7) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Greg H. <gho...@de...> - 2010-06-03 17:27:53
|
Hi David, This project isn't really an application, in that it doesn't do a particular job by itself. It was originally started as an open BACnet stack for people that were trying to implement BACnet communication into a product or piece of software. You probably should have a look at this project http://bacnet.sourceforge.net/ which superseded the original BACnet4Linux project. Greg --------------------------------------------------------- From: David Hirst Sent: Thu, 3 Jun 2010 09:52:27 -0700 Hi, Where can I get the documentation for this application ? Thanks David Hirst |
From: David H. <dh...@mi...> - 2010-06-03 16:52:35
|
Hi, Where can I get the documentation for this application ? Thanks David Hirst |
From: Steve K. <st...@ka...> - 2008-04-29 14:11:40
|
Hello Srikanth, > So please kindly let me know how to configure the code for a client and > server You will probably be better served by using the demo applications of the BACnet Stack at Sourceforge <http://bacnet.sourceforge.net/> as a starting point for your project. There are a dozen demo applications that include a server example, and 11 command line client examples. The demo applications can be built under Linux or Windows using a Makefile, and the project also includes additional demo projects for other embedded devices like ARM7 and Atmel AVR. The code was designed to be portable library with examples and runs on big or little endian architectures. There is a developer mailing list similar to this for development questions. Best Regards, Steve -- http://steve.kargs.net/ |
From: Srikanth S. <Sri...@Ln...> - 2008-04-29 13:44:03
|
Hi, I have downloaded the Bacnet stack for linux from sourceforge,net and executed the source and am able to get the bacnet access on a browser. But for my requirment i have two linux boards on which it requires Bacnet client and bacnet server on the other so that i dont use the browser to get the device information. So please kindly let me know how to configure the code for a client and server Thanks &Regards: Srikanth.soma Software Engineer L&T EmSyS, Mysore +919916120599 |
From: Coleman B. <col...@co...> - 2005-05-04 02:34:43
|
"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." Has this code been checked into the CVS? > -----Original Message----- > From: bac...@li... > [mailto:bac...@li...] On Behalf Of > Steve Karg > Sent: Tuesday, February 22, 2005 1:42 PM > To: bac...@li... > Subject: [Bacnet4linux-developer] RE: Stuff I've been working on > > Hi Rod, > > > Read and respond to this message at: > > https://sourceforge.net/forum/message.php?msg_id=3010049 > > By: thenbomr > > I'm posting this to the developer list so that other developers may see > it. > > > 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. > > Great! > > > 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. > > Great feature! So it might need to reside on a standalone server... > > > 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. > > Great! > > > 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. > > Regarding the makefile: since this project is getting more and more > dependencies, perhaps now it is time to start using autoconf/automake. > It has the features that you are looking for. > http://sources.redhat.com/autobook/ > > Regarding merging: we can try it. > > Regarding a branch or new project: I guess we need to see after we try > to merge. Quite a bit of the BACnet code will be common for most of the > projects, but some will be quite different. If you want to create a new > project for what you are doing, you can do that too, and we can copy the > stuff that we want from that code set into the main project. I have > been working on trying to make the code into a library of sorts, and > creating many little utilities using the library. > > Let me know what you want to do and I can guide you through it. > > Regarding philosophy: don't get me started on philosophy! > > I am looking forward to seeing this new stuff working! > > Best Regards, > > Steve > -- > http://www.kargs.net/ > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Bacnet4linux-developer mailing list > Bac...@li... > https://lists.sourceforge.net/lists/listinfo/bacnet4linux-developer |
From: Coleman B. <col...@co...> - 2005-04-19 01:51:33
|
Woody, kernel version 2.4.26. _____ From: bac...@li... [mailto:bac...@li...] On Behalf Of Dave Trepanier Sent: Monday, April 18, 2005 1:40 PM To: col...@co...; Bac...@li... Subject: Re: [Bacnet4linux-developer] single board computer Coleman, Which release of Debian (woody, sarge, sid) ??? Which kernel on your SBC ? Thanks, Dave ----- Original Message ----- From: col...@co... To: bac...@li... ; Bac...@li... Cc: Dave Trepanier <mailto:da...@in...> Sent: Wednesday, April 13, 2005 1:15 PM Subject: Re: [Bacnet4linux-developer] single board computer Hi Dave, I regularly use B4L on an SBC. One very similar to the soekris, actually. Have you looked at Pebble Linux at all? I've run it there too. I do all of my B4L development on Debian, so I'm sure it runs there. Coleman -------------- Original message -------------- Has anyone tried Bacnet4linux on an SBC like the soekris 4521 ? Does anyone see a problem of using Bacnet4linux with *BSD or Debian ?? Thanks, Dave |
From: Dave T. <da...@in...> - 2005-04-18 17:39:49
|
Coleman, Which release of Debian (woody, sarge, sid) ??? Which kernel on your SBC ? Thanks, Dave ----- Original Message -----=20 From: col...@co...=20 To: bac...@li... ; = Bac...@li...=20 Cc: Dave Trepanier=20 Sent: Wednesday, April 13, 2005 1:15 PM Subject: Re: [Bacnet4linux-developer] single board computer Hi Dave,=20 I regularly use B4L on an SBC. One very similar to the soekris, = actually. Have you looked at Pebble Linux at all? I've run it there = too. I do all of my B4L development on Debian, so I'm sure it runs there. Coleman -------------- Original message --------------=20 Has anyone tried Bacnet4linux on an SBC like the soekris 4521 ? Does anyone see a problem of using Bacnet4linux with *BSD or Debian = ?? Thanks, Dave |
From: Steve K. <st...@ka...> - 2005-04-13 18:29:11
|
Hi Dave, > Does anyone see a problem of using Bacnet4linux with *BSD or Debian ?? I run BACnet4Linux on my Debian (stable) servers and on my Debian (testing) desktop all on x86 and AMD. We have also had reports that it works on PowerPC based systems and tried to keep the encoding/decoding aware of endianness. I don't know much about the differences between Linux and BSD, but the only thing that might have issues would be the socket stuff, but I suspect it is fairly portable. Best Regards, Steve -- http://www.kargs.net/ |
From: Dave T. <da...@in...> - 2005-04-13 18:22:22
|
Thanks for the info. The soekris 4521 that I have already has NetBSD = installed, but I am thinking of going with Debian. ----- Original Message -----=20 From: col...@co...=20 To: bac...@li... ; = Bac...@li...=20 Cc: Dave Trepanier=20 Sent: Wednesday, April 13, 2005 1:15 PM Subject: Re: [Bacnet4linux-developer] single board computer Hi Dave,=20 I regularly use B4L on an SBC. One very similar to the soekris, = actually. Have you looked at Pebble Linux at all? I've run it there = too. I do all of my B4L development on Debian, so I'm sure it runs there. Coleman -------------- Original message --------------=20 Has anyone tried Bacnet4linux on an SBC like the soekris 4521 ? Does anyone see a problem of using Bacnet4linux with *BSD or Debian = ?? Thanks, Dave |
From: <col...@co...> - 2005-04-13 18:16:09
|
Hi Dave, I regularly use B4L on an SBC. One very similar to the soekris, actually. Have you looked at Pebble Linux at all? I've run it there too. I do all of my B4L development on Debian, so I'm sure it runs there. Coleman -------------- Original message -------------- Has anyone tried Bacnet4linux on an SBC like the soekris 4521 ? Does anyone see a problem of using Bacnet4linux with *BSD or Debian ?? Thanks, Dave |
From: Dave T. <da...@in...> - 2005-04-13 18:16:06
|
----- Original Message -----=20 From: Dave Trepanier=20 To: Bac...@li...=20 Sent: Wednesday, April 13, 2005 1:11 PM Subject: single board computer Has anyone tried Bacnet4linux on an SBC like the soekris 4521 ? Does anyone see a problem of using Bacnet4linux with *BSD or Debian ?? Thanks, Dave |
From: Dave T. <da...@in...> - 2005-04-13 18:10:40
|
Has anyone tried Bacnet4linux on an SBC like the soekris 4521 ? Does anyone see a problem of using Bacnet4linux with *BSD or Debian ?? Thanks, Dave |
From: Steve K. <st...@ka...> - 2005-03-12 16:08:53
|
Hi Coleman, > Isn't it true that if a device performs a time sync request then it's > considered a time master? TimeMaster was one of the functional profiles. If you claimed Time Master functional group, then you had to implement the list. I think it was deprecated in favor of BIBBs in Addendum D to the 135-1995 standard, and now there is TimeSync and UTCTimeSync BIBBs. In the 2004 version of the standard, Time Master is mentioned only 3 times and each alongside time-synchronization-recipients, but there is no definition or reference in the PICS to the Time Master, so this is most likely a holdout from the 1995 standard that has yet to be fixed in todays standard. Perhaps we should discuss it at the BTL or the next SSPC meeting, or put forth a proposal to eliminate the wording, or simply ask the SSPC for a clarification: what is a Time Master or what is definition of a time master? (but clarifications requests need to be answerable as YES or NO, so someone needs to do the research). > Yes, that's precisely what my design called for. The user tells my > widget to get it's time from external time source (assuming an Internet > connection), and my widget syncs its time with that source. Then every > 15 minutes (is this too often or not often enough? -- maybe > configurable) my widget performs a time sync for everyone in its > time-sync-recipient list (I'm implementing the BACnetAddress flavor). Configurable cycle time is preferable, IMHO. Best Regards, Steve -- http://kargs.net/ |
From: Coleman B. <col...@co...> - 2005-03-12 14:27:48
|
Hi Steve, > -----Original Message----- > From: bac...@li... > [mailto:bac...@li...] On Behalf Of > Steve Karg > Sent: Saturday, March 12, 2005 7:04 AM > To: bac...@li... > Subject: Re: [Bacnet4linux-developer] BACNet4Linux TimeSync > > Hi Coleman, > > > in the BSD headers. The current B/IP code has been working (send and > > receive!) like a clock for months now... > > Excellent! I will have to fix the bacnet4linux code soon, and yes, that > string copy caused me problems initially (seg faults) so I converted ALL > the bacnet4linux code to use the BSD IP address (struct in_addr ip;) as > address storage and not a string. I must have missed something else... That would have been the optimum solution, and probably easier on memory requirements. The strncpy is fairly prevalent now, in my version, so part of it is laziness on my part to go in and break it again and fix all those areas. :) I'll have to bite the bullet and do it, though. > > > A BACnet device isn't allowed to simply broadcast time-syncs. > > Well, actually it is allowed to broadcast time-syncs, provided it has a > broadcast address as one of the addresses in the list of recipients. > > > BACnet device *have* to contain a time-sync-recipient property and it > > must be writable. Even more than that, there are some bizarre rules > > with what can be written. However, Steve is right, it's implemented and > > works beautifully. > > You are right - the Time-Synchronization-Recipients property is required > if the PICS indicates that the device is a Time Master, and it is > required to be writable if implemented. > > Well, it should simply be a matter of implementing the list and handling > the write property services. You should be able to whip that code out > in 15-30 minutes, no? :-) > Isn't it true that if a device performs a time sync request then it's considered a time master? Funny you say that. I started implementing the write property service. The function is there with the beginnings of a parser. So, 15-20 minutes for *that* property! :-) > > What I had considered doing was letting my BACnet device receive it's > > time via NTP (ntpd???) and then have my BACnet stack broadcast TimeSync > > requests occasionally, say every 15-30 minutes. So, from my point of > > view (in the case of my current implementation), yes this is quite > > helpful. However, can't this be accomplished by the current NTP > > mechanisms? However, my device isn't a workstation. > > ntpdate/ntpd keeps the system clock updated, and can update other > devices via NTP. BACnet TimeSync would simply rely on the system clock > and update BACnet devices that are in its recipient list, or simply > update via global or local broadcast if that is in its recipient list. > Yes, that's precisely what my design called for. The user tells my widget to get it's time from external time source (assuming an Internet connection), and my widget syncs its time with that source. Then every 15 minutes (is this too often or not often enough? -- maybe configurable) my widget performs a time sync for everyone in its time-sync-recipient list (I'm implementing the BACnetAddress flavor). > Thanks for the update, Coleman, and for the insight! > > Best Regards, > > Steve > -- > http://kargs.net/ > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Bacnet4linux-developer mailing list > Bac...@li... > https://lists.sourceforge.net/lists/listinfo/bacnet4linux-developer |
From: Steve K. <st...@ka...> - 2005-03-12 12:04:33
|
Hi Coleman, > in the BSD headers. The current B/IP code has been working (send and > receive!) like a clock for months now... Excellent! I will have to fix the bacnet4linux code soon, and yes, that string copy caused me problems initially (seg faults) so I converted ALL the bacnet4linux code to use the BSD IP address (struct in_addr ip;) as address storage and not a string. I must have missed something else... > A BACnet device isn't allowed to simply broadcast time-syncs. Well, actually it is allowed to broadcast time-syncs, provided it has a broadcast address as one of the addresses in the list of recipients. > BACnet device *have* to contain a time-sync-recipient property and it > must be writable. Even more than that, there are some bizarre rules > with what can be written. However, Steve is right, it's implemented and > works beautifully. You are right - the Time-Synchronization-Recipients property is required if the PICS indicates that the device is a Time Master, and it is required to be writable if implemented. Well, it should simply be a matter of implementing the list and handling the write property services. You should be able to whip that code out in 15-30 minutes, no? :-) > What I had considered doing was letting my BACnet device receive it's > time via NTP (ntpd???) and then have my BACnet stack broadcast TimeSync > requests occasionally, say every 15-30 minutes. So, from my point of > view (in the case of my current implementation), yes this is quite > helpful. However, can't this be accomplished by the current NTP > mechanisms? However, my device isn't a workstation. ntpdate/ntpd keeps the system clock updated, and can update other devices via NTP. BACnet TimeSync would simply rely on the system clock and update BACnet devices that are in its recipient list, or simply update via global or local broadcast if that is in its recipient list. Thanks for the update, Coleman, and for the insight! Best Regards, Steve -- http://kargs.net/ |
From: Coleman B. <col...@co...> - 2005-03-11 20:43:26
|
Welcome! RE: BACnet/IP There were some bugs in the original code I checked in. Actually, a pretty silly one was causing the original B/IP code to not work 100% of the time, the IPLEN variable was calculated incorrectly. It worked for addresses like 192.168.1.14, but not 172.62.1.14. This had a direct effect on broadcasts. This is before I knew about the other definition in the BSD headers. The current B/IP code has been working (send and receive!) like a clock for months now... It's actually a strncpy(npdu->dest_ip, Local_Broadcast_Address, IPLEN) type of problem. If the IPLEN variable is wrong, dest_ip didn't contain the full bcast address. RE: Time-Sync A BACnet device isn't allowed to simply broadcast time-syncs. Unfortunately, this is how the current implementation of B4L works. BACnet device *have* to contain a time-sync-recipient property and it must be writable. Even more than that, there are some bizarre rules with what can be written. However, Steve is right, it's implemented and works beautifully. What I had considered doing was letting my BACnet device receive it's time via NTP (ntpd???) and then have my BACnet stack broadcast TimeSync requests occasionally, say every 15-30 minutes. So, from my point of view (in the case of my current implementation), yes this is quite helpful. However, can't this be accomplished by the current NTP mechanisms? However, my device isn't a workstation. Coleman > -----Original Message----- > From: bac...@li... > [mailto:bac...@li...] On Behalf Of > Steve Karg > Sent: Thursday, March 10, 2005 10:51 AM > To: bac...@li... > Subject: [Bacnet4linux-developer] BACNet4Linux TimeSync > > Hello Heiko, > > You have been added to our developer list. Welcome! > > >>> For this we are using NTP (the Network Time Protocol) and when some > >>> customer told me about BACNet today, I wanted to find out how a > >>> BACNet network dealing with time synchronization. > >> > >> You are at the right place! > >> > > That's good :-) I am not quite sure about the market chances we have > > with such a device. What do you think, could a native BACnet UTC time > > source be of interest to end users of this system? And, what do you > > think about the market shares of BACnet in the Building Automation > > market? I heard of something called LONWorks which looks like a > > competiting system and cannot really determine at the moment which > > system is the most wanted in the BA world.. > > Yes, LON is the competition. BACnet is the better system :-) > > >>> Can you shed some light on this for me? I would like to find out if > >>> it would make sense to add BACNet support to our time servers which > >>> then could be used in a BACNet installation. Because they are > >>> stand-alone appliances, the time synchronization could be taken off > >>> the shoulders of the workstation and this could add stability and > >>> (maybe accuracy, too) to the time base of such a network. For this it > >>> would probably make sense to use your BACNet4Linux and add support > >>> the four BIBBs I mentioned earlier. > >> > >> It should be trivial to add BACnet support for TimeSync and > >> UTCTimeSync under Linux using the BACnet4Linux code as a baseline. In > >> fact, we already have support for TimeSync in the core code. You > >> would probably want to strip out some things, like the HTML and the > >> query new device code. > >> > > That would make sense. I did not look into your code but I guess it is > > possible. > > > >> Also, to be a good BACnet citizen, you need to have a BACnet Device > >> Object with a unique BACnet ID. The current code has this using > >> command line parameters when starting the daemon. > >> > > That's something we have to ask for someone I guess. > > It's really just a matter of configuration. The unique BACnet ID is > just like an IP address in that it is unique on the LAN and needs to be > configured in the device. There is also a special BACnet address that > acts like a DHCP kind of thing. > > If you are going forward to making a BACnet device, you would also get a > unique Vendor ID, which is free. A link to the request form is at: > http://www.bacnet.org/VendorID/ > > >> The BACnet Ethernet layer is working well, but the BACnet/IP layers > >> needs a little attention. > >> > > Can you specify "needs a little attention" ? :) > > With the current code base, BACnet/IP seems to send out messages, but I > couldn't get it to receive any messages (when I disable the BACnet > Ethernet layer). Coleman swears that it used to work, and also has > given me his latest code which he says works, but I haven't taken the > time to compare the two to find out why the current BACnet4Linux > BACnet/IP is not receiving (or possibly not sending with the right > network layer data). > > >> The UTCTimeSync would need to be added, but it should be trivial as it > >> would mostly be a copy/paste from the TimeSync function. > >> > >> Most of the time the TimeSync is sent out as a global or local > >> broadcast, but occasionally it is sent out as unicast to a specific > >> device. Our current code only has the broadcast. There is a time > >> sync reception list in the Device Object, which can contain a > >> broadcast address or the address of a specific device, and can be > >> writeable. I don't think we have that list in our current code. > >> > > How does this work? A "-B" device tells the "-A" device that it wants to > > receive unicast time synchronization messages at a specific interval? Or > > on request? Or is the -A device responsible for querying the network and > > finding devices which need TS messages in unicast form? > > Usually the specific interval is a configuration issue and doesn't come > from an A or B side device. But it is possible to have a writeable > recipient list where the B side device requests to be added to the list. > In the Lithonia Lighting BACnet device, I have the list configured to > send out local or global broadcast of time sync at a specific interval > if it is enabled. But since that list is not writeable, I don't even > support the recipient list property of the device object. > > Coleman has been doing some work with the > time-synchronization-recipients property lately. Perhaps he can chime in. > > Best Regards, > > Steve > -- > http://www.kargs.net/ > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Bacnet4linux-developer mailing list > Bac...@li... > https://lists.sourceforge.net/lists/listinfo/bacnet4linux-developer |
From: Steve K. <sk...@us...> - 2005-03-10 15:51:35
|
Hello Heiko, You have been added to our developer list. Welcome! >>> For this we are using NTP (the Network Time Protocol) and when some >>> customer told me about BACNet today, I wanted to find out how a >>> BACNet network dealing with time synchronization. >> >> You are at the right place! >> > That's good :-) I am not quite sure about the market chances we have > with such a device. What do you think, could a native BACnet UTC time > source be of interest to end users of this system? And, what do you > think about the market shares of BACnet in the Building Automation > market? I heard of something called LONWorks which looks like a > competiting system and cannot really determine at the moment which > system is the most wanted in the BA world.. Yes, LON is the competition. BACnet is the better system :-) >>> Can you shed some light on this for me? I would like to find out if >>> it would make sense to add BACNet support to our time servers which >>> then could be used in a BACNet installation. Because they are >>> stand-alone appliances, the time synchronization could be taken off >>> the shoulders of the workstation and this could add stability and >>> (maybe accuracy, too) to the time base of such a network. For this it >>> would probably make sense to use your BACNet4Linux and add support >>> the four BIBBs I mentioned earlier. >> >> It should be trivial to add BACnet support for TimeSync and >> UTCTimeSync under Linux using the BACnet4Linux code as a baseline. In >> fact, we already have support for TimeSync in the core code. You >> would probably want to strip out some things, like the HTML and the >> query new device code. >> > That would make sense. I did not look into your code but I guess it is > possible. > >> Also, to be a good BACnet citizen, you need to have a BACnet Device >> Object with a unique BACnet ID. The current code has this using >> command line parameters when starting the daemon. >> > That's something we have to ask for someone I guess. It's really just a matter of configuration. The unique BACnet ID is just like an IP address in that it is unique on the LAN and needs to be configured in the device. There is also a special BACnet address that acts like a DHCP kind of thing. If you are going forward to making a BACnet device, you would also get a unique Vendor ID, which is free. A link to the request form is at: http://www.bacnet.org/VendorID/ >> The BACnet Ethernet layer is working well, but the BACnet/IP layers >> needs a little attention. >> > Can you specify "needs a little attention" ? :) With the current code base, BACnet/IP seems to send out messages, but I couldn't get it to receive any messages (when I disable the BACnet Ethernet layer). Coleman swears that it used to work, and also has given me his latest code which he says works, but I haven't taken the time to compare the two to find out why the current BACnet4Linux BACnet/IP is not receiving (or possibly not sending with the right network layer data). >> The UTCTimeSync would need to be added, but it should be trivial as it >> would mostly be a copy/paste from the TimeSync function. >> >> Most of the time the TimeSync is sent out as a global or local >> broadcast, but occasionally it is sent out as unicast to a specific >> device. Our current code only has the broadcast. There is a time >> sync reception list in the Device Object, which can contain a >> broadcast address or the address of a specific device, and can be >> writeable. I don't think we have that list in our current code. >> > How does this work? A "-B" device tells the "-A" device that it wants to > receive unicast time synchronization messages at a specific interval? Or > on request? Or is the -A device responsible for querying the network and > finding devices which need TS messages in unicast form? Usually the specific interval is a configuration issue and doesn't come from an A or B side device. But it is possible to have a writeable recipient list where the B side device requests to be added to the list. In the Lithonia Lighting BACnet device, I have the list configured to send out local or global broadcast of time sync at a specific interval if it is enabled. But since that list is not writeable, I don't even support the recipient list property of the device object. Coleman has been doing some work with the time-synchronization-recipients property lately. Perhaps he can chime in. Best Regards, Steve -- http://www.kargs.net/ |
From: <col...@co...> - 2005-02-23 04:29:42
|
Wow, sounds like great stuff Rod! Would you mind sending me a tarball of your current snapshot? I'd love to see the virtual filesystem stuff. Unfortunately, it sounds like too much overhead for my embedded application, though. I'd like to join in where possible. Coleman -------------- Original message -------------- > Hi Rod, > > > Read and respond to this message at: > > https://sourceforge.net/forum/message.php?msg_id=3010049 > > By: thenbomr > > I'm posting this to the developer list so that other developers may see it. > > > 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. > > Great! > > > 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. > > Great feature! So it might need to reside on a standalone server... > > > 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. > > Great! > > > 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. > > Regarding the makefile: since this project is getting more and more > dependencies, perhaps now it is time to start using autoconf/automake. > It has the features that you are looking for. > http://sources.redhat.com/autobook/ > > Regarding merging: we can try it. > > Regarding a branch or new project: I guess we need to see after we try > to merge. Quite a bit of the BACnet code will be common for most of the > projects, but some will be quite different. If you want to create a new > project for what you are doing, you can do that too, and we can copy the > stuff that we want from that code set into the main project. I have > been working on trying to make the code into a library of sorts, and > creating many little utilities using the library. > > Let me know what you want to do and I can guide you through it. > > Regarding philosophy: don't get me started on philosophy! > > I am looking forward to seeing this new stuff working! > > Best Regards, > > Steve > -- > http://www.kargs.net/ > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Bacnet4linux-developer mailing list > Bac...@li... > https://lists.sourceforge.net/lists/listinfo/bacnet4linux-developer |
From: Steve K. <st...@ka...> - 2005-02-22 18:42:47
|
Hi Rod, > Read and respond to this message at: > https://sourceforge.net/forum/message.php?msg_id=3010049 > By: thenbomr I'm posting this to the developer list so that other developers may see it. > 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. Great! > 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. Great feature! So it might need to reside on a standalone server... > 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. Great! > 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. Regarding the makefile: since this project is getting more and more dependencies, perhaps now it is time to start using autoconf/automake. It has the features that you are looking for. http://sources.redhat.com/autobook/ Regarding merging: we can try it. Regarding a branch or new project: I guess we need to see after we try to merge. Quite a bit of the BACnet code will be common for most of the projects, but some will be quite different. If you want to create a new project for what you are doing, you can do that too, and we can copy the stuff that we want from that code set into the main project. I have been working on trying to make the code into a library of sorts, and creating many little utilities using the library. Let me know what you want to do and I can guide you through it. Regarding philosophy: don't get me started on philosophy! I am looking forward to seeing this new stuff working! Best Regards, Steve -- http://www.kargs.net/ |
From: Steve K. <st...@ka...> - 2005-01-08 18:14:19
|
Hi Coleman, >>Okay. I suppose that we need to think about making the rest of the code >>thread safe, which it currently is not (i.e. globals and function static >>variables). > > I already did some of that. My code is so different from what's in Sourcesafe > that I should probably create another dev tree. How would I do that? Well, you did it once with the MS/TP checkin ;-) Perhaps just use CVS and import the new project. bacnet-mt or something. Perhaps someday we can collaborate on the work and the core files, but until then multiple projects might be the way to go. I would be interested in seeing your router code someday. Did you see the new project that Joel created on SourceForge for routing? http://sourceforge.net/projects/bfr/ > You hit the nail on the head (as always). Tags sound like the way to go. > > However, my level of confusion grows exponentially when I start trying to > understand tags as they're described in the BACnet spec. Can you (or is > there a tutorial or something) help be better understand them? bacdcode.c has some information about data type tags, but it all came from the BACnet Standard, clause 20, Encoding BACnet Protocol Data Units. When trying to figure out how to encode or decode a message, that is the clause that I go to. There is another document, "Understanding BACnet Encoding," on the BACnet.org site that talks about tags and other low level details: ftp://ftp.bacnet.org/Encoding.doc Best Regards, Steve PS: I am sending this along to the developers list. -- http://kargs.net/ |
From: Steve K. <st...@ka...> - 2005-01-08 15:51:22
|
Hi Ronald, > in your last e-mail you told me that you are working on getting the > objects into structures. How many work is done for that until now? I have not done much work getting the objects into structures. I have mostly been getting the existing services working correctly with generic encode/decode functions and removing the hard-coding, trying to make the core functionaly very stable. > Another point I would like to discuss is how the objects can be accessed > from other processes. The background is that we want to implement the > stack into a server device, which has quite a number of different > objects not only the device object the bacnet4linux stack currently has. > Did you already thought about the interface and how the objects present > value can be updated from other processes? Maybe we can add an open > interface that it is application dependend if a database is used or any > other storage mechanism? > Maybe you have any good idea for that. Several of the developers have discussed ideas for the outside interface to bacnet4linux. One idea was using it for shell scripting, which would allow scripting of tests over the BACnet network. This would most likely be stdio and argv/argc kind of API stuff (command line). Another idea for an API is a general library that someone can use to create their server device or their client device. The other idea is that this stack runs and fills a data store (RAM, file, or database) and the data can be read from and certain properties written to that data store, using database, virtual filesystem, or webservices. The BACnet committee recently proposed and sent to public review the BACnet WebServices portion of the standard (and we just got back a bunch of review comments to review at the meeting in Orlando). Maybe that is something that will be a good interface specification for this project. ftp://ftp.bacnet.org/Add-135-2004c-PR1-draft.pdf > I'm just working on implementing event notification, but this will > require also a more detailed object representation and some more object > states so your work to get all the objects into structures is highly > welcome. By the way I saw that there is also a feature request for that > event notification. I hadn't seen that feature request yet. Feature requests are a great way to drive development. A developer sitting at their computer on a Saturday looks at the feature request list or bug report and says to himself or herself, "I can do it!" and signs up for it and does it. You are welcome to sign up for the event notification feature. I am currently working on the command line interface feature so that I can try some scripting, and so I can drive the partitioning of bacnet4linux into a library. Best Regards, Steve P.S. I signed you up on the developer mailing list, and posted this to the developer mailing list so that the developers can see what is being discussed. If that is a problem, you are welcome to unsubscribe and accept my apologies. -- http://kargs.net/ |
From: Steve K. <st...@ka...> - 2005-01-08 15:09:19
|
Hi Coleman, > I'm working on getting the read_property function to be a > blocking call in B4L. I've accomplished this using > threads (the mechanism to receive data is multi-threaded > now instead of the select() in the main loop). So, I > accomplished the blocking mechanism using condition > variables. Okay. I suppose that we need to think about making the rest of the code thread safe, which it currently is not (i.e. globals and function static variables). > So, here's what happens now. When read_property is > called, it blocks until the condition variable gets set by > receive_readpropertyACK. It only blocks for the APDU > Timeout. So, it either gets an ACK or times out. > > What I'm thinking of doing is making a common structure > that gets initialized and allocated by read_property and > filled by receive_readpropertyACK. Do you have any > suggestions as to what should go into this function? > > So far, I have the easy stuff: object-id, property-id, > device-id, datatype, and value. The problem with this > approach though is accounting for things like complex > types (recipient-list comes to mind). Do you have any > ideas on this? So what you are saying is having something like: char *pReadPropertyResult; // memory allocated by service pReadPropertyResult = ReadProperty(device_instance, object_type, object_instance, property_identifer, property_index); if (pReadPropertyResult) { PrintServiceInfo(pReadPropertyResult); free(pServiceInfo); } The pReadPropertyResult could be: * The raw data returned by the ReadProperty service (Object Identifier, Property Identifier, Property Array Index, Property Value) * Above with just the Property value as the raw data * Has object-id, property-id, datatype, and value (and perhaps number of values in the case of a list). The value portion could be stored as raw data, and we can create decoding functions that can be used based on datatype. The problem, as you say, comes in for complex datatypes. Perhaps turning the existing primitive datatype tags into enumerations, and adding the complex types based on their tags (they are unique, aren't they?). So instead of datatype, store the tag (which is really the datatype) and includes the complex datatypes. If the value is raw, than you can have a function that returns the datatype, and other functions that decode the raw data for each data type. Best Regards, Steve -- http://kargs.net/ |
From: Jimmy R. <jri...@sa...> - 2004-07-09 01:33:27
|
A thousand pardons for the ludicrous delay. All my stuff runs at 38400 so I'm gonna have to change that around. Also, I'm running on /dev/ttyS3; do I change the tty_ldisc.num from 0 to 3 to change that? Or am I still stuck in a user-space paradigm by even asking that question? :) I've got the 485 working and the LKM loads and runs, so that's all good so far. Now just gotta get it communicating. ----- Jimmy Rimmer http://www.rimbosity.com/ |
From: Jimmy R. <jr...@al...> - 2004-06-29 02:39:09
|
I should have actual working hardware to test with tomorrow morning. :) I don't want to use the other guy's hardware, because there's a chance he'll finish the quick-fix version he's working on before I finish my somewhat-more-permanent-fix version. On Jun 28, 2004, at 7:08 PM, Coleman Brumley wrote: > Any luck with the MS/TP kernel mod? > ----- Jimmy Rimmer http://www.rimbosity.com/ |
From: Coleman B. <col...@co...> - 2004-06-29 02:10:56
|
D'oh! I assumed you meant MS/TP <-> IP! Any luck with the MS/TP kernel mod? > -----Original Message----- > From: bac...@li... > [mailto:bac...@li...] On Behalf Of > Jimmy Rimmer > Sent: Monday, June 28, 2004 5:46 PM > To: bac...@li... > Subject: Re: [Bacnet4linux-developer] MS/TP Bridge? > > I just realized that an MS/TP-to-MS/TP bridge is a silly idea, unless > you're trying to do what we're trying to do. :) > > > On Jun 28, 2004, at 2:21 PM, Jimmy Rimmer wrote: > > > As far as I can tell, the BACnet standard doesn't define what an MS/TP > > bridge should look like. It defines repeaters and routers just fine > > (well, that's debatable), but not bridges. > > > > Anyone tried this or thought about it? > > > > ----- > > Jimmy Rimmer > > http://www.rimbosity.com/ > > > > > > > > ------------------------------------------------------- > > This SF.Net email sponsored by Black Hat Briefings & Training. > > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital > > self defense, top technical experts, no vendor pitches, unmatched > > networking opportunities. Visit www.blackhat.com > > _______________________________________________ > > Bacnet4linux-developer mailing list > > Bac...@li... > > https://lists.sourceforge.net/lists/listinfo/bacnet4linux-developer > > > > > ----- > Jimmy Rimmer > http://www.rimbosity.com/ > > > > ------------------------------------------------------- > This SF.Net email sponsored by Black Hat Briefings & Training. > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - > digital self defense, top technical experts, no vendor pitches, > unmatched networking opportunities. Visit www.blackhat.com > _______________________________________________ > Bacnet4linux-developer mailing list > Bac...@li... > https://lists.sourceforge.net/lists/listinfo/bacnet4linux-developer |