Bonjour,
Je suis actuellement en formation en automatismes et informatique industrielle, je cherche à développer une supervision en vcl c++ avec le logiciel rad studio xe5,
Pour l'acquisition de mes données j'ai créé des class me permettant de definir l'adresse des cartes et je voudrais les insérer dans mon programme en vcl.
Seulement lors de la compilation l'erreur citée plus haut apparait.
En entrant directement la création de mes class Etor et Stor sans passer par un .h et un .ccp cela fonctionne.
Ci joint le code:
application vcl:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Etor.h" #include "Stor.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; // declaration des class Etor Etor1("cDAQ1Mod1/port0");// carte entrée module1 Stor Stor1("cDAQ1Mod2/port0"); // carte sortie module1 // declaration des tableau E/S unsigned char tabEtor[8]={0,0,0,0,0,0,0,0};//carte entrée module1 unsigned char tabStor[4]={0,0,0,0};//carte de sortie module1 //Initialisation des cartes //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { }
Etor.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef Etor_H_INCLUDED #define Etor_H_INCLUDED #include <string> #include <iostream> #include "NIDAQmx.h" #pragma link "nidaqmx.lib" class Etor { public: Etor(char port[]); void Read(unsigned char entrees[]); void closeRead(void); void initEtor(); void afficherData(void); void afficherPort(void); private: char m_port[100]; TaskHandle m_taskHandle; long int m_read,m_bytesPerSamp; unsigned char m_data[8]; }; #endif // Etor_H_INCLUDED
Etor.ccp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #include "NIDAQmx.h" #pragma link "nidaqmx.lib" #include "Etor.h" #include <stdio.h> #include <string.h> #include <iostream.h> #include <conio.h> using namespace std; // LECTURE***************************** Etor::Etor(char port[]) { strcpy(m_port,port); } void Etor::initEtor() { DAQmxCreateTask("",&m_taskHandle); DAQmxCreateDIChan(m_taskHandle,m_port,"",DAQmx_Val_ChanForAllLines); } void Etor::Read(unsigned char entrees[]) { DAQmxStartTask(m_taskHandle); DAQmxReadDigitalLines(m_taskHandle,1,10.0,DAQmx_Val_GroupByChannel,m_data,8,&m_read,&m_bytesPerSamp,NULL); memcpy(entrees,m_data,sizeof m_data); DAQmxStopTask(m_taskHandle); } void Etor::closeRead(void) { DAQmxClearTask(m_taskHandle); } void Etor::afficherData(void) { for (int j=0; j < 8; j++) { cout<<(int)m_data[j]<<","; } cout<<endl; } void Etor::afficherPort(void) { cout<<m_port; }
Les fichier Stor sont sensiblement semblables.
je précise que j'ai déjà testé ces class en application console c++ en les important dans un autre projet console c++ et qu'elles fonctionnent parfaitement.
En cherchant sur internet je n'ai pas trouvé de réponses m'aidant ou de mon niveau, c'est pourquoi je me tourne vers la communauté.
Merci d'avance
Partager