Dzięki za odpowiedź, wrzucam fragment kod Dodałem syntax.
Np. tak: Action możesz użyć swojego delegata takiego jak w komentarzu.
Wyprzedzajc problem jaki napotkasz uzywajc Event tzn crossthread, to w programie bedziesz musial uzyc delagatow i metody InvoekRequired (czy jakos tak). Taka informacja to dezinformacja. Tłumacząc na polski: klasa SerialPort używa dodatkowych wątków, w których zgłasza zdarzenia. Modyfikację kontrolek GUI można zrobić tylko z wątku, który je utworzył...
Po wysłaniu ramki danych za pierwszym razem tablica zostaje wypełniona prawidłowo . Po wysłaniu danych po raz kolejny tablica zostaje wypełniona dwukrotnie lub zostaje wyczyszczona co skutkuje komunikatem "indeks wykracza poza granice tablicy" . Dlaczego tablica nie jest za każdym razem wypełniana tymi samymi danymi ? [syntax=csharp] private void button1_Click(object...
...Wykorzystaj event który będzie odpalany gdy dostaniesz nową ramkę, ... Oki pokombinowałem trochę dopiero dzisiaj. Nawet jakoś działa. niemniej nie wiem dlaczego pierwsza linia wyświetlana jest prawidłowo a następne są ucinane dla lepszego zobrazowania problemu zrobiłem screena z listboxem (docelowo będzie się to wyświetlało w etykiecie - labelu)....
Dobra, napisałem takie funkcje do wyświetlania komunikatu w razie błędu: [syntax=csharp] private SerialPort comPort = new SerialPort(); public enum SerialError { RXParity }; private RichTextBox _displayWindow2 = null; comPort.ErrorReceived += new SerialErrorReceivedEventHandler(SerialEr... private void DisplayError(string msg)...
ReadLine nie zadziała. Hander może być wywoływany kiedy tylko cokolwiek jest w buforze. Może być to jeden znak, 10, 50 i tego nie wiesz. Zrób tak: [syntax=csharp] private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventA... e) { int BytesToRead = serialPort1.BytesToRead; byte[] buff = new byte[BytesToRead]; serialPort1.Read(buff,...
jezeli czytasz port asynchronicznie (invoke) to zlap Event typu OnReadComplete czy tam OnDataReadComplete, przerob to co przeczytales i wyczusc bufor. Nie znam VB ale po skladni widze , ze to .net. znalazlem takie cos : Imports System.IO.Ports Public Class MyFirstCOMProgram Public Delegate Sub StringSubPointer(ByVal Buffer As String) Dim WithEvents...
Witam Mam taki problem - otrzymuje dane z portu RS232 (z Arduino Nano za pomocą funkcji print). Cyklicznie na port podawane jest: " cisnienie=983.44 | temperatura=22.53 | wilgotnosc=36.81 " Chcę uzyskać w zapisywanym pliku tekstowym tylko coś takiego: cisnienie=983.44 temperatura=22.53 wilgotnosc=36.81 jeśli dane się zmienią z następnym cyklem, stare...
Zrobiłem prościutki program w którym występuje wcześniej opisany problem:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace rs232 { public partial class Form1 : Form { private int odb_bity = 0;...
Nie ogarniam o co chodzi z tymi wyjątkami. Próbowałem dodać do programu ale nic mi nie działa :( Znalazłem tylko w trybie debugowania w terminalu taką wiadomość po próbie połączenia: Zgłoszony wyjątek: „System.IO.IOException” w System.dll To jest kod programu pobranego z internetu. Powinien działać ale nic z tego... [syntax=csharp]//wygenerowane...
Wcale nie taka "głupota"... Nasłuchiwanie przez SerialPort odbywa się w osobnym wątku, a nie jest możliwa bezpośrednia interakcja z komponentami spoza wątku, w którym zostały one utworzone. Spróbuj - choć nie znam składni VB - czy takie coś zadziała (lub coś w tym stylu): [syntax=vb]Private Delegate Sub UpdateFormTextDelegate(ByVal text As String) Private...
No właśnie. Dzięki nie pomogłeś, ale zmobilizowałeś, za punktowałeś ;) Zrobiłem to nie co inaczej, ale efekt osiągnięty. Dla tych co by mieli podobny problem zamieszczam kod Public Class Form1 Private WithEvents serial As New IO.Ports.SerialPort Private Delegate Sub UpdateTextboxDelegate(ByVal Zmienna As String) Private Sub Form1_Load(ByVal...
Cytując za MSDN-em: The DataReceived event is raised on a secondary thread when data is received from the SerialPort object. Because this event is raised on a secondary thread, and not the main thread, attempting to modify some elements in the main thread, such as UI elements, could raise a threading exception. If it is necessary to modify elements...
Witam, naskrobałem taki oto kod z wykorzystaniem operacji atomowych, semafory i wywaliłem z funkcji pomiarów z czujników delaye. Rozbiłem te funkcje na mniejsze, a czas oczekiwania na zakończenie konwersji odliczam timerem i wystawiam do main odpowiednią flagę pozwalającą na pobranie wartości. Funkcje dtostrf wrzuciłem w blok atomowy, dzięku czemu skończył...
Oto cały kod C# [syntax=csharp]using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Data; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging;...
Jako że nie lubię robić niczego po omacku i muszę rozumieć co i dlaczego piszę, usiłuję gruntownie i przejrzyście ten problem zrozumieć i rozwiązać. A więc zacznijmy: Czy uruchamiasz serialport na nowym wątku? Na tyle, na ile ja rozumiem Windows Forms to cały ich "urok" (w przeciwieństwie do batch'owych aplikacji konsolowych) polega na tym, że aplikacje...
Witam, mam problem z danymi przesyłanymi przez usart. Projektuję kontroler obrotów wentylatorów. Co 1s wywoływane jest przerwanie od timera0, w którym wysyłane są dane o temperaturze i wypełnieniu PWM dwóch wentylatorów (dane w HEX, niebieskie cyfry i litery w terminalu na zdj. 2). Chciałbym, aby dane te były wpisywane w odpowiednie pola do tego przeznaczone...
mam teraz tak [syntax=vb] '---------------------------------------... ' Delegate and subroutine to update the Textbox control '---------------------------------------... Public Delegate Sub myDelegate() Public Sub updateTextBox() With RTB_Potwierdzenie .SelectionColor = Color.Blue .AppendText(SerialPort1.ReadLine) .ScrollToCaret()...
Jeseli bede wyswietlal dane z serialport w textbox przez Appendtext to musze tez uzywac delegatow czy mozna napisac program bez nich?
Witam, temat nie do końca związany z samym programowaniem, aczkolwiek pokrewny i pewnie cześć z Was będzie mi w stanie pomóż. Tworzę dokument w LaTeX'ie, potrzebuję w dokumencie umieścić listingi kodu pisane w C#, jednak pojawia się pewien problem a mianowicie pojawia się niechciany napis nad każdym z listingów "0mm0mm" jak na poniższym obrazku http://obrazki.elektroda.pl/8341100400_1...
Wysyłkę rozkazów zorganizowałem przy pomocy klasy Stack dostępnej w przestrzeni System.Collections. I sprawdza się znakomicie. Dzięki temu pozbyłem się skomplikowanej konstrukcji maszyny stanów - teraz tylko wrzucam i zrzucam ze stosu interesujący mnie rozkaz. Przyjrzałem się też trochę mocniej eventom. Gapiłem się tak długo aż udało mi się osiągnąć...
Witam:) tak jak w temacie robię odczyt danych za pomocą portu UART. Sygnały wysyłane są z przedrostkiem np I34,2, F1245, U4. Mój problem polega na odczycie i wyświetleniu odpowiednich danych. Nie wiem jak do tego się zabrać.. Jeżeli chodzi o wysyłanie danych to nie było problemu. Odebraną daną chcę wyświetlić w TextBox`ach. Poniżej przestawiam fragmenty...
visual serialport serialport visual kontrolka serialport
makro grupowanie siemens pralki instrukcje siwamat czujnik biegu wstecznego
łucznik naprężacz sprinter podłączenie webasto
Regulacja wolnych obrotów Peugeot 308 1.6 benzyna 2009 Regulacja gaźnika w pilarce Oleo Mac 937 - dławienie przy dodawaniu gazu