>WITH THISFORM > DO CASE > CASE THIS.commevent = 1 > * characters sent => SThreshold > CASE THIS.commevent = 2 > * characters received => RThreshold > .cBuffer = .cBuffer + THIS.INPUT > * Test for your ETX in the buffer > IF CHR(3)$.cbuffer > * ETX in .cbuffer. > * Extract string into .cresult (new property) > * and leave remaining data in .cbuffer > lnetxpos = AT(CHR(3),.cbuffer,1) > .cresult = LEFT(.cbuffer,lnetxpos) > .cbuffer = SUBSTR(.cbuffer,lnetxpos+1) > * now process .cresult and clear when done. > ENDIF > CASE THIS.commevent = 3 > * change in CTS > CASE THIS.commevent = 4 > * change in DSR > CASE .commevent = 5 > * Change in CD > CASE .commevent = 6 > * Ring detected > CASE .commevent = 7 > * EOF detected > CASE THIS.commevent = 1001 > * Break Received > CASE THIS.commevent = 1004 > * Framing Error > CASE THIS.commevent = 1006 > * Overrun > CASE THIS.commevent = 1008 > * Overflow > CASE THIS.commevent = 1009 > * Parity Error > CASE THIS.commevent = 1010 > * TX buffer full > CASE THIS.commevent = 1011 > * DCB error > ENDCASE >ENDWITH >