Viewing 12 reply threads
  • Author
    Posts
    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello,

      Our project using the STWI080WT-01 is almost 95% complete.

      The homepage screen has a background image, 5 buttons for switching to other windows and a progress bar for displaying the status of sensor readings.

      We send the value to the progress bar by sending the command “set_value”. But we noticed that everytime we send the value, the progress bar returns the value to the mcu. This creates a clash and collision with the button presses. We do not need the value being sent by the progress bar because we send value to it.

      During “get_value” it’s ok as you need to read the value from the progress bar. But not when using “set_value”.

      To get our project going, we used the “set_max” command as a temporary measure. This worked but not as elegant and smooth as the “set_value” command.

      Kindly advise please.

      Thanks.

    • Patricia RenPatricia Ren
      Keymaster
      @patricia
      Post count: 110

      Hello,
      Due to the setting of the command, changing the value is a dynamic change process, so there is more data return value.
      You can filter out some return values that you think need to be filtered through your program.

    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello Patricia,

      I have done various types of filtering on the mcu side but due to the vast data being bounced back by command “set_value”, not everything can be filtered.

      Some data still changes the status of buttons, etc.

      I do wonder why data should bounce back to the mcu when the command is simply “set_value” meaning I’m sending the value of the progress bar, not necessarily wanting data bouncing.

      If I want data from the bar then I can use command “get_value” instead which makes more sense.

      Please advise.

      Thanks.

    • bowei zhangbowei zhang
      Participant
      @zbw3366
      Post count: 62

      Can you tell me what MCU you are using? preferably with the program code

    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello Bowei,

      We use a PIC18F47K40 micro in our mcu.

      Sample program loop as follows:

      ———————————————————————–

      main_loop:

      ‘Gosub calculate sensor values….

      ‘Calculate percentage of sensor capacity (sensor value/capacity x 100)   –   the result will be the value to be sent to the progress_bar

      Serial_out, baud_rate, [Sensor_1, Sensor_2, etc…]   –   display the sensor values 

      Serial_out, baud_rate, [ ST<{“cmd_code”:”set_value”,”type”:”progress_bar”,”widget”:”progress_bar”,”value”:sensor_percentage_result}>ET]    –   send value to progress_bar

      Serial_in, baud_rate, [button_press_arrays]   –   wait for button press and jump to next code if button press is detected

      If button_press = “AA” then jump to subroutine A…

      If button_press = “BB” then jump to subroutine B…

      Goto main_loop   –  keep on looping while no button is pressed

      ———————————————————————–

      Above is a simple representation of our program code. What happens is the progress_bar also sends back data/values (which I don’t need) and these values sometimes cause a problem with the serial_in command. For example, a button will be pressed by itself and jump to a subroutine even without pressing it physically. This is because the serial_in command continuously monitors and reads data, including the progress_bar.

      I have tried filtering the data being received by the serial_in command, but still some data from the progress_bar comes through and cause problems.

      It would really be nice if the progress_bar doesn’t send data/value back when you send the “set_value” command to it.

      If I need the data/value, then I should just be able to use “get_value” command.

      Thanks.

       

       

    • bowei zhangbowei zhang
      Participant
      @zbw3366
      Post count: 62

      I haven’t used this MCU, can it be programmed in C? How does it determine the data received by the serial port? Is it polling or interrupt? One idea I’ve come up with is to send the set_value progress bar and then do a loop to clear the data coming next.

    • bowei zhangbowei zhang
      Participant
      @zbw3366
      Post count: 62

      //Like this Arduino program:

      #include “stone.h”

      extern unsigned char receive_over_flage;
      extern recive_group STONER;
      extern unsigned char STONE_RX_BUF[RX_LEN];

      char timer_flag = 0;

      void setup()
      {
      TCCR1A = 0;
      TCCR1B = 1 << CS12 | 1 << CS10; //1024fractional frequency 16000000/1024 = 15625HZ = 64us
      TCCR1B |= 1 << WGM13 | 1 << WGM12; //MODE: CTC
      ICR1 = 15625; //Reloading the value 64*15625 = 1S
      TIMSK1 |= (1 << OCIE1A); //Enable the capture interrupt of timer 1
      Serial.begin(115200);
      }

      void loop() {

      serial_receive();

      if (timer_flag == 1)
      {
      set_value(“progress_bar”, “progress_bar1”, “66”);
      timer_flag = 0;
      delay(1000);
      while(Serial.read()>0);
      }

      }

      ISR(TIMER1_COMPA_vect){ //Timer 1 interrupt function

      timer_flag = 1;
      }

    • bowei zhangbowei zhang
      Participant
      @zbw3366
      Post count: 62

      In this example, the set_value is sent to the progress control once per second, and the data received in the next 1 second is cleared directly after the sending is completed, which can have a certain effect

      • AndreyAndrey
        Participant
        @andybig
        Post count: 49

        This cannot be done, because during the same second some other notification may come from the HMI, for example, about pressing a button.
        You just need to ignore incoming messages about changing the progress value.

    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello,

      I have tried various filtering methods to ignore the incoming data from the progress bar, but still no luck.

      I would suggest just removing this from the firmware itself.

      To update the progress bar, just use the “set_value” command, without any data coming back from the LCD to the MCU. This is the same as when you “set_text” to the LCD, no data comes back to the MCU.

      To read the progress bar, then just use “get_value” and the LCD will send the data to the MCU.

      I think this makes more sense.

      Thank you very much.

       

      • Patricia RenPatricia Ren
        Keymaster
        @patricia
        Post count: 110

        This feature will be updated later to add the option to turn off automatic data sending, which can be turned off by the user.

    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello Patricia,

      Thank you for looking into this.

      When do you think this becomes available so that I can update the LCD’s we have out there in the field.

      Thanks again.

    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello Patricia,

      Has this feature been added to the latest firmware 1.1.6?

      Thanks and best regards.

       

       

      • Patricia RenPatricia Ren
        Keymaster
        @patricia
        Post count: 110

        Sorry, I don’t understand exactly what you mean by needs, can you describe it or show me a picture?

      • Patricia RenPatricia Ren
        Keymaster
        @patricia
        Post count: 110

        Sorry, I don’t understand exactly what you mean by needs, can you describe it or show me a picture?

      • Jose PinedaJose Pineda
        Participant
        @jose
        Post count: 19

        Hello Patricia,

        Thanks for your reply.

        Kindly back read on previous messages to give you an understanding of the problem please. This is regarding the “set_value” command on the progress bar.

        You actually replied on September 26, 2022 (Reply #3412), and you said that “the feature will be updated later to add to the option to turn off automatic data sending, which can be turned off by the user.”

        Kindly check please.

        Thanks again.

    • Jose PinedaJose Pineda
      Participant
      @jose
      Post count: 19

      Hello Patricia,

      Thanks for your reply.

      Kindly back read on previous messages to give you an understanding of the problem please. This is regarding the “set_value” command on the progress bar.

      You actually replied on September 26, 2022 (Reply #3412), and you said that “the feature will be updated later to add to the option to turn off automatic data sending, which can be turned off by the user.”

      Kindly check please.

      Thanks again.

       

      • Patricia RenPatricia Ren
        Keymaster
        @patricia
        Post count: 110

        Hello! We are studying this function and it will take some time. I have written down your requirements. If we finish this function, someone will inform you to update the firmware and tell you the specific operation steps. Please be patient for some time.
        Thanks!

      • Jose PinedaJose Pineda
        Participant
        @jose
        Post count: 19

        Ok Patricia.

        Thanks.

    • andres gonzalezandres gonzalez
      Participant
      @andres12119999999
      Post count: 1

      Hi I have the same problem, when i sent a value to a label, the HMI returns data. it does that my mcu collaps because there are a lot of data on serial buffer. Can you help me, I have the stone-designer 2.0.27

Viewing 12 reply threads
  • You must be logged in to reply to this topic.