[hcflinux] Re: [hylafax-devel] Re: HCF driver with Hylafax

Marc Boucher marc at mbsi.ca
Sat Jun 1 17:04:16 EDT 2002


Please disregard this patch; the HCF driver has been changed not to generate
such prefixes for AT+F commands.

Marc

On Wed, May 29, 2002 at 07:43:17AM -0400, Marc Boucher wrote:
> Hi Lee,
> 
> On Wed, May 29, 2002 at 12:37:17AM -0700, Lee Howard wrote:
> > On 2002.05.28 22:15 Marc Boucher wrote:
> > >On Wed, May 29, 2002 at 12:56:26AM -0400, Alok K. Dhir wrote:
> > 
> > >> AT+FCLASS=?
> > >> +FCLASS:(0,1,1.0)
> > 
> > >faxaddmodem is confused by the +FCLASS: prefix in the modem's response;
> > >that's easy to fix (see patch below)
> > 
> > >--- faxaddmodem.ORIG	Wed May 29 01:01:55 2002
> > >+++ faxaddmodem	Wed May 29 01:08:46 2002
> > >@@ -1178,7 +1178,7 @@
> > > echo ""
> > > if [ "$RESULT" = "OK" ]; then
> > >     # Looks like a Class 1, 2, or 2.0 modem, get more information
> > >-    case "`echo $RESPONSE | $SED -e 's/[()]//g'`" in
> > >+    case "`echo $RESPONSE | $SED -e 's/\+FCLASS://' -e 's/[()]//g'`" in
> > >     1)			configureClass1Modem;;
> > >     2)			configureClass2Modem;;
> > >     2.0)		configureClass2dot0Modem;;
> > 
> > This section of code changed in HylaFAX CVS last week with the initial 
> > Class 2.1 support.  The particular usage of sed has not changed, but the 
> > manner in which the response is parsed has changed, and in this case 
> > HylaFAX CVS (to eventually become 4.1.3) will work just fine with the 
> > "+FCLASS:(0,1,1.0)" response to AT+FCLASS=?.  It would not have worked if 
> > the response were "+FCLASS:(1,1.0)".
> 
> Yes, I saw these changes in CVS just after sending the email. :-)
> 
> > Note, however, that if the HCF driver follows this pattern of reporting, 
> > i.e.:
> > 
> > AT+FTM=?
> > +FTM:(3,24,48,72,73,74,96,97,98,121,122,145,146)
> > 
> > that there will be further problems, and if it doesn't continue the 
> > pattern of reporting, then the exception in the case of +FCLASS=? seems 
> > unfortunate.
> 
> It does continue with this pattern. The patch below (against CVS)
> implements a workaround for the problem in the places where I have hit
> it until now (presently facing other blocking points due to HCF driver
> issues which I'm working to solve..).
> 
> Regards
> Marc
> 
> 
> --- faxd/Class1.c++	2002/05/29 07:20:38	1.1
> +++ faxd/Class1.c++	2002/05/29 07:30:43
> @@ -904,6 +904,7 @@
>  Class1Modem::parseQuery(const char* cp, Class1Cap caps[])
>  {
>      bool bracket = false, first = true;
> +	char *cp2;
>      
>      while (cp[0]) {
>  	if (cp[0] == SPACE) {		// ignore white space
> @@ -911,6 +912,13 @@
>  	    continue;
>  	}
>  
> +		/* some modems, such as Conexant HCF include the original +CMD:
> +		 * as prefix in the response; ignore it -marc at mbsi.ca
> +		 */
> +        if (cp[0]=='+' && first && (cp2 = strchr(cp, ':'))) {
> +			cp = cp2 + 1;
> +		}
> +
>          /* by a.pogoda at web.de, jan 21st 2002
>           * workaround for modems sending (<item>,<item>,...), i.e. 
>           * enclosed in brackets rather than just <item>,<item>,...
> --- faxd/ClassModem.c++	2002/05/29 07:28:24	1.1
> +++ faxd/ClassModem.c++	2002/05/29 07:31:09
> @@ -1057,6 +1057,15 @@
>      while (nargs-- > 0) {
>  	while (cp[0] == SPACE)
>  	    cp++;
> +
> +	/* some modems, such as Conexant HCF include the original +FCLASS:
> +	 * as prefix in the response; ignore it -marc at mbsi.ca
> +	 */
> +	char *cp2;
> +	if (cp[0]=='+' && (cp2 = strchr(cp, ':'))) {
> +		cp = cp2 + 1;
> +	}
> +
>  	char matchc;
>  	bool acceptList;
>  	if (cp[0] == OPAREN) {				// (<items>)



More information about the hcflinux mailing list