Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Unable to send and receive images between 2 Raspberry connected to Zigbee via UART.
Forum Updated to NodeBB v4.3 + New Features

Unable to send and receive images between 2 Raspberry connected to Zigbee via UART.

Scheduled Pinned Locked Moved Unsolved General and Desktop
42 Posts 4 Posters 8.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mrjjM mrjj

    @Rika
    Good testing.
    So even it says
    qDebug()<<ba.size()<<"size_send:";
    1000 size_send
    you only get
    5 lines of
    16 sizeeeee:
    32 sizeeeee:
    64 sizeeeee:
    64 sizeeeee:
    14 sizeeeee:
    ?

    R Offline
    R Offline
    Rika
    wrote on last edited by Rika
    #32

    @mrjj Sometimes 4 lines, sometimes 7 lines, but the total is 190 bytes. With 500-A, received only 230

    mrjjM 1 Reply Last reply
    0
    • R Rika

      @mrjj Sometimes 4 lines, sometimes 7 lines, but the total is 190 bytes. With 500-A, received only 230

      mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #33

      @Rika
      Ok
      if we do
      ba.fill('A', 10);
      do you then get all ?

      R 1 Reply Last reply
      0
      • mrjjM mrjj

        @Rika
        Ok
        if we do
        ba.fill('A', 10);
        do you then get all ?

        R Offline
        R Offline
        Rika
        wrote on last edited by
        #34

        @mrjj yes.

        mrjjM 1 Reply Last reply
        0
        • R Rika

          @mrjj yes.

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #35

          @Rika
          So it seems data get cut over some size.

          What Os is running on the boards ?

          Also maybe Zigbee has some sort of max transfer size ?

          R 1 Reply Last reply
          0
          • mrjjM mrjj

            @Rika
            So it seems data get cut over some size.

            What Os is running on the boards ?

            Also maybe Zigbee has some sort of max transfer size ?

            R Offline
            R Offline
            Rika
            wrote on last edited by
            #36

            @mrjj I use raspbian. I tried using a PC connected to zigbee and sent photos to my Pi4 + Zigbee with Realterm, my Pi4 received the photos. I think the error is in the program sends the data.

            1 Reply Last reply
            0
            • J.HilkJ Offline
              J.HilkJ Offline
              J.Hilk
              Moderators
              wrote on last edited by
              #37

              well, lets narrow it down,
              write returns a quint64 with the actual number of bytes written to the serialport, what does that return ?

              void serial::on_pushButton_2_clicked()
              {
                      static QByteArray ba;
                      ba.fill('A', 1000);
                      if(serialPort->isOpen()==true){
                          quint64 send = serialPort->write(ba);
                          qDebug()<<send << " of" << ba.size()<<"size_send:";
                      }
              }
              

              Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


              Q: What's that?
              A: It's blue light.
              Q: What does it do?
              A: It turns blue.

              R 1 Reply Last reply
              1
              • J.HilkJ J.Hilk

                well, lets narrow it down,
                write returns a quint64 with the actual number of bytes written to the serialport, what does that return ?

                void serial::on_pushButton_2_clicked()
                {
                        static QByteArray ba;
                        ba.fill('A', 1000);
                        if(serialPort->isOpen()==true){
                            quint64 send = serialPort->write(ba);
                            qDebug()<<send << " of" << ba.size()<<"size_send:";
                        }
                }
                
                R Offline
                R Offline
                Rika
                wrote on last edited by
                #38

                @J-Hilk 1000 of 1000 size.

                J.HilkJ 1 Reply Last reply
                0
                • R Rika

                  @J-Hilk 1000 of 1000 size.

                  J.HilkJ Offline
                  J.HilkJ Offline
                  J.Hilk
                  Moderators
                  wrote on last edited by
                  #39

                  @Rika well,
                  to make sure your 2nd application is not simply very late in its creation/startup process, try clicking the button a 2nd time, see if something changes :D

                  After that, time for a serial port listing device, to check what is actually transferred


                  Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                  Q: What's that?
                  A: It's blue light.
                  Q: What does it do?
                  A: It turns blue.

                  mrjjM 1 Reply Last reply
                  0
                  • J.HilkJ J.Hilk

                    @Rika well,
                    to make sure your 2nd application is not simply very late in its creation/startup process, try clicking the button a 2nd time, see if something changes :D

                    After that, time for a serial port listing device, to check what is actually transferred

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #40

                    @J-Hilk
                    When i goggle Zigbee , i do see max payload mentioned.
                    Do you think that could be the cause here ?
                    I never used Zigbee so not sure if its even an issue.

                    J.HilkJ 1 Reply Last reply
                    1
                    • mrjjM mrjj

                      @J-Hilk
                      When i goggle Zigbee , i do see max payload mentioned.
                      Do you think that could be the cause here ?
                      I never used Zigbee so not sure if its even an issue.

                      J.HilkJ Offline
                      J.HilkJ Offline
                      J.Hilk
                      Moderators
                      wrote on last edited by J.Hilk
                      #41

                      @mrjj uh, I should read the opening post more clearly,

                      You're right, that is most likely the issue, ZigBee is a low data transfer protocol and from what my quick google search told me, limited to about 100 - 200 bytes, which fits exactly here

                      for a quick and dirty test, we could split the test byte array and send it delayed, that should work

                      void serial::on_pushButton_2_clicked()
                      {
                              static QByteArray ba;
                                 int index(0);
                                 ba.fill('A', 1000);
                                 if(serialPort->isOpen()==true){
                                     QTimer *t = new QTimer();
                                     auto sendSection = [=,&index]()->void{
                                         serialPort->write(ba.data() + index * 100, 100);
                                         index ++;
                                         if(index == 10)
                                             t->deleteLater();
                                     };
                                     QObject::connect(t, &QTimer::timeout, sendSection);
                                     t->start(1000);
                              //       quint64 send = serialPort->write(ba);
                                     qDebug()<< ba.size()<<"size_send:";
                                 }
                      }
                      

                      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                      Q: What's that?
                      A: It's blue light.
                      Q: What does it do?
                      A: It turns blue.

                      1 Reply Last reply
                      2
                      • R Offline
                        R Offline
                        Rika
                        wrote on last edited by
                        #42

                        @mrjj @J-Hilk Sorry for my late reply. The problem is when I try to send from PC with Realterm (Pc is also connected to Zigbee), on Pi4 I still get pictures.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved