On 29/12/14 14:42, Tirdea, Irina wrote: > > >> -----Original Message----- >> From: linux-iio-ow...@vger.kernel.org >> [mailto:linux-iio-ow...@vger.kernel.org] On Behalf Of Jonathan Cameron >> Sent: 26 December, 2014 15:26 >> To: Tirdea, Irina; linux-...@vger.kernel.org >> Cc: linux-kernel@vger.kernel.org; Dogaru, Vlad; Baluta, Daniel; Hartmut >> Knaack; Lars-Peter Clausen; Peter Meerwald >> Subject: Re: [PATCH 1/8] iio: core: Introduce CALORIES channel type >> >> On 19/12/14 22:57, Irina Tirdea wrote: >>> Some devices compute the number of calories that the user has >>> burnt since the last reset. >>> >>> One of this devices is Freescale's MMA9553L >>> (http://www.freescale.com/files/sensors/doc/ref_manual/MMA9553LSWRM.pdf) >>> that computes the number of calories based on weight and step rate. >>> >>> Introduce a new channel type CALORIES to export these values. >>> >>> Signed-off-by: Irina Tirdea <irina.tir...@intel.com> >> hmm.. Ideally we use SI units for everything, but in human energy usage >> Calories are the most common unit by a long way. I'm having some trouble >> even finding the conversion for this particular for of calorie. >> > > Initially I wanted to use the calorie as unit, but it seemed a little bit > confusing because there are 2 different units both called calorie: > - The small calorie or gram calorie approximates the energy needed to > increase the temperature of 1 gram of water by 1 C. > - The kilogram calorie or "large calorie" is an obsolete term used for the > kilocalorie, which is the calorie used to express the energy content of > foods. However, in practice, the prefix "kilo" is usually omitted. > oops. I didn't actually read the patch beyond seeing CALORIES as the type in the title ;) > Instead of using cal (small calorie), kcal or Calorie (large calorie) as > unit, I think it would be more clear to use Joule since that would eliminate > confusion and it is also a SI unit. > > According to the conversion table from here > http://physics.nist.gov/Pubs/SP811/appenB9.html#ENERGY, we could convert > nutritional calories to Joules using the following formula: > Energy (Joules) = 4 184 * calories_th_nutrition > I used this formula in the implementation of the driver. Joules is good, but then the type needs to be ENERGY rather than CALORIES. (and in_energy_* etc). > >> Now clearly it doesn't matter if the only energy sensors we ever get >> are for human activity. However, that's unlikely to be the case. We >> already have devices doing instantaneous power and there are plenty >> of smart meter chips out there (though of course, they will use the >> option of kW Hours just to confuse matters). >> >> I'd definitely prefer joules if we can do it with out a large amount of >> pain. >> >> Lars - any views on this? (Analog do make plenty of 'energy' measurement >> devices after all!) >>> --- >>> Documentation/ABI/testing/sysfs-bus-iio | 9 +++++++++ >>> drivers/iio/industrialio-core.c | 1 + >>> include/linux/iio/types.h | 1 + >>> 3 files changed, 11 insertions(+) >>> >>> diff --git a/Documentation/ABI/testing/sysfs-bus-iio >>> b/Documentation/ABI/testing/sysfs-bus-iio >>> index df5e69e..bb9342b 100644 >>> --- a/Documentation/ABI/testing/sysfs-bus-iio >>> +++ b/Documentation/ABI/testing/sysfs-bus-iio >>> @@ -282,6 +282,7 @@ What: >>> /sys/bus/iio/devices/iio:deviceX/in_current_scale >>> What: /sys/bus/iio/devices/iio:deviceX/in_accel_scale >>> What: /sys/bus/iio/devices/iio:deviceX/in_accel_peak_scale >>> What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_scale >>> +What: /sys/bus/iio/devices/iio:deviceX/in_calories_scale >>> What: /sys/bus/iio/devices/iio:deviceX/in_magn_scale >>> What: /sys/bus/iio/devices/iio:deviceX/in_magn_x_scale >>> What: /sys/bus/iio/devices/iio:deviceX/in_magn_y_scale >>> @@ -1049,6 +1050,14 @@ Description: >>> For a list of available output power modes read >>> in_accel_power_mode_available. >>> >>> +What: /sys/.../iio:deviceX/in_calories_input >>> +What: /sys/.../iio:deviceX/in_calories_raw >>> +KernelVersion: 3.17 >>> +Contact: linux-...@vger.kernel.org >>> +Description: >>> + This attribute is used to read the number of calories burned >>> since the last >>> + reset. Units after application of scale are Joules. >>> + >>> What: /sys/bus/iio/devices/iio:deviceX/store_eeprom >>> KernelVersion: 3.4.0 >>> Contact: linux-...@vger.kernel.org >>> diff --git a/drivers/iio/industrialio-core.c >>> b/drivers/iio/industrialio-core.c >>> index ee442ee..5d95e84 100644 >>> --- a/drivers/iio/industrialio-core.c >>> +++ b/drivers/iio/industrialio-core.c >>> @@ -72,6 +72,7 @@ static const char * const iio_chan_type_name_spec[] = { >>> [IIO_HUMIDITYRELATIVE] = "humidityrelative", >>> [IIO_ACTIVITY] = "activity", >>> [IIO_STEPS] = "steps", >>> + [IIO_CALORIES] = "calories", >>> }; >>> >>> static const char * const iio_modifier_names[] = { >>> diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h >>> index 904dcbb..d2fe930 100644 >>> --- a/include/linux/iio/types.h >>> +++ b/include/linux/iio/types.h >>> @@ -32,6 +32,7 @@ enum iio_chan_type { >>> IIO_HUMIDITYRELATIVE, >>> IIO_ACTIVITY, >>> IIO_STEPS, >>> + IIO_CALORIES, >>> }; >>> >>> enum iio_modifier { >>> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-iio" in >> the body of a message to majord...@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/