- if (strncmp(cmdline, "gistr", 5) == 0) {
- mdata[0] = 0;
- mw_send_frame(mw_fd, MW_GET_INFORMATION_STRING, 0, mdata, 1);
- }
- if (strncmp(cmdline, "gdtype", 6) == 0) {
- mw_send_frame(mw_fd, MW_GET_DEVICE_TYPE, 0, NULL, 0);
- }
- if (strncmp(cmdline, "rvbat", 5) == 0) {
- mw_send_frame(mw_fd, MW_READ_BATTERY_VOLTAGE_MSG, 0, NULL, 0);
- }
- if (strncmp(cmdline, "modecfg", 6) == 0) {
- mw_configure_watch_mode(mw_fd, MW_SCREEN_MODE_IDLE, 0, 4, 1);
- mw_update_display(mw_fd, MW_SCREEN_MODE_IDLE, 0);
- }
- if (strncmp(cmdline, "rbtcfg", 6) == 0) {
- mdata[0] = 0; /* idle screen */
- mdata[1] = 1; /* button index */
- mdata[2] = 2; /* button press type */
- mdata[3] = 3; /* callback message type */
- mdata[4] = 4; /* callback message option */
- mw_send_frame(mw_fd, MW_READ_BUTTON_CONFIG, 0, NULL, 0);
- }
- if (strncmp(cmdline, "svib", 4) == 0) {
- mw_set_vibrate_mode(mw_fd, 1, 300, 300, 5);
- }
- if (strncmp(cmdline, "tbmp", 4) == 0) {
- bitmap_test(mw_fd);
- }
- if (strncmp(cmdline, "rbmp", 4) == 0) {
- bitmap_read(mw_fd);
- }
-}
-
-
-int menu(int mw_fd)
-{
- fd_set mfds;
- struct termios tconfd;
- char cmdline[128];
- unsigned char msg_buf[64];
- unsigned char clinep = 0;
- int rcvd;
-
- tcgetattr(0, &tconfd);
- cfmakeraw(&tconfd);
- tconfd.c_oflag |= ONLCR | OPOST;
- tconfd.c_lflag |= ISIG;
- tcsetattr(0, TCSANOW, &tconfd);
-
- FD_ZERO(&mfds);
- FD_SET(0, &mfds);
- FD_SET(mw_fd, &mfds);
-
- memset(cmdline, 0, 128);
-
- do {
- rcvd = 0;
- if (select(mw_fd+1, &mfds, NULL, NULL, NULL) > 0) {
- if (FD_ISSET(mw_fd, &mfds)) {
- rcvd = read(mw_fd, msg_buf, 64);
- fprintf(stderr, "read %d bytes:\n", rcvd);
- if (rcvd > 0) {
- dump_frame(msg_buf, rcvd);
- decode_frame(mw_fd, msg_buf, rcvd);
- }
- };
- if (FD_ISSET(0, &mfds)) {
- rcvd = read(0, (cmdline+clinep), 1);
- if (rcvd > 0) {
- if (cmdline[clinep] == '\r') {
- printf("\n");
- cmdline[clinep--] = '\0';
- process_cmd(cmdline, clinep, mw_fd);
- clinep = 0;
- memset(cmdline, 0, 128);
- } else {
- clinep++;
- if (clinep > 75)
- clinep = 75;
- printf("\r> %s", cmdline);
- fflush(stdout);
- }
- }
- };
- } else
- break;
- FD_ZERO(&mfds);
- FD_SET(0, &mfds);
- FD_SET(mw_fd, &mfds);
- } while (rcvd > 0);
-
- return 0;