Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Direct link mode support #27

Open
rquilez opened this issue Aug 23, 2021 · 2 comments
Open

Direct link mode support #27

rquilez opened this issue Aug 23, 2021 · 2 comments
Labels
feature New functionality

Comments

@rquilez
Copy link

rquilez commented Aug 23, 2021

I have had in mind a cellular API for a long time and it has been a real pleasure to find this library. Thank you very much for your amazing work.

Are you planning to include the "direct link" mode in the library?

In order to obtain the maximum throughput of the modem, I was thinking myself in migrating from AT commands to write/read to "direct link" mode. It's a pity because I would also like to migrate to your lib implementation. Is there a reason it is not implemented?

@RobMeades
Copy link
Contributor

Thanks! I hope you find it useful.

Ref. direct link mode, I've not looked into it but I guess there's no reason for it not to be supported other than it just hasn't made it to the list yet. @hkro manages what order we do things in but I'll have a quick look to see how much effort it would be.

@RobMeades RobMeades added the feature New functionality label Aug 23, 2021
@RobMeades
Copy link
Contributor

RobMeades commented Aug 23, 2021

Had a very quick look and I guess direct link mode would be supported something like this:

  • Add an API uCellSockDirectLinkStart(int32_t cellHandle, int32_t sockHandle): this would put the whole cellular interface into direct link mode with the given socket. The AT parser would stop receiving characters on the UART port, leaving it for the application to handle. Any attempt to use a cellular API while direct mode is active should probably return a specific error code, e.g. U_CELL_ERROR_DIRECT_LINK_ACTIVE.
  • Add an API uCellSockDirectLinkStop(int32_t cellHandle): this would wait for 2 seconds, send the "+++" sequence to leave direct mode and then reconnect the AT parser once more, probably sending "AT" and waiting for "OK" to determine that it is done.
  • Should probably also add an API to configure the various direct link parameters.

Does that sound like the right approach? I can't give you a timescale for doing it right now, will need to discuss that internally, just wanted to check if this is what you were thinking of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New functionality
Projects
None yet
Development

No branches or pull requests

2 participants