Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. QSerialPort bytesAvailable() and read() delayed, QextSerialPort works
Forum Updated to NodeBB v4.3 + New Features

QSerialPort bytesAvailable() and read() delayed, QextSerialPort works

Scheduled Pinned Locked Moved Mobile and Embedded
21 Posts 7 Posters 14.5k 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.
  • M Offline
    M Offline
    mr_wallyit
    wrote on last edited by
    #12

    Sorry I have deleted a duplicate message

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mr_wallyit
      wrote on last edited by
      #13

      Sorry I have deleted a duplicate message

      1 Reply Last reply
      0
      • K Offline
        K Offline
        KeepGoing
        wrote on last edited by
        #14

        Hello Mr_Wallyit
        Thank you for your reply.
        My target is android. Is it the same with Android as well?

        Thank you in advance.

        1 Reply Last reply
        0
        • K Offline
          K Offline
          KeepGoing
          wrote on last edited by
          #15

          Hello Mr_Wallyit
          Thank you for your reply.
          My target is android. Is it the same with Android as well?

          Thank you in advance.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mr_wallyit
            wrote on last edited by
            #16

            Hello,

            yes of course, I use Point of sale Industrial with Android, with workarround we can use serial port.

            Best Regards

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mr_wallyit
              wrote on last edited by
              #17

              Hello,

              yes of course, I use Point of sale Industrial with Android, with workarround we can use serial port.

              Best Regards

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Abin
                wrote on last edited by
                #18

                Hi Mr_Wallyit,

                Thanks for sharing the details.

                I have an android device which has serial port attached to it. The manufacturer has a sample application with it which uses the serial port. The port name is "/dev/ttyS6".

                As you mentioned I tried to create folder in my device. My device file explorer shows files structure as "/mnt/sdcard". So I created folders as below:
                "/mnt/sdcard/data/lock"
                "/mnt/sdcard/data/locks"
                "/mnt/sdcard/data/spool/locks"
                "/mnt/sdcard/data/spool/uucp"
                "/mnt/sdcard/data/tmp"

                But, the folder "/mnt/data/local/tmp" is unable to create as my file explorer doesn't allow to create folder.

                I kept my code as @QString serialPortLockFilePath(const QString &portName)
                {
                static const QStringList lockDirectoryPaths = QStringList()

                #ifdef Q_OS_ANDROID
                << QStringLiteral("/mnt/sdcard/data/lock")
                << QStringLiteral("/mnt/sdcard/data/locks")
                << QStringLiteral("/mnt/sdcard/data/spool/locks")
                << QStringLiteral("/mnt/sdcard/data/spool/uucp")
                << QStringLiteral("/mnt/sdcard/data/tmp");
                #else
                << QStringLiteral("/var/lock")
                << QStringLiteral("/etc/locks")
                << QStringLiteral("/var/spool/locks")
                << QStringLiteral("/var/spool/uucp")
                << QStringLiteral("/tmp");
                #endif@

                And I have a second device whose files structure as "/sdcard". So I created folders as below:
                "/sdcard/data/lock"
                "/sdcard/data/locks"
                "/sdcard/data/spool/locks"
                "/sdcard/data/spool/uucp"
                "/sdcard/data/tmp"

                But, the folder "/data/local/tmp" is unable to create as my file explorer crashes on creating folder "/data/locaal" (need to retry with different file explorer application).

                @QString serialPortLockFilePath(const QString &portName)
                {
                static const QStringList lockDirectoryPaths = QStringList()

                #ifdef Q_OS_ANDROID
                << QStringLiteral("/sdcard/data/lock")
                << QStringLiteral("/sdcard/data/locks")
                << QStringLiteral("/sdcard/data/spool/locks")
                << QStringLiteral("/sdcard/data/spool/uucp")
                << QStringLiteral("/sdcard/data/tmp");
                #else
                << QStringLiteral("/var/lock")
                << QStringLiteral("/etc/locks")
                << QStringLiteral("/var/spool/locks")
                << QStringLiteral("/var/spool/uucp")
                << QStringLiteral("/tmp");
                #endif@

                and created a sample application which tries to access the serial port. I set the port name as @setPortName("/dev/ttyS6");@
                But when running the application I get the error "Permission denied".

                Could you help me to figure out where I am going wrong.

                Thanks in advance.

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Abin
                  wrote on last edited by
                  #19

                  Hi Mr_Wallyit,

                  Thanks for sharing the details.

                  I have an android device which has serial port attached to it. The manufacturer has a sample application with it which uses the serial port. The port name is "/dev/ttyS6".

                  As you mentioned I tried to create folder in my device. My device file explorer shows files structure as "/mnt/sdcard". So I created folders as below:
                  "/mnt/sdcard/data/lock"
                  "/mnt/sdcard/data/locks"
                  "/mnt/sdcard/data/spool/locks"
                  "/mnt/sdcard/data/spool/uucp"
                  "/mnt/sdcard/data/tmp"

                  But, the folder "/mnt/data/local/tmp" is unable to create as my file explorer doesn't allow to create folder.

                  I kept my code as @QString serialPortLockFilePath(const QString &portName)
                  {
                  static const QStringList lockDirectoryPaths = QStringList()

                  #ifdef Q_OS_ANDROID
                  << QStringLiteral("/mnt/sdcard/data/lock")
                  << QStringLiteral("/mnt/sdcard/data/locks")
                  << QStringLiteral("/mnt/sdcard/data/spool/locks")
                  << QStringLiteral("/mnt/sdcard/data/spool/uucp")
                  << QStringLiteral("/mnt/sdcard/data/tmp");
                  #else
                  << QStringLiteral("/var/lock")
                  << QStringLiteral("/etc/locks")
                  << QStringLiteral("/var/spool/locks")
                  << QStringLiteral("/var/spool/uucp")
                  << QStringLiteral("/tmp");
                  #endif@

                  And I have a second device whose files structure as "/sdcard". So I created folders as below:
                  "/sdcard/data/lock"
                  "/sdcard/data/locks"
                  "/sdcard/data/spool/locks"
                  "/sdcard/data/spool/uucp"
                  "/sdcard/data/tmp"

                  But, the folder "/data/local/tmp" is unable to create as my file explorer crashes on creating folder "/data/locaal" (need to retry with different file explorer application).

                  @QString serialPortLockFilePath(const QString &portName)
                  {
                  static const QStringList lockDirectoryPaths = QStringList()

                  #ifdef Q_OS_ANDROID
                  << QStringLiteral("/sdcard/data/lock")
                  << QStringLiteral("/sdcard/data/locks")
                  << QStringLiteral("/sdcard/data/spool/locks")
                  << QStringLiteral("/sdcard/data/spool/uucp")
                  << QStringLiteral("/sdcard/data/tmp");
                  #else
                  << QStringLiteral("/var/lock")
                  << QStringLiteral("/etc/locks")
                  << QStringLiteral("/var/spool/locks")
                  << QStringLiteral("/var/spool/uucp")
                  << QStringLiteral("/tmp");
                  #endif@

                  and created a sample application which tries to access the serial port. I set the port name as @setPortName("/dev/ttyS6");@
                  But when running the application I get the error "Permission denied".

                  Could you help me to figure out where I am going wrong.

                  Thanks in advance.

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    mr_wallyit
                    wrote on last edited by
                    #20

                    Hello,

                    this is my source code, I think who is wrong “/mnt/sdcard/data/lock”.

                    @

                    bool s = true;
                    QStringList pathList;
                    

                    #ifdef ANDROID
                    pathList << "/sdcard/data";
                    pathList << "/sdcard/data/lock";
                    pathList << "/sdcard/data/locks";
                    pathList << "/sdcard/data/spool";
                    pathList << "/sdcard/data/spool/locks";
                    pathList << "/sdcard/data/spool/uucp";
                    pathList << "/sdcard/data/tmp";
                    pathList << "/sdcard/data/local";
                    pathList << "/sdcard/data/local/tmp";
                    #endif

                    QDir d;
                    foreach (const QString s, pathList) {
                        d.setPath(s);
                        if (!d.exists()){
                            if(d.mkpath(d.absolutePath()))
                                qCCritical() << "error create directory " << d.absolutePath();
                        }
                    }
                    

                    @

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mr_wallyit
                      wrote on last edited by
                      #21

                      Hello,

                      this is my source code, I think who is wrong “/mnt/sdcard/data/lock”.

                      @

                      bool s = true;
                      QStringList pathList;
                      

                      #ifdef ANDROID
                      pathList << "/sdcard/data";
                      pathList << "/sdcard/data/lock";
                      pathList << "/sdcard/data/locks";
                      pathList << "/sdcard/data/spool";
                      pathList << "/sdcard/data/spool/locks";
                      pathList << "/sdcard/data/spool/uucp";
                      pathList << "/sdcard/data/tmp";
                      pathList << "/sdcard/data/local";
                      pathList << "/sdcard/data/local/tmp";
                      #endif

                      QDir d;
                      foreach (const QString s, pathList) {
                          d.setPath(s);
                          if (!d.exists()){
                              if(d.mkpath(d.absolutePath()))
                                  qCCritical() << "error create directory " << d.absolutePath();
                          }
                      }
                      

                      @

                      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