Problem mit einer Methode
-
void meineKlasse::getIwSw(double *iW, double *sW, double *pOut) { unsigned char send[] = {0x01, 0x04, 0, 0, 0, 0x18, 0xF0, 0}; unsigned char rec[60]; int count; if(comType == 0) { Port.SendData(send, 8); Sleep(5); count = Port.ReceiveData(rec, 60); } else { ClientSocket->Socket->SendBuf(send, 8); count = ClientSocket->Socket->ReceiveBuf(rec,60); } double temp; if(count > 0) { *iW = (rec[3]*256+rec[4])/10.0; *sW = (rec[7]*256+rec[8])/10.0; temp = (rec[5]*256+rec[6]); if(temp>64535) temp -= 65536; *pOut = temp/10.0; } else { *iW = -100; *sW = -100; *pOut = -100; } }Habe diese Methode von jmd bekommen und möchte sie in eine Klasse aufnehmen. Es handelt sich dabei um ein Gerät mit Istwert, Sollwert und einem dritten Wert pOut. Nun möcht ich die Daten ausgeben. Wie komm ich da am besten ran.
So hatt ich das gedacht:class c_Emko { private: bool m_connect; comclass m_port; TClientSocket* ClientSocket; double iW; double sW; double pOut; static const unsigned char CRCtable16[]; public: c_Emko(AnsiString p_port); ~c_Emko(); void __fastcall getIwSw(double *iW, double *sW, double *pOut); double Get_iW(); double Get_sW(); double Get_pOut(); };Wie komm ich nun an die Werte?
so dacht ich das:
c_Emko* o_Emko = new c_Emko("COM1"); //erzeug ich über einen Button in der FormEdit1->Text = o_Emko->Get_sW(); //Edit1 ist ein Editfeld im C++Builder für die Ausgabe
-
Problem ist auch die Erzeugung des ClientSocket Objekts. Das wollt ich in der Konstruktorliste der Klasse tun also:
c_Emko::c_Emko(AnsiString p_port) : m_connect(false), Istwert(0.0), Sollwert(0.0), POutwert(0.0), ClientSocket(new TClientSocket(???)) // Was erwartet er hier? { //... }
-
rudpower schrieb:
Problem ist auch die Erzeugung des ClientSocket Objekts. Das wollt ich in der Konstruktorliste der Klasse tun also:
c_Emko::c_Emko(AnsiString p_port) : m_connect(false), Istwert(0.0), Sollwert(0.0), POutwert(0.0), ClientSocket(new TClientSocket(???)) // Was erwartet er hier? { //... }Steht bestimmt in der TClientSocket Doku.
-
ok, hat sich erledigt. Die Codesegmente mit dem Socket waren für was anderes gedacht. Trotzdem danke