FAQ | Points | Add... | Recent posts | Search | Register | Log in


Visual basic kontrolka serialport jak wysłać chara


Post new topic  This topic is locked      Main Page -> Forum Index -> Programming Generally -> Visual basic kontrolka serialport jak wysłać chara
Author
Message
alien1983
Poziom 13
Poziom 13


Joined: 07 Apr 2005
Posts: 126
Location: Poznan

Post#1 Post from the author of the topic 04 Oct 2009 18:24   

Visual basic kontrolka serialport jak wysłać chara


Witam
Mam taki problem... chcę wysłać chara przez kontrolke serial port w visual basic na port com. W delphi przez przez comporta nie było problemu bo posiada ten komponent funkcję:

Przykładowy kod delphi :

Code:
procedure TFormComPort.TD(a: Byte; b: Byte; c: Byte; d: Byte);
begin
ComPort.WriteByte(a);
ComPort.WriteByte(b);
ComPort.WriteByte(c);
ComPort.WriteByte(d);
CRC:=$00;
Do_CRC(b);
Do_CRC(c);
Do_CRC(d);
ComPort.WriteByte(CRC);
  end;

procedure TFormComPort.Button3Click(Sender: TObject);
begin
TD($55, $01, $47, $00);
end;


Natomiast w visual narazie mam to ale nie działa;/ Tzn . cos wysyła ale nie jest to to co trzeba bo plytka nie załącza przekaźników natomiast dioda od transmisji się zapala.

KOD:

Code:
SerialPort1.WriteLine(CChar("55"))
        SerialPort1.WriteLine(CChar("01"))
        SerialPort1.WriteLine(CChar("4F"))
        SerialPort1.WriteLine(CChar("00"))
        SerialPort1.WriteLine(CChar("28")) <- CRC w delphi obliczane funkcją


Na serial port monitor sprawdzałem i działa jesli powyższe znaki wysle jako char , jako string to nie działa, natomiast z tego co się orientuje funkcje od vs basica wysyłają dane jako stringi.

Moję pytanie jak wysłać zapomocą tej kontroli chara?

Koniecznie chciałbym zrobić to na serialport ponieważ ta kontrolka działa na kodzie dla pda (posiadam acer n311 z host usb + zainstalowane stery do płytki realy board - 8 przekaźników)

Z góry dziękuje za odp.

Kod proszę umieszczać w znacznikach code - krzychoocpp
Back to top
   
one_eddie
Poziom 20
Poziom 20


Joined: 22 Jul 2004
Posts: 990
Location: Polska

Post#2 04 Oct 2009 23:11   

Re: Visual basic kontrolka serialport jak wysłać chara


Oto brakujaca metoda

Code:
private void WriteByte(SerialPort sp, byte bt)
{
  byte[] ar = new byte[] { bt };
  sp.Write(ar, 0, 1);
}

Back to top
   
Google

Google Adsense


Post# 04 Oct 2009 23:11   





Back to top
   
alien1983
Poziom 13
Poziom 13


Joined: 07 Apr 2005
Posts: 126
Location: Poznan

Post#3 Post from the author of the topic 04 Oct 2009 23:36   

Re: Visual basic kontrolka serialport jak wysłać chara


Witam
Dzieki właśnie przed chwilą doszedlem jak się inaczej da wystraczyło tak nbapisac:
Serialport1.Wrte(chr(&H55));

I zadziałało niestety tylko na kompie, na pda nie działa tzn. płytka nie działa, wygląda na to że stery się zle zainstalowały bez programów do grzebania w portach i rejestrze oraz sterach ciezko bedzie cos z tym zrobic aby zadziałało.:/
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 04 Oct 2009 23:36   





Back to top
   
alien1983
Poziom 13
Poziom 13


Joined: 07 Apr 2005
Posts: 126
Location: Poznan

Post#4 Post from the author of the topic 07 Oct 2009 18:01   

Re: Visual basic kontrolka serialport jak wysłać chara


Program mi wywala błędy w tym kodzie:

Code:

private void WriteByte(SerialPort sp, byte bt)
{
  byte[] ar = new byte[] { bt };
  sp.Write(ar, 0, 1);
}


średniki, złe deklaracje itp.
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 07 Oct 2009 18:01   





Back to top
   
one_eddie
Poziom 20
Poziom 20


Joined: 22 Jul 2004
Posts: 990
Location: Polska

Post#5 07 Oct 2009 18:33   

Re: Visual basic kontrolka serialport jak wysłać chara


Podaj dokładne komunikaty błędów oraz wersje frameworka, która używasz.
Back to top
   
alien1983
Poziom 13
Poziom 13


Joined: 07 Apr 2005
Posts: 126
Location: Poznan

Post#6 Post from the author of the topic 07 Oct 2009 19:47   

Re: Visual basic kontrolka serialport jak wysłać chara


{} - Jako błąd (Syntax error)

byte[] - (Byte is a tape and cannot be used as an expression)

WriteByte(SerialPort sp, byte bt) - (end of statment expected)

sp.Write & ar - (not declared)

; - (charakter is not valid)

Używam Visual Studio 2008

framework 3.5

Dodano po 2 [minuty]:

