Changeset 3449
- Timestamp:
- 11/20/07 07:05:28 (6 years ago)
- Location:
- trunk/src/target/gsm
- Files:
-
- 9 edited
-
include/gsmd/machineplugin.h (modified) (1 diff)
-
include/gsmd/usock.h (modified) (2 diffs)
-
include/libgsmd/misc.h (modified) (1 diff)
-
src/gsmd/machine_generic.c (modified) (1 diff)
-
src/gsmd/machine_gta01.c (modified) (2 diffs)
-
src/gsmd/machine_tihtc.c (modified) (1 diff)
-
src/gsmd/usock.c (modified) (2 diffs)
-
src/libgsmd/Makefile.am (modified) (1 diff)
-
src/util/shell.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/gsm/include/gsmd/machineplugin.h
r3430 r3449 12 12 struct llist_head list; 13 13 unsigned char *name; 14 int (*power)(struct gsmd *g, int power); 14 15 int (*ex_submit)(struct gsmd *g); 15 16 int (*detect)(struct gsmd *g); -
trunk/src/target/gsm/include/gsmd/usock.h
r3309 r3449 25 25 GSMD_MSG_SMS = 9, 26 26 GSMD_MSG_CB = 10, 27 GSMD_MSG_MODEM = 11, 27 28 __NUM_GSMD_MSGS 28 29 }; … … 56 57 GSMD_PHONE_POWERUP = 1, 57 58 GSMD_PHONE_POWERDOWN = 2, 59 }; 60 61 enum gsmd_msg_modem { 62 GSMD_MODEM_POWERUP = 1, 63 GSMD_MODEM_POWERDOWN = 2, 58 64 }; 59 65 -
trunk/src/target/gsm/include/libgsmd/misc.h
r3204 r3449 10 10 11 11 extern int lgsm_phone_power(struct lgsm_handle *lh, int power); 12 extern int lgsm_modem_power(struct lgsm_handle *lh, int power); 12 13 13 14 enum lgsm_info_type { -
trunk/src/target/gsm/src/gsmd/machine_generic.c
r3430 r3449 57 57 struct gsmd_machine_plugin gsmd_machine_plugin = { 58 58 .name = "generic", 59 .power = NULL, 59 60 .ex_submit = NULL, 60 61 .detect = &generic_detect, -
trunk/src/target/gsm/src/gsmd/machine_gta01.c
r3430 r3449 16 16 17 17 #define GSMD_MODEM_WAKEUP_TIMEOUT 3 18 #define GSMD_MODEM_POWEROFF_TIMEOUT 3 19 20 static void poweroff_timeout(struct gsmd_timer *tmr, void *data) 21 { 22 exit(0); 23 } 24 25 static struct gsmd_timer * poweroff_timer(struct gsmd *g) 26 { 27 struct timeval tv; 28 tv.tv_sec = GSMD_MODEM_POWEROFF_TIMEOUT; 29 tv.tv_usec = 0; 30 DEBUGP("Create power off timer\n"); 31 32 return gsmd_timer_create(&tv,&poweroff_timeout,g); 33 } 34 35 static int gta01_power(struct gsmd *g, int power) 36 { 37 struct gsmd_atcmd * cmd = NULL; 38 39 switch (power) 40 { 41 case GSMD_MODEM_POWERUP: 42 break; 43 44 case GSMD_MODEM_POWERDOWN: 45 46 //After send AT@POFF to GSM modem, modem will not work anymore and gsmd get no response 47 cmd = atcmd_fill("AT@POFF", 7+1, NULL, g, 0, poweroff_timer); 48 49 if (!cmd) 50 return -ENOMEM; 51 52 llist_add_tail(&cmd->list, &g->pending_atcmds); 53 if (llist_empty(&g->busy_atcmds) && !llist_empty(&g->pending_atcmds)) { 54 atcmd_wake_pending_queue(g); 55 } 56 break; 57 58 default: 59 return -EINVAL; 60 } 61 62 return 0; 63 } 18 64 19 65 static int null_wakeup_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) … … 104 150 struct gsmd_machine_plugin gsmd_machine_plugin = { 105 151 .name = "TI Calypso / FIC firmware", 152 .power = >a01_power, 106 153 .ex_submit = &atcmd_wakeup_modem, 107 154 .detect = >a01_detect, -
trunk/src/target/gsm/src/gsmd/machine_tihtc.c
r3430 r3449 67 67 struct gsmd_machine_plugin gsmd_machine_plugin = { 68 68 .name = "TI Calypso / HTC firmware", 69 .power = NULL, 69 70 .ex_submit = NULL, 70 71 .detect = &tihtc_detect, -
trunk/src/target/gsm/src/gsmd/usock.c
r3447 r3449 287 287 288 288 return atcmd_submit(gu->gsmd, cmd); 289 } 290 291 static int usock_rcv_modem(struct gsmd_user *gu, struct gsmd_msg_hdr *gph, 292 int len) 293 { 294 struct gsmd *g = gu->gsmd; 295 296 if (g->machinepl->power) { 297 g->machinepl->power(g, gph->msg_subtype); 298 } 299 300 return 0; 289 301 } 290 302 … … 1169 1181 [GSMD_MSG_CB] = &usock_rcv_cb, 1170 1182 [GSMD_MSG_PHONEBOOK] = &usock_rcv_phonebook, 1183 [GSMD_MSG_MODEM] = &usock_rcv_modem, 1171 1184 }; 1172 1185 -
trunk/src/target/gsm/src/libgsmd/Makefile.am
r1765 r3449 6 6 7 7 libgsmd_la_LDFLAGS = -Wc,-nostartfiles -version-info $(LIBVERSION) 8 libgsmd_la_SOURCES = libgsmd.c libgsmd_input.c libgsmd_voicecall.c libgsmd_passthrough.c libgsmd_event.c libgsmd_phone.c libgsmd_network.c libgsmd_pin.c libgsmd_sms.c libgsmd_phonebook.c 8 libgsmd_la_SOURCES = libgsmd.c libgsmd_input.c libgsmd_voicecall.c libgsmd_passthrough.c libgsmd_event.c libgsmd_phone.c libgsmd_network.c libgsmd_pin.c libgsmd_sms.c libgsmd_phonebook.c libgsmd_modem.c 9 9 10 10 noinst_HEADERS = lgsm_internals.h -
trunk/src/target/gsm/src/util/shell.c
r3448 r3449 357 357 "\tO\tPower On\n" 358 358 "\to\tPower Off\n" 359 "\tM\tModem Power On\n" 360 "\tm\tModem Power Off\n" 359 361 "\tr\tRegister to network\n" 360 362 "\tR\tRegister to given operator (R=number)\n" … … 676 678 lgsm_get_imsi(lgsmh); 677 679 pending_responses ++; 680 } else if (!strncmp(buf, "M", 1)) { 681 printf("Modem Power On\n"); 682 lgsm_modem_power(lgsmh, 1); 683 } else if (!strncmp(buf, "m", 1)) { 684 printf("Modem Power Off\n"); 685 lgsm_modem_power(lgsmh, 0); 678 686 } else { 679 687 printf("Unknown command `%s'\n", buf);
Note: See TracChangeset
for help on using the changeset viewer.
