User Tools

Site Tools


user:jcavalu3:portfolio:datacomm5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

user:jcavalu3:portfolio:datacomm5 [2013/12/13 16:19] – created jcavalu3user:jcavalu3:portfolio:datacomm5 [2013/12/13 16:38] (current) jcavalu3
Line 1: Line 1:
 +=====MORSE CODE PROGRAM=====
  
 +**SHOUT OUT TO SHAWN MEAS FOR ALLOWING ME TO USE HIS MORSE.C PROGRAM AND REFERENCING HIS MORSE CODE PROGRAM**
 +
 +The following is the necessary code to run the morse code program:
 +
 +**morse.c**
 +
 +<code c>
 +  1 #include "morse.h"
 +  2 
 +  3 void init_morse()
 +  4 {
 +  5     morse[0][0] = '0';
 +  6     morse[0][1] = '1';
 +  7     morse[0][2] = '2';
 +  8     morse[0][3] = '2';
 +  9     morse[0][4] = '2';
 + 10     morse[0][5] = '2';
 + 11 
 + 12     morse[1][0] = '1';
 + 13     morse[1][1] = '0';
 + 14     morse[1][2] = '0';
 + 15     morse[1][3] = '0';
 + 16     morse[1][4] = '2';
 + 17     morse[1][5] = '2';
 + 18 
 + 19     morse[2][0] = '1';
 + 20     morse[2][1] = '0';
 + 21     morse[2][2] = '1';
 + 22     morse[2][3] = '0';
 + 23     morse[2][4] = '2';
 + 24     morse[2][5] = '2';
 + 25 
 + 26     morse[3][0] = '1';
 + 27     morse[3][1] = '0';
 + 28     morse[3][2] = '0';
 + 29     morse[3][3] = '2';
 + 30     morse[3][4] = '2';
 + 31     morse[3][5] = '2';
 + 32 
 + 33     morse[4][0] = '0';
 + 34     morse[4][1] = '2';
 + 35     morse[4][2] = '2';
 + 36     morse[4][3] = '2';
 + 37     morse[4][4] = '2';
 + 38     morse[4][5] = '2';
 + 39 
 + 40     morse[5][0] = '0';
 + 41     morse[5][1] = '0';
 + 42     morse[5][2] = '1';
 + 43     morse[5][3] = '0';
 + 44     morse[5][4] = '2';
 + 45     morse[5][5] = '2';
 + 46 
 + 47     morse[6][0] = '1';
 + 48     morse[6][1] = '1';
 + 49     morse[6][2] = '0';
 + 50     morse[6][3] = '2';
 + 51     morse[6][4] = '2';
 + 52     morse[6][5] = '2';
 + 53 
 + 54     morse[7][0] = '0';
 + 55     morse[7][1] = '0';
 + 56     morse[7][2] = '0';
 + 57     morse[7][3] = '0';
 + 58     morse[7][4] = '2';
 + 59     morse[7][5] = '2';
 + 60 
 + 61     morse[8][0] = '0';
 + 62     morse[8][1] = '0';
 + 63     morse[8][2] = '2';
 + 64     morse[8][3] = '2';
 + 65     morse[8][4] = '2';
 + 66     morse[8][5] = '2';
 + 67 
 + 68     morse[9][0] = '0';
 + 69     morse[9][1] = '1';
 + 70     morse[9][2] = '1';
 + 71     morse[9][3] = '1';
 + 72     morse[9][4] = '2';
 + 73     morse[9][5] = '2';
 + 74 
 + 75     morse[10][0] = '1';
 + 76     morse[10][1] = '0';
 + 77     morse[10][2] = '1';
 + 78     morse[10][3] = '2';
 + 79     morse[10][4] = '2';
 + 80     morse[10][5] = '2';
 + 81 
 + 82     morse[11][0] = '0';
 + 83     morse[11][1] = '1';
 + 84     morse[11][2] = '0';
 + 85     morse[11][3] = '0';
 + 86     morse[11][4] = '2';
 + 87     morse[11][5] = '2';
 + 88 
 + 89     morse[12][0] = '1';
 + 90     morse[12][1] = '1';
 + 91     morse[12][2] = '2';
 + 92     morse[12][3] = '2';
 + 93     morse[12][4] = '2';
 + 94     morse[12][5] = '2';
 + 95 
 + 96     morse[13][0] = '1';
 + 97     morse[13][1] = '0';
 + 98     morse[13][2] = '2';
 + 99     morse[13][3] = '2';
 +100     morse[13][4] = '2';
 +101     morse[13][5] = '2';
 +102 
 +103     morse[14][0] = '1';
 +104     morse[14][1] = '1';
 +105     morse[14][2] = '1';
 +106     morse[14][3] = '2';
 +107     morse[14][4] = '2';
 +108     morse[14][5] = '2';
 +109 
 +110     morse[15][0] = '0';
 +111     morse[15][1] = '1';
 +112     morse[15][2] = '1';
 +113     morse[15][3] = '0';
 +114     morse[15][4] = '2';
 +115     morse[15][5] = '2';
 +116 
 +117     morse[16][0] = '1';
 +118     morse[16][1] = '1';
 +119     morse[16][2] = '0';
 +120     morse[16][3] = '1';
 +121     morse[16][4] = '2';
 +122     morse[16][5] = '2';
 +123 
 +124     morse[17][0] = '0';
 +125     morse[17][1] = '1';
 +126     morse[17][2] = '0';
 +127     morse[17][3] = '2';
 +128     morse[17][4] = '2';
 +129     morse[17][5] = '2';
 +130 
 +131     morse[18][0] = '0';
 +132     morse[18][1] = '0';
 +133     morse[18][2] = '0';
 +134     morse[18][3] = '2';
 +135     morse[18][4] = '2';
 +136     morse[18][5] = '2';
 +137 
 +138     morse[19][0] = '1';
 +139     morse[19][1] = '2';
 +140     morse[19][2] = '2';
 +141     morse[19][3] = '2';
 +142     morse[19][4] = '2';
 +143     morse[19][5] = '2';
 +144 
 +145     morse[20][0] = '0';
 +146     morse[20][1] = '0';
 +147     morse[20][2] = '1';
 +148     morse[20][3] = '2';
 +149     morse[20][4] = '2';
 +150     morse[20][5] = '2';
 +151 
 +152     morse[21][0] = '0';
 +153     morse[21][1] = '0';
 +154     morse[21][2] = '0';
 +155     morse[21][3] = '1';
 +156     morse[21][4] = '2';
 +157     morse[21][5] = '2';
 +158 
 +159     morse[22][0] = '0';
 +160     morse[22][1] = '1';
 +161     morse[22][2] = '1';
 +162     morse[22][3] = '2';
 +163     morse[22][4] = '2';
 +164     morse[22][5] = '2';
 +165 
 +166     morse[23][0] = '1';
 +167     morse[23][1] = '0';
 +168     morse[23][2] = '0';
 +169     morse[23][3] = '1';
 +170     morse[23][4] = '2';
 +171     morse[23][5] = '2';
 +172 
 +173     morse[24][0] = '1';
 +174     morse[24][1] = '0';
 +175     morse[24][2] = '1';
 +176     morse[24][3] = '1';
 +177     morse[24][4] = '2';
 +178     morse[24][5] = '2';
 +179 
 +180     morse[25][0] = '1';
 +181     morse[25][1] = '1';
 +182     morse[25][2] = '0';
 +183     morse[25][3] = '0';
 +184     morse[25][4] = '2';
 +185     morse[25][5] = '2';
 +186 
 +187     morse[26][0] = '1';
 +188     morse[26][1] = '1';
 +189     morse[26][2] = '1';
 +190     morse[26][3] = '1';
 +191     morse[26][4] = '1';
 +192     morse[26][5] = '2';
 +193 
 +194     morse[27][0] = '0';
 +195     morse[27][1] = '1';
 +196     morse[27][2] = '1';
 +197     morse[27][3] = '1';
 +198     morse[27][4] = '1';
 +199     morse[27][5] = '2';
 +200 
 +201     morse[28][0] = '0';
 +202     morse[28][1] = '0';
 +203     morse[28][2] = '1';
 +204     morse[28][3] = '1';
 +205     morse[28][4] = '1';
 +206     morse[28][5] = '2';
 +207 
 +208     morse[29][0] = '0';
 +209     morse[29][1] = '0';
 +210     morse[29][2] = '0';
 +211     morse[29][3] = '1';
 +212     morse[29][4] = '1';
 +213     morse[29][5] = '2';
 +214 
 +215     morse[30][0] = '0';
 +216     morse[30][1] = '0';
 +217     morse[30][2] = '0';
 +218     morse[30][3] = '0';
 +219     morse[30][4] = '1';
 +220     morse[30][5] = '2';
 +221 
 +222     morse[31][0] = '0';
 +223     morse[31][1] = '0';
 +224     morse[31][2] = '0';
 +225     morse[31][3] = '0';
 +226     morse[31][4] = '0';
 +227     morse[31][5] = '2';
 +228 
 +229     morse[32][0] = '1';
 +230     morse[32][1] = '0';
 +231     morse[32][2] = '0';
 +232     morse[32][3] = '0';
 +233     morse[32][4] = '0';
 +234     morse[32][5] = '2';
 +235 
 +236     morse[33][0] = '1';
 +237     morse[33][1] = '1';
 +238     morse[33][2] = '0';
 +239     morse[33][3] = '0';
 +240     morse[33][4] = '0';
 +241     morse[33][5] = '2';
 +242 
 +243     morse[34][0] = '1';
 +244     morse[34][1] = '1';
 +245     morse[34][2] = '1';
 +246     morse[34][3] = '0';
 +247     morse[34][4] = '0';
 +248     morse[34][5] = '2';
 +249 
 +250     morse[35][0] = '1';
 +251     morse[35][1] = '1';
 +252     morse[35][2] = '1';
 +253     morse[35][3] = '1';
 +254     morse[35][4] = '0';
 +255     morse[35][5] = '2';
 +256 
 +257 }
 +</code>
 +
 +**moco.c**
 +
 +<code c>
 +  1 #include "rpi.h"
 +  2 #include "morse.h"
 +  3 #include <string.h>
 +  4 
 +  5 #define MAX_STRING_LEN 1000
 +  6 
 +  7 int main()
 +  8 {
 +  9     if( map_peripheral(&gpio) == -1 )
 + 10     {
 + 11         printf("Failed to map the physical GPIO registers into the virtual memory space.\n");
 + 12         return -1;
 + 13     }
 + 14 
 + 15     int i, j, k;    // iteration variables for cases 1 and 2
 + 16     int menu;           // switch option variable 
 + 17     char sendchar;      // input character variable
 + 18     char sendstr[MAX_STRING_LEN];   // input string variable
 + 19     int sendcharvalue;  // sent character value variable
 + 20     int sendstrlength;  // sent string length variable
 + 21 
 + 22     init_morse();
 + 23 
 + 24     do {
 + 25         printf("Make a selection:\n");
 + 26         printf("1: Character\n");
 + 27         printf("2: String\n");
 + 28         printf("0: Quit\n\n");
 + 29          scanf("%d", &menu);
 + 30 
 + 31         switch( menu )
 + 32         {
 + 33             case 1:
 + 34                 printf("Enter character: ");
 + 35                 scanf(" %c", &sendchar);
 + 36 
 + 37                 printf("\n\nASCII value: %d\nCharacter: %c\n\n", sendchar, sendchar);
 + 38 
 + 39                 if( sendchar >= 97 )
 + 40                     sendcharvalue = sendchar - 97;
 + 41                 else if( sendchar >= 48 || sendchar <= 57 )
 + 42                     sendcharvalue = sendchar - 22;
 + 43                 else
 + 44                     sendcharvalue = sendchar - 65;
 + 45 
 + 46                 for( j = 0; j < 6; j++ )
 + 47                 {
 + 48                     if( morse[sendcharvalue][j] != '2' )
 + 49                         printf("%c", morse[sendcharvalue][j]);
 + 50                 }
 + 51 
 + 52                 printf("\n");
 + 53                 break;
 + 54 
 + 55             case 2:
 + 56                 getchar();
 + 57 
 + 58                 printf("Enter String: ");
 + 59 
 + 60                 fgets(sendstr, sizeof(sendstr), stdin); // accepting the string and assigning it to the sendstr array
 + 61 
 + 62                 sendstrlength = strlen(sendstr); // finding and assigning the string length to a variable for later use
 + 63                 printf("\n\nsendstrlength is: %d\n\n", sendstrlength - 1); // showing string length
 + 64                 sendstr[sendstrlength] = '\0';
 + 65 
 + 66                 printf("String:\t%s\n\n", sendstr);
 + 67 
 + 68                 for( k = 0; k < sendstrlength; k++ ) // runs throughout the entire string
 + 69                 {
 + 70                     sendchar = sendstr[k]; // singles out characters to print them out as morse code
 + 71                     if( sendchar != ' ' ) // runs through if statement if not a space, else outputs a 'break' (line 91)
 + 72                     {
 + 73                         if( sendchar >= 97 ) // used to properly access data in the morse.c file, which holds the morse values
 + 74                             sendcharvalue = sendchar - 97;
 + 75                         else if( sendchar >= 48 || sendchar <= 57 ) // accounts for numbers 0 - 9
 + 76                             sendcharvalue = sendchar - 22;
 + 77                         else
 + 78                             sendcharvalue = sendchar - 65; // an attempt at accounting for capital letters
 + 79 
 + 80                         for( i = 0; i < 6; i++ ) // loop which prints morse code, stops printing when value in morse array is not '0' or '1'
 + 81                         {
 + 82                             if( morse[sendcharvalue][i] == '0' )
 + 83                             {
 + 84                                 printf("0");
 + 85                             }
 + 86                             else if( morse[sendcharvalue][i] == '1' )
 + 87                             {
 + 88                                 printf("1");
 + 89                             }
 + 90                             else
 + 91                                 break;
 + 92                         }
 + 93                         printf(" ");
 + 94                     }
 + 95                     else
 + 96                     {
 + 97                         printf("break ");
 + 98                     }
 + 99                 }
 +100                 printf("\n");
 +101                 break;
 +102  
 +103         }
 +104     }while( menu != 0 );
 +105 
 +106     return 0;
 +107 }
 +</code>
 +
 +The output:
 +
 +<cli>
 +pi@raspberrypi ~/RPI/morse $ sudo ./moco
 +Make a selection:
 +1: Character
 +2: String
 +0: Quit
 +
 +2
 +Enter String: thing me to say tweet
 +
 +
 +sendstrlength is: 21
 +
 +String: thing me to say tweet
 +
 +
 +1 0000 00 10 110 break 11 0 break 1 111 break 000 01 1011 break 1 011 0 0 1  
 +Make a selection:
 +1: Character
 +2: String
 +0: Quit
 +
 +</cli>
 +
 +**SHOUT OUT TO SHAWN MEAS FOR ALLOWING ME TO USE HIS MORSE.C PROGRAM AND REFERENCING HIS MORSE CODE PROGRAM**