Konvertierungsfehler bei API-programmierung

TiHm

Grünschnabel
Hallo zusammen,

bei Programmieren einer API erhalte ich folgende Fehlermeldung..


[Error] cannot convert 'main(int, char**)::ad_scan_desc*' to 'ad_scan_desc*' for argument '2' to 'int32_t ad_start_scan(int32_t, ad_scan_desc*, uint32_t, ad_scan_cha_desc*)'

der zugehörige C-Code...

C++:
struct ad_scan_desc
{
double sample_rate;
uint64_t prehist;
uint64_t posthist;
uint32_t ticks_per_run;
uint32_t bytes_per_run;
uint32_t samples_per_run;
uint32_t flags;
};

struct ad_scan_desc parameter;
memset (&parameter,0,sizeof(parameter));
parameter.sample_rate = 0,00002; // Sample-Rate in Sek. --> 50kHz
parameter.prehist = 0; // Bei Trigger != 0
parameter.posthist = 500; // pro Kanal werden 500 Messwerte gespeichert
//parameter.ticks_per_run = xx; // Blockgröße bei kont. Messung
//parameter.bytes_per_run = xx; // Buffer-Größe in Byte (int. Speicherverwaltung nicht aktiv)
//parameter.samples_per_run = xx; // Anzahl d. Messwerte pro Buffer (int. Speicherverwaltung nicht aktiv)
//parameter.flags = 1; // Flag gesetzt: interne Speicherverwaltung aktiv

// Parameter für zu scannenden Analog In
struct ad_scan_cha_desc
{
int32_t cha;
int32_t range;
int32_t store;
int32_t ratio;
uint32_t zero;
int8_t trg_mode;
uint32_t trg_par[2];
int32_t samples_per_run;
};
struct ad_scan_cha_desc chav[1];

memset (chav, 0, sizeof(chav));
int chac;
chav[chac].cha = AD_CHA_TYPE_ANALOG_IN|1;    // Kanalnummer Analog In (1..16)
//chav[0].range = 0; //  Messbereich 0 = +-1.024V (0..3)
chav[chac].store = AD_STORE_DISCRETE;    // Speicherart
chav[chac].ratio = 1;
chav[chac].trg_mode = AD_TRG_NONE;    // Keine Triggerung
chac++;
int32_t rc;

rc = ad_start_mem_scan (adh,&parameter,chac,chav);


Vielen Dank im Voraus für die Hilfe. Liebe Grüße
 
Hallo,
das hört sich stark danach an, als ob du das struct ad_scan_desc (und wohl auch ad_scan_cha_desc) redefinest.
Er beschwert sich dann, dass du ein Objekt deines structs übergeben willst, wo er ein Objekt "seines" structs erwartet.

Die Lösung sollte daher sein, dass du einfach die Zeilen 1-10 und 23-33 löschst, da die structs in dem Header bereits definiert sind.
Funktioniert es dann?

Danke auch dafür, dass du jetzt Code-Tags verwendest. Bitte markiere dein anderes Thema "als erledigt".

Viele Grüße
K
 

Neue Beiträge

Zurück