FreeCalypso > hg > freecalypso-tools
changeset 748:b55a81ce7497
fc-shell: implement MMI_BATTERY_IND sending
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 22 Oct 2020 05:39:47 +0000 |
parents | efd85963ec85 |
children | fa6fee41f06e |
files | rvinterf/asyncshell/Makefile rvinterf/asyncshell/battery.c rvinterf/asyncshell/oneshot.c rvinterf/asyncshell/usercmd.c |
diffstat | 4 files changed, 80 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/rvinterf/asyncshell/Makefile Mon Oct 19 18:00:37 2020 +0000 +++ b/rvinterf/asyncshell/Makefile Thu Oct 22 05:39:47 2020 +0000 @@ -2,9 +2,9 @@ CFLAGS= -O2 CPPFLAGS=-I../include PROG= fc-shell -OBJS= at.o help.o init.o keypress.o main.o oneshot.o parse.o pktsort.o \ - poweroff.o rxctl.o sendarb.o sendsp.o tchcmd.o tchplay.o tchrec.o \ - usercmd.o +OBJS= at.o battery.o help.o init.o keypress.o main.o oneshot.o parse.o \ + pktsort.o poweroff.o rxctl.o sendarb.o sendsp.o tchcmd.o tchplay.o \ + tchrec.o usercmd.o LIBS= ../libasync/libasync.a ../libg23/libg23.a ../libinterf/libinterf.a INSTALL_PREFIX= /opt/freecalypso
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/asyncshell/battery.c Thu Oct 22 05:39:47 2020 +0000 @@ -0,0 +1,73 @@ +/* + * Functions for sending MMI_BATTERY_IND primitives with simulated + * battery actions. + */ + +#include <sys/types.h> +#include <stdio.h> +#include <ctype.h> +#include <string.h> +#include <strings.h> +#include <stdlib.h> +#include "pktmux.h" +#include "limits.h" +#include "exitcodes.h" + +static u_char mmi_battery_ind_fixedpart[24] = { + RVT_L23_HEADER, 0x97, 24, 0, + 0, 0, 0, 0, + 'P', 'C', 'O', ' ', + 'M', 'M', 'I', ' ', + 'M', 'M', 'I', ' ', + 0x03, 0x4E, 0, 0 +}; + +send_mmi_battery_ind(byte1, byte2) +{ + u_char pkt[28]; + + bcopy(mmi_battery_ind_fixedpart, pkt, 24); + pkt[24] = byte1; + pkt[25] = byte2; + /* 2 padding bytes */ + pkt[26] = 0; + pkt[27] = 0; + send_pkt_to_target(pkt, 28); + return(0); +} + +cmd_batt_common(argc, argv) + char **argv; +{ + u_char bytes[2]; + int i; + char *endp; + + for (i = 0; i < 2; i++) { + bytes[i] = strtoul(argv[i], &endp, 0); + if (*endp) { + printf("error: invalid batt argument\n"); + return(ERROR_USAGE); + } + } + return send_mmi_battery_ind(bytes[0], bytes[1]); +} + +void +cmd_batt_interactive(argstr) + char *argstr; +{ + char *argv[3]; + int argc, rc; + + rc = parse_interactive_command_into_argv(argstr, argv, 2, 2, &argc); + if (rc < 0) + return; + cmd_batt_common(argc, argv); +} + +cmd_batt_oneshot(argc, argv) + char **argv; +{ + return cmd_batt_common(argc - 1, argv + 1); +}
--- a/rvinterf/asyncshell/oneshot.c Mon Oct 19 18:00:37 2020 +0000 +++ b/rvinterf/asyncshell/oneshot.c Thu Oct 22 05:39:47 2020 +0000 @@ -9,6 +9,7 @@ #include "limits.h" #include "exitcodes.h" +extern int cmd_batt_oneshot(); extern int cmd_key_oneshot(); extern int cmd_keydown_oneshot(); extern int cmd_keyup_oneshot(); @@ -26,6 +27,7 @@ int maxargs; int (*func)(); } cmdtab[] = { + {"batt", 2, 2, cmd_batt_oneshot}, {"key", 1, 1, cmd_key_oneshot}, {"keydown", 1, 1, cmd_keydown_oneshot}, {"keyup", 1, 1, cmd_keyup_oneshot},
--- a/rvinterf/asyncshell/usercmd.c Mon Oct 19 18:00:37 2020 +0000 +++ b/rvinterf/asyncshell/usercmd.c Thu Oct 22 05:39:47 2020 +0000 @@ -11,6 +11,7 @@ extern char usercmd[]; +extern void cmd_batt_interactive(); extern void cmd_disable(); extern void cmd_enable(); extern void cmd_help(); @@ -37,6 +38,7 @@ char *cmd; void (*func)(); } cmdtab[] = { + {"batt", cmd_batt_interactive}, {"disable", cmd_disable}, {"enable", cmd_enable}, {"exit", cmd_exit},