extern signed char car_ambient_temp; // Ambient Temperature (celcius)extern signed char car_tpem; // Tpemextern unsigned char car_tmotor; // Tmotorextern signed char car_tpms_t[4]; // TPMS temperature
// MOTOR TEMPERATURE:if (CAN_BYTE(5) > 40 && CAN_BYTE(5) < 0xf0)car_tmotor = CAN_BYTE(5) - 40;elsecar_tmotor = 0; // unsigned, no negative temps allowed...
_______________________________________________Sound advise.Given just a handful of temperatures, it is probably least impacting to just change to 16 bit signed and put this one to rest. It keeps coming back, and it would be good to solve it once and for all. Impact is 1 byte extra ram per temperature, plus some flash for the 16 vs 8 bit.Moving to a 40C offset is tricky to maintain backwards compatibility.Regards, MarkI don't think you'd want to do that. 127 deg C really isn't that terribly hot and -128C is extremely cold. If it is necessary to retain use of an 8 bit variable then the standard solution is to just offset the temperature stored by -40. That way you can read -40 to 215C which is a pretty reasonable range. Unfortunately, I fear such a change would necessitate many other changes in code. It might be better to expand to a signed 16 bit integer.
On Mon, Jan 13, 2014 at 7:50 AM, Håkon Markussen <hakon.markussen@gmail.com> wrote:
Currently the weather is cold in Norway (-15 C) and I noticed that motor temp was 244C.Hi (Mark).In ovms.h the motor temperature is defined as unsigned char (non-negative):
extern unsigned char car_tmotor; // Tmotor
Is it possible to update the car_tmotor to
extern signed char car_tmotor; // Tmotorin ovms.h?Best regardsHåkon
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev