Issue 106: Fixed high ISO parsing

This commit is contained in:
torger
2013-11-02 17:19:56 +01:00
parent 6fabd082d4
commit 680debe6af

View File

@@ -823,10 +823,29 @@ CAEVInterpreter caEVInterpreter;
class CABaseISOInterpreter : public Interpreter { class CABaseISOInterpreter : public Interpreter {
public: public:
virtual std::string toString (Tag* t) { virtual std::string toString (Tag* t) {
char buffer[1024]; char buffer[32];
sprintf (buffer, "%.0f", pow (2, t->toInt()/32.0 - 4) * 50 ); int a = t->toInt();
sprintf (buffer, "%d", a);
return buffer; return buffer;
} }
virtual double toDouble (Tag* t, int ofs){
int a = Interpreter::toInt(t, ofs);
if(a>1) {
double i = pow(2., double(a)/32. - 4.) * 50.;
return i;
}
else
return 0.;
}
virtual int toInt (Tag* t, int ofs, TagType astype){
int a = Interpreter::toInt(t, ofs, astype);
if(a>1) {
int i = int(double(powf(2.f, float(a)/32.f - 4.f)) * 50.f +0.5f);
return i;
}
else
return 0;
}
}; };
CABaseISOInterpreter caBaseISOInterpreter; CABaseISOInterpreter caBaseISOInterpreter;