WITH this.oleweight IF TYPE("NVL(oapp,'')") = "O" IF NOT this.lfrezzweight LOCAL lnnum, lnSecs, lnNumber, lnDataLen, x LOCAL lacodes[1] *// get the lenght of the string comming from the indicator lnDataLen = oapp.osite.WS_datalength IF .inBufferCount >= (lnDataLen*2) lcnum = .input * store the last string to look for motion codes this.clastscalestring = lcNum *// DEBUGOUT lcnum IF RAT(CHR(13),lcnum,1) > 0 lcnum = SUBSTR(lcnum,RAT(CHR(13),lcnum,1)-lnDataLen,lnDataLen) ENDIF IF LEN(lcNum) < 10 RETURN ENDIF lnNumber = INT(VAL(retnum(lcnum))) IF BETWEEN(lnNumber,0,999999) this.txtweight.Value = lnNumber ELSE this.txtweight.Value = 0 ENDIF this.txtweight.Refresh() * Check for motion codes FOR x = 1 TO ALEN(this.acodes) IF ATC(this.acodes[x],lcnum) > 0 this.lmotion = .t. EXIT ELSE this.lmotion = .f. ENDIF NEXT ENDIF ENDIF ELSE .interval = 0 ENDIF ENDWITH>I am using the MSCOMM32.OCX provided with VFP 7.0 to commubicate with a WEIGH-TRONIX weight indicator through the RS-232 (Com 2). The weight indicator is continuously scanning the scale and is continuously sending the weight change as an outout to the rs232.