#include "project.h" #define DIGIT_TIMEOUT 4000 static char dialstr[32] = "ATDT"; static unsigned dialstr_ptr = 4; static int dialstr_timeout; void dialstr_clear (void) { dialstr_ptr = 4; dialstr[dialstr_ptr] = ';'; dialstr[dialstr_ptr + 1] = 0; } void dialstr_digit (int digit) { if (!dialstr_timeout) dialstr_clear (); if (dialstr_ptr >= (sizeof (dialstr) - 2)) return; dialstr[dialstr_ptr] = '0' + digit; dialstr_ptr++; dialstr[dialstr_ptr] = ';'; dialstr[dialstr_ptr + 1] = 0; dialstr_timeout = DIGIT_TIMEOUT; printf ("Dialstr is now %s\r\n", dialstr + 4); } void dialstr_dial (void) { printf ("Dialing %s\r\n", dialstr + 4); modem_send (dialstr); } void dialstr_tick (void) { if (!dialstr_timeout) return; dialstr_timeout--; if (dialstr_timeout) return; if (!hook) dialstr_dial (); }