Textile sensor

Dependents:   MjTextileSensor_Hello

Committer:
matsujirushi
Date:
Wed Jul 01 13:58:31 2015 +0000
Revision:
0:9f5d5e904cb9
created.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsujirushi 0:9f5d5e904cb9 1 #include "MjTextileSensor.h"
matsujirushi 0:9f5d5e904cb9 2 #include <string.h>
matsujirushi 0:9f5d5e904cb9 3
matsujirushi 0:9f5d5e904cb9 4 MjTextileSensor::MjTextileSensor(I2C* i2c, uint8_t address)
matsujirushi 0:9f5d5e904cb9 5 {
matsujirushi 0:9f5d5e904cb9 6 this->i2c = i2c;
matsujirushi 0:9f5d5e904cb9 7 this->address = address;
matsujirushi 0:9f5d5e904cb9 8 }
matsujirushi 0:9f5d5e904cb9 9
matsujirushi 0:9f5d5e904cb9 10 bool MjTextileSensor::GetVersion(uint8_t* majorVersion, uint8_t* minorVersion)
matsujirushi 0:9f5d5e904cb9 11 {
matsujirushi 0:9f5d5e904cb9 12 char command = 0x00;
matsujirushi 0:9f5d5e904cb9 13 i2c->write(address, &command, 1);
matsujirushi 0:9f5d5e904cb9 14
matsujirushi 0:9f5d5e904cb9 15 char response[3];
matsujirushi 0:9f5d5e904cb9 16 i2c->read(address, response, sizeof (response));
matsujirushi 0:9f5d5e904cb9 17 if (response[0] != 0x80) {
matsujirushi 0:9f5d5e904cb9 18 return false;
matsujirushi 0:9f5d5e904cb9 19 }
matsujirushi 0:9f5d5e904cb9 20
matsujirushi 0:9f5d5e904cb9 21 *minorVersion = response[1];
matsujirushi 0:9f5d5e904cb9 22 *majorVersion = response[2];
matsujirushi 0:9f5d5e904cb9 23
matsujirushi 0:9f5d5e904cb9 24 return true;
matsujirushi 0:9f5d5e904cb9 25 }
matsujirushi 0:9f5d5e904cb9 26 int MjTextileSensor::GetSensorValues(uint8_t* sensorValues, size_t sensorValuesSize)
matsujirushi 0:9f5d5e904cb9 27 {
matsujirushi 0:9f5d5e904cb9 28 char response[11];
matsujirushi 0:9f5d5e904cb9 29 i2c->read(address, response, sizeof (response));
matsujirushi 0:9f5d5e904cb9 30 if (response[0] != 0xff) {
matsujirushi 0:9f5d5e904cb9 31 memset(response, 0, sizeof (response));
matsujirushi 0:9f5d5e904cb9 32 return 0;
matsujirushi 0:9f5d5e904cb9 33 }
matsujirushi 0:9f5d5e904cb9 34
matsujirushi 0:9f5d5e904cb9 35 int sensorValuesSizeActual = sensorValuesSize < 10 ? sensorValuesSize : 10;
matsujirushi 0:9f5d5e904cb9 36 memcpy(sensorValues, &response[1], sensorValuesSizeActual);
matsujirushi 0:9f5d5e904cb9 37
matsujirushi 0:9f5d5e904cb9 38 return sensorValuesSizeActual;
matsujirushi 0:9f5d5e904cb9 39 }