I’m trying to write an application that reads data from serial port and sends it through GPRS to a remote server (I think it’s a tipical problem).
GPRS side is working correctly but now I’ve to implement a Serial Port side. I’m reading adl user guide to know how to read data from serial port.
In the documentation I see that I can read data using FCM or Open UART Interface and I don’t know which one use.
Can anybody write a comparison betwen this two methods to help me to choose one of them??
When using FCM, all data goes through OpenAt layer first and, generally, this is OK, but you have to monitor the switch between command and data modes.
With OpenUART, you are on your own – all you get is raw data. You will have to implement your own AT parser.
We use OpenUART because we do have our own AT parser and use of FCM caused us problems when some commands could not be overwritten and we had same AT command executed by OpenAT and us, sometimes with different results.
Thank you.
I’ve done my app using FCM wich was recomended before by awneil. It has all I need to do a simple application that reads data from serial port and sends it to a server via GPRS and check viability of my system.
I think OpenUART could be usefull to more complex versions of my system.
Thanks to awneil and rudolfl
When in OpenUART mode, OpenAT parser is inactive. In fact, whole UART is inactive as far as OpenAT is concerned. In order to use Open UART, one has to turn corresponding UART flow control OFF with AT+WMFM command.
And documentation is awful, you are right. Took me a while to get it working.
I was asking you to explain what you meant by, “use of FCM caused us problems when some commands could not be overwritten and we had same AT command executed by OpenAT”
Because, as I said, switching FCM to Data mode bypasses the AT Command processor - therefore you shouldn’t have any problems with the AT Command processor provided you have switched FCM to Data mode
We did not use FCM exclusively – only in data mode. We tried to re-define most AT commands and that did not work well.
In addition, we needed to fine control V.24 lines and look at things like framing errors, so we had to go OpenUART anyway.
I will not remember the details now – that was in R.71 firmware and we switched awhile ago.
We had some issues processing “+++” when in FCM mode. We also had some issues with overwriting certain commands in AT mode (ATD, ATQ, AT&W for example).
Well, that’s not quite “all” - it does also require that you are have at least a basic competence in ‘C’ programming, which seems to be the stumbling block here.