mirror of
				https://github.com/eclipse/upm.git
				synced 2025-11-04 00:54:21 +03:00 
			
		
		
		
	kx122: Added C and C++ examples
Signed-off-by: Samuli Rissanen <samuli.rissanen@hotmail.com>
This commit is contained in:
		
							
								
								
									
										64
									
								
								examples/c++/kx122.cxx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								examples/c++/kx122.cxx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					* The MIT License (MIT)
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* Author: Samuli Rissanen <samuli.rissanen@hotmail.com>
 | 
				
			||||||
 | 
					* 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 <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										65
									
								
								examples/c/kx122.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								examples/c/kx122.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					* The MIT License (MIT)
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* Author: Samuli Rissanen <samuli.rissanen@hotmail.com>
 | 
				
			||||||
 | 
					* 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 <stdio.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user