mirror of https://github.com/ArduPilot/ardupilot
Fixed casting issues with EEPROM Registry
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1371 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
b9f3fb7d64
commit
b3089a9c73
|
@ -19,13 +19,19 @@ public:
|
||||||
virtual void setF(const float & val) = 0;
|
virtual void setF(const float & val) = 0;
|
||||||
|
|
||||||
/// Get the variable value as a float
|
/// Get the variable value as a float
|
||||||
virtual const float & getF() = 0;
|
virtual const float getF() = 0;
|
||||||
|
|
||||||
/// Set the variable value as an Int16
|
/// Set the variable value as an int16
|
||||||
virtual void setI(const int16_t & val) = 0;
|
virtual void setI(const int16_t & val) = 0;
|
||||||
|
|
||||||
/// Get the variable value as an Int16
|
/// Get the variable value as an int16
|
||||||
virtual const int16_t & getI() = 0;
|
virtual const int16_t getI() = 0;
|
||||||
|
|
||||||
|
/// Set the variable value as a bool
|
||||||
|
virtual void setB(const bool & val) = 0;
|
||||||
|
|
||||||
|
/// Get the variable value as an bool
|
||||||
|
virtual const bool getB() = 0;
|
||||||
|
|
||||||
/// Save a variable to eeprom
|
/// Save a variable to eeprom
|
||||||
virtual void save() = 0;
|
virtual void save() = 0;
|
||||||
|
@ -41,7 +47,7 @@ public:
|
||||||
virtual const bool & getSync() = 0;
|
virtual const bool & getSync() = 0;
|
||||||
|
|
||||||
/// Set the sync property
|
/// Set the sync property
|
||||||
virtual void setSync(bool sync) = 0;
|
virtual void setSync(const bool & sync) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The variable template class. This class
|
/// The variable template class. This class
|
||||||
|
@ -81,7 +87,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the variable as a float
|
/// Get the variable as a float
|
||||||
virtual const float & getF() {
|
virtual const float getF() {
|
||||||
return get();
|
return get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +97,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the variable value as an Int16
|
/// Get the variable value as an Int16
|
||||||
virtual const int16_t & getI() {
|
virtual const int16_t getI() {
|
||||||
return get();
|
return get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,7 +107,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the variable value as an Int16
|
/// Get the variable value as an Int16
|
||||||
virtual const bool & getB() {
|
virtual const bool getB() {
|
||||||
return get();
|
return get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +130,7 @@ public:
|
||||||
/// If sync is true the a load will always occure before a get and a save will always
|
/// If sync is true the a load will always occure before a get and a save will always
|
||||||
/// occure before a set.
|
/// occure before a set.
|
||||||
virtual const bool & getSync() { return _sync; }
|
virtual const bool & getSync() { return _sync; }
|
||||||
virtual void setSync(bool sync) { _sync = sync; }
|
virtual void setSync(const bool & sync) { _sync = sync; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
type _data; /// The data that is stored on the heap */
|
type _data; /// The data that is stored on the heap */
|
||||||
|
|
|
@ -22,12 +22,12 @@ void AP_EEPromRegistry::print(BetterStream & stream)
|
||||||
stream.printf("\nEEPROM Registry\n");
|
stream.printf("\nEEPROM Registry\n");
|
||||||
for (int i=0;i<getSize();i++)
|
for (int i=0;i<getSize();i++)
|
||||||
{
|
{
|
||||||
stream.printf("%s\t%s\tid:\t%d\taddr:\t%d\tval:\t%f\t\n",
|
stream.printf("id:\t%u\t%s\t%s\tval:\t%10.4f\taddr:\t%u\t\n",
|
||||||
|
(*this)[i]->getEntryId(),
|
||||||
(*this)[i]->getEntryParentName(),
|
(*this)[i]->getEntryParentName(),
|
||||||
(*this)[i]->getEntryName(),
|
(*this)[i]->getEntryName(),
|
||||||
(*this)[i]->getEntryId(),
|
(*this)[i]->getEntry(),
|
||||||
(*this)[i]->getEntryAddress(),
|
(*this)[i]->getEntryAddress());
|
||||||
(*this)[i]->getEntry());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,12 +32,12 @@ public:
|
||||||
/// Pure virtual function for setting the data value
|
/// Pure virtual function for setting the data value
|
||||||
/// as a float. The function must handle the cast to
|
/// as a float. The function must handle the cast to
|
||||||
/// the stored variable types.
|
/// the stored variable types.
|
||||||
virtual void setEntry(float val) = 0;
|
virtual void setEntry(const float & val) = 0;
|
||||||
|
|
||||||
/// Pure virtual function for getting data as a float.
|
/// Pure virtual function for getting data as a float.
|
||||||
/// The function must handle the cast from the
|
/// The function must handle the cast from the
|
||||||
/// stored variable types.
|
/// stored variable types.
|
||||||
virtual float getEntry() = 0;
|
virtual const float getEntry() = 0;
|
||||||
|
|
||||||
/// Pure virtual function for getting entry name.
|
/// Pure virtual function for getting entry name.
|
||||||
virtual const char * getEntryName() = 0;
|
virtual const char * getEntryName() = 0;
|
||||||
|
@ -46,10 +46,10 @@ public:
|
||||||
virtual const char * getEntryParentName() = 0;
|
virtual const char * getEntryParentName() = 0;
|
||||||
|
|
||||||
/// Get the id of the variable.
|
/// Get the id of the variable.
|
||||||
virtual uint16_t getEntryId() = 0;
|
virtual const uint16_t & getEntryId() = 0;
|
||||||
|
|
||||||
/// Get the address of the variable.
|
/// Get the address of the variable.
|
||||||
virtual uint16_t getEntryAddress() = 0;
|
virtual const uint16_t & getEntryAddress() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
///The main EEProm Registry class.
|
///The main EEProm Registry class.
|
||||||
|
@ -92,16 +92,16 @@ public:
|
||||||
eepromRegistry.add(this,_id,_address,sizeof(type));
|
eepromRegistry.add(this,_id,_address,sizeof(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void setEntry(float val) { this->setF(val); }
|
virtual void setEntry(const float & val) { this->setF(val); }
|
||||||
virtual float getEntry() { return this->getF(); }
|
virtual const float getEntry() { return this->getF(); }
|
||||||
virtual const char * getEntryName() { return this->getName(); }
|
virtual const char * getEntryName() { return this->getName(); }
|
||||||
virtual const char * getEntryParentName() { return this->getParentName(); }
|
virtual const char * getEntryParentName() { return this->getParentName(); }
|
||||||
|
|
||||||
/// Get the id of the variable.
|
/// Get the id of the variable.
|
||||||
virtual uint16_t getEntryId() { return _id; }
|
virtual const uint16_t & getEntryId() { return _id; }
|
||||||
|
|
||||||
/// Get the address of the variable.
|
/// Get the address of the variable.
|
||||||
virtual uint16_t getEntryAddress() { return _address; }
|
virtual const uint16_t & getEntryAddress() { return _address; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint16_t _id; /// Variable identifier
|
uint16_t _id; /// Variable identifier
|
||||||
|
|
|
@ -39,27 +39,29 @@ void setup()
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
Serial.println("ArduPilot RC Channel test");
|
Serial.println("ArduPilot RC Channel test");
|
||||||
|
|
||||||
eepromRegistry.print(Serial); // show eeprom map
|
|
||||||
APM_RC.Init(); // APM Radio initialization
|
APM_RC.Init(); // APM Radio initialization
|
||||||
|
|
||||||
for (int i=0;i<nChannels;i++)
|
eepromRegistry.print(Serial); // show eeprom map
|
||||||
{
|
|
||||||
Serial.printf("ch:\t%d\tscale:\t%f\tcenter:\t%f\tpwmMin:\t%d\tpwmNeutral:\t%d\tpwmMax:\t%d\t",
|
|
||||||
rcCh[i].getCh(),rcCh[i].getScale(),rcCh[i].getCenter(),
|
|
||||||
rcCh[i].getPwmMin(),rcCh[i].getPwmNeutral(),rcCh[i].getPwmMax());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
// set channel positions
|
// set channel positions
|
||||||
for (int i=0;i<nChannels;i++) rcCh[i].setNormalized(testPosition);
|
for (int i=0;i<nChannels;i++) rcCh[i].setNormalized(testPosition);
|
||||||
|
|
||||||
|
// print test position
|
||||||
Serial.printf("\ntestPosition (%f)\n\t\t",testPosition);
|
Serial.printf("\ntestPosition (%f)\n\t\t",testPosition);
|
||||||
|
|
||||||
|
// print channgel names
|
||||||
for (int i=0;i<nChannels;i++) Serial.printf("%7s\t",rcCh[i].getName());
|
for (int i=0;i<nChannels;i++) Serial.printf("%7s\t",rcCh[i].getName());
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
|
||||||
|
// print pwm
|
||||||
Serial.printf("pwm :\t");
|
Serial.printf("pwm :\t");
|
||||||
for (int i=0;i<nChannels;i++) Serial.printf("%7d\t",rcCh[i].getPwm());
|
for (int i=0;i<nChannels;i++) Serial.printf("%7d\t",rcCh[i].getPwm());
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
|
||||||
|
// print position
|
||||||
Serial.printf("position :\t");
|
Serial.printf("position :\t");
|
||||||
for (int i=0;i<nChannels;i++) Serial.printf("%7.2f\t",rcCh[i].getPosition());
|
for (int i=0;i<nChannels;i++) Serial.printf("%7.2f\t",rcCh[i].getPosition());
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
@ -77,5 +79,5 @@ void loop()
|
||||||
testSign = 1;
|
testSign = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
delay(500);
|
delay(100);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue