Very helpful. My approach is driven by the guidelines in PSiCC2 and consistent with what you list above. As of now, I'm not sharing anything. No AOs know anything about the hardware peripherals. Just the available commands as defined in the CommandList enum like gpsGetPosition or radiometerSetIntegrationTime. The DeviceHandler AO is the only one that interacts and manages the devices. I think it meets your definition of a resource server and will handle exactly the kind of conflict you describe above....
Tvishy - I was in a similar boat as you trying to learn the QP framework. Luckily, I'm a Windows user so I didn't have to deal with the non-Windows issues you're facing. But as far as learning the QP Framework, here's what worked for me. The video course is the most complete and useful course for learning embedded programming (event driven or not) that I'm aware of. 57 videos, average about 25 minutes each, about a 24 hour investment and you'll know more about embedded programming than 95% of the...
Tvishy - I was in a similar boat as you trying to learn the QP framework. Luckily, I'm a Windows user so I didn't have to deal with the non-Windows issues you're facing. But as far as learning the QP Framework, here's what worked for me. The video course is the most complete and useful course for learning embedded programming (event driven or not) that I'm aware of. 57 videos, average about 25 minutes each, about a 24 hour investment and you'll know more about embedded programming than 95% of the...
Tvishy - I was in a similar boat as you trying to learn the QP framework. Luckily, I'm a Windows user so I didn't have to deal with the non-Windows issues you're facing. But as far as learning the QP Framework, here's what worked for me. The video course is the most complete and useful course for learning embedded programming (event driven or not) that I'm aware of. 57 videos, average about 25 minutes each, about a 24 hour investment and you'll know more about embedded programming than 95% of the...
Tvishy - I was in a similar boat as you trying to learn the QP framework. Luckily, I'm a Windows user so I didn't have to deal with the non-Windows issues you're facing. But as far as learning the QP Framework, here's what worked for me. The video course is the most complete and useful course for learning embedded programming (event driven or not) that I'm aware of. 57 videos, average about 25 minutes each, about a 24 hour investment and you'll know more about embedded programming than 95% of the...
I've made it far enough up the QP/QM learning curve with a simple version of my app that does a little bit of most of what I'm eventually going to have to do. A big part of my app will be interfacing with a a large number and variety of devices through the UART, SPI, and I2C peripherals on the STM32H563 uController I'm using. 9 science sensors, 1 GPS, 1 cellular modem, 3 energy monitors, 11 eFuses, 2 servo motor controllers and more. In general, all the functionality for a device will reside in a...
I;ve been able to follow the "Using QP Framework with STM32 Cube IDE tutorial" to get a DPP app running on my STM32H7A3 nucleo board. On top of that, I was able to add a new state that simulates one of the instruments (called a CTD) that I'm eventually going to have to talk to if my new project gets funded. I got that CTD state to communicate with the DPP table active state using a queue following the information Miro gave me in a previous thread topic. All of that was starting with CubeMX and QM....
When I've done this in the past, I used a STM32H7A3 which has character match functionality built in to the UART DMA hardware. Luckily, all my devices end their messages with a LF. All I have to do is program the LF character into the character match register, request a DMA transfer with more bytes than I ever expect to receive and I get an interrupt when the LF shows up regardless of how many bytes I requested. All the interrupt handler does is stuff the LF terminated message and a timestamp into...