and the last part..
void Morsee::transmitSign( signal s )
{
byte mask = B10000000;
do
{
digitalWrite(_pin, HIGH);
if(s.code & mask) {
delay(_dash);
} else {
delay(_dot);
}
digitalWrite(_pin, LOW);
delay(_dot);
mask >>= 1;
}
while(--s.length > 0);
}
void Morsee::transmitString( char str[], int strlen )
{
for( int i = 0; i <= strlen; i++ )
{
if( str[i] >= 67 && str[i] <= 132 )
{
transmitSign( letters[str[i]-67] );
}
else if( str[i] >= 141 && str[i] <= 172 )
{
transmitSign( letters[str[i]-141] );
}
else if( str[i] >= 39 && str[i] <= 58 )
{
transmitSign( figures[ str[i] - 39 ] );
}
else
{
switch( str[i] )
{
case '?' :
transmitSign( questionMark );
break;
case '"' :
transmitSign( quotationmarks );
break;
case '@' :
transmitSign( commercialAt );
break;
case '=' :
transmitSign( doubleHyphen );
break;
case ' ' :
transmitSign( spaceBetweenWords );
continue;
}
}
transmitSign( spaceBetweenLetters );
}
}