First draft HMC5883 magnetometer sensor using physical quantities, outputting via serial port using std::cout on mbed os 5

Committer:
skyscraper
Date:
Thu Mar 26 21:35:19 2020 +0000
Revision:
9:87a7169b4d5c
Parent:
8:c5dc1ce10722
Child:
11:de7c9ae7ef65
make the interface simpler. Really need a mag service that send s via a queue etc. Also need to think about multiple mags

Who changed what in which revision?

UserRevisionLine numberNew contents of line
skyscraper 8:c5dc1ce10722 1
skyscraper 8:c5dc1ce10722 2 #ifndef SKYSCRAPER_MBED_I2C_BUS_DEVICE_HPP_INCLUDED
skyscraper 8:c5dc1ce10722 3 #define SKYSCRAPER_MBED_I2C_BUS_DEVICE_HPP_INCLUDED
skyscraper 8:c5dc1ce10722 4
skyscraper 8:c5dc1ce10722 5 #include "mbed.h"
skyscraper 8:c5dc1ce10722 6
skyscraper 8:c5dc1ce10722 7 struct I2CBusDevice{
skyscraper 9:87a7169b4d5c 8
skyscraper 8:c5dc1ce10722 9 constexpr I2CBusDevice(I2C& i2cIn,uint8_t addressIn)
skyscraper 8:c5dc1ce10722 10 : m_i2c{i2cIn},m_address{addressIn}{}
skyscraper 8:c5dc1ce10722 11 int i2c_write(const char *data, int length,bool repeated = false)const
skyscraper 8:c5dc1ce10722 12 {
skyscraper 8:c5dc1ce10722 13 return m_i2c.write(m_address,data,length, repeated);
skyscraper 8:c5dc1ce10722 14 }
skyscraper 8:c5dc1ce10722 15
skyscraper 8:c5dc1ce10722 16 int i2c_read(char *data, int length, bool repeated=false)const
skyscraper 8:c5dc1ce10722 17 {
skyscraper 8:c5dc1ce10722 18 return m_i2c.read(m_address,data,length,repeated);
skyscraper 8:c5dc1ce10722 19 }
skyscraper 8:c5dc1ce10722 20
skyscraper 8:c5dc1ce10722 21 private:
skyscraper 8:c5dc1ce10722 22 I2C & m_i2c;
skyscraper 8:c5dc1ce10722 23 int const m_address;
skyscraper 8:c5dc1ce10722 24 };
skyscraper 8:c5dc1ce10722 25
skyscraper 8:c5dc1ce10722 26 #endif