获取控制卡文件信息

CStringList CStrList;
CP5200_Net_Init( IPStringToValue( strip ) ,5200, IPStringToValue( _T("255.255.255.255")), 600 );// COM_Create();//网络初始化
if ( CP5200_Net_Connect() )
{
HOBJECT hObj = CP5200_CommData_Create( 1 , 0xff , IPStringToValue( "255.255.255.255" ) );//创建数据包对象
if(hObj)
{
int nNewSearch = 1;
BYTE szInfo[1024];
BYTE szBuf[1024]; //Max 512 files, each file 32 bytes
memset(szInfo, 0x00, sizeof(szInfo));

while(1)
{
int nDatLen = CP5200_MakeGetFileInfoData(hObj, szBuf, sizeof(szBuf), nNewSearch );//生成取得文件信息命令的数据
if ( nDatLen > 0 && 1 == CP5200_Net_Write(szBuf, nDatLen ) )// CP5200_Net_Write()利用网络写数据
{
nDatLen = CP5200_Net_Read(szBuf, sizeof(szBuf) );//接收数据
if ( nDatLen > 0 )
{
int nFilePos = 0;
int nFileCnt = CP5200_ParseGetFileInfoRet(hObj, szBuf, nDatLen , nFilePos, szInfo, sizeof(szInfo)); //返回文件数量
while( nFilePos++ < nFileCnt )
{
CString strText;
strText.Format("%s", (const char*)&szInfo[0]);//文件名(含扩展名)里面以0结束;
CStrList.AddTail( strText );


strText.Format("%02d%02d-%02d-%02d %02d:%02d:%02d", szInfo[45],szInfo[46],szInfo[47],szInfo[48],szInfo[49],szInfo[50],szInfo[51] );
CStrList.AddTail( strText );

strText.Format("%ld", *((long*)&szInfo[52]));//文件 szInfo[52]获取的是值,加上&是这个值的地址,就是指针指针,加上(long*)把这个指针转化成long型,在加上*取地址得到值;
CStrList.AddTail( strText );

if ( nFilePos < nFileCnt)
CP5200_ParseGetFileInfoRet(hObj, szBuf, nDatLen , nFilePos, szInfo, sizeof(szInfo));
}

nNewSearch = 0;
if ( nFileCnt < 4)
break;
}
}
}
CP5200_CommData_Destroy(hObj);
}

CP5200_Net_Disconnect();
}

posted @ 2013-06-13 08:52  友琼  阅读(190)  评论(0编辑  收藏  举报