Need 64bit version of aaeonEAPI.dll (.lib)

Carlo  Alberto
Carlo Alberto New Member Posts: 10
Dear Customer support,
I am writing a program that uses Digital IO under windows 64 bit.

Unfortunately the aaeonEAPI.dll distributed on this forum is only built for 32 bit architecture.

Could you please share with us the same version built for 64 bit.

Unfortunately my code is linking with other native 64 bits libraries and for
performance issues I cannot switch the whole project back to the old days of
32 bit applications.

Any help would be greatly appreciated.
Regards
C.Alberto Avizzano

Comments

  • Carlo  Alberto
    Carlo Alberto New Member Posts: 10
    Thank you again,

    I really appreciated the support. BTW I had to remove a couple of heading lines from the .h file in order to build it with mingw64, but I confirm this platforms builds binaries as well using the distributed files.

    Shall the dll lib be so large or in this distributed version you are including the debug information?
  • Jacky Kuo
    Jacky Kuo New Member Posts: 70
    Hi,
    I didn't try mingw64 before.
    Could I know if you can compile successfully with mingw64 ?(Via removing a couple of heading lines from the .h file)
    If yes, may you confirm if you are trying to reduce the executable file size?(Is it a very big file size?)
  • Carlo  Alberto
    Carlo Alberto New Member Posts: 10
    I can confirm you that Mingw32 and Mingw 64 are properly working with aaeonEAPI.dll
    So far however I only tried to read/set/modify the status and the direction of digital IO pins. Major modification needed to .h file are:
    * Remove "Visual C" stuff
    * Declare DLL import
    * Include also "EAPIStatusCode.h"
    * remove declaration of C99 STDINT which are native in mingw (e.g uint32_t)
    All the I/O interface is in plain C-code which is shared among different compilers.

    My WIN10-64 platform is configured with:
    OpenCV3.2, dlib, boost, gcc, bzip2, cmake, libblas, lapack, openblas, cmake-gui, ninja, gstreamer, eigen,

    Used to do realtime image processing as an embedded system. Windows10 - UWF also ensures the system stability and filesystem coherence for sudden power loss.

    All working fine on UP.

    I cannot reduce the "aaeonEAPI.dll" file size (I think only you can do that). Given it large size, with respect the amount of function it provides, it seems the DLL is being distributed containing all debug information builtin. A release build will automatically decrease it size.
  • Bruno
    Bruno New Member Posts: 2
    Hello,

    I'm unable to find the file EAPIStatusCode.h.
    If someone have it, please can you give me.

    Thanks
  • Carlo  Alberto
    Carlo Alberto New Member Posts: 10
    Cannot Attch files...

    mine version is below:
    /*
    *
    *
    * S T A T U S C O D E S
    *
    *
    */
    /* Description
    * The EAPI library is not yet or unsuccessfully initialized.
    * EApiLibInitialize needs to be called prior to the first access of any
    * other EAPI function.
    * Actions
    * Call EApiLibInitialize..
    */
    #define EAPI_STATUS_NOT_INITIALIZED EAPI_UINT32_C(0xFFFFFFFF)

    /* Description
    * Library is initialized.
    * Actions
    * none.
    */
    #define EAPI_STATUS_INITIALIZED EAPI_UINT32_C(0xFFFFFFFE)

    /* Description
    * Memory Allocation Error.
    * Actions
    * Free memory and try again..
    */
    #define EAPI_STATUS_ALLOC_ERROR EAPI_UINT32_C(0xFFFFFFFD)

    /* Description
    * Time out in driver. This is Normally caused by hardware/software
    * semaphore timeout.
    * Actions
    * Retry.
    */
    #define EAPI_STATUS_DRIVER_TIMEOUT EAPI_UINT32_C(0xFFFFFFFC)

    /* Description
    * One or more of the EAPI function call parameters are out of the
    * defined range.
    *
    * Possible Reasons include be
    * NULL Pointer
    * Invalid Offset
    * Invalid Length
    * Undefined Value
    *
    * Storage Write
    * Incorrectly Aligned Offset
    * Invalid Write Length
    * Actions
    * Verify Function Parameters.
    */
    #define EAPI_STATUS_INVALID_PARAMETER EAPI_UINT32_C(0xFFFFFEFF)

    /* Description
    * The Block Alignment is incorrect.
    * Actions
    * Use pInputs and pOutputs to correctly select input and outputs.
    */
    #define EAPI_STATUS_INVALID_BLOCK_ALIGNMENT EAPI_UINT32_C(0xFFFFFEFE)

    /* Description
    * This means that the Block length is too long.
    * Actions
    * Use Alignment Capabilities information to correctly align write access.
    */
    #define EAPI_STATUS_INVALID_BLOCK_LENGTH EAPI_UINT32_C(0xFFFFFEFD)

    /* Description
    * The current Direction Argument attempts to set GPIOs to a unsupported
    * directions. I.E. Setting GPI to Output.
    * Actions
    * Use pInputs and pOutputs to correctly select input and outputs.
    */
    #define EAPI_STATUS_INVALID_DIRECTION EAPI_UINT32_C(0xFFFFFEFC)

    /* Description
    * The Bitmask Selects bits/GPIOs which are not supported for the current ID.
    * Actions
    * Use pInputs and pOutputs to probe supported bits..
    */
    #define EAPI_STATUS_INVALID_BITMASK EAPI_UINT32_C(0xFFFFFEFB)

    /* Description
    * Watchdog timer already started.
    * Actions
    * Call EApiWDogStop, before retrying.
    */
    #define EAPI_STATUS_RUNNING EAPI_UINT32_C(0xFFFFFEFA)

    /* Description
    * This function or ID is not supported at the actual hardware environment.
    * Actions
    * none.
    */
    #define EAPI_STATUS_UNSUPPORTED EAPI_UINT32_C(0xFFFFFCFF)

    /* Description
    * I2C Device Error
    * No Acknowledge For Device Address, 7Bit Address Only
    * 10Bit Address may cause Write error if 2 10Bit addressed devices
    * present on the bus.
    * Actions
    * none.
    */
    #define EAPI_STATUS_NOT_FOUND EAPI_UINT32_C(0xFFFFFBFF)

    /* Description
    * I2C Time-out
    * Device Clock stretching time-out, Clock pulled low by device
    * for too long
    * Actions
    * none.
    */
    #define EAPI_STATUS_TIMEOUT EAPI_UINT32_C(0xFFFFFBFE)

    /* Description
    * EApi I2C functions specific. The addressed I2C bus is busy or there
    * is a bus collision.
    * The I2C bus is in use. Either CLK or DAT are low.
    * Arbitration loss or bus Collision, data remains low when writing a 1
    * Actions
    * Retry.
    */
    #define EAPI_STATUS_BUSY_COLLISION EAPI_UINT32_C(0xFFFFFBFD)

    /* Description
    * I2C Read Error
    * Not Possible to detect.
    * Storage Read Error
    * ....
    * Actions
    * Retry.
    */
    #define EAPI_STATUS_READ_ERROR EAPI_UINT32_C(0xFFFFFAFf)

    /* Description
    * I2C Write Error
    * No Acknowledge received after writing any Byte after the First Address
    * Byte.
    * Can be caused by
    * unsupported Device Command/Index
    * Ext Command/Index used on Standard Command/Index Device
    * 10Bit Address Device Not Present
    * Storage Write Error
    * ...
    * Actions
    * Retry.
    */
    #define EAPI_STATUS_WRITE_ERROR EAPI_UINT32_C(0xFFFFFAFE)

    /* Description
    * The amount of available data exceeds the buffer size.
    * Storage buffer overflow was prevented. Read count was larger then
    * the defined buffer length.
    * Read Count > Buffer Length
    * Actions
    * Either increase the buffer size or reduce the block length.
    */
    #define EAPI_STATUS_MORE_DATA EAPI_UINT32_C(0xFFFFF9FF)

    /* Description
    * Generic error message. No further error details are available.
    * Actions
    * none.
    */
    #define EAPI_STATUS_ERROR EAPI_UINT32_C(0xFFFFF0FF)

    /* Description
    * The operation was successful.
    * Actions
    * none.
    */
    #define EAPI_STATUS_SUCCESS EAPI_UINT32_C(0)
    #define EAPI_TEST_SUCCESS(x) (!(x))
  • Mallesh
    Mallesh New Member Posts: 3
    Hi JKuo ,

    I needed a help , i am using aaeonEapi.dll for my project .
    But i am unable to add it is a reference in my project (visual studio ,winform app c#) .
    whenever i tried to add it, it throwing me an error like "The module 'mydll.dll' was loaded but the entry-point 'DllRegisterServer' was not found.Make sure that 'mydll.dll' is a valid DLL or OCX file and then try again"

    please let me know about it.
    Thanks in advance