加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
beeper.cpp 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
NKEO2333 提交于 2024-08-22 23:20 . 添加心率界面
#include "beeper.h"
Beeper::Beeper(const char* device)
: fd(-1), ret(0), devicePath(device) {
memset(&event, 0, sizeof(event));
event.type = EV_SND;
event.code = SND_TONE;
}
Beeper::~Beeper() {
if (fd > 0) {
close(fd);
}
}
bool Beeper::initialize() {
fd = open(devicePath, O_RDWR);
if (fd < 0) {
perror("Failed to open input device");
return false;
}
return true;
}
void Beeper::turnOn() {
if (fd > 0) {
event.value = 100; // 设定响度或音调
ret = write(fd, &event, sizeof(event));
if (ret < 0) {
perror("Failed to write to input device");
}
}
}
void Beeper::turnOff() {
if (fd > 0) {
event.value = 0; // 停止蜂鸣
ret = write(fd, &event, sizeof(event));
if (ret < 0) {
perror("Failed to write to input device");
}
}
}
void Beeper::wait_ms(int milliseconds) {
usleep(milliseconds * 1000); // 转换为微秒并等待
}
void Beeper::beepOnce(int duration_ms) {
turnOn();
wait_ms(duration_ms);
turnOff();
}
void Beeper::beepPattern() {
beepOnce(100); // 响0.1秒
wait_ms(100); // 停止0.1秒
beepOnce(100); // 再次响0.1秒
wait_ms(600); // 停止0.6秒
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化