用mscomm控件实现串口通信,想让程序在接到一个数据时先进行判断,当符合条件时传出数组中的一个数,不符合条件时不传。当再次符合时传送数组中的第二个数。可我这个程序一次全传完了,不知道该怎么改。由于初学,对数据类型还不了解。程序可能写的不好,还请高手指导。
void CSdmsView::OnComm()
{
  VARIANT variant_inp;
  COleSafeArray safearray_inp;
  LONG len,k;
  BYTE rxdata[2048];
  CString strtemp;
  CString strDisp;
  char flag[100]={'k','t','e','y','f','j'};
  int l;
if(m_MSComm.GetCommEvent()==2)
 {
   variant_inp=m_MSComm.GetInput();
   safearray_inp=variant_inp;
   len=safearray_inp.GetOneDimSize();
  for(k=0;k<len;k++)
   safearray_inp.GetElement(&k,rxdata+k);
     for(k=0;k<len;k++)
      {
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
}
if(strtemp=="1")
for(l=0;l<100;l++){
 strDisp.Format("%d",flag[l]);
 m_MSComm.SetOutput(COleVariant(strDisp));
}
}
}
还有一个问题就是当条件不符合时,用不用清空缓冲区?如果要该怎么做。