Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
MScomm class definition
Message
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Environment versions
Visual FoxPro:
VFP 9
Miscellaneous
Thread ID:
01018748
Message ID:
01018769
Views:
16
Mark,

You can do this:
loForm = Createobject('Form')

with loForm as Form
	.addobject('myComm', 'ComReader')
	.Show(1)
endwith

DEFINE CLASS ComReader AS OLEControl 
	OLECLASS = 'MSCOMMLib.MSComm.1'
	poComReader = NULL
	pclastreading = ''
	FUNCTION mInitialize
		susp
		*This.poComReader = CREATEOBJECT('MSCOMMLib.MSComm')
		WITH This
			.Rthreshold = 1
			.CommPort = 8
			.Settings = "9600,N,8,1"
			.InputLen = 20
			.PortOpen = .T.
		ENDWITH
	ENDFUNC	
	Procedure OnComm
		lcInput = CHRTRAN(This.Input, CHR(13),  '')
		lcInput = CHRTRAN(lcInput, CHR(10),  '')
		lcInput = CHRTRAN(lcInput, '*',  '')
		*!* Check if it's the same scan then ignore
		IF This.pcLastReading == lcInput
			RETURN ''
		ENDIF	
		This.pcLastReading = lcInput
		RETURN lcInput
	ENDPROC
	FUNCTION Destroy
		if This.PortOpen
			This.PortOpen = .F.
		endif
	ENDFUNC	
ENDDEFINE
Note that I changed the destroy to avoid it firing an error.
"The five senses obstruct or deform the apprehension of reality."
Jorge L. Borges?

"Premature optimization is the root of all evil in programming."
Donald Knuth, repeating C. A. R. Hoare

"To die for a religion is easier than to live it absolutely"
Jorge L. Borges
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform