This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

S130 Device manager for both central and peripheral connection at the same time

Here is a little background.

I have been developing a product based on the S130. I used the device manager from the S120 device since version 0.9 alpha. I was able to build it and make it run and connect as central and peripheral. Running central connected to another S110 device and running as peripheral connected to MCP.

When I started to have both device connected together I started noticing problem. So two device would connect and only last device connected would receive new data. Also when the S130 is connected to the iPhone it does not retain pairing information and it alway ask to pair new device again.

It seem to me that there is very little difference int he way device manager work between central and peripheral.

Then S130 version 1.0 came out and this seem to be a know issue.

  • Device Manager is not supported in multirole S130 operation.
    • Device Manager works in peripheral or central only operation on S130. This must be decided at compile time.

So I wanted to ask the experts here a few questions regarding this before I proceed.

  • Is my assumption correct about the few key difference in central and peripheral device manager?
  • Is it at all possible to have a device manager that is able to do concurrent peripheral and central connection?
  • Assuming it is at all possible would it just be making device manager work in a way that it figures out what the connection is and act accordingly?
  • Assuming it is possible, could you give a guidance to the direction needed. Right now I am thinking:
    • Merging the files together to in one file with the functions that are different.
    • Since looking at the SDK documentation the dm_handle_t does have connection.role status. I would just have to make it so that if it is a peripheral follow the current peripheral implementation and if it is central then follow the current central implementation.

Before I starts to do anything I wanted to make sure that it is possible.

Thank you.

Parents
  • Hi Chaiwat,

    Ofcourse it is possible to make the device manager work in multirole way depending on the role of the connection in the way you mentioned. This is most probably be the next thing to be done by the SDK team (timeline unknown), that is to make device manager support S130 multirole.

    That is also the main reason we give the SDK code away so that when your needs are ahead of our releases, then you can modify it to your needs. Again to answer your question, you should be able to achieve it by calling the right functions depending on the role within the dm_handle_t. Some state handling might be required to be handled in addition to that.

Reply
  • Hi Chaiwat,

    Ofcourse it is possible to make the device manager work in multirole way depending on the role of the connection in the way you mentioned. This is most probably be the next thing to be done by the SDK team (timeline unknown), that is to make device manager support S130 multirole.

    That is also the main reason we give the SDK code away so that when your needs are ahead of our releases, then you can modify it to your needs. Again to answer your question, you should be able to achieve it by calling the right functions depending on the role within the dm_handle_t. Some state handling might be required to be handled in addition to that.

Children
Related