Activity for Giulio Dalla Vecchia

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

    Hi Miro, could you explain better (with an example) what do you intend when you say "transition to History"? Thanks a lot in advance! Giulio

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

    Hi Miro, Is simply putting the Python script to sleep for a certain period before checking the expectations from the target enough to achieve what Matteo wants?

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

    Hi all, I'm working on building the QUTest blinky example for a real target (STM32H7 board) using CMake. However, I believe there might be an issue with the CMakeLists.txt file. When compiling with QUTest, you're not supposed to set any kernel (QV, QK, QXK). If you don't explicitly define QPC_CFG_KERNEL, the variable defaults to 'QV', which leads to the qv.c file being compiled, inevitably causing errors. Does anyone else see this issue?

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

    Hi everyone, Thanks for the replies. I was not referring on the blocking sockets. If I need to run two library, that is already able to get the most out using the non-blocking socket, is it better to isolate the TCP/IP stack using a dedicated AO creating some events for opening/closing/sending/receiving or is it better to manage the libraries in a dedicated othogonal region of the main AO that manage also the TCP/IP stack?

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

    Hi all, Thanks for the replies. I was not referring on the blocking sockets. If I need to run two library, that is already able to get the most out using the non-blocking socket, is it better to isolate the TCP/IP stack using a dedicated AO creating some events for opening/closing/sending/receiving or is it better to manage the libraries in a dedicated othogonal region of the main AO that manage also the TCP/IP stack?

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

    Hi Miro, I was not referring on the blocking sockets. If I need to run two library, that is already able to get the most out using the non-blocking socket, is it better to isolate the TCP/IP stack using a dedicated AO creating some events for opening/closing/sending/receiving or is it better to manage the libraries in a dedicated othogonal region of the main AO that manage also the TCP/IP stack?

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

    Hi Miro, I was not referring on the blocking sockets. If I need to run two library, that is already able to get the most out using the non-blocking socket, is it better to isolate the TCP/IP stack using a dedicated AO creating some events for opening/closing/sending/receiving or is it better to manage the libraries in a dedicated othogonal region of the main AO that manage also the TCP/IP stack?

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

    Hi all, I'm studying the LWIP QP example, where the TCP/IP is running on a dedicated AO. I'm thinking what is the best solution if I need to use other protocols that need to use the TCP/IP stack. For example, if I need to use Modbus on TCP/IP, or I need to connect to a cloud to download/publish some information, I need to call the TCP/IP stack APIs. I think I have two possibility: Create an AO Network Manager to handle the TCP/IP stack. Create some events that can manage the requests to open/close...

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

    Hi all, is it possible to find a repository of a complex embedded system base on QP framework in order to use it as an example to study? Thanks a lot! GDV

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

    I want to better describe the context. I have a AONetMgr that handles all the events related to network interface, processing the network library and ethernet IRQ. Network events can be: OPEN_SOCKET_SERVER_SIG ACCEPT_CONNECTION_SIG SEND_DATA_SIG READ_DATA_SIG CABLE_DISCONNECTED_SIG CABLE_CONNECTED_SIG ....all events that are managed calling network library API for both ethernet port Then I have another AO called AOModbusServerMgr that has to handle all the requests to write/read registers that come...

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

    Hi Miro, yes I know, but I'm thinking about that the first level has two components (one that represent the first ethernet interface and the second one that represent the other ethernet interface in order to manage the events like "CABLE DISCONNECTED" or IP CHANGED. For example only one interface could not have the cable connected). The second level represents the real client connections to the server (connected state, disconnected state, handshaking state if there is TLS active, ecc) GDV

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

    Hi Miro, I'm thinking about a board that has two ethernet ports. If I need to manage a Modbus server on both interface, I'm thinking to create an AO Modbus Server, that has two orthogonal regions that represets the two ethernet interfaces. Inside these orthogonal regions I would like to nest other orthogonal regions that represent the connections. Can be correct? Thanks a lot! GDV

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

    Hi Miro, I'm thinking about a board that has two ethernet ports. If I need to manage a Modbus server on both interface, I'm thinking to create an AO Modbus Server, that has two orthogonal regions that represets the two ethernet interfaces. Inside these orthogonal regions I would like to nest other orthogonal regions that represent the connections. Can be correct? Thanks a lot! GDV

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

    Hi Miro, I'm trying to develop a web server where each connection is described by an orthogonal. The orthogonal regions need to communicate with other AO. This is not a problem, it's sufficient to create and post an event. For example, connection nr. X needs to read data from the file system in order to manage a request made by a browser. In this case connection nr. X post an event to the memory manager AO in order to get the data. When the memory manager AO sends the response to the web server manager,...

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

    Hi Miro, I'm trying to develop a web server where each connection is described by an orthogonal. The orthogonal regions need to communicate with other AO. This is not a problem, it's sufficient to create and post an event. For example, connection nr. X needs to read data from the file system in order to manage a request made by a browser. In this case connection nr. X post an event to the memory manager AO in order to get the data. When the memory manager AO sends the response to the web server manager,...

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

    Hi all, I need to manage a library (it has to work with TCP-IP stack) that does not support the non-blocking API (for example, it sends a commad, but after it waits for a response). In the end, unfurtunally, I have to manage that library inside a traditional task. What is the best approch to communicate with the rest of the system where AOs are running? Best regards, GDV

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

    Hi all, I'm playing with QP and QT integration. I want to implement a TCP Modbus client to read some register from a Modbus server. I've created the GUI active object that encapsulates the QT GUI interface and then I've created a Communication Active object where I want to encapsulates the modbus communication. I'm using QModbusTcpClient object to communicate with the server, but I need to connect the QModbusClient::stateChanged signal from QModbusTcpClient class to my AO_Communication object. QEventLoop::connect(this->modbus,...

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

    Hi QP Team, What is your suggestion for a software to draw UML state charts on Windows? Do you prefer to use a tablet? Thanks a lot! GDV

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

    Hi Miro, Thanks for the suggestion, I've already read that documentation. Indeed, I would like to have a focus on how to integrate the MVC into AO (and if it's the best choice). As you said, having Model, View and Controller as separate AOs is probably incorrect, but I'm thinking that each "GUI Page" can be modelled as a state of the View AO (now I'm speaking about a complex GUI, where you have to manage multiple pages). Could be correct? Thanks! GDV

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

    Hi QP teams, I'm starting a project where I want to add a GUI. I would like to implement a model-view-controller design pattern working with Active Obejct. I have never implemented it before. Could you give me any advice, please? Thanks a lot! Giulio

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

    Hi Danilo, I developed somethink like that in the past, but I used DMA in circular mode to receive data from UART. This avoid any data lost, but, of course, depend of the baudrate and system design. If you want you can allocate the event and pass the same event buffer to the HAL driver, so you can avoid to use 2 AO_UART buffers. Best regards, Giulio

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

    Hi Miro, Danilo I was reading this discussion and I was thinking that sometimes we want to separate the AO (like AO_UART and AO_Uart_Protocol), so that we can reuse AO_UART (driver) in a different project. We can reuse the same driver (maybe is working with DMA and USART IDLE IRQ to signal that a frame is ready) without re-write again the same functions. What do you think about that? GDV

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

    Hi Harry, Thanks for your point! If I created an event like this: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ } request_event_t; that means that if the driver user need to send only few bytes there is a wastefulness of memory. User create a new event with event_ptr = Q_NEW(request_event_t, WINDBOND_WRITING_SIG); allocating 1024 and more byte from memory only to send few byte. Is there any suggestion...

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

    Hi Miro, Thanks for your suggestion. I understood what you mean. In the end the driver interface shoul be something like that: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ QActive* act; /* AO that send the request */ } request_event_t; /*! Initialize flash driver */ void windbond_flash_init(windbond_flash_t *const me, hal_octospi_instance_t spi, hal_mdma_instance_t dma); /*! Post a new request to...

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

    Hi Miro, Thanks for your suggestion. I understood what you mean. In the end the driver interface shoul be something like that: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ QActive* act; /* AO that send the request */ } request_event_t; /*! Initialize flash driver */ void windbond_flash_init(windbond_flash_t *const me, hal_octospi_instance_t spi, hal_mdma_instance_t dma); /*! Post a new request to...

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

    Hi Miro, Thanks for your suggestion. I understood what you mean. In the end the driver interface shoul be something like that: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ QActive* act; /* AO that send the request */ } request_event_t; /*! Initialize flash driver */ void windbond_flash_init(windbond_flash_t *const me, hal_octospi_instance_t spi, hal_mdma_instance_t dma); /*! Post a new request to...

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

    Hi Miro, Thanks for your suggestion. I understood what you mean. In the end the driver interface shoul be something like that: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ QActive* act; /* AO that send the request */ } request_event_t; /*! Initialize flash driver */ void windbond_flash_init(windbond_flash_t *const me, hal_octospi_instance_t spi, hal_mdma_instance_t dma); /*! Post a new request to...

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

    Hi Miro, Thanks for your suggestion. I understood what you mean. In the end the driver interface shoul be something like that: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ QActive* act; /* AO that send the request */ } request_event_t; /*! Initialize flash driver */ void windbond_flash_init(windbond_flash_t *const me, hal_octospi_instance_t spi, hal_mdma_instance_t dma); /*! Post a new request to...

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

    Hi Miro, Thanks for your suggestion. I understood what you mean. In the end the driver interface shoul be something like that: typedef struct { QEvt super; /* inherit QEvt */ uint16_t len; /* actual length of the payload [bytes] */ uint8_t payload[1024]; /* the payload */ QActive* act; /* AO that send the request */ } request_event_t; /*! Initialize flash driver */ void windbond_flash_init(windbond_flash_t *const me, hal_octospi_instance_t spi, hal_mdma_instance_t dma); /*! Post a new request to...

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

    Hi Miro, thank you for your suggestion! The FlashMgr that I'm developing is a driver that should be able to handle a communication with Windbond Flash family devices (it has to respect the timing and commands that the Windbond flash required). I'm trying to develop such kind of driver in order to be able to reuse it easly. When you say; You could use an interface based on events. Specifically, a request to read/write could be simply built as an event to begin with, and then that event would be simply...

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

    Hi Miro, thank you for your suggestion! The FlashMgr that I'm developing is a driver that should be able to handle a communication with Windbond Flash family devices (it has to respect the timing and commands that the Windbond flash required). I'm trying to develop such kind of driver in order to be able to reuse it easly. When you say; You could use an interface based on events. Specifically, a request to read/write could be simply built as an event to begin with, and then that event would be simply...

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

    Hi Miro, I think there was a miss-understanding. I'm developing a driver that is a sub-class of an AO. That means that the driver is an AO that will be the only one that can call HAL SPI function (so there is not any problems which sharing resource). Other AO in the application level (for example a Display Manager AO) can call read/write driver function. The driver post a event to itself queue. When the driver will finish to process the request it call a callback to inform the Display that the operation...

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

    Hi Miro, I think there was a miss-understanding. I'm developing a driver that is a sub-class of an AO. That means that the driver is an AO that will be the only one that can call HAL SPI function (so there is not any problems which sharing resource). Other AO in the application level (for example a Display Manager AO) can call read/write driver function. The driver post a event to itself queue. When the driver will finish to process the request it call a callback to inform the Display that the operation...

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

    Hi Miro, I think there was a miss-understanding. I'm developing a driver that is a sub-class of an AO. That means that the driver is an AO that will be the only one that can call HAL SPI function (so there is not any problems which sharing resource). Other AO in the application level (for example a Display Manager AO) can call read/write driver function. The driver post a event to itself queue. When the driver will finish to process the request it call a callback to inform the Display that the operation...

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

    Hi Miro, inside the driver I have an AO that can manage and call the SPI function in order to communicate with external flash. Only this one AO will be allowed to call my SPI function. In the application level, the user can call windbond_flash_read()/windbond_flash_write()functions. The windbond_flash_t istance is a subclass of AO. I'm developing the driver using interrupt and DMA, so I take advantage of IRQ to match the event-driven architecture. I'm also using the deferring pattern in order to...

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

    Hi Miro, inside the driver I have an AO that can manage and call the SPI function in order to communicate with external flash. Only this one AO will be allowed to call my SPI function. In the application level, the user can call windbond_flash_read()/windbond_flash_write() functions. This is the structure of the driver AO: I'm developing the driver using interrupt and DMA, so I take advantage of IRQ to match the event-driven architecture. I'm also using the deferring pattern in order to be able to...

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

    Hi Miro, inside the driver I have an AO that can manage and call the SPI function in order to communicate with external flash. Only this one AO will be allowed to call my SPI function. In the application level, the user can call windbond_flash_read()/windbond_flash_write() functions. This is the structure of the driver AO: I'm developing the driver using interrupt and DMA, so I take advantage of IRQ to match the event-driven architecture. I'm also using the deferring pattern in order to be able to...

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

    Hi Miro, inside the driver I have an AO that can manage and call the SPI function in order to communicate with external flash. Only this one AO will be allowed to call my SPI function. In the application level, the user can call windbond_flash_read()/windbond_flash_write() functions. This is the structure of the driver AO: typedef struct windbond_flash { super; /* Queue event */ edf_event_t *event_pool[10]; /* Task stack */ StackType_t task_stack[1024]; /* Deferring queue event */ EDF_QUEUE_TYPE...

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

    Hi Miro, inside the driver I have an AO that can manage and call the SPI function in order to communicate with external flash. Only this one AO will be allowed to call my SPI function. In the application level, the user can call windbond_flash_read()/windbond_flash_write() functions. This is the structure of the driver AO: typedef struct windbond_flash { edf_ao_t super; /* Queue event */ edf_event_t *event_pool[10]; /* Task stack */ StackType_t task_stack[1024]; /* Deferring queue event */ EDF_QUEUE_TYPE...

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

    Hi QP Teams, I'm trying to develop a driver for an external flash (Windbond) with the "event-driver" design pattern. I'm developing a "windbond_driver.c" where there is an active object that manage the QSPI communication. The public interface to read/write data from/to external flash will be: windbond_flash_read(windbond_flash_t *const me, uint32_t ui32_address, uint8_t * const pui8_data, size_t length); windbond_flash_write(windbond_flash_t *const me, uint32_t ui32_address, uint8_t const * const...

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

    Hi QP Teams, I'm trying to develop a driver for an external flash (Windbond) with the "event-driver" design pattern. I'm developing a "windbond_driver.c" where there is an active object that manage the QSPI communication. The public interface to read/write data from/to external flash will be: windbond_flash_read(windbond_flash_t *const me, uint32_t ui32_address, uint8_t * const pui8_data, size_t length); windbond_flash_write(windbond_flash_t *const me, uint32_t ui32_address, uint8_t const * const...

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

    Hi QP Teams, I'm trying to develop a driver for an external flash (Windbond) with the "event-driver" design pattern. I'm developing a "windbond_driver.c" where there is an active object that manage the QSPI communication. The public interface to read/write data from/to external flash will be: windbond_flash_read(windbond_flash_t *const me, uint32_t ui32_address, uint8_t * const pui8_data, size_t length); windbond_flash_write(windbond_flash_t *const me, uint32_t ui32_address, uint8_t * const pui8_data,...

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

    Thanks a lot! I thought that the user had to create a memory pool that mached the (event size * NUM_OF_EVENT). Best regards, Giulio Dalla Vecchia

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

    Hi QP Team, I know that QP Framework allows to manage a sort of dynamic events. These events are allocated and managed as a simply array (event pool). So, if I'm not wrong, if I need to manage ten different dynamic events, I need to create ten different "event pool" in order to fit the different event size. I'm wondering why the framework can't manage this situation with a single memory pool where we can alloc space for each dynamic event. Is it due to memory fragmentation? Is it due to safety reason?...

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

    Thanks a lot! I'm stupid, at the beginning is a bit difficul to "invert" your focus and to start to thing that is the events that move on everything. Best regards, Giulio

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

    _WriteHReg() is running from modbus slave library task: static void modbus_server_process(void *parameter) { (void)parameter; while (1) { // // Wait for new data to arrive. // MB_OS_WaitNetEvent(0); // // Process data. // MB_SLAVE_Exec(); } } The modbus library that I'm using is build by SEGGER, so I can't modify it (or better, I would not). Another modbus library callback is for reading holding register: static int _ReadHR(U16 Addr, U16 *pVal) { *pVal = holding_register[Addr]; return 0; /* Return...

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

    _WriteHReg() is running from modbus slave library task: static void modbus_server_process(void *parameter) { (void)parameter; while (1) { // // Wait for new data to arrive. // MB_OS_WaitNetEvent(0); // // Process data. // MB_SLAVE_Exec(); } } The modbus library that I'm using is build by SEGGER, so I can't modify it (or better, I would not).

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

    WriteHReg() is running from modbus slave library task: static void modbus_server_process(void *parameter) { (void)parameter; while (1) { // // Wait for new data to arrive. // MB_OS_WaitNetEvent(0); // // Process data. // MB_SLAVE_Exec(); } } The modbus library that I'm using is build by SEGGER, so I can't modify it (or better, I would not).

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

    Hi MMS, During the last week I've been working with the project where I need to implement a modbus communication. I've encapsulated the whole modbus library (SEGGER) inside a ModbusMgrAO. When the ModbusMgrAO receive a CLOCKUPDATE event from the application, it is able to update the correct modbus register (holding register). The problem is when the user tries to write a modbus register. In that case a modbus library callback is called: static int _WriteHReg(U16 Addr, U16 Val) { holding_register[Addr]...

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

    Hi MMS, During the last week I've been working with the project where I need to implement a modbus communication. I've encapsulated the whole modbus library (SEGGER) inside a ModbusMgrAO. When the ModbusMgrAO receive a CLOCKUPDATE event from the application, it is able to update the correct modbus register (holding register). The problem is when the user tries to write a modbus register. In that case a modbus library callback is called: static int _WriteHReg(U16 Addr, U16 Val) { holding_register[Addr]...

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

    Hi MMS, During the last week I've been working with the project where I need to implement a modbus communication. I've encapsulated the whole modbus library (SEGGER) inside a ModbusMgrAO. When the ModbusMgrAO receive a CLOCKUPDATE event from the application, it is able to update the correct modbus register (holding register). The problem is when the user tries to read a modbus register. In that case a modbus library callback is called: static int _WriteHReg(U16 Addr, U16 Val) { holding_register[Addr]...

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

    Hi MMS, During the last week I've been working with the project where I need to implement a modbus communication. I've encapsulated the whole modbus library (SEGGER) inside a ModbusMgrAO. When the ModbusMgrAO receive a CLOCKUPDATE event from the application, it is able to update the correct modbus register (holding register). The problem is when the user tries to read a modbus register. In that case a modbus library callback is called: static int _WriteHReg(U16 Addr, U16 Val) { holding_register[addr]...

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

    Hi Miro, I've developed an architecture where "ModbusMgr" doesn't have all the registers ready to be read and write due to RAM space limit. But I understand what you mean. Thanks a lot for your help! In that way I think the "global" enum that contains SIG event growns very fast. I'm thinking if there is any possibility to declare the specific event related to an "Instance Manager" in the own header file, but I don't know if it's possible. Thanks a lot again Miro! My dream it's to spend my holiday...

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

    Thanks for the reply. I hope other QP users can share their experiences. I understand that I can encapsulate a modbus request as a event with some data, that is fine. But, I don't understand how I can connect that with a classic modbus library callback (link set_holding_register(address, data)). Modbus register in general aren't connected only with a specific active object, so I can't encapsulate modbus instance inside a specific object. For example, I need to set/get the clock and date through a...

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

    Hi QP Framework developer, I'm a university student and I'm really enjoying to develop applications on STM32 with QP Framework. I was wondering how I can manage a modbus communication with an active object framework. I mean, I'm using Segger modbus library and I would like to understand how the application architecture would be if I need to read and write some parameter through serial communication. Any advice is very appreciated. Thanks a lot in advance, Giulio

1