A to mój kod:

Code:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button2.BackColor = Color.Yellow
        Button1.BackColor = Color.Blue
        Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Button1.BackColor = Color.Yellow
        Button2.BackColor = Color.Blue

        ' On Error Resume Next 'gdyby ktos nacisnal dwa razy itp.
        'SerialPort1. InputLen = 0 'wyzeruj input
        'SerialPort1.Open()
        'SerialPort1.Write("$55")
        'SerialPort1.Write("$01")
        'SerialPort1.Write("$4f")
        'SerialPort1.Write("$00")
        'SerialPort1.Write("$28")
        'SerialPort1.Close()


    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        SerialPort1.Open()
        SerialPort1.Write(Chr(&H55))
        SerialPort1.Write(Chr(&H1))
        SerialPort1.Write(Chr(&H4F))
        SerialPort1.Write(Chr(&H0))
        SerialPort1.Write(Chr(&H28))
        SerialPort1.Close()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        SerialPort1.Open()
        SerialPort1.Write(Chr(&H55))
        SerialPort1.Write(Chr(&H1))
        SerialPort1.Write(Chr(&H53))
        SerialPort1.Write(Chr(&H0))
        SerialPort1.Write(Chr(&H89))
        SerialPort1.Close()
    End Sub


    Private Sub PictureBox1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub
End Class

Back to top
   
one_eddie
Poziom 20
Poziom 20


Joined: 22 Jul 2004
Posts: 990
Location: Polska

Post#7 07 Oct 2009 20:56   

Re: Visual basic kontrolka serialport jak wysłać chara


Widzisz mój błąd zapomniałem dodać że przykład, który podałem jest napisany w C# :P

Dodano po 10 [minuty]:

Kod można jednak łatwo przetłumaczyć. Jeśli dobrze pamiętam będzie to wygladać jakoś tak:

Code:
Private Sub WriteByte(sp As SerialPort, bt as byte)
  Dim ar(1) As byte
  ar(0) = bt
  sp.Write(ar, 0, 1)
End Sub

Back to top
   
Google

Google Adsense


Post# 07 Oct 2009 20:56   





Back to top
   
alien1983
Poziom 13
Poziom 13


Joined: 07 Apr 2005
Posts: 126
Location: Poznan

Post#8 Post from the author of the topic 07 Oct 2009 21:57   

Re: Visual basic kontrolka serialport jak wysłać chara


Dzięki teraz wszystko gra:)))) Niedługo bedę potrzebował przerobic obsługe kodu CRC8 tzn. mam w delphi ale chcialbym przerobić na visual basic. Bo ta płytka w ten sposób sprawdza sobie kontrole transmisji. Bez tego bym musiał z czytac kody CRC8 wszystkich możliwch kombinacji ustawien przekaźników w monitorze portów. Jak wszystko zadziala to umiesze filmik:D

Dodano po 37 [minuty]:

Witam
Jeśli to nie sprawi problemu prosiłbym o przerobienie tego kodu do CRC8 z delphi na visual basic...

Code:

//==========================================================================
//CRC BEGIN
//==========================================================================
Procedure Do_CRC(X: Byte);
Const   Table : Array[0..255] of Byte = (   0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,   157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
   35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,   190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,   70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
   219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,   101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,   248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
   140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,   17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,   175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
   50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,   202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,   87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
   233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,   116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53);
  begin
  CRC := Table[CRC xor X];
  end;
//==========================================================================
//CRC END
//==========================================================================
procedure TFormComPort.TD(a: Byte; b: Byte; c: Byte; d: Byte);
begin
ComPort.WriteByte(a);
ComPort.WriteByte(b);
ComPort.WriteByte(c);
ComPort.WriteByte(d);
CRC:=$00;
Do_CRC(b);
Do_CRC(c);
Do_CRC(d);
ComPort.WriteByte(CRC);
  end;


procedure TFormComPort.Button1Click(Sender: TObject);
begin
TD($55, $01, $46, $00);
end;

Back to top
   
alien1983
Poziom 13
Poziom 13


Joined: 07 Apr 2005
Posts: 126
Location: Poznan

Post#9 Post from the author of the topic 12 Oct 2009 15:47   

Re: Visual basic kontrolka serialport jak wysłać chara


Oki już sobie poradziłem ;)
Back to top
   
Post new topic  This topic is locked      Main Page -> Forum Index -> Programming Generally -> Visual basic kontrolka serialport jak wysłać chara
Page 1 of 1
Similar topics
Obsługa SerialPort w Visual studio (8)
visual c++ 2008 serialPort(DataRecived) (5)
[VISUAL BASIC]Visual Basic 2008 DataGridView (4)
Kontrolka button w Visual Basic-u 2010 (3)
[Visual Basic] Kontrolka MSFlexGrid (4)
[VISUAL C#] kontrolka serialport-bytestoread i odbiór danych (8)
[Visual Basic] Kontrloka SerialPort i budowa terminala RS232 (8)
[Visual C++] Obsługa kontrolki SerialPort. (1)
Checksum w Visual Basic - jak to zrobić? (5)
[Visual Basic] Jak umieścić na formularzu tabelkę. (2)

Page generation time: 4.117 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed