Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
Search
SCPI Command Parser Firmware For Instrument
Anyone here developed a SCPI command parser for embedding in an instrument?? Or know of one well developed.?
?
I have googled and never found a parser that appears to be very compliant to the specification.
?
A simple use case might be to have an Arduino UNO analogread() result available through the USB COM port where the UNO appears to be a SCPI instrument.
?
Regards,
(Forrest) Lee Erickson |
I have seen one but not investigated how compliant it is. I'm not sure I can find it again and be sure it's better than one you've rejected. What have you looked at ? On Wed, Jul 12, 2023 at 2:56?PM Michael Kellett <mk@...> wrote: You might find this helpful: |
Regarding, "What have you looked at ?" I think it was this one:?? New to me is this one:? |
Yes, I think it was one of those that I'd seen. Either sound as though they might get you most of the way there - I think you'll be very lucky to find one that's complete in every possible way and yet fits in the tiny memory of a UNO. Strtoull() wouldn't be hard to write and may not even be necessary unless you know you want 64 bit values. Just substitute strtoul(). |
¿ªÔÆÌåÓýOn 2023-07-12 09:31 AM, Forrest
Erickson wrote:
Contact me privately at SteveHx at HxEngineering period com. Steve Hendrix |
FWIW
30 years ago I wrote a parser using lex and yacc that ran in production for 8-9 years without a single bug report. It would take some revierw work to do that now, but is there isn't a solution extant, I'd be pleased to write one subject to a very busy schedule. It would be fun to write some software again. Have Fun! Regt |
SCPI syntax appears very simple, not need for lex and yacc. An ad-hoc lexical analyzer and parser would probably more simple and eficient. But indeed, it's very surprising there's not an already open source SCPI parser library. |
to navigate to use esc to dismiss