Datatype problem and pointers for a .DLL

13 ビュー (過去 30 日間)
Torsten Fenn
Torsten Fenn 2015 年 10 月 8 日
回答済み: Subhamoy Saha 2020 年 1 月 20 日
Hi I have a problem with the following code:
loadlibrary(fullpathToDll, fullpathToHeader)
handlesensor = calllib('MEDAQLib', 'CreateSensorInstance',2) % = SENSOR_ILD1700
calllib('MEDAQLib','SetParameterString',handlesensor,'IP_Interface', 'IF2004_USB');
MATLAB returns an error message in line 3 where I use calllib:
Error using calllib
Array must be numeric or logical or a pointer to one
The code works just fine in C when I use:
hSensor = CreateSenorInstance(2); // = SENSOR_ILD1700
SetParameterString(hSensor, "IP_Interface", "IF2004_USB");
I think the problem is the datatype, but everything I tried did not work. From the documentation I know that the parameters of the function SetParameterString are declared like this:
DWORD handlesensor, LPCSTR paramname, LPCSTR value
I hope you can help me with the information I provided. Thanks!
  4 件のコメント
Lisa Petzold
Lisa Petzold 2019 年 8 月 2 日
Did anyone find a solution to Torstens Problem?
I am having the same Problem as I am tyring to use the MEDAQLib from Micro-Epsilon to read a sensor from the company.
Thanks a lot!
Petros Neoptolemou
Petros Neoptolemou 2019 年 12 月 16 日
I do have the same issue. Did anyone find the solution, yet?

サインインしてコメントする。

回答 (2 件)

Subhamoy Saha
Subhamoy Saha 2020 年 1 月 20 日
Yeah! I have returned with an answer this time. The error causes due to declration problem of this line
DWORD handlesensor, LPCSTR paramname, LPCSTR value
You need to follow this format
[ERR_CODE, int8Ptr, int8Ptr] SetParameterString (ulong, int8Ptr, int8Ptr)
Use the following code
loadlibrary(fullpathToDll, fullpathToHeader)
handlesensor = calllib('MEDAQLib', 'CreateSensorInstance',2) % = SENSOR_ILD1700
calllib('MEDAQLib','SetParameterString',handlesensor,int8('IP_Interface'), int8('IF2004_USB'));
Please let us know whether it worked or not.

Subhamoy Saha
Subhamoy Saha 2019 年 10 月 30 日
I have IFD2421 sensor connected over TCP/IP and mine is working fine. You did the same thing and the error should not come. Sorry, I could not help you out but let you know soon if possible.
hSensor =calllib('MEDAQLib','CreateSensorInstance','SENSOR_IFD2421')
calllib('MEDAQLib','SetParameterString',hSensor,'IP_Interface','TCP/IP')

カテゴリ

Help Center および File ExchangeC Shared Library Integration についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by