PAW_Sensor: This library control the PAW sensor. This library get sensor values from the PAW sensor, and send these values to PC through serial-communication. And you need to convert these values to delta h using some module on PC. I create sample python module for this library. If you want to get this module, please access below page, https://github.com/HiroakiMatsuda/PAW-Sensor The PAW Sensor is developed by RT. If you need to get information about this sensors, please access below page. http://www.rt-shop.jp/index.php?main_page=product_info&cPath=42&products_id=1303

Dependents:   PAW_Sensor_HelloWorld

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers paw.cpp Source File

paw.cpp

00001 #include "paw.h"
00002 
00003 PAW::PAW( PinName led_1, PinName led_2, PinName photo_1, PinName photo_2 ):
00004         _led_1( led_1 ), _led_2( led_2 ), _photo_1( photo_1 ), _photo_2( photo_2 ){
00005 
00006     _led_1 = 0;
00007     _led_2 = 0;
00008     _state = STATE_1;
00009 }
00010 
00011 unsigned char PAW::process_paw()
00012 {
00013     switch( _state )
00014     {
00015         case STATE_1:
00016             _value.initial_photo_1 = _photo_1.read_u16();
00017             _value.initial_photo_2 = _photo_2.read_u16();
00018             _led_1 = 1;
00019             
00020             _state = STATE_2;
00021             break;
00022             
00023         case STATE_2:
00024             _value.ch_3 = ( _photo_1.read_u16() - _value.initial_photo_1 ) >> 4;
00025             _value.ch_4 = ( _photo_2.read_u16() - _value.initial_photo_2 ) >> 4;
00026             _led_1 = 0;
00027             
00028             _state = STATE_3;
00029             break;
00030             
00031         case STATE_3:
00032             _value.initial_photo_1 = _photo_1.read_u16();
00033             _value.initial_photo_2 = _photo_2.read_u16();
00034             _led_2 = 1;
00035             
00036             _state = STATE_4;
00037             break;
00038             
00039         case STATE_4:
00040             _value.ch_2 = ( _photo_1.read_u16() - _value.initial_photo_2 ) >> 4;
00041             _value.ch_1 = ( _photo_2.read_u16() - _value.initial_photo_1 ) >> 4;
00042             _led_2 = 0;
00043             
00044             _state = STATE_1;                                                               
00045             break;
00046     }
00047     
00048     return _state;
00049 }
00050 
00051 paw_value PAW::get_value()
00052 {
00053     return _value;
00054 }
00055 
00056 bool PAW::get_state()
00057 {
00058     return _state;
00059 }
00060 
00061 void PAW::print( Serial* pc, unsigned char id )
00062 {
00063     pc->printf("%c%c%c%c%c%c%c%c%c%c%c", 0xFA, 0xAF, id,
00064                                          _value.ch_1 & 0x00FF, ( _value.ch_1 & 0xFF00 ) >> 8,
00065                                          _value.ch_2 & 0x00FF, ( _value.ch_2 & 0xFF00 ) >> 8,
00066                                          _value.ch_3 & 0x00FF, ( _value.ch_3 & 0xFF00 ) >> 8,
00067                                          _value.ch_4 & 0x00FF, ( _value.ch_4 & 0xFF00 ) >> 8);
00068 }
00069