代码拉取完成,页面将自动刷新
同步操作将从 OpenHarmony/docs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
驱动开发完成后,在传感器单元测试里面开发自测试用例,验证驱动基本功能。测试环境采用开发者自测试平台。
/* 标识是否上报传感器数据 */
static int32_t g_sensorDataFlag = 0;
/* 保持获取的传感器接口实例地址 */
static const struct SensorInterface *g_sensorDev = nullptr;
/* 订阅者注册数据上报函数 */
static int SensorTestDataCallback(struct SensorEvents *event)
{
if (event == nullptr) {
return -1;
}
float *data = (float*)event->data;
printf("time [%lld] sensor id [%d] x-[%f] y-[%f] z-[%f]\n\r", event->timestamp,
event->sensorId, (*data), *(data + 1), *(data + g_axisZ));
if (*data > 1e-5) {
g_sensorDataFlag = 1;
}
return 0;
}
/* 用例执行前,初始化传感器接口实例 */
void HdfSensorTest::SetUpTestCase()
{
g_sensorDev = NewSensorInterfaceInstance();
if (g_sensorDev == nullptr) {
printf("test sensorHdi get Module instace failed\n\r");
}
}
/* 用例资源释放 */
void HdfSensorTest::TearDownTestCase()
{
if (g_sensorDev != nullptr) {
FreeSensorInterfaceInstance();
g_sensorDev = nullptr;
}
}
/* 传感器驱动测试验证 */
HWTEST_F(HdfSensorTest,TestAccelDriver_001, TestSize.Level0)
{
int32_t sensorInterval = 1000000000; /* 数据采样率单位纳秒 */
int32_t pollTime = 5; /* 数据采样时间单位秒 */
int32_t accelSensorId = 1; /* 加速度传感器类型标识为1 */
int32_t count = 0;
int ret;
struct SensorInformation *sensorInfo = nullptr;
ret = g_sensorDev->Register(SensorTestDataCallback)
EXPECT_EQ(SENSOR_NULL_PTR, ret);
ret = g_sensorDev->GetAllSensors(&sensorInfo, &count);
EXPECT_EQ(0, ret);
if (sensorInfo == nullptr) {
EXPECT_NE(nullptr, sensorInfo);
return;
}
/* 打印获取的传感器列表 */
for (int i = 0; i < count; i++) {
printf("get sensoriId[%d], info name[%s]\n\r", sensorInfo[i]->sensorId, sensorInfo[i]->sensorName);
}
ret = g_sensorDev->Enable(accelSensorId);
EXPECT_EQ(0, ret);
g_sensorDataFlag = 0;
ret = g_sensorDev->SetBatch(accelSensorId, sensorInterval, pollTime);
EXPECT_EQ(0, ret);
/* 在时间pollTime内,观察输出打印数据 */
OsalSleep(pollTime);
EXPECT_EQ(1, g_sensorDataFlag);
ret = g_sensorDev->Disable(accelSensorId);
g_sensorDataFlag = 0;
EXPECT_EQ(0, ret);
ret = g_sensorDev->Unregister();
EXPECT_EQ(0, ret);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。