现在使用的是CVI2003环境,写一个驱动文件。
之前都是读取一个数值,比较容易。现在要读取一个数组回来,不知如何处理了,麻烦各位指导一下,。谢谢
要读取回来的数组如下:
◆5.000,9.000,12.000,15.000,20.000,3.300-11.000
代码如下:此代码只能读回来第一个5电压,后续91215203.3-11V就读不到了。****
//read PdoVoltList value
strcpy (lTXStr, "PD3PD:PDO:LIST:VOLT?\n");
lComError = ComWrt((*aComPort), lTXStr, strlen(lTXStr));
if(lComError!=strlen(lTXStr))
{
lerrorcode = IPC_ERRORCODE_COMERROR;
goto FUNCTION_END;
}
else;
lComError = ComRdTerm((*aComPort), lRXStr, IPC_COM_MAXLENTH-1, IPC_COM_ENDCODE);
//Check COM operation error
if(lComError<0)
{
lerrorcode = IPC_ERRORCODE_COMERROR;
goto FUNCTION_END;
}
else;
//Check response timeout error
if(lComError<=1)
{
lerrorcode = IPC_ERRORCODE_RESPONSETIMEOUT;
goto FUNCTION_END;
}
else;
//Check response data
if(lComError>=(IPC_COM_MAXLENTH-1))
{
lerrorcode = IPC_ERRORCODE_RESPONSEWRONG;
goto FUNCTION_END;
}
else;
lRXStr[lComError] = 0;
//return voltage reading
if(sscanf(lRXStr, "%f", aPdoVoltListValue) < 0)
{
lerrorcode = IPC_ERRORCODE_RESPONSEWRONG;
goto FUNCTION_END;
}
else;
(*aPdoVoltListValueUnused) = 0;
lerrorcode = IPC_ERRORCODE_NOERROR;
FUNCTION_END:
return(lerrorcode);
#undef ARGCNT
}