Jump to content

Recommended Posts

Posted

Hello Dear community,

i have a "new" project hanging over my head and i am kinda stuck with it.

What do i have is a USB dysplay device with a driver (badly documented) and a C++ sample code.

I want to use AutoIt to access my device so here is the problem.

I dont know how to access dll and how to interact with device (i want to put some random leters and words on the display).

Anyway below is code i came up with so far and a portion of dll documentation.

I hope someone will help me with this.

Kind regards!

// THIS IS C++ CODE

#include <stdio.h>
#include <time.h>

#include "windows.h"

int __cdecl main(int argc, char* argv[])
{
HMODULE hm;
long (*ou)();
long (*cu)();
long (*wp)(char*,long);
long (*ps)();
time_t tm;
char ss[64];

    SetLastError( 0);
    hm = LoadLibrary( "usbpd.dll");
    printf( " hm = %p, %lu \n",hm,GetLastError());
    if ( hm==NULL ) return 1;

    SetLastError( 0);
    ou = (long(*)()) GetProcAddress( hm,"OpenUSBpd");
    printf( " ou = %p, %lu \n",ou,GetLastError());

    SetLastError( 0);
    cu = (long(*)()) GetProcAddress( hm,"CloseUSBpd");
    printf( " cu = %p, %lu \n",cu,GetLastError());

    SetLastError( 0);
    wp = (long(*)(char*,long)) GetProcAddress( hm,"WritePD");
    printf( " wp = %p, %lu \n",wp,GetLastError());

    SetLastError( 0);
    ps = (long(*)()) GetProcAddress( hm,"PdState");
    printf( " ps = %p, %lu \n",ps,GetLastError());

    printf( " OpenUSB = %ld \n", ou());
    for (long i=0;i<3;++i)
        {
        printf( " ps(1) = %ld \n", ps());

        time( &tm);
        sprintf( ss,"\x1b\x40%s",ctime( &tm));
        wp( ss, strlen( ss));

        if ( argc>1 ) for (int j=30;j<255;++j) { ss[0] = j; ss[1] = 0; wp( ss,1);}

        printf( " ps(2) = %ld \n", ps());
        }
    printf( " CloseUSB = %ld \n", cu());
    
    FreeLibrary( hm);
    return 0;
}

-----------------

dll documentation

-----------------

Public Declare Function OpenUSBpd _
    Lib "usbpd.dll" _
    () _
As Long
' must be called before calling other functions
' return 0 on success

Public Declare Function CloseUSBpd _
    Lib "usbpd.dll" _
    () _
As Long
' call this function before exiting your program
' return 0 on success

Public Declare Function WritePD _
    Lib "usbpd.dll" _
    (ByVal data As String, ByVal length as Long) _
As Long
' return 0 on sending commands successfully

Public Declare Function PdState _
    Lib "usbpd.dll" _
    ()
As Long
' return the line display status
' return 0 on being ready
'

And my code ... not much so far ...

$dll = DllOpen("USBPD.DLL")

if @error <> -1 Then

  DllCall( $dll ,"str","WritePD", "str", "test")

  EndIf

DllClose($dll)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...