'This sample shows how to do simple serial communications with the SerialFX control, 'available from http://www.franson.biz/serialtools. 'You need to get a current license key from them to run the sample. 'The SerialFX control must be installed for this sample to work. AddObject "serialxp.port.1","objPort" AddObject "serialxp.license","objlicense" ' You get a 14 days trial license key at franson.biz/serialtools objLicense.LicenseKey = "HrU25gzndnQWsHtsrsAag3jRlsQHGQ2aHvVA" Sub Form1_Load() bStart.Enabled = True bStop.Enabled = False init_dropdowns End Sub Sub bStart_Click() objPort.BaudRate = ddBaudrate.List(ddBaudrate.ListIndex) objPort.ComPort = ddPort.Text(ddPort.ListIndex) objPort.Timeout = 5000 objPort.ByteSize = 8 objPort.Parity = 0 objPort.StopBits = 2 objPort.Enabled = True objPort.NoEvents = True bStart.Enabled = False bStop.Enabled = True End Sub Sub bStop_Click() objPort.Enabled = False bStart.Enabled = True bStop.Enabled = False End Sub Sub bRead_click Dim str ' Note that Read() can return Null on timeout!! str = objPort.Read(0, 5000) If IsNull(str) Then txtRead.Text = "Timeout" Else txtRead.Text = str End If End Sub Sub bWrite_Click() txtWritten.text = objPort.Write(txtWrite.Text) End Sub Sub cbDTR_Click() objPort.DTR = (cbDTR.Value = vbChecked) End Sub Sub cbRTS_Click() objPort.RTS = (cbRTS.Value = vbChecked) End Sub Sub init_dropdowns() ddPort.Clear ddBaudrate.Clear Dim inx, port_list ' Get list of available ports port_list = objPort.List For inx = 0 To UBound(port_list) ddPort.AddItem "COM" & port_list(inx) Next ddPort.ListIndex = 0 ' Baudrates ddBaudrate.AddItem "1200" ddBaudrate.AddItem "2400" ddBaudrate.AddItem "4800" ddBaudrate.AddItem "9600" ddBaudrate.AddItem "19200" ddBaudrate.AddItem "38400" ddBaudrate.AddItem "57600" ddBaudrate.ListIndex = 3 End Sub