协议命令使用字符串,定义为:“开始符,参数1,参数2,参数3”,当串口接收到此命令时,参数的长度未知,Lua是否有能力提取出参数1,参数2和参数3的值?如果有请指教,谢谢!
如果参数是定长的,可以直接根据长度截取(使用string.sub);
如果参数是不定长,但是有固定开始、结束符,也可以截取(for循环寻找开始、结束符位置,然后用string.sub截取);
如果参数是不定长,且没有固定的开始、结束符,但是有分隔符,也可以截取(for循环寻找分隔符位置,然后用string.sub截取);
如果参数是不定长、没有固定分隔符、开始符、结束符,则很难提取。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!
如果有开始符,并且能保证开始符唯一,你可以根据开始府做拼包处理,得到完整的协议报文,剩下的你可以用split函数来截取,合宙有一个string.split函数来把字符串截成数组,或者我这里提供一个split的实现