代码拉取完成,页面将自动刷新
#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秒
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。