Trabalho Prático Nº4

Propaganda
Trabalho Prático Nº4
Porta Série
1. OBJECTIVOS
-
Desenvolver aplicações sobre a porta série em Ambiente Windows 32 bits
2. INTRODUÇÃO
Este trabalho prático é baseado no artigo “Use P/Invoke to Develop a .NET Base Class
Library for Serial Device Communications” de John Hind, que pode ser obtido em:
http://msdn.microsoft.com/msdnmag/issues/02/10/NETSerialComm/.
A FCL (Framework Class Library), da Microsoft .NET não contempla a comunicação
série RS232. Por isso devem ser utilizada as API do WIN32 utilizando a tecnologia
.NET, invocação de serviços de plataforma (P/INVOKE).
São invocados métodos de DLL não gerida, que implementam API do WIN32, utilizando
os serviços de invocação de plataforma “Plataform Invocation services".
// Exemplifica chamada de MessageBoxA de user32.dll
using System;
//DllImport using System.Runtime.InteropServices;
using System.Runtime.InteropServices;
class PInvoke1App
{
[DllImport("user32.dll")]
static extern int MessageBoxA (int hWnd, string msg,string
caption, int type);
public static void Main()
{
MessageBoxA (0, "Hello, World!", "This is called from a C#
app!", 0);
}
}
Microprocessadores III – ano lectivo 2004/2005 – Página 1
Trabalho Prático Nº4
Podemos dar um nome local ao método por exemplo da forma:
[DllImport("user32.dll",EntryPoint="MessageBoxA" )]
static extern int Msg(int hWnd, string msg,string caption, int
type);
Em que o nome do método MessageBoxA é definido localmente na classe como Msg()
A primeira classe da livraria commBase não faz assumpção sobre o formato de dados e
disponibiliza funções para abrir e fechar o porto de comunicação, enviar e receber bytes
de dados e interagir com o controlo de entradas e saídas. A segunda classe da livraria,
CommLine, inerente de CommBase assume que o código dos bytes enviados e recebidos
é ASCII.
3. TRABALHO
3.1 Serviço de mensagens escritas SMS na rede GSM. Modos de Envio.
Pretende-se escrever uma aplicação que possibilite o envio e recepção de mensagens
curtas (SMS) para telefones GSM.
O serviço de mensagens curtas, não funciona directamente do emissor para o receptor
mas via um entreposto designado centro de mensagens (SMSC/SC SMS Center ou
Service Center). Cada equipamento GSM dispõe de pelo menos um numero referente ao
SMSC do serviço de mensagens curtas. Caso seja solicitado o SMSC pode enviar uma
mensagem de retorno confirmando a entrega da mesma no destinatário.
Vodafone
+351911616161
Optimus
+35193121314
TMN
+351962100000
Tabela 3.1: Números dos centros de mensagens para os operadores da rede GSM em Portugal.
Microprocessadores III – ano lectivo 2004/2005 – Página 2
Trabalho Prático Nº4
O serviço de mensagens curtas é perfeitamente definido nas normas GSM
900/1800/1900, (para a realização da aplicação é mandatório consultar a norma GSM
Technical Specifications GSM 07.05). Uma única mensagem pode ter até 160 caracteres
de texto, se for codificada em 7 bits ou 140 caracteres se for codificada em 8 bits. Os
140/160 caracteres podem compreender números ou combinações alfanuméricas. As
mensagens curtas também suportam mensagens não baseadas em texto (formato binário).
Existem dois modos para enviar e receber mensagens curtas, o modo de TEXTO e o
modo PDU (Protocol Description Unit). A aplicação deverá permitir a selecção do modo
de envio, Texto ou PDU.
Figura 3.1: Utilitário docklight, para a monitorização da porta série.(http://www.docklight.de)
São mostradas seguidamente exemplo de envio de mensagens curtas em modo PDU e em
modo Texto. A mensagem a enviar é “TESTE AO ENVIO DE SMS”, e o número de
destino é 917811845, como neste caso o envio é efectuado a partir de um cartão
Vodafone o número do centro de mensagens é +351911616161. A configuração do
número do centro obriga sempre à utilização do código de país.
Microprocessadores III – ano lectivo 2004/2005 – Página 3
Trabalho Prático Nº4
AT+CMGF=0 <CR> - define o modo PDU
AT+CMGS=33<CR> - Tamanho da mensagem em formato PDU
079153911116161611000C915391711881540000A715D4E2945A04059FA0A2D39A7C828
845D0B43905<CTRL+Z> - string formatada em modo PDU que inclui o numero
do SMSC, o numero de destino e a mensagem
Figura 3.2: Exemplo de envio de SMS (“TESTE AO ENVIO DE SMS”) em modo PDU, <CTRL+Z>
correspondem ao caractere decimal 26 e 13 respectivamente.
e <CR>
Exemplo de envio de sms em modo texto da mensagem: “TESTE AO ENVIO DE SMS”
AT+CMGF=1 <CR> - define o modo TEXTO
AT+CSCA=”+351911616161” <CR> - configura o numero do centro de
mensagens
AT+CMGS=”917811845”<CR>TESTE AO ENVIO DE SMS<CTRL+Z> - envia a mensagem
Figura 3.3: Exemplo de envio de SMS (“TESTE AO ENVIO DE SMS”) em modo de Texto. <CTRL+Z> e <CR>
correspondem ao caractere decimal 26 e 13 respectivamente.
3.2 Enunciado do Trabalho
Conforme referido acima e utilizando a norma, escreva o programa para o envio de SMS.
A aplicação deve permitir:
− Seleccionar o modo de envio (Texto ou PDU)
− Configurar o número do centro de mensagens
− Numero do destinatário da mensagem
Microprocessadores III – ano lectivo 2004/2005 – Página 4
Trabalho Prático Nº4
3.3 Questão Extra
Complemente a aplicação de 3.2, introduzindo a função de leitura de SMS.
Microprocessadores III – ano lectivo 2004/2005 – Página 5
Trabalho Prático Nº4
Microprocessadores III – ano lectivo 2004/2005 – Página 6
Trabalho Prático Nº4
Download