使用C++ Builder XE5获取Sensor值之Light Sensor

献上代码C++代码,仅供参考。若使用Delphi,请参考文献,http://blogs.embarcadero.com/davidi/2013/12/02/43032/

一定记得要安装FireMonkey哦。否则没有Fmx的库文件在里面。

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TSensorArray   sa;
TCustomLightSensor *myLightSensor;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{

	TSensorManager::Current->Activate();
	int count;
	int i;

	count = TSensorManager::Current->Count;
	Memo1->Clear();
	for (i=0; i <count; i++) {
		Memo1->Lines->Add(TSensorManager::Current->Sensors[i]->Name);
	}

	sa  = TSensorManager::Current->GetSensorsByCategory(TSensorCategory::Light);
	if (sa.Length!=0) {
		myLightSensor = static_cast<TCustomLightSensor*>(sa[0]);
		Label1->Caption = FloatToStr(myLightSensor->Lux);
	}
//    Label1->Caption = ls->Lux;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
	if (sa.Length !=0){
		Label1->Caption = FloatToStr(myLightSensor->Lux);
	}
}
//---------------------------------------------------------------------------

头文件

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Fmx.Sensors.hpp>

//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TMemo *Memo1;
	TLabel *Label1;
	Vcl::Extctrls::TTimer *Timer1;
	void __fastcall FormCreate(TObject *Sender);
	void __fastcall Timer1Timer(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

使用C++ Builder XE5获取Sensor值之Light Sensor

时间: 2024-11-19 20:18:47

使用C++ Builder XE5获取Sensor值之Light Sensor的相关文章

20150218【改进】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 一.使用struct pin_desc 管理按键的值 1.定义结构体 2.将前面我们申请中断时写的(void *)1修改为 &pins_desc[n] 在ioctl中,设置中断中修改 在key_release中释放中修改 3.在中断程序中利用我们定义的struc pins_desc判断并得到按键的值 4.得到按键键值后,唤醒程序,在read函数中返回键值 附上驱动源程序: 1 /***********

20150218【改进信号量】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进信号量]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 前面我们使用POLL查询方式来实现GPIO-IRQ按键中断程序 这里我们来使用信号量,让我们的驱动同时只能有一个应用程序打开. 一.首先在前面代码的基础上来一个简单的信号 1.定义一个全局的整形变量 2.在打开函数中,每次进入打开函数canopen都自减1, 3.当我们不使用时,在realease 中canopen自加1 4.这样就实现了一个简单的信号量,我们编译,测试 当我们使用两个应用程序来

20150218【改进Poll定时查询】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进Poll定时查询]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 按键驱动程序中,如果不使用read函数中使程序休眠的,而是还是使用查询方式的话,可以使用Poll函数,来控制一定时间内,如果有按键发生,则立即返回键值. 同时,poll也可以同时监控多个(比如说按键,鼠标,等)一旦发生事件则立即返回. 我们在linux查看帮助: 从帮助中的说明得知, poll, ppoll - wait for some event on a file descrip

快学Scala 第五课 (构造映射,获取映射值,更新映射值,迭代映射,与Java互操作)

构造映射: val score = Map[String, Int]() val score1 = HashMap[String, Int]() val value1 = Map[String, Int]("aa" -> 1, "bb" -> 2) val value2 = Map[String, Int](("aa", 1), ("bb", 2)) 获取映射值: println(if(value2.contain

工作随笔——Java调用Groovy类的方法、传递参数和获取返回值

接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码如下: # TestGroovy.groovy 定义testC方法,传入3个参数,返回处理后的数据 def testC(int numA, int numB, int numC) { "传入参数:" + numA + numB + numC + "计算之和为:" + (

IE10、火狐浏、谷歌浏览器 KindEditor无法获取textarea值

http://e-mailwu.blog.163.com/blog/static/651040362013311160913/ 在IE10.火狐浏览器.谷歌浏览器下后台KindEditor在线编辑器无法获取textarea值. 解决办法如下: (测试版本号: 4.0.6 (2012-03-18)) 方法一: <link rel="stylesheet" href="WebEditor/themes/default/default.css" /><l

C#配置文件中怎么通过key来获取value值

public static string AppConfig() { return System.IO.Path.Combine(Application.StartupPath, "BlackBoxForms.exe.config"); } /// <summary> /// 根据Key获取Value值 /// </summary> /// <param name="appKey">Key</param> /// &l

TinyOS学习 - 射频层析成像之获取RSSI值

在无线传感网络下,最重要的除了系统就是节点了. 我用的节点是Telosb的节点.然后这个节点下的获取无线的芯片是CC2420 所以我要获取RSSI值的话需要使用它. 先说下获取RSSI值的需求:我在做人的射频层析成像实验,需要追踪人的移动轨迹,而人身上是不戴任何设备的,所以我用这个方法来获取. rssi值是最重要的属性. 第一种:在例子代码里实际上有个例子程序是获取rssi值的,方法是从寄存器内读取,但是这里不适合用来定位,不说了. 第二种:在发送包的时候定义消息包 typedef nx_str

后台数值往前台传值,能获取到值,页面显示不出来的问题

今天遇到一个很头疼的问题,就是后的集合转成json后,网前台传值,可以获取到值,但是页面显示不出来.查了好多的资料都没有得到解决. 查看了资料后发现,ajax少写了一个属性就是dataType:"json"这个属性,这个属性是返回值的格式,这个属性必须要写的.朋友们写代码的时候一定要注意,不要大意. 这些小细节问题很难发现. 1 @RequestMapping("manger") 2 @ResponseBody 3 public String selectAllUs