Write a program that will read a single human readable character from the serial
ID: 3588499 • Letter: W
Question
Write a program that will read a single human readable character from the serial port and send back a string that represents the Morse code pattern for that character TA Signature:. - Date: /201 Write a function that processes the Morse code pattern by playing the correct tones for each character and also printing the Morse code pattern to the serial port. Dat.../201 -Your program should use these values for the lengths of the various delays you'll encounter in this assignment Type Dit (short) Dah (long) Space between dits and dahs500 milliseconds Space between letters Space between words Duration 100 milliseconds 300 milliseconds 300 milliseconds 700 millisecondsExplanation / Answer
1.
2. program in c++
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <WinBase.h>
#include <vector>
using namespace std;
#define DOT 60
#define DASH 600
#define FREQUENCY 1200
std::vector< std::vector<int> > morse_codes(256);
void init_morse_codes(void)
{
//Letters
morse_codes['a'] = { DOT, DASH };
morse_codes['b'] = { DASH, DOT, DOT, DOT };
morse_codes['c'] = { DASH, DOT, DASH, DOT };
morse_codes['d'] = { DASH, DOT, DOT };
morse_codes['e'] = { DOT };
morse_codes['f'] = { DOT, DOT, DASH, DOT };
morse_codes['g'] = { DASH, DASH, DOT };
morse_codes['h'] = { DOT, DOT, DOT, DOT };
morse_codes['i'] = { DOT, DOT };
morse_codes['j'] = { DOT, DASH, DASH, DASH };
morse_codes['k'] = { DASH, DOT, DASH };
morse_codes['l'] = { DOT, DASH, DOT, DOT };
morse_codes['m'] = { DASH, DASH };
morse_codes['n'] = { DASH, DOT };
morse_codes['o'] = { DASH, DASH, DASH };
morse_codes['p'] = { DOT, DASH, DASH, DOT };
morse_codes['q'] = { DASH, DASH, DOT, DASH };
morse_codes['r'] = { DOT, DASH, DOT };
morse_codes['s'] = { DOT, DOT, DOT };
morse_codes['t'] = { DASH };
morse_codes['u'] = { DOT, DOT, DASH };
morse_codes['v'] = { DOT, DOT, DOT, DASH };
morse_codes['w'] = { DOT, DASH, DASH };
morse_codes['x'] = { DASH, DOT, DOT, DASH };
morse_codes['y'] = { DASH, DOT, DASH, DASH };
morse_codes['z'] = { DASH, DASH, DOT, DOT };
//Numbers
morse_codes['1'] = { DOT, DASH, DASH, DASH, DASH };
morse_codes['2'] = { DOT, DOT, DASH, DASH, DASH };
morse_codes['3'] = { DOT, DOT, DOT, DASH, DASH };
morse_codes['4'] = { DOT, DOT, DOT, DOT, DASH };
morse_codes['5'] = { DOT, DOT, DOT, DOT, DOT };
morse_codes['6'] = { DASH, DOT, DOT, DOT, DOT };
morse_codes['7'] = { DASH, DASH, DOT, DOT, DOT };
morse_codes['8'] = { DASH, DASH, DASH, DOT, DOT };
morse_codes['9'] = { DASH, DASH, DASH, DASH, DOT };
morse_codes['0'] = { DASH, DASH, DASH, DASH, DASH };
//Punctuation
morse_codes['.'] = { DOT, DASH, DOT, DASH, DOT, DASH };
morse_codes['?'] = { DOT, DOT, DASH, DASH, DOT, DOT };
morse_codes[','] = { DASH, DASH, DOT, DOT, DASH, DASH };
morse_codes['''] = { DOT, DASH, DASH, DASH, DASH, DOT };
morse_codes['-'] = { DASH, DOT, DOT, DOT, DOT, DASH };
morse_codes[':'] = { DASH, DASH, DASH, DOT, DOT, DOT };
}
void do_morsecode(char code)
{
int beep_i;
for (beep_i = 0; beep_i < morse_codes[code].size(); beep_i++)
Beep(FREQUENCY, morse_codes[code][beep_i]);
}
void do_morsecode_string(char *message)
{
for (; *message != 0; message++)
{
do_morsecode(*message);
// character pause here
}
}
// use int main() for non-Unicode
int _tmain(int argc, _TCHAR* argv[])
{
init_morse_codes();
do_morsecode_string("this is a message!");
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.