Integração em arquivos ASC II através do VB.
-
segunda-feira, 15 de junho de 2009 17:24Buenas galera.
Estou aqui com um novo projeto e preciso desenvolver um aplicativo windows form em VB que integra com um painel digital (letreiro) que "interpreta" somente linguágem ASC II.
Pra isso já entrei em contato com o fabricante e o mesmo me passou um exemplo de código que ele utiliza pra uma comunicação através de cabo serial. A minha comunicação é através de cabos Ethernet.
Mas não acredito que essa seja a minha limitação. Confio na possibilidade de conseguir com a ajuda de vcs resolver este problema.
Abaixo vou colocar o código que o fornecedor me mandou cm o exemplo de comunicação e dados atualizados.
Fico no aguardo de um retorno de vocês o quanto antes. Desde já muito obrigado.
Código exemplo:
Option Strict Off
Option Explicit On
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Dim dados_tx As String
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = CInt(Text2.Text)
Winsock1.LocalPort = "2001"
Winsock1.Connect()
Delay_Programado((1))
'UPGRADE_NOTE: State was upgraded to CtlState. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A9E4979A-37FA-4718-9994-97DD76ED70A7"'
If Winsock1.CtlState <> 7 Then
Label4.Text = "Erro : Não Conecta com o Painel..."
Winsock1.Close()
Delay_Programado((3))
Label4.Text = ""
Command1.Enabled = True
Exit Sub
End If
Try
'UPGRADE_NOTE: State was upgraded to CtlState. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A9E4979A-37FA-4718-9994-97DD76ED70A7"'
If Winsock1.CtlState = 7 Then
dados_tx = Chr(2) & Trim(Text4.Text) & Mid(Text3.Text, 6, 1) & Mid(Text3.Text, 5, 1) & Mid(Text3.Text, 4, 1) & Mid(Text3.Text, 3, 1) & Mid(Text3.Text, 2, 1) & Mid(Text3.Text, 1, 1) & Chr(3)
'dados_tx = Chr(1) & Chr(2) & "48" & "49" & "48" & "49" & "79" & "65" & Chr(3) & 14
Winsock1.SendData(dados_tx)
Delay_Programado((1))
Label4.Text = ""
Command1.Enabled = True
Else
Label4.Text = "Erro : Falha de conexão..."
Delay_Programado((3))
Label4.Text = ""
Command1.Enabled = True
Exit Sub
End If
Winsock1.Close()
Catch ex As Exception
End Try
End Sub
Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click
End
End Sub
End Class
mOi
Todas as Respostas
-
quarta-feira, 17 de junho de 2009 18:28ModeradorPrezado,
Desculpe, mas, não consegui entender a sua dúvida...
Você postou o exemplo, disse que a comunicação sua não é utilizando a porta serial (como você disse que o exemplo utiliza), mas sim Ethernet...
Então, você tentou utilizar mesmo código? Teve algum sucesso? Obteve algum erro?
Enfim, qual a situação do seu problema?
André Alves de Lima - http://andrealveslima.spaces.live.com -
quarta-feira, 17 de junho de 2009 18:54
Bem André, este problema já consegui solucionar, porem tenho outro problema...
Na verdade este sistema é para escrever em paineis digitais...
Quero criar um textbox com um botão que irá fazer o seguinte.
Tenho uns códigos padrões do painel que preciso enviar para eles. exemplo:
'dados_tx = Chr(1) & Chr(2) & "0101AB+(TEXTO DO TEXTBOX)" & Chr(188) & Chr(RESULTADO DE UM CALCULO DE ACORDO COM OS CARACTERES DIGITADOS NO TEXTBOX)
Preciso agora de uma função que me faça identificar cada caracter q eu digitar no TEXTBOX e fazer o calculo necessário para cada um deles.
Capitou?
braço e muito obrigado
mOi- Marcado como Resposta AndreAlvesLimaMVP, Moderator sexta-feira, 26 de junho de 2009 19:29
-
quinta-feira, 18 de junho de 2009 17:12Moderador
Olá,
Você pode utilizar um loop como este para percorrer as letras digitadas no TextBox e fazer o tratamento necessário:For Each _caractere As Char In textBox1.Text MessageBox.Show(_caractere.ToString()) Next
André Alves de Lima - http://andrealveslima.spaces.live.com- Marcado como Resposta AndreAlvesLimaMVP, Moderator sexta-feira, 26 de junho de 2009 19:29
-
quarta-feira, 24 de junho de 2009 17:52Moderador
Olá,
Não sei se entendi bem sua pergunta, mas creio que seu objetivo seja obter o código ASCII de cada caracter (ex: A = 65, B = 66, etc...), para então fazer algum cálculo (checksum).
Se for isso, então você pode aproveitar a sugestão do André, e percorrer todos os caracteres que estão na caixa de texto. Depois, utilize a função ASC, para obter o código ASCII de cada um desses caracteres, para então fazer o cálculo...
Algo como:
Dim resultadoDoCalculo As Decimal = 0 'Percorre todos os caracteres que estão no TextBox For Each caracter As Char In textBox1.Text 'Obtém o código ASCII de cada um dos caracteres Dim codigoAscii As Integer codigoAscii = Asc(caracter) 'Aqui você faz o cálculo... 'Por exemplo, vamos somar todos os valores resultadoDoCalculo += codigoAscii Next
Abraços,
Caio Proiete
Caio Proiete
http://www.caioproiete.com- Marcado como Resposta AndreAlvesLimaMVP, Moderator sexta-feira, 26 de junho de 2009 19:29

