Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
titleExample
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

...