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. copy unsigned char array into QByteArray ..... problems
QtWS25 Last Chance

copy unsigned char array into QByteArray ..... problems

Scheduled Pinned Locked Moved Solved General and Desktop
16 Posts 4 Posters 6.5k Views
  • 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.
  • O o6a6r9v1p

    @J.Hilk hi,
    passed buf[] as you told, as a parameter to QSerialPort(), but it gives same error.
    The code is:

    for(i=0;i<20;i++){
        wbuf[i]=i;
    }
    
    const qint64 bytesWritten = serPort->write(wbuf));
    

    the error is:

    invalid conversion from  "unsigned char*" to "const char*"
    

    can you point to examples or doc pages, if possible.

    Thanks.

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #6

    @o6a6r9v1p Please read what @raven-worx wrote (hint: casting)

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    O 1 Reply Last reply
    3
    • jsulmJ jsulm

      @o6a6r9v1p Please read what @raven-worx wrote (hint: casting)

      O Offline
      O Offline
      o6a6r9v1p
      wrote on last edited by
      #7

      @jsulm
      hi,
      can we do it the way it is done C?
      or is it different in C++?

      I am not good in C++.

      Thanks.

      jsulmJ J.HilkJ 2 Replies Last reply
      0
      • O o6a6r9v1p

        @jsulm
        hi,
        can we do it the way it is done C?
        or is it different in C++?

        I am not good in C++.

        Thanks.

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #8

        @o6a6r9v1p

        const qint64 bytesWritten = serPort->write(reinterpret_cast<char*>(wbuf)));
        

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        O 1 Reply Last reply
        1
        • O o6a6r9v1p

          @jsulm
          hi,
          can we do it the way it is done C?
          or is it different in C++?

          I am not good in C++.

          Thanks.

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

          @o6a6r9v1p
          take a look here

          http://www.cplusplus.com/doc/tutorial/typecasting/

          you can use c-style casting, but you're encuraged to use the cpp variants


          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
          0
          • jsulmJ jsulm

            @o6a6r9v1p

            const qint64 bytesWritten = serPort->write(reinterpret_cast<char*>(wbuf)));
            
            O Offline
            O Offline
            o6a6r9v1p
            wrote on last edited by
            #10

            @jsulm
            hi,
            Thanks for the word. this line was used, think i am wrong some where.

            const qint64 bytesWritten = serPort->write(const QByteArray ((unsigned char*) wbuf));
            

            where did i miss?

            Thanks,

            jsulmJ 1 Reply Last reply
            0
            • O o6a6r9v1p

              @jsulm
              hi,
              Thanks for the word. this line was used, think i am wrong some where.

              const qint64 bytesWritten = serPort->write(const QByteArray ((unsigned char*) wbuf));
              

              where did i miss?

              Thanks,

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by jsulm
              #11

              @o6a6r9v1p Why do you create a byte array? @J-Hilk already said here that this is not needed.
              What is wrong in your code: remove the const before QByteArray. You should learn more about C++.

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              O 2 Replies Last reply
              0
              • jsulmJ jsulm

                @o6a6r9v1p Why do you create a byte array? @J-Hilk already said here that this is not needed.
                What is wrong in your code: remove the const before QByteArray. You should learn more about C++.

                O Offline
                O Offline
                o6a6r9v1p
                wrote on last edited by
                #12

                @jsulm
                hi,
                sending data bytes in certain order.
                we use a structure of bytes.

                jsulmJ 1 Reply Last reply
                0
                • O o6a6r9v1p

                  @jsulm
                  hi,
                  sending data bytes in certain order.
                  we use a structure of bytes.

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #13

                  @o6a6r9v1p Again: there is NO need for QByteArray.
                  This line should work as well, did you try?

                  const qint64 bytesWritten = serPort->write(reinterpret_cast<char*>(wbuf)));
                  

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  O 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @o6a6r9v1p Why do you create a byte array? @J-Hilk already said here that this is not needed.
                    What is wrong in your code: remove the const before QByteArray. You should learn more about C++.

                    O Offline
                    O Offline
                    o6a6r9v1p
                    wrote on last edited by
                    #14

                    @jsulm
                    removed const as told.
                    still i am getting:

                    invaild conversion from unsigned char* to const char* error.
                    

                    i know c programming, but not good in c++,

                    thanks,

                    jsulmJ 1 Reply Last reply
                    0
                    • O o6a6r9v1p

                      @jsulm
                      removed const as told.
                      still i am getting:

                      invaild conversion from unsigned char* to const char* error.
                      

                      i know c programming, but not good in c++,

                      thanks,

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #15

                      @o6a6r9v1p You should read more carefully - I already showed you what you need to do.

                      1. Why do you want to use QByteArray? It is not needed. QByteArray does not care about any order - it is the order you give it.
                      2. You need to cast unsigned char* to char*. See my previous posts to see how, I don't want to write it again and again.

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      2
                      • jsulmJ jsulm

                        @o6a6r9v1p Again: there is NO need for QByteArray.
                        This line should work as well, did you try?

                        const qint64 bytesWritten = serPort->write(reinterpret_cast<char*>(wbuf)));
                        
                        O Offline
                        O Offline
                        o6a6r9v1p
                        wrote on last edited by
                        #16

                        @jsulm
                        hi,
                        i under stood that line in wrongly. in the place of <char *>, i have used const QByteArray.
                        Now i got the point after going trough the type casting page, adviced by you.

                        Now it is working.
                        Thanks to all of you.

                        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