threads?????

>From: "alineri" <[EMAIL PROTECTED]>
>Reply-To: delphi-br@yahoogrupos.com.br
>To: delphi-br@yahoogrupos.com.br
>Subject: [delphi-br] METODO MAQUINA DE ESTADO - DUVIDAS - ALGUEM CONHECE ?
>Date: Fri, 31 Aug 2007 00:26:55 -0000
>
>Boa noite pessoal
>
>Estou desenvolvendo uma aplicacao que utiliza o metodo de MAQUINA DE
>ESTADO que e uma rotina que fica em loop testando uma variável
>que chamamos de Estado. Dependendo do estado atual, executamos alguns
>procedimentos e em seguida alteramos o estado que será verificado
>pela máquina de estados novamente no próximo passo do loop.
>
>Utilizo esse conceito para trabalhar com terminais onde o programa
>fica rodando em loop aguardo informacoes do terminal.
>
>queria saber dos amigos se conhecem esse conceito de programacao que
>nao conhecia ate entao, se ja utilizaram em terminais ou em qualquer
>outra aplicacao.
>
>mas ai vai a minha questao. Essa aplicao a para atender 11 terminais
>de acesso ( catracas ).
>
>quardo as informacoes desses terminais em um vetor e um dos campos
>desse vetor chamo de "estado" que sera a variavel que ira armazenar o
>estado atual de cada terminais, se foi acessado ou nao por exemplo.
>
>um pseudocodigo ficaria assim mais ou mesnos
>
>//Váriável para armazenar o estado atual de cada terminals
>
>Inteiro VetorTerminal[32];
>
>//Variável que diz qual é o terminal que estamos tratando
>Inteiro TerminalAtual = 1
>
>while(TRUE){
>
>//Verifica qual é o estado do terminal atual
>
>Case VetorTerminal[TerminalAtual]
>1:  // Procedimentos Primeiro passo inner
>     //Seta o Terminal atual para o próximo estado
>     VetorTerminal[TerminalAtual] = 2;
>
>2: //Executa o estado 2 para o Terminal atual
>    //Seta o Terminal atual para o próximo estado
>    VetorTerminal[TerminalAtual] = 3;
>
>.
>.
>. // Ate quantos passos achar necessario
>
>//Pula para o próximo Terminal
>TerminalAtual = TerminalAtual + 1;
>If(TerminalAtual > TOTALDETERMINAIS){
>TerminalAtual = 1;
>}
>
>Basicamente se eu nao estiver errado essa e a ideia de maquina de
>estado, e foi o unico metodo que concegui para trabalhar com
>terminais, e ai esta o problema.
>
>Pelo pseudocodigoa cada passo do CASE a variavel que controla  a
>posicao do vetorterminal e incrementada, fazendo um loop assim em
>todos os terminais. Nesses passos que estao dentro desse loop sao
>testados as conexoes com cada terminal, verifica se as informcoes
>foram passadas por esses terminais ( informacoes vindas de cartoes,
>teclado, digitais etc )
>
>O problems que ja observei em pratica foi:
>
>1 - Quando um terminal sai do passo 1, para entrar no passo dois tem
>que esperar o loop percorrer todos os outros terminais, oq as vezes
>gera um pouco de lentidao.
>
>2 - Problemas no momento da validacao de dados, se dois ou mais
>usuarios fizerem uma validacao ( passaram um cartao ) ao mesmo tempo
>as variaveis que utilizo para armazenar por exemplo o codigo do
>cartao que foi passado ou informacoes do teclado perdem as
>referencias.
>
>3 - um meio de tratar dentro desse loop terminais a parte, por
>exemplo, um terminais perdeu a conexao, ter um meio dentro dese loop
>de ficar testando a conexao com esse termianal isoladamente, sem que
>o teste de conexao do mesmo  tenha o mesmo problema que relatei na
>questao 1.
>
>Bem pessoal queria ver se alguem pode me dar uma ideia para melhorar
>esse pseudo codigo, se alguem conehce esse metodo de maquina de
>estado e possa dar uma ideia de como melhorar o desempenho, e ainda
>se alguem trabalha com terminais utilizando esse conceito para
>trocarmos experiencia.
>
>Vou ficando por aqui, o texto ja esta grande.
>
>
>Um forte abraco a todos
>eduardo
>

_________________________________________________________________
Inscreva-se no novo Windows Live Mail beta e seja um dos primeiros a testar 
as novidades-grátis. Saiba mais: 
http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d

Responder a