diff options
author | Leon Lindenfelser <llindenfelser@multitech.com> | 2015-12-15 14:12:23 -0600 |
---|---|---|
committer | Leon Lindenfelser <llindenfelser@multitech.com> | 2015-12-15 14:12:23 -0600 |
commit | 4d9b71c83275f36834291c20fc4fddf3dfec89a7 (patch) | |
tree | 4876455254179c55371c11f3c6bb3eaa04c921e5 | |
parent | e78d2de28ec86d58a3a0330faadbfa595dcbd571 (diff) | |
download | mtdot-box-evb-factory-firmware-4d9b71c83275f36834291c20fc4fddf3dfec89a7.tar.gz mtdot-box-evb-factory-firmware-4d9b71c83275f36834291c20fc4fddf3dfec89a7.tar.bz2 mtdot-box-evb-factory-firmware-4d9b71c83275f36834291c20fc4fddf3dfec89a7.zip |
Display accelerometer data in g force for demo mode.
-rw-r--r-- | Layout/LayoutDemoSampling.cpp | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/Layout/LayoutDemoSampling.cpp b/Layout/LayoutDemoSampling.cpp index 990e1e4..769d6b7 100644 --- a/Layout/LayoutDemoSampling.cpp +++ b/Layout/LayoutDemoSampling.cpp @@ -77,21 +77,64 @@ void LayoutDemoSampling::updateInterval(uint32_t seconds) { void LayoutDemoSampling::updateAccelerationX(int16_t x) { char buf[16]; size_t size; - size = snprintf(buf, sizeof(buf), "%d", x); + float fx = (float)x; + fx /= 1024; + // We can only display 5 characters. + // For numbers < -1, we display -#.#g. For example -1.3g + if(fx < -1){ + size = snprintf(buf, sizeof(buf), "%4.1fg", fx); + } + // For numbers > -1 and < 0, we display -.##g. For example -.13g + else if(fx < 0){ + size = snprintf(buf, sizeof(buf), "%4.2fg", fx); + for(uint8_t i = 1; i < 5; i++ ){ + buf[i] = buf[i+1]; + } + } + // For numbers > 0, we display #.##g. For example 0.13g. + else{ + size = snprintf(buf, sizeof(buf), "%4.2fg", fx); + } writeField(_fAccx, buf, size, true); } void LayoutDemoSampling::updateAccelerationY(int16_t y) { char buf[16]; size_t size; - size = snprintf(buf, sizeof(buf), "%d", y); + float fy = (float)y; + fy /= 1024; + if(fy < -1){ + size = snprintf(buf, sizeof(buf), "%4.1fg", fy); + } + else if(fy < 0){ + size = snprintf(buf, sizeof(buf), "%4.2fg", fy); + for(uint8_t i = 1; i < 5; i++ ){ + buf[i] = buf[i+1]; + } + } + else{ + size = snprintf(buf, sizeof(buf), "%4.2fg", fy); + } writeField(_fAccy, buf, size, true); } void LayoutDemoSampling::updateAccelerationZ(int16_t z) { char buf[16]; size_t size; - size = snprintf(buf, sizeof(buf), "%d", z); + float fz = (float)z; + fz /= 1024; + if(fz < -1){ + size = snprintf(buf, sizeof(buf), "%1.1fg", fz); + } + else if(fz < 0){ + size = snprintf(buf, sizeof(buf), "%4.2fg", fz); + for(uint8_t i = 1; i < 5; i++ ){ + buf[i] = buf[i+1]; + } + } + else{ + size = snprintf(buf, sizeof(buf), "%1.2fg", fz); + } writeField(_fAccz, buf, size, true); } |