Example #1
0
void sendbuf(void)
{
    extern int trxmode;
    extern int searchflg;
    extern char termbuf[];
    extern char backgrnd_str[];
    extern int cwkeyer;
    extern int digikeyer;
    extern int simulator;
    extern int simulator_mode;
    extern int sending_call;

    static char printlinebuffer[82] = "";

    printlinebuffer[0] = '\0';

    if ((trxmode == CWMODE && cwkeyer != NO_KEYER ) ||
	    (trxmode == DIGIMODE && digikeyer != NO_KEYER)) {

	ExpandMacro();

	if ((strlen(buffer) + strlen(termbuf)) < 80) {
	    if (simulator == 0)
		strcat(termbuf, buffer);
//              if (sending_call == 1) {
//                      strcat (termbuf, " ");
//                      sending_call = 0;
//              }
	}

	if (simulator == 0)
	    strncat(printlinebuffer, termbuf, strlen(termbuf));
	else
	    strncat(printlinebuffer, termbuf, strlen(termbuf));

	if (searchflg == 0 && simulator == 0)
	    strncat(printlinebuffer, backgrnd_str,
		    80 - strlen(printlinebuffer));
	else {
	    int len = 40 - (int)strlen(printlinebuffer);
	    if (len > 0) {
		strncat(printlinebuffer, backgrnd_str, len);
	    }
	    if (strlen(printlinebuffer) > 45) {
		printlinebuffer[42] = '.';
		printlinebuffer[43] = '.';
		printlinebuffer[44] = '.';
		printlinebuffer[45] = '\0';
	    }

	}

	attron(COLOR_PAIR(C_LOG) | A_STANDOUT);

	if ((simulator_mode == 0)) {
	    mvprintw(5, 0, printlinebuffer);
	    refreshp();
	}
	refreshp();

	if (trxmode == DIGIMODE) {

	    if (digikeyer == MFJ1278_KEYER) {
		int i = 0;
		for (i = 0; i < strlen(buffer); i++)
		    if (buffer[i] == '\n')
			buffer[i] = 13;
		for (i = 0; i < strlen(buffer); i++)
		    if (buffer[i] == 123)
			buffer[i] = 20;	/* ctrl-t */
		for (i = 0; i < strlen(buffer); i++)
		    if (buffer[i] == 125)
			buffer[i] = 18;	/* ctrl-r */
	    }
	    keyer_append(buffer);
	}

	if (trxmode == CWMODE) {

	    if (cwkeyer == MFJ1278_KEYER) {
		int i = 0;
		for (i = 0; i < strlen(buffer); i++)
		    if (buffer[i] == '\n')
			buffer[i] = 13;
	    }
	    keyer_append(buffer);
	}

	if (simulator == 0) {
	    if (sending_call == 0)
		displayit();
	    refreshp();
	}

	buffer[0] = '\0';
    }
}
Example #2
0
void sendbuf(void)
{
    extern int trxmode;
    extern int searchflg;
    extern char termbuf[];
    extern char backgrnd_str[];
    extern char wkeyerbuffer[];
    extern int data_ready;
    extern int keyerport;
    extern int simulator;
    extern int simulator_mode;
    extern int sending_call;

    static char printlinebuffer[82] = "";

    printlinebuffer[0] = '\0';

    if ((trxmode == CWMODE || trxmode == DIGIMODE)
	&& (keyerport != NO_KEYER)) {

	ExpandMacro();

	if ((strlen(buffer) + strlen(termbuf)) < 80) {
	    if (simulator == 0)
		strcat(termbuf, buffer);
//              if (sending_call == 1) {
//                      strcat (termbuf, " ");
//                      sending_call = 0;
//              }
	}

	if (simulator == 0)
	    strncat(printlinebuffer, termbuf, strlen(termbuf));
	else
	    strncat(printlinebuffer, termbuf, strlen(termbuf));

	if (searchflg == 0 && simulator == 0)
	    strncat(printlinebuffer, backgrnd_str,
		    80 - strlen(printlinebuffer));
	else {
	    int len = 40 - (int)strlen(printlinebuffer);
	    if (len > 0) {
		strncat(printlinebuffer, backgrnd_str, len);
	    }
	    if (strlen(printlinebuffer) > 45) {
		printlinebuffer[42] = '.';
		printlinebuffer[43] = '.';
		printlinebuffer[44] = '.';
		printlinebuffer[45] = '\0';
	    }

	}

	attron(COLOR_PAIR(C_LOG) | A_STANDOUT);

	if ((simulator_mode == 0)) {
	    mvprintw(5, 0, printlinebuffer);
	    refreshp();
	}
	refreshp();

	if (trxmode == DIGIMODE) {

	    if (data_ready != 1) {
		if (keyerport == MFJ1278_KEYER) {
		    int i = 0;
		    for (i = 0; i < strlen(buffer); i++)
			if (buffer[i] == '\n')
			    buffer[i] = 13;
		    for (i = 0; i < strlen(buffer); i++)
			if (buffer[i] == 123)
			    buffer[i] = 20;	/* ctrl-t */
		    for (i = 0; i < strlen(buffer); i++)
			if (buffer[i] == 125)
			    buffer[i] = 18;	/* ctrl-r */
		}
		strcat(wkeyerbuffer, buffer);
		buffer[0] = '\0';
		data_ready = 1;
	    } else
		buffer[0] = '\0';
	}

	if (trxmode == CWMODE) {

	    if (data_ready != 1) {
		if (keyerport == MFJ1278_KEYER) {
		    int i = 0;
		    for (i = 0; i < strlen(buffer); i++)
			if (buffer[i] == '\n')
			    buffer[i] = 13;
		}
		strcat(wkeyerbuffer, buffer);
		if (keyerport == NET_KEYER) {
		    netkeyer(K_MESSAGE, wkeyerbuffer);
		    wkeyerbuffer[0] = '\0';
		    data_ready = 0;
		} else
		    data_ready = 1;

	    } else
		buffer[0] = '\0';
	}

	if (simulator == 0) {
	    if (sending_call == 0)
		displayit();
	    refreshp();
	}

	buffer[0] = '\0';
    }
}
Example #3
0
File: keyer.c Project: patlc/tlf
int keyer(void)
{

    extern char mode[20];
    extern int bufloc;
    extern char buffer[];
    extern char termbuf[];
    extern char message[15][80];
    extern char wkeyerbuffer[];
    extern int data_ready;
    extern int keyerport;
    extern int weight;

    int x = 0, i = 0, j = 0;
    int cury, curx;
    char nkbuffer[2];
    char keyerstring[30] = "                              ";
    char weightbuf[15];
    const char txcontrolstring[2] = { 20, '\0' };
    const char rxcontrolstring[2] = { 18, '\0' };
    const char crcontrolstring[2] = { 13, '\0' };
    const char ctl_c_controlstring[2] = { 92, '\0' };

    strcpy(mode, "Keyboard");
    clear_display();
    attron(COLOR_PAIR(C_LOG) | A_STANDOUT);

    if (keyerport == NO_KEYER)	/* no keyer present */
	return (1);

    if (keyerport == MFJ1278_KEYER) {
	buffer[0] = 20;		// 1 char at the time !
	buffer[1] = '\0';
	if (data_ready != 1) {
	    strcat(wkeyerbuffer, buffer);
	    data_ready = 1;
	}
	buffer[0] = '\0';
    }

    while (1) {
	x = onechar();

	if (x == 34) {		/* bug fix */// "
	    x = 32;
	}

	if (x == '\n')
	    x = 32;

	if (x == 27 || x == 11 || x == 235) {	//      esc, ctrl-k,  alt-k
	    if (keyerport == MFJ1278_KEYER) {
		buffer[0] = 18;	// 1 char at the time !
		buffer[1] = '\0';
		if (data_ready != 1) {
		    strcat(wkeyerbuffer, buffer);
		    data_ready = 1;
		}
	    } else {
		stoptx();
	    }

	    buffer[0] = '\0';
	    break;
	}

	if (x >= 32 && x <= 125) {	// display              space ... }
	    addch(x);
	    refreshp();
	    i++;
	    if ((i >= 40)) {
		i = 0;
		mvprintw(4, 0, "                            ");
		mvprintw(4, 0, "");
		refreshp();
		displayit();

	    }

	    refreshp();
	}

	if (x == 127 && (strlen(buffer) >= 1)) {	/* erase  */

	    getyx(stdscr, cury, curx);
	    mvprintw(5, curx - 1, " ");
	    mvprintw(5, curx - 1, "");
	    buffer[strlen(buffer) - 1] = '\0';
	    bufloc--;
	}

	if (x > 96 && x < 123)	/* upper case only */
	    x = x - 32;

	if (x > 9 && x < 91) {

	    if (bufloc >= 38)	// maximum buffer = 39
	    {
		bufloc = 38;
		printw("\nBuffer overflow !, bufloc = %d\n", bufloc);
		refreshp();
	    } else {
		if (x > 31 || x == 10) {
		    if (keyerport == MFJ1278_KEYER) {
			mfj1278_control(x);
		    } else if (keyerport == NET_KEYER) {
			nkbuffer[0] = x;	// 1 char at the time !
			nkbuffer[1] = '\0';
			netkeyer(K_MESSAGE, nkbuffer);
			nkbuffer[0] = '\0';
			for (j = 0; j < 29; j++) {
			    keyerstring[j] = keyerstring[j + 1];
			}
			keyerstring[28] = x;
			keyerstring[29] = '\0';

			attron(COLOR_PAIR(C_LOG) | A_STANDOUT);
			mvprintw(5, 0, "%s", keyerstring);
			refreshp();
		    } else if (keyerport == ORION_KEYER) {
			nkbuffer[0] = x;
			nkbuffer[1] = '\0';
			strcat(wkeyerbuffer, nkbuffer);
			sendbuf();
			nkbuffer[0] = '\0';
			for (j = 0; j < 29; j++) {
			    keyerstring[j] = keyerstring[j + 1];
			}
			keyerstring[28] = x;
			keyerstring[29] = '\0';

			attron(COLOR_PAIR(C_LOG) | A_STANDOUT);
			mvprintw(5, 0, "%s", keyerstring);
			refreshp();

		    }
		} else		// control char...
		{

		    if (data_ready != 1) {
			strcat(wkeyerbuffer, buffer);
			data_ready = 1;
		    } else
			buffer[0] = '\0';

		    getyx(stdscr, cury, curx);
		    attron(COLOR_PAIR(C_HEADER) | A_STANDOUT);
		    mvaddstr(0, 0, "  ");
		    attron(COLOR_PAIR(C_LOG));
		    mvaddstr(cury, curx, "");
		    refreshp();

		    strcat(termbuf, buffer);
		    strcat(termbuf, " ");
		    mvprintw(5, 0, termbuf);
		    refreshp();

		    if ((strlen(buffer) + strlen(termbuf) > 39)
			|| x == '=') {
			i = 0;
			mvprintw(5, 0, "                         ");
			mvprintw(5, 0, "");
			refreshp();
			displayit();
		    }

		    bufloc = 0;
		    buffer[bufloc] = '\0';
		}
	    }
	} else {

	    switch (x) {
	    case 9:
		{
		    bufloc = 0;
		    buffer[bufloc] = '\0';
		    strcpy(mode, "Log     ");
		    clear_display();
		    return (2);
		}
	    case '\n':
	    case 13:
		{
		    if (keyerport == MFJ1278_KEYER && strlen(buffer) < 39) {
			strcat(buffer, crcontrolstring);
			sendbuf();
			bufloc = 0;
		    }
		    break;
		}

	    case 27:
	    case 11:
		{
		    stoptx();
		    bufloc = 0;
		    buffer[bufloc] = '\0';
		    strcpy(mode, "Log     ");
		    clear_display();
		    return (2);
		}
	    case 123:
		{
		    if (keyerport == MFJ1278_KEYER) {
			strcat(buffer, txcontrolstring);
			sendbuf();
		    }
		    break;
		}
	    case 125:
		{
		    if (keyerport == MFJ1278_KEYER) {
			strcat(buffer, rxcontrolstring);
			sendbuf();
		    }
		    break;
		}
	    case 92:
		{
		    if (keyerport == MFJ1278_KEYER) {
			strcat(buffer, ctl_c_controlstring);
			sendbuf();
		    }
		    break;
		}

	    case 247:		// Alt-w, set weight
		{
		    mvprintw(1, 0, "Weight=   ");
		    mvprintw(1, 7, "");
		    refreshp();
		    echo();
		    getnstr(weightbuf, 2);
		    noecho();

		    weight = atoi(weightbuf);
		    netkeyer(K_WEIGHT, weightbuf);
		    break;
		}
	    case 156:
		{
		    speedup();
		    clear_display();
		    break;
		}
	    case 157:
		{
		    speeddown();
		    clear_display();
		    break;
		}

	    case 129:
		{
		    strcat(buffer, message[0]);	/* F1 */
		    getyx(stdscr, cury, curx);
		    mvprintw(5, 0, "");
		    sendbuf();
		    mvprintw(cury, curx, "");
		    break;
		}
	    case 130:
		{
		    strcat(buffer, message[1]);	/* F2 */
		    sendbuf();
		    break;
		}
	    case 131:
		{
		    strcat(buffer, message[2]);	/* F3 */
		    sendbuf();
		    break;
		}
	    case 132:
		{
		    strcat(buffer, message[3]);	/* F4 */
		    sendbuf();
		    break;
		}
	    case 133:
		{
		    strcat(buffer, message[4]);	/* F5 */
		    sendbuf();
		    break;
		}
	    case 134:
		{
		    strcat(buffer, message[5]);	/* F6 */
		    sendbuf();
		    break;
		}
	    case 135:
		{
		    strcat(buffer, message[6]);	/* F7 */
		    sendbuf();
		    break;
		}
	    case 136:
		{
		    strcat(buffer, message[7]);	/* F8 */
		    sendbuf();
		    break;
		}
	    case 137:
		{
		    strcat(buffer, message[8]);	/* F9 */
		    sendbuf();
		    break;
		}
	    case 138:
		{
		    strcat(buffer, message[9]);	/* F10 */
		    sendbuf();
		    break;
		}

	    case 140:
		{
		    strcat(buffer, message[10]);	/* F11 */
		    sendbuf();
		    break;
		}
	    case 141:
		{

		    strcat(buffer, message[11]);	/* F12 */
		    sendbuf();
		    break;
		}

	    default:
		x = x;
	    }

	}
    }

    strcpy(mode, "Log     ");
    clear_display();

    return (2);			/* show end of keyer  routine */
}
Example #4
0
File: xpal.c Project: kahrs/cda
void
main(int argc, char *argv[])
{
	int v, i;

#ifdef PLAN9
	capxconv();
#endif
	dflag = 0;
	bflag = 0;
	iflag = 0;

	v = 0;
	fin = stdin; /* stdin */
	for(i=1; i<argc; i++) {
		if(*argv[i] == '-') {
			argv[i]++;
			if(*argv[i] == 'i') {
				iflag = 1;
				continue;
			}
			if(*argv[i] == 'd') {
				dflag = 1;
				continue;
			}
			if(*argv[i] == 'v') {
				vflag = 1;
				continue;
			}
			if(*argv[i] == 'D') {
				Dflag = 1;
				continue;
			}
			if(*argv[i] == 'X') {
				yydebug = 2;
				continue;
			}
			if(*argv[i] == 'b') {
				bflag = 1;
				default_state = 1;
				continue;
			}
			if(*argv[i] == 'z') {
				zflag = 1;
				continue;
			}
			if(*argv[i] == 'l') {
			    if (argv[++i])
				library = argv[i];
			    else
				fprint(2, "library filename missing for -l\n");
			    continue;
			}
			if(*argv[i] == 't') {
			    if (argv[++i])
				extern_id = argv[i];
			    else
				fprint(2, "device type missing for -t\n");
			    continue;
			}
			if(*argv[i] == 'm') {
			    if (argv[++i])
				manufacturer = argv[i];
			    else
				fprint(2, "manufacturer missing for -m\n");
			    continue;
			}
			fprint(2, "%s: unknown option -%c\n", argv[0], *argv[i]);
			continue;
		} /* end if - */
		if(v == 0) {
			filename = argv[i];
			v++;
			continue;
		}
		if(v > 1) {
			fprint(2, "too many arguments\n");
			exit(1);
		}
		v++;
	} /* end for */
	if (v) {
		fin = fopen(filename, "r");
		if(fin == 0) {
			fprint(2, "xpal: cannot open %s\n", filename);
			exit(1);
		}
	}
	if (extern_id && strlen(extern_id) > 0) (void) rdlibrary(); /* in case of -t */
	readminterms();
	if (Dflag) displayit();
	exit(0);
}