#include #include #include #include #include #include "mfjterm.h" #include "misc.h" #include "inout.h" #include "timefuncs.h" void set_tnc_params(void) { char s[50]; int speed_mode; int speed; delta_inv=FALSE; delta_shift=0; speed=0; speed_mode = FALSE; strcpy(s,""); if (last_opmode == PACTOR) { write_tnc(0x03); zleep(20); send_string("EXIT",1); zleep(20); write_tnc(0x0A); zleep(20); } else { write_tnc(0x03); zleep(20); write_tnc(0x03); zleep(20); write_tnc(0x0A); zleep(20); } if (last_opmode == AMTOR){ send_string("ECHO OFF", 1); zleep(20); } switch (opmode){ case AMTOR: send_string("RADIO 1",1); zleep(10); send_string("ECHO ON",1); zleep(20); send_string("MODE AMTOR",1); zleep(50); while (! chk_incoming()); read_tnc(); send_string(a_rinv_str[amtor_inv], 1); send_string(a_tinv_str[amtor_inv], 1); delta_inv = amtor_inv; last_opmode = AMTOR; break; case ASCII: send_string("RADIO 1",1); zleep(10); send_string(b_rinv_str[ascii_inv],1); send_string(b_tinv_str[ascii_inv],1); zleep(10); strcat(s,ascii_cmd_str[ascii_shift]); strcat(s,speed_str[ascii_spd]); send_string(s,1); zleep(10); send_string("CONV",1); delta_inv=ascii_inv; delta_shift=ascii_shift; speed=ascii_spd; speed_mode = TRUE; last_opmode = ASCII; break; case RTTY: send_string("RADIO 1",1); zleep(10); send_string(usos_str[usos],1); zleep(10); send_string(b_rinv_str[rtty_inv],1); send_string(b_tinv_str[rtty_inv],1); zleep(10); strcat(s,rtty_cmd_str[rtty_shift]); strcat(s,speed_str[rtty_spd]); send_string(s,1); zleep(10); send_string("CONV",1); delta_inv = rtty_inv; delta_shift = rtty_shift; speed=rtty_spd; speed_mode = TRUE; last_opmode = RTTY; break; case PACTOR: send_string("RADIO 1",1); zleep(10); send_string("MODE PT",1); speed_mode = TRUE; last_opmode = PACTOR; break; case HPKT: send_string("DEADTIME 12",1); zleep(5); send_string("ACKTIME 52",1); zleep(5); send_string("DWAIT 0",1); zleep(5); send_string("RESPTIME 0",1); zleep(5); send_string("MAXFRAME 1",1); zleep(5); send_string("FRACK 8",1); zleep(5); send_string("PACLEN 40",1); zleep(5); send_string("RADIO 1",1); zleep(10); send_string("MODE HP",1); last_opmode = HPKT; break; case VPKT: send_string("DEADTIME 33",1); zleep(5); send_string("ACKTIME 13",1); zleep(5); send_string("RESPTIME 0",1); zleep(5); send_string("DWAIT 0",1); zleep(5); send_string("MAXFRAME 4",1); zleep(5); send_string("FRACK 3",1); zleep(5); send_string("PACLEN 128",1); zleep(5); send_string("RADIO 2",1); zleep(10); send_string("MODE VP",1); last_opmode = VPKT; break; } if (delta_inv) attrset(A_NORMAL); else attrset(A_REVERSE); move(19, 75); addch(modesign[opmode]); if (! delta_shift) attrset(A_REVERSE); addch(shiftsign[delta_shift]); attrset(A_REVERSE); move(0, 52); if (opmode == RTTY) { sprintf(s, "%s", usos_str2[usos]); } else sprintf(s, " "); addstr(s); move(0, 65); if (speed_mode) { if (opmode == PACTOR) sprintf(s, "Speed: %-3s", pactspeed_str[pactor_spd]); else sprintf(s, "Speed: %-3s", speed_str[speed]); addstr(s); } else addstr(" "); move(tnc_y, tnc_x); refresh(); } void change_opmode(void) { int k; attrset(A_REVERSE); curs_set(0); move(19, 1); addstr("Enter new opmode (A)MTOR A(S)CII (R)TTY (P)ACTOR (V)PKT (H)PKT"); nodelay(stdscr, FALSE); k = getch(); nodelay(stdscr, TRUE); move(19, 1); addstr(" "); move(tnc_y, tnc_x); curs_set(1); switch (k){ case 'a': case 'A': opmode = AMTOR; break; case 's': case 'S': opmode = ASCII; break; case 'r': case 'R': opmode = RTTY; break; case 'p': case 'P': opmode = PACTOR; break; case 'v': case 'V': opmode = VPKT; break; case 'h': case 'H': opmode = HPKT; break; default : refresh(); goto abort; } set_tnc_params(); abort: } .