7.12.2010 - bug fixes in PIString, all classes now based on PIString
This commit is contained in:
17
piprotocol.h
17
piprotocol.h
@@ -9,8 +9,8 @@ class PIProtocol
|
||||
{
|
||||
enum Type {Serial, Ethernet};
|
||||
public:
|
||||
PIProtocol(string devName, int speed, void * headerPtr, int headerSize, void * dataPtr, int dataSize); // for RS
|
||||
PIProtocol(string ip, int port, void * dataPtr, int dataSize); // for Ethernet
|
||||
PIProtocol(PIString devName, int speed, void * headerPtr, int headerSize, void * dataPtr, int dataSize); // for RS
|
||||
PIProtocol(PIString ip, int port, void * dataPtr, int dataSize); // for Ethernet
|
||||
~PIProtocol();
|
||||
|
||||
enum Quality {Unknown = 1, Failure = 2, Bad = 3, Average = 4, Good = 5};
|
||||
@@ -19,10 +19,10 @@ public:
|
||||
void stopReceive(); // stop receive
|
||||
void startSend(float frequency = 20.f) {sendtimer->start(frequency > 0 ? 1000.f / frequency : 1000);} // start sending
|
||||
void stopSend() {sendtimer->stop();} // stop sending
|
||||
void setDevice(const string & dev_ip, int speed_port);
|
||||
void setDevice(const PIString & dev_ip, int speed_port);
|
||||
void setSendData(void * dataPtr, int dataSize) {sendDataPtr = (unsigned char * )dataPtr; sendDataSize = dataSize;}
|
||||
void setReceiveData(void * dataPtr, int dataSize) {this->dataPtr = (unsigned char * )dataPtr; this->dataSize = dataSize;}
|
||||
void setSendAddress(string ip, int port) {if (type == PIProtocol::Ethernet) ether->setSendAddress(ip, port);} // for Ethernet
|
||||
void setSendAddress(const PIString & ip, int port) {if (type == PIProtocol::Ethernet) ether->setSendAddress(ip, port);} // for Ethernet
|
||||
void setParameters(Flags<PISerial::Parameters> parameters) {if (type == PIProtocol::Serial) serial->setParameters(parameters);} // for RS
|
||||
|
||||
void setExpectedFrequency(float frequency); // for start diagnostic connection quality
|
||||
@@ -32,8 +32,8 @@ public:
|
||||
unsigned long long int * receiveCount_ptr() {return &receive_count;}
|
||||
unsigned long long int * sendCount_ptr() {return &send_count;}
|
||||
PIProtocol::Quality * quality_ptr() {return &net_diag;}
|
||||
string * deviceState_ptr() {return &devState;}
|
||||
string deviceName() {return devName;}
|
||||
PIString * deviceState_ptr() {return &devState;}
|
||||
PIString deviceName() {return devName;}
|
||||
|
||||
protected:
|
||||
virtual bool validate() {return true;} // function for validate algorithm and save data from dataPtr to external struct
|
||||
@@ -67,10 +67,11 @@ private:
|
||||
PIProtocol::Quality net_diag;
|
||||
deque<float> last_freq;
|
||||
deque<char> last_packets;
|
||||
string devState, devName;
|
||||
PIString devState, devName;
|
||||
bool work;
|
||||
float exp_freq, immediateFreq, integralFreq, tf;
|
||||
int pckt_cnt, pckt_cnt_max, packets[2];
|
||||
int packets[2];
|
||||
uint pckt_cnt, pckt_cnt_max;
|
||||
char * packet;
|
||||
char cur_pckt;
|
||||
unsigned long long int wrong_count, receive_count, send_count;
|
||||
|
||||
Reference in New Issue
Block a user