Disabling RTC and CTS flow control

This sounds like a simple question, but somehow my Wavecom WMP50 processor is not behaving a I expect.

I am trying to disable CTS and RTS. If I issue the command “AT+IFC=0,0” from the command line, this does the trick perfectly.

However when I try to do it from within an OpenAT command using adl_atCmdCreate then it simply does not work. I also issue the command at+ifc?" from within my program and this responds with “+IFC: 3,3” which does not even seem to be documented anywhere what this means.

So please, if anyone knows what “+IFC: 3,3” means and have some advise on how to issue the command AT+IFC=0,0" successfully, I would be very greatfull.

Just for completeness sake… here is the code I used which does not work:

void SwitchOffHandshaking(void)
{
    CheckIFC();
}

void CheckIFC()
{
	  adl_atCmdCreate ("at+ifc?", FALSE, CheckIFChandler, "*", NULL);
}

bool SetIFChandler(adl_atResponse_t * paras)
{

	CheckIFC();
	return TRUE;
}

bool CheckIFChandler (adl_atResponse_t * paras)
{
   s32 slResult;
  if (strstr((ascii*)paras->StrData,"+IFC: 0,0")==NULL)
  {
	    slResult = adl_atCmdCreate("AT+IFC=0,0", FALSE, SetIFChandler, "*", NULL);
	    if (slResult != OK)
	    {
	        debugPrintf(uri, "Cannot switch off handshaking");
	        return(ERROR);
	    }
  }

  return TRUE;
}

Just for info sake… I received confirmation from Wavecom that this is a bug in their firmware and that they were able to reproduce the problem. Unfortunately there is no work-around. They are working on a fix asap.

In case it affects you as well… I noticed the problem in firmware release R73_00gg.WMP50 and R73a00gg.WMP50.

Two possible workarounds:

  1. Use a hardware loopback;
  2. Disable flow control “manually” before starting the application.

Thanks awneil

Yes, the first option is not really feasible. This is a finished designed product ready for manufacturing.

I am aware of second option, but what was meant with “no work-arounds” meant no work-arounds doing it programmatically from within an OpenAT application. It is in theory possible to issue the “at+ifc=0,0;&w” command during manufacturing, but it involves extra steps in the manufacturing process and I would prefer to avoid it due to some risks it imposes. One of the risks for example is that if you ever do a restore to factory defaults, then you could end up with dead untis in the field. Not a nice thought.

Our manufacuter boxes and seals the product and sends it directly to our customer, so there is no chance to do it once the product is boxed.