Microcontroller SCPI_参数字符串多个字符串作为输入

Microcontroller SCPI_参数字符串多个字符串作为输入,microcontroller,pic24,Microcontroller,Pic24,我使用的是SCPI命令库,即SCPI_ParamString。我试图实现的函数接受两个字符串和一个整数作为输入。为了验证我的代码是否正确读取了输入,我让它简单地将我的输入打印出来(一旦我确信我使用了正确的字符串,我将把它们传递给函数) 我发现我的代码没有将逗号标识为两个输入之间的分隔符。它将所有3个输入打印为第一个字符串。有趣的是,当我要求它打印第二个输入时,它会识别出第一个和第二个输入之间的逗号。因此,它只打印第二个和第三个输入(不识别第二个和第三个之间的逗号作为分隔输入) 我正在使用MPLA

我使用的是SCPI命令库,即SCPI_ParamString。我试图实现的函数接受两个字符串和一个整数作为输入。为了验证我的代码是否正确读取了输入,我让它简单地将我的输入打印出来(一旦我确信我使用了正确的字符串,我将把它们传递给函数)

我发现我的代码没有将逗号标识为两个输入之间的分隔符。它将所有3个输入打印为第一个字符串。有趣的是,当我要求它打印第二个输入时,它会识别出第一个和第二个输入之间的逗号。因此,它只打印第二个和第三个输入(不识别第二个和第三个之间的逗号作为分隔输入)

我正在使用MPLABX IDE v3.15在PIC24上用C编写代码

下面是我的代码,后面是示例输出

const char * longstr1;
const char * longstr2;
size_t ls1_len = 80;
size_t ls2_len = 80;
scpi_bool_t mandat = 1;
int32_t deltamin;

    if (!SCPI_ParamString(context, &longstr1, &ls1_len, mandat) ) 
    {
        return SCPI_RES_ERR;
    }
    if (!SCPI_ParamString(context, &longstr2, &ls2_len, mandat) )
    {
        return SCPI_RES_ERR;
    }
    if (!SCPI_ParamInt(context, &deltamin, mandat))
    {
        return SCPI_RES_ERR;
    } 
    sprintf(strTmp,"Inputs:" STR_CRLF);
    uart1_puts(strTmp);
    sprintf(strTmp,longstr1);
    uart1_puts(strTmp);
    sprintf(strTmp,STR_CRLF);
    uart1_puts(strTmp);
    sprintf(strTmp,longstr2 );
    uart1_puts(strTmp);
和示例执行:

SCPI|0x51> GPS:PROP SGP4,1 00005U 58002B   00179.78495062  .00000023  00000-0  28098-4  0 4753,2 00005  34.2682 348.7242 1859667 331.7664  19.3264 10.824191574136                                                67,360
SCPI|0x51> Inputs:
1 00005U 58002B   00179.78495062  .00000023  00000-0  28098-4  0 4753,2 00005  34.2682 348.7242 1859667 331.7664  19.3264 10.82419157413667,360

2 00005  34.2682 348.7242 1859667 331.7664  19.3264 10.82419157413667,360
0)00:20:53:58.43 task_supmcu_scpi:      Accepted "GPS:PROP SGP4,1 00005U 58002B   00179.78495062  .00000023  00000-0  28098-4  0 4753,2 00005  34.2682 348.7242 1859667 331.7664  19.3264 10.82419157413667,360" command.
请注意,当我打印第一个输入时,所有3个输入都被实际打印,当我打印第二个输入时,第二个和第三个输入被实际打印

我尝试了一些不同的方法来解决这个问题,但没有一种有效