#include #include #include #include #include #include #include #if defined(PROJECT) && (PROJECT == POS) #define DEVICE_PATH "/dev/buzz0" #else #define DEVICE_PATH "/dev/buzzer" #endif int main(int argc, char *argv[]) { unsigned int flag = 0; unsigned int freq = 0; unsigned int duration = 0; unsigned char buf[4]; int fd = 0; int ret = 0; if(argc != 4 && argc != 2) { printf("Usage: %s on 2 2400\n", argv[0]); return 1; } if(strcmp(argv[1], "on") == 0 && argc == 4) { flag = 1; freq = atoi(argv[3]); duration = atoi(argv[2]); } else if(strcmp(argv[1], "off") == 0) { flag = 0; } else { printf("Usage: %s on 2 2400\n", argv[0]); return 1; } memset(buf, 0, sizeof(buf)); buf[0] = flag; buf[1] = freq&0xff; buf[2] = (freq>>8)&0xff; buf[3] = duration&0xff; fd = open(DEVICE_PATH, O_RDWR); if(fd < 0) { printf("open /dev/buzzer failed\n"); return 1; } ret = write(fd, buf, sizeof(buf)); if(ret < 0) { printf("write /dev/buzzer failed\n"); return 1; } close(fd); }