Jump to content
Sign in to follow this  
andyf2022

Enttec DMX USB Pro and Delphi

Recommended Posts

Greetings chaps,

 

edit this code attached, to work on D7:

https://github.com/okini3939/Enttec_test

 

Reading parameters from one of these USB DMX Boxes

:https://www.enttec.com/product/lighting-communication-protocols/dmx512/dmx-usb-pro/

 

Usual responses go into memo1

 

devices 1
0
open 4841960
Sending GET_WIDGET_PARAMS packet...
PRO Connected Succesfully 0 0
3
version 1.44
BREAK TIME 196030
MAB TIME 10670

 

To not mess that up I created a button to test reading the serial number and having the results go to memo2.

 

All fine, D7 is communicating with the Box and receiving parameters and sending out DMX but I cannot understand this code enough to know why I do not get the serial number.

 

How should I format the request and values,  returned I get "0" and sometimes -1 into memo2.

 

 

 

in the API is stated:

"

12. Get Widget Serial Number Request (Label = 10, no data), This message requests the Widget serial number, which should be the same as that printed on the Widget ( Device)
case.
13. Get Widget Serial Number Reply (Label = 10), The Widget sends this message to the PC in response to the Get Widget Serial Number request.

BCD serial number, with LSB stored at lowest address. On old Widgets, the serial number was not programmed, and the value would be hex 0FFFFFFFF, my device is a new one and other commercial software reads the serial number fine. So all is working except the code. 

"

 

 

 

procedure TForm1.Button5Click(Sender: TObject);

var
  buf_size: array[0..3] of byte;
  res: integer;
  buf: array[0..256] of byte;
begin

  buf_size[0] := 0;
  buf_size[1] := 0;

  memo2.Lines.clear;

  memo2.Lines.add('TX GET_WIDGET_SN packet');
  res := FTDI_SendData(GET_WIDGET_SN, buf_size, 2);

  sleep(100);

  memo2.Lines.add('RX GET_WIDGET_SN packet');
  res := FTDI_ReceiveData(GET_WIDGET_SN, buf_size, 4);

  memo2.Lines.add(inttostr(res));

end;

 

 

 

Edited by andyf2022

Share this post


Link to post

you seem to be setting buf_size to 0. 
 

What happens if you use

 

buf_size[0] := $FF;
buf_size[1] := $FF;
buf_size[2] := $FF;
buf_size[3] := $FF;


 

Share this post


Link to post
On 10/29/2022 at 12:27 AM, david_navigator said:

you seem to be setting buf_size to 0. 
 

What happens if you use

 


buf_size[0] := $FF;
buf_size[1] := $FF;
buf_size[2] := $FF;
buf_size[3] := $FF;


 

No change, The device does reply though so I am sure it is responding with the info, at least somewhere.

Share this post


Link to post

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
Sign in to follow this  

×