This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linking 1 ED to 2 EDs

Other Parts Discussed in Thread: SIMPLICITI

Hi,

I have a setup with 3 end-devices which I want to connect peer-to-peer.

Device A address = 90 00 00 00

Device B address = 80 00 00 00

Device C address = 80 00 00 01

I need A to be connected to B and C. When A is connected to B or C it will send a message and wait for a response.

I switched on B and C (both calls SMPL_LinkListen())

I switched on A (calls SMPL_Link())

From the packet sniffer, I can see that A and B is linked. However the message is sent to C, and C replied!

Is it possible to send a message to a device which is not linked? Is it possible the packet sniffer missed some packets?

How would you suggest I setup such a connection where I can connect to both devices?

Best regards,

Alvin

P.S. I attached the packet sniffer log for your reference.8780.3peers.psd

  • Hi Alvin,

    I dont use links in project for communication and I cannot open your Screenshot. However as far as I know linker device sends a link request to the link listen device. The linkListen device sends a confirmation, which the linker receives. This establishes the link. But you got 2 devices that listen at the same time and both send their link reply packet. So if the linker sends no confirmation then both listener assume that they are linked to A, but the linker processes only 1 reply packet, which would be C in this case.

    You could solve this by giving B and C the same address, this way both devices process the message by A. However B and C cannot communicate anymore then and you have to add a bit to the application packet to determine if B or C sent the message.

    You could also use broadcasts, then you can skip the link/linklisten part, but you have to process all messages on all devices then.

  • Hi Mark,

    Thank you for your reply.

    I need each device to have a unique address. I found that by making sure B and C does not listen at the same time I'm able to connect to A.

    I'm evaluating your suggestion on using broadcast. With these inputs I should be able to resolve my problem.

    Have a good day :-)

    Alvin

     

     

  • So it's not possible to set both B and C for LinkListen, and then link to both with Link on A?  Even if they all have unique addresses?

  • SimpliciTI can handle the case that one device sends a link request although the receiver device added this connection already in its connection table. The device just sends a linkreply back without adding it again to the table.

     

    You probably have to do the linklisten proccess twice on B/C and link twice on A, then you can be sure that B and C are linked with A.

  • What about the opposite scenario?  Device A linklistens, and B and C both try to link?  I'm guessing the first link attempt will succeed, and then A will stop listening and the second link attempt will fail?

  • Yes, but then the device that failed to link knows it and will just keep on trying to link if you put it in a loop.

    Device A has to linklisten until it worked twice.