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. Q Serial Port behaves differently on windows 8
Forum Updated to NodeBB v4.3 + New Features

Q Serial Port behaves differently on windows 8

Scheduled Pinned Locked Moved General and Desktop
6 Posts 2 Posters 2.2k 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.
  • B Offline
    B Offline
    baordog
    wrote on last edited by
    #1

    I am writing an application that takes data from serial devices. Up until now, I have been developing it on Windows 7. However, when I deploy to Windows 8, the program does not detect any serial ports.

    The program finds and communicates with the device perfectly fine on Windows 7.

    Now, this may seem obvious, but: Do I need to recompile my app on Windows 8 for it to work properly on Windows 8?

    Are there windows 8 specific deployment DLLs?

    1 Reply Last reply
    0
    • K Offline
      K Offline
      kuzulis
      Qt Champions 2020
      wrote on last edited by
      #2

      QtSerialPort works fine on any Windows up XP to 8.1.

      bq. However, when I deploy to Windows 8, the program does not detect any serial ports.

      What type of device do you expect to find?

      bq. Do I need to recompile my app on Windows 8 for it to work properly on Windows 8?

      No.

      bq. Are there windows 8 specific deployment DLLs?

      No.

      PS: Just make sure that your Application's package contains all desired runtime libraries, from Qt, MSVC/MinGW and so on.

      1 Reply Last reply
      0
      • B Offline
        B Offline
        baordog
        wrote on last edited by
        #3

        I am expecting to find a generic serial device (It's a microcontroller, arduino type thing)

        As I said it is found perfectly on Windows 7, but not at all on windows 8. Tested this about a dozen PCs now.

        Any ideas for what could be going on?

        1 Reply Last reply
        0
        • K Offline
          K Offline
          kuzulis
          Qt Champions 2020
          wrote on last edited by
          #4

          bq. Any ideas for what could be going on?

          1. This serial port are present in "Device Manager" of your Win8 PC?

          2. Can you provide an *.inf file of your driver?

          3. What version of QtSerialPort do you use? Do you build it himself or take from the Qt package?

          1 Reply Last reply
          0
          • B Offline
            B Offline
            baordog
            wrote on last edited by
            #5
            1. Yes, it does.
            2. The .inf is below
            3. I take QSerialPort from the Qt 5.3 package. I do not compile it myself.

            I should emphasize that other applications besides my Qt derived application are finding the devices just fine, the app works perfectly as intended on Windows 7.

            I did not make this inf, it is a common inf for arduino type devices:

            Here is the files as found on my functioning Windows 7 machine:

            [code]
            ; Windows INF to load usbser driver for all CDC-ACM USB Serial Ports
            ; Copyright (C) 2008 PJRC.COM, LLC.

            [Version]
            Signature="$Windows NT$"
            Class=Ports
            ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
            Provider=%MFGNAME%
            DriverVer=01/01/2008,1.0.0.0
            ;CatalogFile=cdc_acm_class.cat

            [Manufacturer]
            %MFGNAME%=DeviceList, NTamd64

            [DeviceList]
            %DEVNAME%=DriverInstall,USB\Class_02&SubClass_02&Prot_01

            [DeviceList.NTamd64]
            %DEVNAME%=DriverInstall,USB\Class_02&SubClass_02&Prot_01

            [DeviceList.NTia64]
            %DEVNAME%=DriverInstall,USB\Class_02&SubClass_02&Prot_01

            [SourceDisksNames]
            1=%CD1NAME%

            [SourceDisksFiles]

            [DestinationDirs]
            DefaultDestDir=12

            [DriverInstall]
            Include=mdmcpq.inf
            CopyFiles=FakeModemCopyFileSection
            AddReg=DriverAddReg

            [DriverAddReg]
            HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider"

            [DriverInstall.Services]
            Include=mdmcpq.inf
            AddService=usbser,0x00000002,LowerFilter_Service_Inst

            [Strings]
            MFGNAME="PJRC.COM, LLC."
            DEVNAME="USB Serial (Communication Class, Abstract Control Model)"
            CD1NAME="No CDROM required, usbser.sys is provided by Windows"

            [/code]

            Now the driver I found hanging around on Windows 8, it's a little different:

            [code]
            ; Windows INF to load usbser driver for all CDC-ACM USB Serial Ports
            ; Copyright (C) 2014 PJRC.COM, LLC.

            [Version]
            Signature="$Windows NT$"
            Class=Ports
            ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
            Provider=%MFGNAME%
            DriverVer=12/12/2013,1.0.0.0
            CatalogFile=cdcacm.cat

            [Manufacturer]
            %MFGNAME%=DeviceList, NTamd64

            [DeviceList]
            %DEVNAME%=DriverInstall,USB\Class_02&SubClass_02&Prot_01

            [DeviceList.NTamd64]
            %DEVNAME%=DriverInstall,USB\Class_02&SubClass_02&Prot_01

            [DestinationDirs]
            DefaultDestDir=12
            DriverCopyFiles=12

            [DriverInstall]
            Include=mdmcpq.inf
            Include=msports.inf
            CopyFiles=FakeModemCopyFileSection,SerialEnumerator.NT.Copy
            AddReg=DriverAddReg

            [DriverAddReg]
            HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider"
            HKR,,"LowerFilters",0x00010000,"usbser"
            HKR,,"UpperFilters",0x00010000,"serenum"

            [DriverInstall.Services]
            Include=mdmcpq.inf
            AddService=usbser,0x00000002,UsbserService
            AddService=serenum,,SerenumService

            [UsbserService]
            ServiceType= 1
            StartType = 3
            ErrorControl = 0
            ServiceBinary = %\usbser.sys

            [SerenumService]
            ServiceType = 1
            StartType = 3
            ErrorControl = 0
            ServiceBinary = %\serenum.sys
            LoadOrderGroup = PNP Filter

            [Strings]
            MFGNAME="PJRC.COM, LLC."
            DEVNAME="Teensy USB Serial"

            [/code]

            I'm not to up to date on driver definition files like this, so I'm not sure where to look for a problem.

            Thanks for the help so far.

            1 Reply Last reply
            0
            • K Offline
              K Offline
              kuzulis
              Qt Champions 2020
              wrote on last edited by
              #6

              Hmm.. It is strange. It is one solution for this - try to build QtSerialPort and to debug manually. And only then can be see what happens..

              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