diff --git a/examples/c++/kx122.cxx b/examples/c++/kx122.cxx new file mode 100644 index 00000000..50183156 --- /dev/null +++ b/examples/c++/kx122.cxx @@ -0,0 +1,64 @@ +/* +* The MIT License (MIT) +* +* Author: Samuli Rissanen +* Copyright (c) 2018 Rohm Semiconductor. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of +* this software and associated documentation files (the "Software"), to deal in +* the Software without restriction, including without limitation the rights to +* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +* the Software, and to permit persons to whom the Software is furnished to do so, +* subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include + +#include +#include + +#include "kx122.hpp" + +bool shouldRun = true; + +void sig_handler(int signo) +{ + if (signo == SIGINT){ + shouldRun = false; + } +} + +int main(int argc, char **argv) +{ + signal(SIGINT,sig_handler); + + upm::KX122 *sensor = new upm::KX122(0,-1,24); + + sensor->softwareReset(); + sensor->deviceInit(KX122_ODR_50,HIGH_RES,KX122_RANGE_2G); + + float x,y,z; + float wait_time = sensor->getSamplePeriod() * MICRO_S; + + while(shouldRun){ + sensor->getAccelerationData(&x,&y,&z); + + printf("%.02f | %.02f | %.02f\n",x,y,z); + usleep(wait_time); + } + + delete sensor; + sensor = nullptr; + + return 0; +} diff --git a/examples/c/kx122.c b/examples/c/kx122.c new file mode 100644 index 00000000..359c8407 --- /dev/null +++ b/examples/c/kx122.c @@ -0,0 +1,65 @@ +/* +* The MIT License (MIT) +* +* Author: Samuli Rissanen +* Copyright (c) 2018 Rohm Semiconductor. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of +* this software and associated documentation files (the "Software"), to deal in +* the Software without restriction, including without limitation the rights to +* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +* the Software, and to permit persons to whom the Software is furnished to do so, +* subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include + +#include "kx122.h" + +bool shouldRun = true; + +void sig_handler(int signo) +{ + if(signo == SIGINT){ + shouldRun = false; + } +} + +int main(int argc, char **argv) +{ + signal(SIGINT,sig_handler); + kx122_context sensor = kx122_init(0,-1,24); + if (!sensor) + { + printf("kx122_init() failed.\n"); + return 1; + } + + kx122_sensor_software_reset(sensor); + kx122_device_init(sensor,KX122_ODR_50,HIGH_RES,KX122_RANGE_2G); + + float x,y,z; + float wait_time = (kx122_get_sample_period(sensor) * MICRO_S); + + while(shouldRun){ + kx122_get_acceleration_data(sensor,&x,&y,&z); + + printf("%.02f | %.02f | %.02f\n",x,y,z); + usleep(wait_time); + } + + kx122_close(sensor); + return 0; +}