Public Function WriteHDQ(iCommand As Integer, iData As Integer, Optional bDoBreak As Boolean = False) As Long If bDoBreak Then WriteHDQ = frmUSB.WriteOneWire(vb_HDQ_Break, iCommand, 1) '//send break for critical comm. WriteHDQ = frmUSB.WriteOneWire(vb_HDQ8, iCommand, iData) End Function Public Function ReadHDQ(iCommand As Integer, iData As Integer, Optional bDoBreak As Boolean = False) As Long Dim i As Byte Dim iRdVerify As Integer If bDoBreak Then ReadHDQ = frmUSB.WriteOneWire(vb_HDQ_Break, iCommand, 1) '// send break for critical comm. If ReadHDQ = 8 Then GoTo Error_Code ReadHDQ = frmUSB.ReadOneWire(vb_HDQ8, iCommand, iData) If ReadHDQ = 8 Then GoTo Error_Code iRdVerify = iData For i = 0 To 3 If bDoBreak Then ReadHDQ = frmUSB.WriteOneWire(vb_HDQ_Break, iCommand, 1) '// send break for critical comm. ReadHDQ = frmUSB.ReadOneWire(vb_HDQ8, iCommand, iData) If ReadHDQ = 0 Then '// compare from previous read If iData = iRdVerify Then GoTo Exit_Function iRdVerify = iData End If Next i Error_Code: ReadHDQ = 999 '// flag as error if unable to get 2 identical consecutive reads Exit_Function: