/** \brief send message * * Send the message via CW or DIGI mode, but only if not empty * \param msg message to send */ void sendmessage(const char *msg) { if (strlen(msg) != 0) { g_strlcpy(buffer, msg, sizeof(buffer)); sendbuf(); } }
Read<T> Comm::alltoallv(Read<T> sendbuf_dev, Read<LO> sendcounts_dev, Read<LO> sdispls_dev, Read<LO> recvcounts_dev, Read<LO> rdispls_dev) const { #ifdef OMEGA_H_USE_MPI HostRead<T> sendbuf(sendbuf_dev); HostRead<LO> sendcounts(sendcounts_dev); HostRead<LO> recvcounts(recvcounts_dev); HostRead<LO> sdispls(sdispls_dev); HostRead<LO> rdispls(rdispls_dev); CHECK(rdispls.size() == recvcounts.size() + 1); int nrecvd = rdispls.last(); HostWrite<T> recvbuf(nrecvd); CHECK(sendcounts.size() == host_dsts_.size()); CHECK(recvcounts.size() == host_srcs_.size()); CHECK(sdispls.size() == sendcounts.size() + 1); CHECK(sendbuf.size() == sdispls.last()); CALL(Neighbor_alltoallv(host_srcs_, host_dsts_, sendbuf.data(), sendcounts.data(), sdispls.data(), MpiTraits<T>::datatype(), recvbuf.data(), recvcounts.data(), rdispls.data(), MpiTraits<T>::datatype(), impl_)); return recvbuf.write(); #else (void)sendcounts_dev; (void)recvcounts_dev; (void)sdispls_dev; (void)rdispls_dev; return sendbuf_dev; #endif }
uint8_t sendfile(int s, FILE* file, uint8_t* key, uint8_t* iv){ unsigned char* ptextbuf; unsigned char* ctextbuf; size_t ctextlen; uint8_t status; long int idx; /* Load file in memory */ if ( file != NULL ){ // Get file size fseek(file, 0, SEEK_END); idx = ftell(file); rewind(file); // Allocate a buffer to store the whole file in mem ptextbuf = malloc(idx); if ( ptextbuf != NULL ){ // Read whole file in mem fread(ptextbuf, idx, 1, file); } } /* Encrypt it*/ ctextbuf = do_aes256_crypt(ptextbuf, idx, key, iv, &ctextlen); /* Send it */ status = sendbuf(s, ctextbuf, ctextlen); free(ptextbuf); free(ctextbuf); if(status == 0) return 0; return 1; }
int stopandwait::__send(const char *buffer, const size_t length) { std::vector<char> sendbuf(length + 2); // set message type sendbuf[0] = 1; // 1 = DATA // add sequence number sendbuf[1] = _out_seqno; _out_seqno++; // copy the buffer char *sendptr = ((char*)&sendbuf[0]) + 2; ::memcpy(sendptr, buffer, length); // send the buffer if (__send_impl((char*)&sendbuf[0], length + 2) != 0) { // ERROR! return -1; } // wait for ACK ibrcommon::MutexLock l(_ack_cond); while (_ack_seqno != _out_seqno) { try { _ack_cond.wait(_timeout); } catch (const ibrcommon::Conditional::ConditionalAbortException &ex) { if (ex.reason == ibrcommon::Conditional::ConditionalAbortException::COND_TIMEOUT) { // retransmission _count++; // abort if the number of retries exceeds the maximum number if ((_maxretry > 0) && (_count > _maxretry)) { return -1; } // resend the message if (__send_impl((char*)&sendbuf[0], length + 2) != 0) { // ERROR! return -1; } } else { // ERROR or ABORT return -1; } } } return 0; }
void setascii() { int j; memset(cmdbuf,0,SIZE); j=sprintf(cmdbuf,"%s\r\n",ascistr); sendbuf(sockfd,cmdbuf,j); readbuf(NULL,sockfd,srvbuf,SIZE); checkstatus(srvbuf); }
Read<T> Comm::alltoall(Read<T> x) const { #ifdef OMEGA_H_USE_MPI HostWrite<T> recvbuf(srcs_.size()); HostRead<T> sendbuf(x); CALL(Neighbor_alltoall(host_srcs_, host_dsts_, sendbuf.data(), 1, MpiTraits<T>::datatype(), recvbuf.data(), 1, MpiTraits<T>::datatype(), impl_)); return recvbuf.write(); #else return x; #endif }
int setpasv() { int j,port1; memset(cmdbuf,0,SIZE); j=sprintf(cmdbuf,"%s\r\n",pasvstr); sendbuf(sockfd,cmdbuf,j); readbuf("Set PASV",sockfd,srvbuf,SIZE); checkstatus(srvbuf); port1=dealpasv(srvbuf); //get the pasv port return port1; }
void loginftp(char *user,char *pass) { int j; show=1; readbuf("Get banner",sockfd,srvbuf,SIZE); show=0; memset(cmdbuf,0,SIZE); //USER j=sprintf(cmdbuf,"%s %s\r\n",usrstr,user); sendbuf(sockfd,cmdbuf,j); readbuf(NULL,sockfd,srvbuf,SIZE); checkstatus(srvbuf); //PASS memset(cmdbuf,0,SIZE); j=sprintf(cmdbuf,"%s %s\r\n",passtr,pass); sendbuf(sockfd,cmdbuf,j); readbuf(NULL,sockfd,srvbuf,SIZE); checkstatus(srvbuf); printf("[+] User %s logged in\n",user); }
void retrbuf(char *filename,char *buffer,int length,int port1) { int j; printf("[+] RETR file %s\n",filename); memset(cmdbuf,0,SIZE); j=sprintf(cmdbuf,"%s %s\r\n",retrstr,filename); sendbuf(sockfd,cmdbuf,j); retrfile(buffer,length,port1); readbuf(NULL,sockfd,srvbuf,SIZE); checkstatus(srvbuf); }
void storbuf(char *filename,char *buf,int size,int port) { int j; printf("[+] STOR file %s\n",filename); memset(cmdbuf,0,SIZE); j=sprintf(cmdbuf,"%s %s\r\n",storstr,filename); sendbuf(sockfd,cmdbuf,j); storfile(buf,size,port); //check if the content is send overd readbuf(NULL,sockfd,srvbuf,SIZE); checkstatus(srvbuf); }
void storfile(char *s,int len,int port) { int i; struct sockaddr_in client; memset(&client,0,sizeof(client)); sockfd1=socket(2,1,0); if(create_serv(sockfd1,port)<0) quit(); //if(client_connect(sockfd1,HOST,port)<0) quit(); i=sizeof(client); sockfd2=accept(sockfd1,(struct sockaddr *)&client,&i); printf("[+] Accepted a client from %s\n",inet_ntoa(client.sin_addr)); sendbuf(sockfd2,s,len); close(sockfd2); close(sockfd1); }
void setport(char *l,int pt1) { int a,i,b,c,j; char buf[30]; memset(buf,0,30); i=sprintf(buf,"%s",l); for(a=0;a<i;a++) if(buf[a]=='.') buf[a]=','; memset(cmdbuf,0,SIZE); b=(pt1 >> 8 ) & 0xff; c=pt1 & 0xff; j=sprintf(cmdbuf,"%s %s,%d,%d\r\n",portstr,buf,b,c); printf("[+] %s",cmdbuf); sendbuf(sockfd,cmdbuf,j); readbuf(NULL,sockfd,srvbuf,SIZE); checkstatus(srvbuf); }
void dequeue(queue_t *q) { int r; packet_t *pl; if (!lock(&q->lock)) return; pl = q->packetlist; while (pl) { if (q->mode & MODE_STREAM || pl->tstamp <= curtime()) { if (0 < (r = sendbuf(pl->p, pl->size, pl->frame == A ? AUDIO : VIDEO))) { q->bytes_sent += r; pl = delpacket(q, pl); } } } unlock(&q->lock); }
int changepars(void) { extern int use_rxvt; extern int cluster; extern int shortqsonr; extern int searchflg; extern int demode; extern int contest; extern int announcefilter; extern int showscore_flag; extern int zonedisplay; extern int trxmode; extern char hiscall[]; extern int rit; extern int trx_control; extern int editor; extern int packetinterface; extern int nopacket; extern int cqdelay; extern int ctcomp; extern SCREEN *mainscreen; extern char *config_file; extern int miniterm; extern char buffer[]; #ifdef HAVE_LIBHAMLIB extern freq_t outfreq; #else extern int outfreq; #endif extern int simulator; extern int keyerport; extern char synclogfile[]; extern char sc_volume[]; extern int cwstart; char parameterstring[20]; char parameters[51][19]; char cmdstring[80]; int i, k, x, nopar = 0; int maxpar = 50; int volumebuffer; int currentmode = 0; int rc; strcpy(parameters[0], "SPOT"); strcpy(parameters[1], "MAP"); strcpy(parameters[2], "CLOFF"); strcpy(parameters[3], "CLUSTER"); strcpy(parameters[4], "SHORT"); strcpy(parameters[5], "LONG"); strcpy(parameters[6], "MESSAGE"); strcpy(parameters[7], "LIST"); strcpy(parameters[8], "CHECK"); strcpy(parameters[9], "NOCHECK"); strcpy(parameters[10], "TONE"); strcpy(parameters[11], "EDIT"); strcpy(parameters[12], "VIEW"); strcpy(parameters[13], "HELP"); strcpy(parameters[14], "DEMODE"); strcpy(parameters[15], "CONTEST"); strcpy(parameters[16], "FILTER"); strcpy(parameters[17], "SCORE"); strcpy(parameters[18], "WRITE"); strcpy(parameters[19], "EXIT"); strcpy(parameters[20], "TXFILE"); strcpy(parameters[21], "ZONES"); strcpy(parameters[22], "CTY"); strcpy(parameters[23], "MODE"); strcpy(parameters[24], "SET"); strcpy(parameters[25], "MULTI"); strcpy(parameters[26], "PROP"); strcpy(parameters[27], "RITCLEAR"); strcpy(parameters[28], "TRXCONTROL"); strcpy(parameters[29], "CFG"); //strcpy(parameters[30], "CWMODE"); strcpy(parameters[30], "CW"); strcpy(parameters[31], "SSBMODE"); strcpy(parameters[32], "DIGIMODE"); strcpy(parameters[33], "PACKET"); strcpy(parameters[34], "SIMULATOR"); strcpy(parameters[35], "INFO"); strcpy(parameters[36], "FREQ"); strcpy(parameters[37], "RECONNECT"); strcpy(parameters[38], "QUIT"); strcpy(parameters[39], "CQDELAY"); strcpy(parameters[40], "ADIF"); strcpy(parameters[41], "SYNC"); strcpy(parameters[42], "RESCORE"); strcpy(parameters[43], "SCVOLUME"); strcpy(parameters[44], "SCAN"); strcpy(parameters[45], "DEBUG"); strcpy(parameters[46], "MINITERM"); strcpy(parameters[47], "RTTY"); strcpy(parameters[48], "SOUND"); strcpy(parameters[49], "CWMODE"); strcpy(parameters[50], "CHARS"); nopar = 0; attroff(A_STANDOUT); attron(COLOR_PAIR(C_HEADER)); mvprintw(12, 29, "PARAMETER? "); refreshp(); mvprintw(12, 29, " "); mvprintw(12, 29, ""); refreshp(); echo(); getstr(parameterstring); noecho(); for (k = 0; parameterstring[k]; k++) parameterstring[k] = toupper(parameterstring[k]); for (i = 0; i <= maxpar; i++) { if (strncmp(parameterstring, parameters[i], 3) == 0) { break; } } switch (i) { case 0: /* SPOTS) */ { /* SPOTS not supported anymore * - default to MAP*/ cluster = MAP; break; } case 1: /* BANDMAP */ { cluster = MAP; break; } case 2: /* CLOFF */ { cluster = NOCLUSTER; break; } case 3: /* CLUSTER */ { cluster = CLUSTER; announcefilter = FILTER_ALL; break; } case 4: /* SHORTNR */ { shortqsonr = SHORTCW; break; } case 5: /* LONGNR */ { shortqsonr = LONGCW; break; } case 6: /* MESSAGE */ { message_change(i); break; } case 7: /* LIST */ { listmessages(); break; } case 8: /* CHECK */ { searchflg = SEARCHWINDOW; break; } case 9: /* NOCHECK */ { searchflg = 0; break; } case 10: /* TONE */ { set_tone(); break; } case 11: /* EDIT */ { logedit(); break; } case 12: /* VIEW */ { logview(); break; } case 13: /* HELP */ { show_help(); break; } case 14: /* DEMODE */ { if (demode == SEND_DE) demode = 0; else demode = SEND_DE; mvprintw(13, 29, "DE-mode is %d", demode); refreshp(); sleep(1); break; } case 15: /* CONTEST */ { if (contest == CONTEST) contest = 0; else { contest = CONTEST; searchflg = SEARCHWINDOW; } mvprintw(13, 29, "CONTEST-mode is %d", contest); refreshp(); sleep(1); break; } case 16: /* FILTER */ { announcefilter++; if (announcefilter > 3) announcefilter = 0; mvprintw(13, 29, "FILTER-mode is %d", announcefilter); refreshp(); sleep(1); break; } case 17: /* SCORE */ { if (showscore_flag == 0) showscore_flag = 1; else { showscore_flag = 0; } mvprintw(13, 29, "Show score-mode is %d", showscore_flag); refreshp(); sleep(1); break; } case 18: /* WRITE CABRILLO FILE */ { int old_cluster = cluster; cluster = NOCLUSTER; write_cabrillo(); cluster = old_cluster; break; } case 19: /* EXIT */ { writeparas(); clear(); cleanup_telnet(); endwin(); puts("\n\nThanks for using TLF.. 73\n"); exit(0); break; } case 20: /* TXFILE */ { break; } case 21: /* ZONES */ { if (zonedisplay == 0) zonedisplay = 1; else { zonedisplay = 0; } break; } case 22: /* COUNTRIES */ { show_mults(); refreshp(); sleep(1); break; } case 23: /* MODE */ { if (trxmode == CWMODE) trxmode = SSBMODE; else if (trxmode == SSBMODE) trxmode = DIGIMODE; else trxmode = CWMODE; if (trxmode == CWMODE) { mvprintw(13, 29, "TRXMODE = CW"); } else if (trxmode == SSBMODE) mvprintw(13, 29, "TRXMODE = SSB"); else mvprintw(13, 29, "TRXMODE = DIG"); refreshp(); sleep(1); break; } case 24: /* SET PARAMETERS */ case 29: /* CFG PARAMETERS */ { clear(); if (editor == EDITOR_JOE) { strcpy(cmdstring, "joe "); } else if (editor == EDITOR_VI) { strcpy(cmdstring, "vi "); } else if (editor == EDITOR_MC) { strcpy(cmdstring, "mcedit "); } else { strcpy(cmdstring, "e3 "); } strcat(cmdstring, config_file); rc = system(cmdstring); read_logcfg(); read_rules(); /* also reread rules file */ writeparas(); mvprintw(24, 0, "Logcfg.dat loaded, parameters written.."); refreshp(); clear_display(); break; } case 25: /* MULTI */ { multiplierinfo(); break; } case 26: /* PROPAGATION */ { muf(); clear_display(); break; } case 27: /* RITCLEAR */ { if (rit == RITCLEAR) rit = 0; else { rit = RITCLEAR; } if (rit == RITCLEAR) { mvprintw(13, 29, "RIT clear on"); } else { mvprintw(13, 29, "RIT clear off"); } refreshp(); sleep(1); break; } case 28: /* trx ctl */ { if (trx_control == 1) trx_control = 0; else { trx_control = 1; } if (trx_control == 1) { mvprintw(13, 29, "TRX control on"); } else { mvprintw(13, 29, "TRX control off"); } refreshp(); sleep(1); break; } case 30: /* CW */ case 49: { if (keyerport == MFJ1278_KEYER) { strcpy(buffer, "MODE CW,30"); buffer[7] = '\015'; buffer[8] = 'K'; buffer[9] = '\015'; buffer[10] = '\0'; sendbuf(); } trxmode = CWMODE; if (trx_control == 1) outfreq = SETCWMODE; break; } case 31: /* SSBMODE */ { trxmode = SSBMODE; outfreq = SETSSBMODE; break; } case 32: /* DIGIMODE */ { trxmode = DIGIMODE; break; } case 33: /* PACKET */ { if ((nopacket == 0) && (packetinterface > 0)) packet(); break; } case 34: /* SIMULATOR */ { if (simulator == 0) { simulator = 1; if (ctcomp == 1) { mvprintw(13, 19, "The simulator only works in TRmode. Switching to TRmode"); ctcomp = 0; } else mvprintw(13, 29, "Simulator on"); refreshp(); if (keyerport == NET_KEYER) { if (netkeyer(K_WORDMODE, NULL) < 0) { mvprintw(24, 0, "keyer not active; switching to SSB"); trxmode = SSBMODE; clear_display(); } } } else { simulator = 0; mvprintw(13, 29, "Simulator off"); refreshp(); if (keyerport == NET_KEYER) { if (netkeyer(K_RESET, NULL) < 0) { mvprintw(24, 0, "keyer not active; switching to SSB"); trxmode = SSBMODE; clear_display(); } } } break; } case 35: /* INFO */ { int currentterm = miniterm; miniterm = 0; networkinfo(); miniterm = currentterm; if (currentmode == DIGIMODE) trxmode = DIGIMODE; break; } case 36: /* CLOFF */ { cluster = FREQWINDOW; break; } case 37: /* RECONNECT */ { if ((nopacket == 0) && (packetinterface > 0)) { cleanup_telnet(); init_packet(); packet(); } break; } case 38: /* EXIT=QUIT */ { writeparas(); cleanup_telnet(); endwin(); puts("\n\nThanks for using TLF.. 73\n"); exit(0); break; } case 39: /* CQDELAY */ { mvprintw(12, 29, "CQD: pgup/dwn", cqdelay); refreshp(); x = 1; while (x) { x = onechar(); switch (x) { case 156:{ if (cqdelay <= 60) { cqdelay++; attron(COLOR_PAIR(C_HEADER) | A_STANDOUT); mvprintw(0, 19, " "); mvprintw(0, 19, "%i", cqdelay); break; } } case 157:{ if (cqdelay >= 1) { cqdelay--; attron(COLOR_PAIR(C_HEADER) | A_STANDOUT); mvprintw(0, 19, " "); mvprintw(0, 19, "%i", cqdelay); break; } default: x = 0; } } } if (use_rxvt == 0) attron(COLOR_PAIR(NORMCOLOR) | A_BOLD); else attron(COLOR_PAIR(NORMCOLOR)); mvprintw(12, 29 + strlen(hiscall), ""); break; } case 40: /* ADIF */ { write_adif(); break; } case 41: /* SYNC */ { if (strlen(synclogfile) > 0) synclog(synclogfile); scroll_log(); /** \todo register return value */ readcalls(); clear_display(); break; } case 42: /* RESCORE */ { /** \todo register return value */ readcalls(); clear_display(); break; } case 43: /* SCVOLUME - set soundcard volume */ { volumebuffer = atoi(sc_volume); mvprintw(12, 29, "Vol: pgup/dwn"); refreshp(); usleep(500000); mvprintw(12, 29, "Vol: "); mvprintw(12, 29, "Vol: %d", volumebuffer); x = 1; while (x) { x = onechar(); switch (x) { case 156:{ if (volumebuffer < 95) volumebuffer += 5; break; } case 157:{ if (volumebuffer >= 5) volumebuffer -= 5; break; } default: x = 0; } attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT); mvprintw(12, 34, " "); mvprintw(12, 34, "%d", volumebuffer); if (volumebuffer >= 0 && volumebuffer <= 99) sprintf(sc_volume, "%d", volumebuffer); netkeyer(K_STVOLUME, sc_volume); } clear_display(); break; } case 44: /* SCAN */ { int currentterm = miniterm; miniterm = 0; testaudio(); clear_display(); miniterm = currentterm; break; } case 45: /* DEBUG */ { debug_tty(); clear_display(); break; } case 46: /* MINITERM ON/OFF */ { if (miniterm == 1) miniterm = 0; else miniterm = 1; break; } case 47: /* RTTY Initialize mode (MFJ1278B controller) */ { strcpy(buffer, "MODE VB"); buffer[7] = '\015'; buffer[8] = 'K'; buffer[9] = '\015'; buffer[10] = '\0'; sendbuf(); trxmode = DIGIMODE; break; } case 48: /* SOUND */ { clear_display(); record(); clear_display(); break; } case 50: /* CHARS */ { mvprintw(13, 29, "Autosend: (0 (off), 2..5 chars) ?"); refreshp(); x = 1; /* wait for correct input or ESC */ while ((x != 0) && ((x < 2) || (x > 5)) ) { x = onechar(); if (x == 27) break; x = x - '0'; } /* remember new setting */ if (x != 27) cwstart = x; if (cwstart) mvprintw(13,29, "Autosend now: %1d ", cwstart); else mvprintw(13,29, "Autosend now: OFF "); refreshp(); break; } default: { nopar = 1; } } if (nopar != 1) { mvprintw(12, 29, "OK ! "); writeparas(); } else { if ((nopacket ==0) && (packetinterface > 0)) packet(); } refreshp(); if (use_rxvt == 0) attron(COLOR_PAIR(NORMCOLOR) | A_BOLD); else attron(COLOR_PAIR(NORMCOLOR)); mvprintw(12, 29, " "); mvprintw(12, 29, ""); refreshp(); hiscall[0] = '\0'; return (0); }
int speeddown(void) { extern int trxmode; extern int keyerport; extern char buffer[]; int retval; char buff[3]; if (trxmode != CWMODE) /* bail out, this is an SSB contest */ return (0); if (keyerport == NET_KEYER) { if (speed >= 1) { speed--; snprintf(buff, 3, "%2d", GetCWSpeed()); retval = netkeyer(K_SPEED, buff); if (retval < 0) { mvprintw(24, 0, "keyer not active; switching to SSB"); trxmode = SSBMODE; clear_display(); } } } if (keyerport == MFJ1278_KEYER) { if (speed >= 1) { speed--; snprintf(buff, 3, "%2d", GetCWSpeed()); strcpy(buffer, "\\\015"); sendbuf(); usleep(500000); strcpy(buffer, "MSP "); strcat(buffer, buff); strcat(buffer, " \015"); sendbuf(); usleep(500000); strcpy(buffer, "CONV\015\n"); sendbuf(); } } if (keyerport == ORION_KEYER) { if (speed >= 1) { speed--; orion_set_cw_speed(GetCWSpeed()); } } return (speed); }
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 */ }
int speedup(void) { extern int trxmode; extern int keyerport; extern char buffer[]; int retval = 0; char buff[3]; if (trxmode != CWMODE) return (0); if (keyerport == NET_KEYER) { if (speed < 20) { speed++; snprintf(buff, 3, "%2d", GetCWSpeed()); retval = netkeyer(K_SPEED, buff); if (retval < 0) { mvprintw(24, 0, "keyer not active"); // trxmode = SSBMODE; sleep(1); clear_display(); } } } if (keyerport == MFJ1278_KEYER) { if (speed < 20) { speed++; snprintf(buff, 3, "%2d", GetCWSpeed()); strcpy(buffer, "\\\015"); sendbuf(); usleep(500000); strcpy(buffer, "MSP "); strcat(buffer, buff); strcat(buffer, " \015"); sendbuf(); usleep(500000); strcpy(buffer, "CONV\015\n"); sendbuf(); if (retval < 0) { mvprintw(24, 0, "keyer not active"); // trxmode = SSBMODE; sleep(1); clear_display(); } } } return (speed); }