Replies: 3 comments
-
@schmida2 I like this overall idea of auto addressing scheme described above. I'd like to suggest some changes as below: First CP sends osdp_MFG(AUTO_ADDR) to the broadcast address 0x7F (all PDs will receive and process this according to the specification), each PD that understands this scheme has to respond with osdp_MFGREP(PD_UUID). The CP collects all PD UUIDs and then assigns a PD address for each of them. Then send another command again to the broadcast address with osdp_MFG(PD_ID_ALLOC, UUID_1 <=> PD_ID_1, UUID_1 <=> PD_ID_1, UUID_2 <=> PD_ID_2, ...). Each PD that understands this scheme will look for it's UUID in the list of UUID returned by the CP to extract it's new address and from then on, it identifies itself with that address. With the newly assigned address, PD responds to osdp_MFG(PD_ID_ALLOC) with a osdp_MFG(PD_ADDR_CONFIRM, UUID). This way, the CP knows that the right PD got the message and took ownership of the address that it intended to assign it. In essence, a network with 4 PDs, the command exchange would look like this: Transaction 1: Transaction 2: (ALL PDs have their IDs now) Other design notes/considerations:
|
Beta Was this translation helpful? Give feedback.
-
@sidcha thanks for creating this issue for discussion the OSDP auto addressing idea. I believe your point
is a critical one:
For the latter point I will come up with a proposal revision 2 without using broadcasts (reviewing inhouse at the moment). We ran extensive simulations of the auto addressing algorithm and now we try to get the following flow working with libosdp. Items in red color are potential changes for the libosdp.
|
Beta Was this translation helpful? Give feedback.
-
Sorry for keeping you waiting for the Revision 2 of the OSDP auto addressing concept. Here it is: , and it is in line with the sequence diagram I posted on May 10. |
Beta Was this translation helpful? Give feedback.
-
@schmida2, has put some effort into adding an extension for OSDP auto addressing (see proposal). This issue will track the discussion made in this topic and how it can be integrated into this project without breaking other compatibility to PDs that don't support this extension.
Beta Was this translation helpful? Give feedback.
All reactions