>PUBLIC ComForm >ComForm = CREATEOBJECT('Form') >ComForm.AddObject("MsCom","MSCOMMCLASS") >DO GetVer >DO PlayMsg >RETURN > >DEFINE CLASS MsCommClass AS OLEControl > OLECLASS = [MSCOMMLib.MSComm.1] > PROCEDURE WaitForResponse > LPARAMETERS lnDelayInSeconds > LOCAL lnStartTime > lnStartTime = SECO() > DO WHILE SECO() <= (lnStartTime + lnDelayInSeconds) ; > AND NOT SECO() < lnStartTime > DOEVENTS() > ENDDO > ENDPROC > PROCEDURE OnComm > *---Receive Data > WAIT WINDOW ALLTRIM(STR(THIS.CommEvent)) > IF THIS.CommEvent = 2 > IF THIS.InBufferCount>0 > lcString = THIS.Input > IF !(lcString == "") > WAIT WINDOW "SUCCESS! Version Retrieved: "+lcString > ENDIF > ELSE > WAIT WINDOW "Tracy! Data Should have been Received..." > ENDIF > ENDIF > ENDPROC >ENDDEFINE > >PROCEDURE GetVer > WITH ComForm.MsCom > .RThreshold = 1 > .SThreshold = 1 > .Settings = [9600,n,8,1] > .RTSEnable = .F. > .InputLen = 0 > ENDWITH > m_port=1 > ComForm.MsCom.CommPort = m_port > ComForm.MsCom.PortOpen = .T. > ComForm.MsCom.Output="~VER "+CHR(13) > ComForm.MsCom.WaitForResponse(2) > lcString=ComForm.MsCom.Input > WAIT WINDOW lcString NOWAIT > ComForm.MsCom.PortOpen = .F. >RETURN > >PROCEDURE PlayMsg > WITH ComForm.MsCom > .RThreshold = 1 > .SThreshold = 1 > .Settings = [9600,n,8,1] > .RTSEnable = .F. > .InputLen = 0 > ENDWITH > m_port=1 > ComForm.MsCom.CommPort = m_port > ComForm.MsCom.PortOpen = .T. > ComForm.MsCom.Output = "~PLAY " + chr(13) > ComForm.MsCom.Output = "M " + chr(13) > ComForm.MsCom.PortOpen = .F. >RETURN >