...
Adds a pattern to be matched by the roSequenceMatcher object instance. The pattern should be specified as an object that is convertible to a byte sequence (e.g. roByteArray, roString). For the user data, pass the object that should be returned if the specified pattern is matched.
Code Block | ||
---|---|---|
| ||
Function FromHex(hex as String) as Object bytes = CreateObject("roByteArray") bytes.FromHexString(hex) return bytes End Function Sub Main() serial = CreateObject("roSerialPort", 1, 115200) mp = CreateObject("roMessagePort") button1_seq = FromHex("080a01040001e000") button2_seq = FromHex("080e01040001e000") matcher = CreateObject("roSequenceMatcher") matcher.SetMessagePort(mp) matcher.Add(button1_seq, { name: "button1" }) matcher.Add(button2_seq, { name: "button2" }) matcher.Add("flibbet", { name: "flibbet" }) matcher.Add("flobbet", { name: "flobbet" }) if not serial.SetMatcher(matcher) then stop end if finished = false while not finished ev = mp.WaitMessage(10000) if ev = invalid then finished = true else if type(ev) = "roSequenceMatchEvent" then print "Got button: "; ev.GetUserData().name else print "Unexpected event: "; type(ev) end if end while End Sub |
...