odbieraj znak po znaku z UARTu i umieszczaj go np. w tablicy
1.Wstaw IdGlobal do Uses to będziesz mógł korzystać z formy jaką Ci napisałem; 2.Zrób odczyt w oddzielnym wątku (TThread) to program nie będzie się wieszał; 3.Ustaw ConnectTimeout i ReadTimeout dla TCPClient1 (w milisekundach); 4.Program oczekuje na string'a zakończonego CRLF. Jak ustawisz timeout'y (pkt.3) to będzie czekał tylko zadany czas. Pozdrawiam...
rzeczywiście nie rozumiesz. Chodzi o to żebys wiedział, czy masz coś w buforze. np - malutka modyfikacja [syntax=c]int uart_getc(void) { // sprawdzamy czy indeksy są równe if ( UART_RxHead == UART_RxTail ) return -1; // obliczamy i zapamiętujemy nowy indeks „ogona węża” (może się zrównać z głową) UART_RxTail = (UART_RxTail + 1) & UART_RX_BUF_MASK;...
A może odbieraj większy string i sprawdzaj pierwszy znak.
Po stronie kompa i VBA tak: Do DoEvents Loop Until MSComm5.Input <> CR TextBox1.Value = MSComm5.Input I do pola tekstowego wpisuje mi tylko pierwszą cyfrę 9 zamiast 999 :/ Gdybyś wysłał ciąg 123 to otrzymał byś w polu tekstowym nie pierwszą, a ostatnią liczbę, gdyż tylko ona jest tam wpisywana. Dlaczego? Bo nie dopisujesz do TextBoxa odebranych...
Zamiast klocka do konwersji na double daj 'string indicator' i pokaż jaki dokładnie string odbiera labview. Poza tym, powinieneś mieć coś jak "COMileśtam" w okienku do wyboru źródła VISA.
Tak na szybko przerobiłem odbieranie stringa (na razie bez przerwań i pewnie nie do końca poprawnie ) działa to w ten sposób że w pętli while odbieram cały string a potem go wyświetlam, i jak na razie działa ok. Także pewnie tutaj leżał problem dzięki wielkie za pomoc. [syntax=c]void receive_text (void) { char ch; uint8_t i=0; while(1){ ch = USARTReadChar();...
Mówiąc w prost - wysyłasz z PC 3 x string , a odbierasz tylko 1 x string. Piotrek
Witam! Mam za zadanie napisac aplikacje umozliwiajacą komunikacje miedzy dwoma komputerami po rs232 w XP SP2. Przeczytalem ksiazke "praktyczne programowanie rs232" jednak kod tam opisany jest zbudowany "od podstaw" ja bym chcial ułatwić sobie sprawe i użyć bibliotek WinIO - szukam jakiś informacji o ich obsludze,przykladowe kody, dodam iż program ma...
No i z $framesize trafiles w sedno... Dopoki nie mialem tej linii to max odbierany string mógl wynosic 18 znaków a pózniej znany komunikat koniec ramu. Na poczatek ustawilem size32 i odebralem 15 znaków na lcd( realnie 17 bo jeszcze spacje tez sie liczy wiec string *¹⁷) Pozniej zrobilem Sframe =2 dalej wszystko odbiera ciag max już do 37...
pewnie piszesz w bascom ,wiec masz kod odbierania danych (całych stringów ) w przerwaniu :) : Config Serialin = Buffered , Size = 20 do If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor Call Read_rs232 End If loop Sub Read_rs232 Dim Bufor As String * 24 Input Bufor Noecho end sub
Witam, Napisałem program w BASCOM AVR, z komputera otrzymuje dane np: "14" te dane są i muszą być odbierane do zmiennej typu string. Mam problem z: chciałem tą zmienną ze zmiennej typu string przypisać do zmiennej typu BYTE. Nie wiem jak by to zrobić. Probowalem już kilu sposobów ale zawsze otrzymywałem jakieś bzdury w zmiennej typu byte. Czy istnieje...
Miałem chwilę więc chciałem napisać szybko program na Aduino Mega2560, ale potem sobie przypomniałem, że tam mikroskopijny kwarc a błąd przy 16MHz dla 115200 jest za duży. Wziąłem więc Mega128 bo była wolna i pod ręką. Napisałem program w którym przez Charmatch odbieram string "1234567890" po odebraniu Entera. Żeby było uczciwie to jeszcze odpaliłem...
Serio? https://allegro.pl/listing?string=karta%...
Gps musi wysyłać dane w formacie NMEA 0183. Podpięcie innego GPS może wymagać wprowadzenia zmian do programu dotyczących miejsca usytuowania interesujących danych w odbieranym stringu.
Zasadniczo nie jest to możliwe, tzn. funkcja wysyłająca wygląda dobrze, problem jest gdzieś indziej. Masz dokładnie taki program, jak pokazałeś? Jak odbierasz i wyświetlasz?
Kawałek kodu masz mocno namieszany, nie masz funkcji odczytującej daną z uartu - pokaż większy fragment kodu. ogólnie: [syntax=c] #define BUF_SIZE 100 char c; chat buffer[BUF_SIZE];//koniecznie deklaracja rozmiaru ... while(1){ if((c=uart_getc())){ buffer[i++]=c; if(i==BUF_SIZE-1){//zabezpieczenie przed przepełnieniem bufora buffer[i]='\0'; i--; //sygnalizacja...
Znaki terminujące - czyli "\r\n", ewentualnie NULL, zazwyczaj kończą zmienne typu string. Nie sądzę, żeby były wysyłane po każdym znaku. Nie programowałem w C#, ale wydaje mi się, że kompilator dodaje Ci te znaki automatycznie. Spróbuj odbierane znaki zapisać do zmiennej innego typu, np "byte" lub "char". Jak wygląda Twoja procedura odbierająca znaki...
Ano widzisz, w końcu po doprowadzeniu do odpowiednio małego kroku można zacząć wyciągać wnioski i podjąć działania ratujące ;) Teraz sprawdź czy terminal w windows odbiera ten twój wysyłany string ;) jeśli odbiera to znaczy, że program w procku przynajmniej ten wysyłający jest OK, zatem problem masz gdzieś w połączeniach fizycznych z telefonem. No a...
W Bascom'ie masz instrukcję VAL. Najpierw deklarujesz zmienne B [byte/word] i S [string*x; x=liczba znaków] a następnie konwertujesz B=val(S) i dalej używasz zmiennej B. W odbieranym stringu muszą być tylko znaki z zakresu 0..9 bez literek ;-) inaczej "krzaki".
Weis, tak tutaj głównie błąd leżał. dzięki. _Robak_, czy tym przerwaniem odbierasz stringa: ISR(USART_RXC_vect) { UARTBuffer[UARTCount] = UDR; UARTCount++; rx_counter++; if ( UARTCount == BUFF_SIZE ) { UARTCount = 0; } }
jeżeli już uzyjesz procka a dwoma uart'ami to budujesz procedure która odbiera od twojego urządzenia string'i jeżeli wykryjesz odbior pierwszego string'u (czyli nagłówka) np if odebrany="wzór nagłówka jeden" then ustaw flagę że nastepny string to będą pierwsze dane wtedy : if flaga1=1 then pierwsze_dane=odebrana:reset flaga1 z drugim nagłówkiem i drugimi...
Przeczytałem Twojego posta i prawie go zrozumiałem (tak mi się przynajmniej wydaje). Mam tylko jedno pytanie: Czy transmisja pomiędzy A i B ma być szyfrowana? Czy chodzi Ci tylko o zabezpieczenie ze względu na błędy transmisji? Moim skormnym zdaniem powinieneś na końcu każdego przesyłanego z A do B stringu wysyłać sumę kontrolną CRC (jedno lub jak chcesz...
Odbieraj jeden duzy string, a potem funkcja SPLIT wyciągaj poszczegolne wartości. Albo na bieząco odczytuj znaki, az do przecinka, i wtedy sprawdzaj wartosc. To lepszy sposob, bo wymaga mniej ramu na bufor.
W stringu który odbierasz szukasz czegoś takiego String odpowiedz = "OK\r\n"; Czyli OK+CR+LF Dlaczego dziwisz się ze jak usuniesz w terminalu wysyłanie tych znaków to porównanie nie działa? dopisz sobie gdzieś zeby po kazdej próbie przeszukania tego stringu na port został wysłane dwie zmienne: ta której szukasz i ta W której szukasz, Wtedy będziesz...
No tak, bo st_wsio nadal jest null... Więc albo to poprawnie zainicjalizuj, albo zmień odwołanie na coś w stylu this.T_Konsola.Text = st_wsio != null ? st_wsio.Replace("\n\r", "\r\n") : String.Empty;
Kiedyś coś takiego napisałem, to były początki z Qt. Bazuje to na QThread (Wątek) oraz QQueue (FIFO). Dane odbierasz i wysyłasz asynchronicznie z dowolnego miejsca aplikacji i nie zależnie od wątku. Akurat ta klasa jest przystosowana do odbierania danych w formacie ASCII. Czyli do FIFO zapisuje się cały string bez specjalnego znaku rozdzielającego stringa...
Widząc Twoje doświadczenie to z jeden dzień przy dobrych wiatrach Ci pójdzie na wgranie gołego RTOSa a drugi dzień na napisanie tego terminalu o którym mówisz :) Gotowca raczej nie dostaniesz, ale z drugiej strony napisanie terminalu np po UARcie to nic innego jak wysłanie tego znaku zachęty po uart i oczekiwanie na komendy co jest raczej proste. W...
Tak zmienne Timer1 i Timer2 są dekrementowane w przerwaniu [syntax=c]ISR(TIMER2_COMP_vect) { x11 = Timer1; /* 100Hz Timer1 */ if (x11) Timer1 = --x11; x22 = Timer2; /* 100Hz Timer2 */ if (x22) Timer2 = --x22; } [/syntax] Zauważyłem, ze pierwsza część kodu ta z Timerem1 działa poprawnie jeżeli przycisk "START" zostanie wciśnięty i jest trzymany. Jeżeli...
czy w bascomie8051 jest mozliwosc odebrania danych tak aby zapisac je do tablicy w postaci bitowej? nie musi byc to zapisanie do tablicy, moze to byc string, ale zeby dane bylo w postaci ciagu 0 i 1
Serdecznie dziękuję za odpowiedź rb401. Zmodyfikowałem kod: https://obrazki.elektroda.pl/7556589300_... warningi znikają po usunięciu volatile sprzed deklaracji zmiennej buf1, ale nic się nie pojawia w terminalu Dodano po 36 To trochę dziwne, bo wychodzi na to, że kompilator krzyczy, że zmienna uint8_t buf1 jest niezgodna z tą którą...
Ale dziwne że jeśli pominę przerwania i config serialin to działa bezbłędnie (w sumie 99/100 bo jadę na zewnętrznym kwarcu 16Mhz i jakieś błędy są możliwe) ale nie tak jak chciałem bo musiałem wpiąć to w pętlę główną: To lata w pętli głównej: 'RS232 UART4 - ODCZYT DANYCH ZE STEROWNIKA KOMINKA Rs4_flaga = Ischarwaiting(#6) : If Rs4_flaga...
Jeszcze tu masz buga a nawet kilka: [syntax=c]//char Str; // nie nadużywaj zmiennych globalnych - to zło //int Count = 1; ... // gdzieś w konstruktorzę bądź w inspektorze dla ComPort'a ustaw StopString='\n'; void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count) { AnsiString Str; // Read Str (jak string a przekazywałeś char, ostrzeżeń nie...
Nadawana Komenda to liczba, a po odebraniu porównujesz to do tekstu. ("1") Bo odbieram to stringiem. Źle?
Trzeba pamiętać, że String i char * to dwie zupełnie różne sprawy. Char * nie ma konkatenacji, każdą pamięć trzeba dostarczyć "ręcznie", tj trzeba najpierw mieć pamięć na nowy napis, dopiero potem go wygenerować. Char * + String to trzeba by sprawdzić co daje. Wszelkie operacja na String mogą tworzyć nowe obiekty tergo typu - co wymaga allokacji pamięci....
Dodano po 1 Wykorzystałem tu kontrolkę "backgroundworker" która jest uruchamiana w kontrolce backgroundworker Połączenie - "Odbieranie.RunWorkerAsync();" Ja to tak widzę, ale pewnie źle skoro nie działa...
Koledzy wracając do tematu jest ktoś w stanie podpowiedzieć czemu może się tak dziać że String "dane" jest pusty jak tylko użyję funkcji " do... while" ? Może dlatego, że przy ostatniej iteracji do while {} wykona się data = data.substring(0, 0)? Warto sobie wyświetlać (dla celów testowych) odpowiednie wartości zmiennych w Serial Monitor. Tak ale przy...
Dziękuję serdecznie za wszelkie uwagi - nawet te ciut zbyt kąśliwe. Nigdy nie twierdziłem że jestem asem programowania, człowiek wiecznie się uczy i zawsze ktoś będzie w czymś lepszy. Mimo tego - bardzo dziękuję za informacje. Trochę to inaczej rozwiązałem, kilku-etapowo, ale działa dość fajnie (mniejsza o pamięć i prędkość, nodeMCU ma tego pod dostatkiem):...
No tak, komputer odbiera je jako "suche" bajty, ale Labview, niejako z miejsca interpretuję je jako dane string. Na wyjściu bloczku "VISA Read" Mylisz stringi. To, czego spodziewa się klocek to string w postaci "3.1415". A string który dostajesz z atmegi to cztery bajty o jakiś tam wartościach które zostają zamienione na string w ten sposób, że każdy...
Polecam tobie i innym, ja to sobie tak ułożyłem do AVR. procesor zwróci ci to co wysłałeś do niego z VB6. koma w VB6 nie musisz zamykać po każdej transmisji, masz go otworzyć jak uruchomisz program, jak go zamykasz ( program) to powinien się sam zamknąć.Zmienna "Dane_rs_string" zawiera to co wysłałeś. długość słowa jakie przyjmie to 32 znaki, zależy...
Mam pewien problem z odczytem danych w delphi nadawanych przez RS232. Do nadawania danych wykorzystałem mikrokontroler który nadaje mi siedmio-znakowy string z częstotliwością co 500ms. Do odczytu w delphi wykorzystałem funkcje WIN API od obsługi Rs232, sam odczyt realizowany jest na timerze ustawionym również na 500ms problem polega na tym, że np wartość...
Rozumiem, czyli zmienna String to jakby ciąg zmiennych bajtowych stanowiący całość i w programie instrukcja: IF zmienna_string_1znak(to jakby jedna zmienna bajtowa, tylko inaczej interpretowana, bo nie mogę do stringa w programie wpisać prosto wart. liczbowej, a jedynie literę, która reprezentuje ową wartość liczbową) = "a" then... jest równoważna...
Witam, Mam pytanie odnośnie kodu opublikowanego w internecie: [syntax=c] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.IO; using komunikaty; namespace Serwer { public partial...
A nacisnąć F1 i zerknąć do pomocy to nie łaska? procedure Delete(var S: String; Index: Integer; Count: Integer); Description Removes a substring from a string. In Delphi code, Delete removes a substring of Count characters from string S starting with S
Program miałby odbierać dane (w postaci string) na określonym porcie, to tyle. Na razie chciałbym przetestować transmisje gprs za pomocą modułów GSM. (at)Dr.Vee - dzięki, chodzi mi o coś takiego jak netcat, gdyby jeszze było na windowsa i miało jakiś interfejs graficzny to by było fajnie, chociaż z drugiej strony ten netcat z tego co wyczytałem daje...
Witam! Buduję urządzenie komunikujące się z PC poprzez port RS232. Zależy mi na jak najszybszej transmisji. Aplikacja PC wysyła rozkaz TX do urządzenia, urządzenie odsyła zmierzone wartości w postaci ciągu: dana1:dana2:dana3:dana4:dana5:dana6:dana... za pomocą Bascomowej instrukcji Print. Maksymalna szybkość jaką udaje mi się osiągnąć przy Atega16...
Zmienna Dysk_c_1 jest jako String * 9. Myślę, że zmienne są zdeklarowane dobrze.
Witam! Mam problem z odbieraniem stringów przez USART. Chcę, aby po wpisaniu do terminala na komputerze "abc", mikrokontroler odesłał "OK". Kod programu: [syntax=c]//#define F_CPU 14745600 #include <avr/io.h> #include <util/delay.h> #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) unsigned char...
Witam. Odbieram przez Bluetooth Stringa "0x160,4,0x01,0x40,0x49,0x3e" Rozdzielam sobie wszystko między przecinkami za pomocą strtok. Teraz musze pierwszą pozycję "0x160" zmienić na INT32U, nie wiem czy mogę zrobić to poprzez toInt(). Druga pozycja "4" na INT, tu nie mam problemu. Pozostałe dane musze zmienić na Byte, ale nie wiem jak. Podpowie ktoś...
nie mam pojęcia o co chodzi... z całego stringa odbiera tylko kilka pierwszych znaków... próbowałem zmienić z 1 bitu stopu na dwa... efekt praktycznie ten sam... używałem nawet innych bibliotek i nic...
Właśnie co do C# to tak robię. Odbieram jeden ciąg znaków - string, i dzielę go sobie na kilka mniejszych tokenów przy pomocy metody Split(). Rozdzielam sobie tak potrzebne mi dane i przypisuję do innych zmiennych. Na atmedze dodaję sobie jedynie spację w ostatni elemencie tablicy ze znakami ASCII po konwersji przez funkcję dtostrf tak aby potem w C#...
Dziękuję za odzew, a ja teraz tak sobie myślę jakby jeden uC wysyłał adres i kod (co jest normalne) a drugi odczytywał adres i kod na zasadzie: nadajnik (13,25) gdzie to kolejno adres i komenda odbiornik (13,25) analogicznie i ja to zamieniam na string i obrabiam a ta liczba to 1325 i tak samo 00,01 odbieram zamieniam na stringa, obcinam, 0001, po prostu...
Hej, Pojawił mi się taki problem przy konwersji zmiennych. Po Rs-ie odbieram stringa składającego się z 4 znaków (wszystkie to cyfry) i wrzucam to na TextBoxa, ale również chciałbym to przerzucić do komórki Excela. Fragment kodu: Private Sub MSComm5_OnComm() Dim Wartosc_S As String Wartosc_S = Trim(MSComm5.Input) TextBox1 = Wartosc_S TextBox2 = Val(Wartosc_S)...
Witam, potrzebuję przesłać z ATMEgi do ESP ok 20 zmiennych float ewentualnie Integer(temperatury ze znakiem itp.) W jaki sposób to zrealizować? Najprostszym sposobem wydawało mi się przesyłać je jako tekst np. +12,85 +22,5 +1,7 -12,5 .... 22,0 [CR] [FL] odbierać to jako string, konwertować do float i przesuwać po kolei: [syntax=c] float li1, li2; int...
Kolejna linijka kolejne UB- Received to jeden bajt, Ty piszesz tam 5 nadpisując inne dane. Wiem, ze Received to jeden bajt. Chodziło mi o to ze wywoła się dopiero po otrzymaniu 5 znaków. CallBack nie do tego służy. To do czego? Masz UB jako że twoja dana ma jeden bajt a printf z parametrem %s oczekuje C stringu (czyli ciągu znaków zakończonego zerem)....
Witajcie Mam pracujący moduł ESP S3 który zbiera dane z 40 termostatów Wi-Fi które rozgłaszają swoje odczyty co sekundę broadcastem UDP. Moduł odbierają pakiety, parsuje i statystyki przekazuje do BMS (rs485) I do serwera WWW (http API) Działa to dobrze, ale czas parsowania pakietu UDP jest duży - nawet 500us, więc dołożenie kolejnych termostatów zwiększy...
Witam. Od pewnego czasu uczę się pisać w VB.. Teraz, by wykorzystać potęgę wbudowanego w Atmegi UARTu, chcę sam stworzyć prosty terminal do odbioru i nadawania stringów. Zasada działania ma być bardzo prosta - wszystko co wyśle uC ma być wpisane do pola tekstowego, i analogicznie w drugą stronę (chodź tu zależy jaki program jest napisany na uC, ale...
a jako globalną na początku. [syntax=csharp]public partial class MainFrm : Form { Collection<TextBox> m_TextBoxes; Collection<string> m_Buffer = new Collection<string>(); string RxString; string[] tab_str; bool m_DataSplitted=false ; public MainFrm() [/syntax]
Dziękuję za odpowiedź. A czy zakup któregoś z tych modułów (link poniżej) CI umożliwi mi odbiór czy nie piszą, że tak, ale czy to jest prawda ? http://allegro.pl/listing.php/search?cat...
A jakieś procedurki open source pisane przez ludzi w asm? w takim razie na '51 dokładnie '52 ma 8kB pamięci jeżeli w c dołącze biblioteki -printf -string -math -oraz wysyłanie i odbieranie znaków z rs to ile zajmną te rzeczy w języku c w procesorze pamięci?
Ale co konkretnie cię interesuje albo z czym konkretnie masz problem... Zasada jest bardzo prosta, połączenie przez port com wymaga jego konfiguracji, i albo robisz to ręcznie na sztywno, albo tworzysz klasę w której go konfigurujesz, tak czy inaczej musisz podać pewne parametry początkowe portu. Potem czekasz na wystąpienie zdarzenia OnReceive (a dokładniej...
Witam odbieram przez uart taki string [syntax=c] AT+CIPNTP? Time: 22:22:42 12/02/2014 GMT+02 [/syntax] Próbuje w ten sposób wydobyć z niego godzinę i datę [syntax=c] void odebrane_dane(char * str) { char * wsk1; wsk1 = strtok( bufor, ":" ); //parsowanie po znaku ":" if( !strcmp(bufor, "AT+CIPNTP? Time")) { wsk1 = strtok(NULL, ""); uart_puts(wsk1); uart_putc('\r');...
Bardziej miałem na myśli, że ekran miał problemy z wyświetleniem tego, poza tym chciałem odbierać tez wartości, zamiast samych stringów, więc jakaś konwersję musiałem zastosować.
No to się nie obędzie bez tego najprawdopodobniej. Tylko nadal nie rozumiem i nikt nie postarał się nawet w tej kwestii pomóc, że kiedy wysyłam komendy dla diod LED, to wszystko jest odbierane prawidłowo i komunikaty są rozróżniane bez żadnych problemów. A chrzani się w przypadku, gdy wysyłam wartość liczbową zamienianą oczywiście na string (dla serwa...
Jeśli wysyłasz: printf("\r%i ",wyslanie); to jak myślisz co oznacza "\r" bo prawdopodobnie nową linie. Spróbuj tak: printf("%i ",wyslanie); Po drugie weź na Terminal v1.9b sprawdź czy cały czas odbierasz prawidłowe dane. Jeśli w trybie string każda dana przychodząca wyświetlana jest w nowej linii to wysyłasz dodatkowo znaki specjalne. Po trzecie: string...
port_szeregowy.Write(tablica_bajtów, 0, 1); Write jest jednoargumentowe 'Public Sub Write(Text As String)' A poza tym program w Tiny odbiera po jednym bajcie w pewnych odstępach czasowych i tak muszą być wysyłane w VB. Muszę się dokształcić żeby odbierać ciąg znaków. Tylko nie wiem czy wystarczy na to pamięci. Co innego w Atmedze, która ma wbudowany...
Witam. Zwracam się o pomoc w sprawie konwersji typów System::String^ najlepiej na int. Pracuje na VS2005, pisze program do odbierania danych po RS, które następnie wykreślam na wykresie. Korzystam z wbudowanego komponentu serialPort. Interesuje mnie komenda ReadExisting(), która zwraca wartość jako system::string^ i to mi nie pasuje. Próbowałem to zamienić...
Stworzyć tablice int o długości napisu, i przekopiować wartości, ze stringa do tablicy?
Wykorzystałem pętlę główną z twojego programu , trochę zmieniłem , wykrywam początek danych a potem składam stringa , działa tak jak chciałem . Dzięki !
Po pierwsze proponowalbym zmienic troche ta funkcje: void wyslij_znak(unsigned char znak) // bylo: unsigned int { if (znak == '\n') znak = '\r'; // bylo: wyslij_znak('\r'); while (!(UCSRA & (1<<UDRE))); UDR = znak; } A tak w ogole to masz moj fragment kodu: :D typedef unsigned...
Z przerwaniem masz racje, że najlepiej, aby przerwanie trwało jak najkrócej. Mam jeszcze pytanie bop na koniec transmisji wysyłam ciąg danych z PC jak narazie 3 znaki. Funkcja Waitkey z tego co czytałem zwraca przychodzący znak czy może ona zwrócić ciąg znaków jeżeli przypiszę ją do Bufora typu string*5? Probowałem odbierać osobnymi waitkey te 3 bajty...
Nie wiem , co Twój program ma do roboty w pętli głównej , ale gdyby sprawdzanie czy nadszedł znak , było wykonywane rzadziej niż prędkość , z jaką dane mogą napływać do uC , to częśc napływających danych , niechybnie diabli wezmą ;) Radzę skorzystać z buforowania - zważywszy że RAM-u Ci chyba nie brakuje :D Piotrek PS A jakie dane spodziewasz się odbierać...
Może coś takiego [url=http://allegro.pl/listing.php/searc...
Witam w jaki sposób otworzyć port /dev/ttysX w linux za pomoca jezyka C oraz wysyłać i odbierać z niego dane w postaci stringów :?:
Prawdopodobnie problem w za krótkiej długości zmiennej do której odbierasz znaki. Bo ona ma 29 znaków czyli tyle ile przesyłane Stringi. A powinna być dłuższa. Choćby po to żeby zmieścić ewentualny nieproszony bajt podczas błędu w transmisji. I trochę nie zrozumiałeś idei odbierania w przerwaniu. To miało polegać na odbieraniu w przerwaniu po jednym...
Witam po czasie. Odbieram dane z uarta. Zapisuje je do zmiennej typu String. Następnie dziele je na kawałki(czyli wyłuskuje poszczególne dane). Stosuje do tego polecenie indexOf . A teraz potrzebuje dane porównać lub przeprowadzić działania matematyczne ze zmiennymi typy float lecz nie wiem jak zamienić stringi na float. Próbowałem komendy toFloat();...
Generalnie odbierać dane do bufora kołowego lub prostego i szukać początku ramki. Skoro dwa pierwsze bajty opisują ramkę, odbierasz je i sprawdzasz, czy są prawidłowe. Jeśli nie, odrzucasz bajt i wracasz na początek. W jakiejś zmiennej zapisujesz sobie ile danych trzeba odebrać dla danej ramki i tyle odbierasz. Tu można zrobić jakiś limit czasowy. Po...
Hej, dopiero raczkuje i potrzebuje pomocy w nakierowaniu jak osiągnąć coś na zasadzie: 1. Przez UARTa do Arduino wysyłam Stringa przykładowo: M+F nazwa.cfg M+C test.cfg 2. uC odbiera tylko i wyłącznie dane z początkiem M+F I zapisuje jest do Stringa odczyt, ale tylko ciag nazwa (bez początkowych M+F oraz końcówki .cfg Będzie to jedyny string w pamięci...
ok udało się, w przerwaniach ustawiam flagi, odbieram i wysyłam w pętli głównej, ale pojawił się teraz 'mały' problem. to co jest wysyłane do komputera, wcześniej było odbierane przez LabView jako jeden duży string, dzięki czemu miałem dostęp do każdego elementu z osobna, w tym momencie każdy bajt jest wysyłany jeden po drugim ale odddzielnie, także...
Witam, drogich forumowiczów. Mam problem z komunikacją kilku urządzeń w sieci rs485. A tak prawdę mówiąc to z komunikacją pomiedzy dwoma, jednym "master" i jednym "slave". Normalnie staram się zadawać pytania w ostateczności na forum Elektroda, ale po prawie 3 tygodniach siedzenia przy problemie, przeglądaniu masy poradników i postów związanych z rs485...
Witam jestem początkujący, jeśli zły dział proszę o przeniesienie. Chcę podłączyć się po UART do stag afr , napisałem kod ale za nic w świecie nie działa. Żeby nawiązać połącznie po UART do stag afr trzeba wysłać. 1) ac 00 00 04 00 00 4c fc następnie 2) 4c 00 00 03 49 ff e7 następnie 3) 4c 00 00 03 64 00 b3 Powinniśmy otrzymać odpowiedź. Zmienna B5...
Czyli obecnie masz zepsutą i błędną funkcję pobierającą rzekomo łańcuch, a w rzeczywistości jeden znak na ATmega oraz program na PC niedopasowany do poprzedniej, nieco kulawej ale jakoś działającej funkcji odbioru łańcucha. Program na PC nie może wysyłać nowych znaków dopóki nie odbierze całego łańcucha z ATmega, bo inaczej nadawane znaki nie będą odbierane...
Witam. Mam pewien problem z UART. Próbuję zrealizować odbiór danych na Atmega8. Rzecz wydawałaby się prosta, ale jednek gdzieś mam błąd i nie mogę go znaleźć. Biblioteka jaką wykorzystuję jest napisana przez Peter'a Fleury. Wykorzystuje ona bufor cykliczny, więc samo odbieranie danych z rejestru i zapis do stringa są już realizowane przez bibliotekę....
Zaopatrzyłem się w ten kabelek . Podłączyłem stm32 . Kombinuje kombinuje i nie działa . Nie odbiera mi tego sygnału z serial porta . W aplikacji stma odbiera chary , a ja wysyłam mu stringa to nie działa i próbuje chara też nie działa . Nie wiem co mam robić .
za jednym cyklem odbioru dostaję jeden znak, mikrokontroler wysyła mi liczbę co sekundę więc pojedyncze stringi, przy zapisie do pliku txt mam tylko aktualny string i teraz moje pytanie brzmi w jaki sposób odbierać te dane i na bieżąco tworzyć wykres...
Prawie że na kolanie napisane: #include <avr/io.h> #include <avr/interrupt.h> #define USART_BAUDRATE 57600 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) // maksymalna liczba znaków polecenia #define UART_MAXBUFF 16 // bufor znaków polecenia (UART_MAXBUFF znaków + jeden pod znak zero)...
Może, ktoś z kolegów podpowie, bo nie mam pojęcia dlaczego nie mogę skomunikować Atmegi 8 z Atmegą 16. Atmega16 wysyła przez RS jednoznakowy string i druga Atmega go odbiera i realizuje sekwencję programu związaną z tym poleceniem. po wykonaniu ma odpowiedzieć tym samym znakiem, że polecenie zostało zrealizowane i tu jest problem. Pierwsza Atmega informacji...
Witam , chce napisać dwie aplikacje : klient i serwer. Serwer ma obsługiwać dwóch klientów. Jego kod: Tak :) Proszę umieszczać kod w znacznikach syntax . Opcja Listing kodu .
Witam, mam problem z wysyłaniem zmiennej typu String przez Bluetooth. Chcę aby moja aplikacja wysyłała mi Stringa, a nie jak to u mnie teraz jest że odbierane są znaki ASCII. Zamieszczam kod: try { Socket.getOutputStream().write... Socket.getOutputStream().write... }...
Read_Data zwraca int a tekst to string w którym mam kilka info a następnie wklejane jest to do Memo by w fazie testów mieć info co się dzieje ;]
Witam Mam drobny problem z odczytem dany z com'a w QB64 DIM SHARED NAD AS STRING * 16 'Wysylane 'DIM SHARED ODB AS STRING * 1 'odbierane NAD = "AT" OPEN "COM3:115200,N,8,1,BIN,CS0,DS0&... FOR RANDOM AS #1 PUT #1, , NAD DO GOSUB Readdata LOOP Readdata: DIM L AS STRING * 1 k$ = "" DO IF LOC(1) THEN GET #1, ,...
Witam serdecznie. Pisać w Bascomie zacząłem w lipcu br. To mój pierwszy program. Oto mój problem. Sieć Master-Slave na platformie RS485. Master - PC z dedykowaną aplikacją Slave - ATmega64 [syntax=basic4gl]'----------------------... Dim Tmpstr As String * 50 'dane odebrane Dim Tmpout As String * 50 'dane do wysłania '------------------------------------...
Mam pytanie o zapis i odczyt z eepromu. jesli chcę zapisać do eepromu liczbę: 1001000001110111110001000011101111 i później ją odczytac, to mam to zrobić na zasadzie każdy bit to jeden adres? Czy może zrobić zmienną string, z eepromu do niej pobrać wszystkie cyfry i po kolei odczytywać z zeminnej string znaki? Żeby uniknąć tego długiego kodu, zrobię...
Już chyba wiem. Nie możesz porównywać zmiennej tekstowej B do Chr (0), bo zmienna tekstowa kończy się takim znakiem. Czytaj przez Inkey do zmiennej typu Byte a następnie buduj string tak: A= A + Chr (B) Czyli zmień zmienną B na typ Byte
Świetny program do sprawdzania tego co się dzieje z portem COM. Odbierane dane można przedstawić jako BIN, HEX, DEC oczywiście też jako STRING. Wysyłać komendy ręcznie, automatycznie co interwał czasu, ustawiać stany DTR, RTS. Kto korzysta ten wie :) http://obrazki.elektroda.net/94_12786100...
Witam, potrzebuje odebrac calego stringa z serial portu ktos mi powie jak to zrobic, mam jedynie funkcje do odbierania pojedynczego znaku. unsigned char serial_read(){ while(!RI); RI = 0; return SBUF; } ..
Np. po stronie supportu. www.n-box.org Gdzie masz support dla swojego boxa??? Wszystkie n-box sa orginalne, wchodzisz na support: http://www.n-box.org/support.php Wpisujesz w ''NEW USER'' 1.Swoj adres e-mail bedzie on stałym loginem. 2. String actywacyjny ktory jest naklejony na box pod złaczem HWK ''N-BOX-XXXXXXXXXXXXXXX..." Potwierdzasz - ''ACTIVATE''...
Zer w Memo.Text = #0 mogę nie zobaczyć to dlaczego jak wyśle 5,95,48,53,156,0,0,0,0,0,0,0,0,0,3, to liczba znaków w string (np. S8 :=(Length(ComTekst)) ;)jest 6 a nie 15 ?
Po skompilowaniu kodów programów zamieszczonych przez adamusx'a.Program odbieracjący działa choć nie do końca poprawnie.Podczas gdy wysyłam liczbę 1.6789 z mikrokontrolera to na PC otrzymuję 0.78198. Pisząc swój program też spotkałem się z tym problem i zaobserowalem ze w pewnych zakresach liczba odbierana jest w przybliżeniu podzielona przez dwa a...
dziękuję, czy dane SVALUE mogą być w formacie float np. 1.134? Jak skonfigurować ESPEASY na ESP8266 aby przyjmował dane wysyłane przez płytkę Arduino UNO z wgranym kodem, który zaproponowałeś? Tak, SVALUE może być w formacie float, ale musisz pamiętać, że musisz przesłać tę wartość jako string. W kodzie, który zaproponowałem, wartość SVALUE jest przekształcana...
odbieranie smsów odbieranie faksów odbieranie polsat
renault laguna przycisk koszt wymiany licznika przepływomierz paliwo
Płyta indukcyjna SMO 658C/NE dymi - co robić? Pad świeci na pomarańczowo po podłączeniu USB, brak reakcji