2 Replies Latest reply on Nov 23, 2016 9:08 AM by Stephen Troup

    Failed to locate smartcard readers.

    Ignacio Malvestiti

      Buen día.

      Estoy necesitando acceder a una impresora ZXP 7  por LAN desde win10 (32bits). Tenemos instalado:

      1)  eoe-sdk(codificacion atraves de LAN).msi

      2)  csd-32.msi 

      3)  zmotifsdks.msi

      4)  zxpsc-reader.msi . 


      En la aplicación  demo  SampleApplication.exe (.csproj)  estoy obteniendo el siguiente error cuando se ejecuta le proceso Locatereaders en el método  !zscEncodeAp.GetSmartCardReaderNames(......)   :


      scModuleId = - SCM Microsystems Inc. SDI010 Smart Card Reader - dev03 F23

      errMsg =  Failed to locate smartcard readers. Device already in useFailed to connect to reader.


      Podrían  indicarnos que pasos seguir para acceder al lector contact less de la impresora.

      Es necesario instalar algo adicional en la PC cliente ademas del acceso a la impresora?


      Muchas Gracias.

        • Re: Failed to locate smartcard readers.
          Stephen Troup

          There is a setting on the printer from the front panel called 'Encoder Settings' this must be changed to 'Ethernet Encoding' this might the problem as it will only work in one mode and by default it's set to 'USB Encoding'.


          Google Translate:

          Hay una configuración en la impresora desde el panel frontal llamada 'Encoder Settings' esto debe cambiarse a 'Ethernet Encoding' esto podría ser el problema, ya que sólo funcionará en un modo y por defecto se establece en 'USB Encoding'.

          1 of 1 people found this helpful
            • Re: Failed to locate smartcard readers.
              Stephen Troup

              Ok,. two weeks after posting the problem has finally struck with me as well but after swearing quite a lot I found another reason why you get 'Failed to enumerate devces'. If you use an IP address string that doesn't exactly match the one the zebra library retrieves in a


              For instance if your IP address string has additional characters such as ascii code 0 that it will fail as zscencodeap doesn't remove additional unwanted characters.


              if (this._smartCardReaderId.Contains(IpAddress[0]))


              this.ConnectToSmartcardModule(encrypt, out errMsg);


              An IPAddress[0] that contains null characters will still allow the system to connect to the printer but in this direct comparison it will fail which results in the enumeration failed.


              In the zxp8 v5 driver the ipaddress is held in the registry as an integer i.e. 4 bytes but in v5.2 and the zxp7 driver it's held in a array of 252 ascii characters probably to allow for IPv6. So if you use the registry to get the ipaddress of the printer (which I happen to be doing, don't ask why it's just the way this particular project has had to be done) you get a ip string of 252 characters as the ascii.getstring command converts the entire array.


              Hopefully that makes sense.