summaryrefslogtreecommitdiffstats
path: root/app/dialstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/dialstr.c')
-rw-r--r--app/dialstr.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/app/dialstr.c b/app/dialstr.c
new file mode 100644
index 0000000..f75a8e4
--- /dev/null
+++ b/app/dialstr.c
@@ -0,0 +1,49 @@
+#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();
+
+}
+
+
+