Activity for QP Real-Time Event Frameworks & Tools

  • Glenn Babecki Glenn Babecki posted a comment on discussion Free Support

    Thanks for your insights about "jumping in," which mirror my experience as well. I also appreciate your observations and experience on how QP has in fact opened your mind to new ways to develop certain classes of software. I'm looking forward to becoming practiced with QP. Good to know there are others to help guide my learning journey. Thanks, Glenn

  • Anonymous created ticket #402

    QM crashes after copy and paste a package

  • Panopticon Panopticon posted a comment on discussion Free Support

    Hi Glenn -- there is nothing like developing to really learn how to use QP. This is indisputably true. Same thing with learning a programming language -- best way to learn is "learning by doing" -- you get good at "doing X"... by "doing X". Lots of people like to read, watch videos, run existing examples, but never stare at a blank sheet of paper with a goal in mind. One of my favorite sayings is "No way out but forward through" (there are variations of this saying...) There are quite a few people...

  • Glenn Babecki Glenn Babecki posted a comment on discussion Free Support

    Miro, Thank you for the quick and comprehensive response to my questions. Since I'm using QP for personal interests and projects I obviously can't justify a proper commercial license. However, my initial understanding of the available tools leads me to believe I can do everything I need with the basic unlicensed offerings. Having access to QS, QXK, static analysis, and the test suite would be "sweet," but they are not required for the foreseeable future. I completely understand the need to protect...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Glenn, Thank you for your interest in QP licensing and for the thoughtful questions. Your understanding of the commercially licensed components—collectively referred to as the QP Extras—is correct. These include: QS software tracing (QSPY) QXK real-time preemptive kernel Static‑analysis configuration and automation scripts Test suite These components require a commercial license, but they are also available for free evaluation. An evaluation license can be requested easily through the License...

  • Glenn Babecki Glenn Babecki posted a comment on discussion Free Support

    I know this general topic has been discussed in many ways, but I would like to get some definitive clarification regarding the various product limitations related to the unlicensed mode (free GPLv3 license?). More specifically the variations on the QP/C and QP/C++ components and potential limitations of QM code generation. My understanding is that the "free" version of the QP bundle does not contain the following components and tools. QS software tracing component (QP Spy) QXK real-time kernel component...

  • Anonymous created ticket #401

    QM crashes after Model Search

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Giulio, The MISRA Rule 10.3 has the following exception applicable in this case: Exception ... 3. A switch statement case label that is a non-negative integer constant expression of essentially signed type is permitted with the controlling expression is of essentially unsigned type and the value can be represented in that type. ... The Exception 3 applies here because: the case Q_ENTRY_SIG (or any of your own enumerated signals) is a "non-negative integer constant of essentially signed integer...

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Giulio, The MISRA Rule 10.3 has the following exception applicable in this case: Exception ... 3. A switch statement case label that is a non-negative integer constant expression of essentially signed type is permitted with the controlling expression is of essentially unsigned type and the value can be represented in that type. ... The Exception 3 applies here because: the case Q_ENTRY_SIG (or any of your own enumerated signals) is a "non-negative integer constant of essentially signed integer...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Giulio, The MISRA Rule 10.3 has the following exception applicable in this case: Exception ... 3. A switch statement case label that is a non-negative integer constant expression of essentially signed type is permitted with the controlling expression is of essentially unsigned type and the value can be represented in that type. ... The Exception 3 applies here because: the case Q_ENTRY_SIG (or any of your own enumerated signals) is a "non-negative integer constant of essentially signed integer...

  • Giulio Dalla Vecchia Giulio Dalla Vecchia posted a comment on discussion Free Support

    Hi Miro, I'm analyzing a project where my checker flags the following violation: violation for MC3R1.R10.3 untagged app/src/alarm_page.c:119.10-119.20: reference to enum constant Q_ENTRY_SIG' has essential typeenum QReservedSig' and standard type `int' app/src/alarm_page.c:119.5-119.8: `case' statement expects a 32-bit unsigned integer This is correct because the signal is a uint16_t while the enum has type int. How would you recommend handling this kind of violation? It appears across all the state...

  • jvalenzuela jvalenzuela posted a comment on discussion Free Support

    Yes, GCC 4.1.0 is quite long in the tooth. Unfortunately, this proof-of-concept project is using older hardware available on eBay. The build environment is fully provided by the target hardware manufacturer as an Eclipse-based IDE with a PowerPC cross-compiler, glibc, and API libraries to match the OS and runtime services on their device. The target is Linux, but the application must link with their libraries to function, so I'm very hesitant to mess around with upgrading the compiler at this point...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Jason, The main definition of Q_NORETURN is in the QP port (file qp_port.h in the specific port directory). The definition in qsafe.h is a backup used only when Q_NORETURN is still undefined by that time (please notice #ifndef Q_NORETURN ... #endif guards). The GCC 4.1.0 is indeed over 20 years old now, so for such an ancient compiler, I would suggest creating a separate port: just copy the closest existing port directory and rename it to gnu4 or something that would remind you what it is. Of...

  • jvalenzuela jvalenzuela posted a comment on discussion Free Support

    I'm working on integrating QP/C v8.1.4 into a manufacturer-provided build environment based on GCC 4.1.0. That compiler doesn't recognize the _Noreturn attribute, which is probably due to the compiler's age. I think the best option at the moment is to define Q_NORETURN as void, however, I noticed it is defined in two places: qsafe.h and qp_port.h(I'm using the posix-qv port). Is this duplication intended? Thank you, Jason Valenzuela

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Christopher, The file qf_actq.c should NOT be included in the FreeRTOS or any other traditional RTOS ports. (That file is only used in the built-in kernels: QV, QK, and QXK). Please check the documentation of the qf_actq.c file and the none of the provided examples for FreeRTOS include that file in the build. For example, please take a look at: qpc\examples\freertos\arm-cm\dpp_nucleo-u545re\gnu\Makefile. So, the solution is to just remove the file qf_actq.c from your build for QP 8.1.4. --MMS

  • Christopher Chorey Christopher Chorey posted a comment on discussion Free Support

    Thanks for the reply. I will check again with your suggestion.

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Christopher, The file qf_actq.c should NOT be included in the FreeRTOS builds. (That file is only used in the built-in kernels: QV, QK, and QXK). Please check that none of the provided examples for FreeRTOS include that file in the build. For example, please take a look at: qpc\examples\freertos\arm-cm\dpp_nucleo-u545re\gnu\Makefile. So, the solution is to just remove the file qf_actq.c from your build for QP 8.1.4. --MMS

  • Christopher Chorey Christopher Chorey posted a comment on discussion Free Support

    I've been trying to port FreeRTOS from versions 8.1.1 and 8.1.4 to the Infineon PSoC6 platform, but even with a basic port (no changes) I am getting compile errors in qf_actq.c around the handling of me->eQueue.nFree, for example. The complier is complaining that me->eQueue is a pointer and if I change to me->eQueue->nFree there are other errors regarding a struct definition. I am able to pull in a FreeRTOS port from v6.9.3 (which was working on another platform). and this builds with no issues....

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Thanks a lot Mr. Samek! i got it now: the QV scheduler will invoke the AO1 when either timer event or mode activation event comes into the AO1 queue (provided that AO1 has a priority higher then other ready-for-run AOs). Then, it is up to the AO1's state machine to decide what to do, depending on the event and the current state. Best Denis

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Thanks a lot Mr. Samek! i got it now: the QV scheduler will invoke the AO1 when either timer event or mode activation event comes into the AO1 queue (provided that AO1 has a priority higher then other ready-for-run AOs). Then, it is up to the AO1 state machine to decide what to do, depending on the event and the current state. Best Denis

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Thanks a lot Mr. Samek! i got it now: the QV scheduler will invoke the AO1 when either timer event or mode activation event comes (provided that AO1 has a priority higher then other ready-for-run AOs). Then, it is up to the AO1 state machine to decide what to do, depending on the event and the current state. Best Denis

  • Denis Evstratov Denis Evstratov posted a comment on discussion Free Support

    Thanks a lot Mr. Samek! i got it now: the QV scheduler will invoke the AO1 when either timer event or mode activation event comes. Then, it is up to the AO1 state machine to decide what to do, depending on the event and the current state. Best Denis

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    The AOs process events from their queue in the order the events were posted. The event queue of each AO can hold muliple events, and you decide how many events when you start the AO. --MMS

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    The AOs process events from their queue in the order the events were posted. The event queue of each AO can hold muliple events, and you decide how many events at the time you start the AO. --MMS

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Thanks a lot for the prompt reply, Mr. Samek. it means that the AO1 state machine should analyse if there are both ACTIVATE event and timer's event to really execute the thread of AO1. If one is missing, then nothing should happen. Denis

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Thanks a lot for the prompt reply, Mr. Samek. it means that the AO1 state machine should analyse if there are both ACTIVATE event and timer's event to really execute the thread of AO1. If one is missing, then nothing should happen. Denis

  • Denis Evstratov Denis Evstratov posted a comment on discussion Free Support

    Thanks a lot for the prompt reply, Mr. Samek. So AO1 will have two events in its queue: one from the timer and another from AO2. The scheduler extracts the first event (from the timer) and invokes AO1, and then the AO1 state machine processes the second event (from AO2). This should work nicely. Somehow I had the impression that only one event could be processed during a single scheduler cycle, but in this case both events are handled sequentially from the queue. Thanks again! Denis

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Denis, I probably don't appreciate some hidden complexity here, but isn't this a textbook example for a state machine? I have attached a state machine for your AO1 that would do what you describe. This assumes that your AO2 produces events ACTIVATE and DEACTIVATE for AO1. --MMS

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when some AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from some AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when some AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from some AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when some AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from some AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when some AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from some AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when some AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from some AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Denis Evstratov Denis Evstratov modified a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when some AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from some AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Denis Evstratov Denis Evstratov posted a comment on discussion Free Support

    Hello Community! I searched through the forum but could not find a clear answer. Maybe you could help me. What is the recommended design pattern when the AO1 should execute only when two conditions/events are satisfied simultaneously? To be more specific: one event is periodic and comes from the system timer; the second event comes from another AO2 monitoring the system operating mode; the AO1 should execute periodically only while the system is in a specific operating mode, and remain inactive otherwise....

  • Harry Rostovtsev Harry Rostovtsev posted a comment on discussion Free Support

    Thank you, this is exactly the information I was looking for.

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Harry, You can use classes as data members inside the QP events (subclasses of QP::QEvt). This is no problem as long as these classes don't have pointers or references. This is because if they had such pointers or references, the referenced data would be outside framework's control and would most likely not be managed correctly. The restrictions on the QEvt subclasses are listed explicitly in the QP/C++ Manual: Attention Event parameters must be included in the event instance directly (as opposed...

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Harry, You can use classes as data members inside the QP events (subclasses of QP::QEvt). This is no problem as long as these classes don't have pointers or references. This is because if they had such pointers or references, the referenced data would be outside framework's control and would most likely not be managed correctly. The restrictions on the QEvt subclasses are listed explicitly in the QP/C++ Manual: Attention Event parameters must be included in the event instance directly (as opposed...

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Harry, You can use classes as data members inside the QP events (subclasses of QP::QEvt). This is no problem as long as these classes don't have pointers or references. This is because if they had such pointers or references, the referenced data would be outside framework's control and would most likely not be managed correctly. The restrictions on the QEvt subclasses are listed explicitly in the QP/C++ Manual: Attention Event parameters must be included in the event instance directly (as opposed...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Harry, You can use classes as data members inside the QP events (subclasses of QP::QEvt). This is no problem as long as these classes don't have pointers or references. This is because if they had such pointers or references, the referenced data would be outside framework's control and would most likely not be managed correctly. The restrictions on the QEvt subclasses are listed explicitly in the QP/C++ Manual: Attention Event parameters must be included in the event instance directly (as opposed...

  • Harry Rostovtsev Harry Rostovtsev posted a comment on discussion Free Support

    I'm using QPCPP on a largish yocto linux system (RAM not an issue) and wondering if it's "safe" to use classes as members of events. I'm guessing that it's probably ok as long as the classes don't contain any dynamically allocated memory (vectors, maps, etc). Basically, I just want to create a small wrapper around an enum or a struct that allows me to convert to string for easy debugging. Instead of having a typedef enum I want to make it a class with an enum inside with a to_string() method. Is...

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4-windows.exe

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4-macos.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4.sha256

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4-linux.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools updated /QP-Cpp/8.1.4/qpcpp_8.1.4.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools updated /QP-Cpp/8.1.4/QuantumLeaps.qpcpp.8.1.4.pack

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools updated /QP-C/8.1.4/QuantumLeaps.qpc.8.1.4.pack

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools updated /QP-C/8.1.4/qpc_8.1.4.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/7.3.4/qp-linux_7.3.4.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/7.3.4/qp-windows_7.3.4.exe

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/7.3.4/qp-macos_7.3.4.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/7.3.4/qp_7.3.4.sha256

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/7.3.0/qp_7.3.4.sha256

  • Quantum Leaps Quantum Leaps modified ticket #397

    Compilation error in QM generated code (expected QP version)

  • Quantum Leaps Quantum Leaps posted a comment on ticket #397

    The compilation error indicates an incompatible (too old) QP version for this QM release. The possible options to avoid this problem are: update the QP framework you use in your application to the required QP 8.0.0 or newer; or use an older version of QM, which is compatible with your older QP. Question: which QP version is used in your example? --MMS

  • Quantum Leaps Quantum Leaps modified ticket #400

    Race condition in QActive::postx_ violates margin guarantee, redundant critical section enter/exit causing performance overhead

  • Anonymous created ticket #400

    Race condition in QActive::postx_ violates margin guarantee, redundant critical section enter/exit causing performance overhead

  • Quantum Leaps Quantum Leaps modified ticket #398

    postx_() in FreeRTOS port enters critical section twice in QP 8.1.3

  • Quantum Leaps Quantum Leaps posted a comment on ticket #398

    The issue is fixed in QP/C and QP/C++ 8.1.4. --MMS

  • Quantum Leaps Quantum Leaps modified ticket #399

    #Include error with the Blinky tutorial

  • Quantum Leaps Quantum Leaps posted a comment on ticket #399

    Thank you for reporting. The QM Tutorial online has been updated and should work now. The model templates that ship with QM 7.0.3 are checked to be correct. The documentation update should be all that's required to fix this issue, but please confirm so that the bug can be closed. --MMS

  • Anonymous created ticket #399

    #Include error with the Blinky tutorial

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4-windows.exe

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4-macos.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4-linux.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-bundle/8.1.4/qp_8.1.4.sha256

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-Cpp/8.1.4/qpcpp_8.1.4.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-Cpp/8.1.4/QuantumLeaps.qpcpp.8.1.4.pack

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-C/8.1.4/qpc_8.1.4.zip

  • QP Real-Time Event Frameworks & Tools QP Real-Time Event Frameworks & Tools released /QP-C/8.1.4/QuantumLeaps.qpc.8.1.4.pack

  • Quantum Leaps Quantum Leaps modified ticket #398

    postx_() in FreeRTOS port enters critical section twice in QP 8.1.3

  • Quantum Leaps Quantum Leaps modified ticket #398

    8.1.3 postx_() in FreeRTOS port enters critical section twice

  • Quantum Leaps Quantum Leaps modified ticket #398

    8.1.3 postx_() in FreeRTOS port enters critical section twice

  • Anonymous created ticket #398

    8.1.3 postx_ enters critical section twice

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Mike, I change hist_lidClosed = &Washer_ready... I don't know if this can be a problem,... It looks like a problem to me because this is very confusing and does not really model the reality. Your job is not to "cheat" (to make it "work" in this particular stage of your modeling), but to capture the true essence of the behavior. Also, I'm not sure if I understand your use of state hierarchy. For example, the OPEN transition should be directly from the "lidClosed" to "lidOpen". Your current model...

  • Mike_S Mike_S modified a comment on discussion Free Support

    Hi Mr Samek! I love your video course and book, and have enjoyed learning so much!! About OFF closing the door in my fix, I did notice that was a problem. Using your suggestion of OFF just being an internal transition, in it I thought of explicitly changing me->hist_doorClosed = &ToastOven_off so it will stay off after closing the door. I did what you suggested to experiment but used a washing machine which is similar, and ran into the same thing: In lidOpen:CANCEL, I change hist_lidClosed = &Washer_ready....

  • Mike_S Mike_S modified a comment on discussion Free Support

    Hi Mr Samek! I love your video course and book, and have enjoyed learning so much!! About OFF closing the door in my fix, I did notice that was a problem. Using your suggestion of OFF just being an internal transition, in it I thought of explicitly changing me->hist_doorClosed = &ToastOven_off so it will stay off after closing the door. I did what you suggested to experiment but used a washing machine which is similar, and ran into the same thing: In lidOpen:CANCEL, I change hist_lidClosed = &Washer_ready....

  • Mike_S Mike_S posted a comment on discussion Free Support

    Hi Mr Samek! I love your video course and book, and have enjoyed learning so much!! About OFF closing the door in my fix, I did notice that was a problem. Using your suggestion of OFF just being an internal transition, in it I thought of explicitly changing me->hist_doorClosed = &ToastOven_off so it will stay off after closing the door. I did what you suggested to experiment but used a washing machine which is similar, and ran into the same thing: In lidOpen:CANCEL, I change hist_lidClosed = &Washer_ready....

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Mike, Thanks a lot for your interest and attention to detail. Indeed, the details of the "history" example have changed over the years to demonstrate both types of history (shallow and deep, see attached state diagram). And you are right; these changes made the ToasterOven behave in a way that a real appliance should not behave (the oven should never turn on after pressing OFF). You have several options to fix that: Your choice to make the doorOpen:OFF transition go straight to the "off" state...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Mike, Thanks a lot for your interest and attention to detail. Indeed, the details of the "history" example have changed over the years to demonstrate both types of history (shallow and deep, see attached state machine, see attached state diagram). And you are right; these changes made the ToasterOven behave in a way that a real appliance should not behave (the oven should never turn on after pressing OFF). You have several options to fix that: Your choice to make the doorOpen:OFF transition go...

  • Mike_S Mike_S posted a comment on discussion Free Support

    I know this is almost 3 years old but I saw the same problem. It didn't make any sense that if the toaster if off that it should be turned on simply by opening and closing the door. It should stay off. My fix: Signal OFF from the doorOpen state should just transition directly to the off state in doorClosed (not using history). Signal CLOSE in doorOpen transitions to history (placed on doorClosed not heating, and is not shallow).

  • Leandro Leandro posted a comment on discussion Free Support

    Hi fellas, Great topic! :D https://doorstop.readthedocs.io/ (not IBM's product; this is 100% FLOSS , git-friendly, actively maintained) Cheers

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Mark, As a commercial licensee, please contact Quantum Leaps support (support@state-machine.com) for the QSPY source code. --MMS

  • Mark Piontek Mark Piontek posted a comment on discussion Free Support

    We use qspy on a Raspberry Pi and have always built a Linux binary for arm64 for this purpose. Up until qtools version 7.4.1, the complete source code for building qspy was available. Since version 8, it is no longer publicly available. Would it therefore please be possible to publish a linux binary for arm64 in addition to the x86_64 linux binary?

  • Modo Donuts Modo Donuts posted a comment on discussion Free Support

    Makes sense. Thanks!

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Modo, Your 10-step plan sounds a bit complicated. It seems that you prefer the very traditional code partitioning, so just do that. Specifically, instead of manually "removing the delimit portions that QM controls", just generate the traditional header files (.h/.hpp) with your class declarations ( $declare {} directives). Then simply include those QM-generated headers in your external source files (.cpp). QM doesn't need to "know" about those source files at all, so you can manage them completely...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Modo, Your 10-step plan sounds a bit complicated. It seems that you prefer the very traditional code partitioning, so just do that. Specifically, instead of manually "removing the delimit portions that QM controls", just generate the traditional header files (.h/.hpp) with your class declarations ( $declare {} directives). Then simply include those QM-generated headers in your external source files (.cpp). QM doesn't need to "know" about those source files at all, so you can manage them completely...

  • Modo Donuts Modo Donuts posted a comment on discussion Free Support

    Hi Miro, Thank you for the quick response! This answer gave me further insight to the flexibility/functionality of QM. My team and I are looking to see how the development process using outside IDEs (notepad++/vscode) would "feel" To give an example, this would be look for QM using QPCPP. Create an operation (or set of operations) with parameter(s) for a class, but leave the code portion blank. Create an external file to capture functions that belong to said class. In the external file, use the generative...

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Modo, QM allows you to organize your code any way you see fit (see QM code engineering philosophy). Consequently, you can implement all/most/some actions and/or guards on your state machines as (member) functions of your state machine class. You can then implement those functions in any number of files: completely outside QM or within QM as regular files or external files. If the implementation files are outside QM, they won't be obviously overwritten when QM re-generates code. If the files are...

  • Modo Donuts Modo Donuts posted a comment on discussion Free Support

    solved! Decided to just do it the way suggested by the link I posted. Thanks!

  • Modo Donuts Modo Donuts posted a comment on discussion Free Support

    I do enjoy the convenience of the code generation abilities of QM. I'm wondering if it's possible to have QM stub out functions on external files, then on those external files add the code, and upon further generation (maybe adding another function or something) the code written within the function is not overwritten. Thanks!

  • Giulio Dalla Vecchia Giulio Dalla Vecchia posted a comment on discussion Free Support

    Hi, thank you so much for the detailed explanation! I have to say, I really liked the “dining philosophers” analogy — I hadn’t even thought about applying the DPP pattern to my scenario, but it actually makes perfect sense here! Definitely a clever way to coordinate access to the shared resource. Thanks a lot for the insight and for pointing me in the right direction! 🙌 Giulio

  • Quantum Leaps Quantum Leaps modified a comment on discussion Free Support

    Hi Giulio, First, let me clarify that if your sensors can permanently overwhelm your communication bandwidth (RS-485 in your case), no software design is going to fix it. Unfortunately, even QP cannot pull off such magic. Now, your problem seems to me two-fold. First, you worry about event pools, meaning that you have a buffering problem. Second, you think about coordinating the sensor components, which is a coordination problem. Regarding coordination, your SensorManager seems to be the ideal candidate....

  • Quantum Leaps Quantum Leaps posted a comment on discussion Free Support

    Hi Giulio, First, let me clarify that if your sensors can permanently overwhelm your communication bandwidth (RS-485 in your case), no software design is going to fix it. Unfortunately, even QP cannot pull off such magic. Now, your problem seems to me two-fold. First, you worry about event pools, meaning that you have a buffering problem. Second, you think about coordinating the sensor components, which is a coordination problem. Regarding coordination, your SensorManager seems to be the ideal candidate....

  • Giulio Dalla Vecchia Giulio Dalla Vecchia posted a comment on discussion Free Support

    Hi everyone, I’d like your advice on an architectural issue. I have 40 “sensors” connected over an RS‑485 bus. For each sensor I have an orthogonal state machine inside a dedicated AO (let’s call it SensorManager). I also have a separate AO responsible for managing the RS‑485 serial interface. The problem: Each of the 40 sensor state machines may need to send a Modbus request, which means they would post an event to the AO that handles the serial line. However, I cannot allow all 40 sensors to request...

  • Anonymous posted a comment on ticket #397

    here is version

1 >
Auth0 Logo