Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av mankan »

Varför tråda? Asio sköter väl det hela åt dig? I din kod får du väl se till att prioritera mottagning före sändning och det blir ju enklare om det görs i samma tråd. Sedan ser jag inte riktigt problemet med nuvarande situation så länge inga buffrar blir fulla och du tappar data.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av DanielM »

Asio har blockerande eller asynkronläsninf (läsning, men finns det inge data så då går den bara vidare).

Problemet med Asio är att den har ingen buffer. Om jag får ett USB meddelande, och asio inte läser exakt just vid samma tid, då tappar jag meddelandet.
Asio använder samma struktur för TCP/IP. Man måste alltså först binda sig och lyssna efter data. Då fungerar det.

Jag har kört lite simuleringar och min kod verkar inte ha några problem, trots att jag skriver snabbare än vad jag kan läsa. Min bufferstorlek är 1024 bytes. Jag kan ha mer om jag vill.

Har fått en hel del kritik från erfarna C++20 programmerare att jag programmerar som en riktig C++98 eller C99 nörd. :roll:
Användarvisningsbild
AndLi
Inlägg: 17045
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av AndLi »

Normalt låter man ju os buffra åt en. Läsa exakt när det kommer kan du möjligen göra i ett realtids os men inte ens då skippar man buffrar...
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av Klas-Kenny »

DanielM skrev: 29 november 2022, 22:53:16 Problemet med Asio är att den har ingen buffer. Om jag får ett USB meddelande, och asio inte läser exakt just vid samma tid, då tappar jag meddelandet.
Tappar meddelandet gör du väl inte? Det kommer ju, bara att det kommer tillsammans med ett eller flera andra meddelanden. Hade ingen buffer funnits så hade du fått antingen 1 eller 0 paket, men du får ju flera som alltså har buffrats.

Implementera ett protokoll där varje paket har en tydlig början och ett tydligt slut, samt funktioner för att kunna plocka ut paketen även ur en klump med flera paket. Lämpligen bör du även kunna hantera att halva paketet kommer vid en läsning och andra halvan kommer lite senare och liknande.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av mankan »

DanielM skrev: 29 november 2022, 22:53:16 Har fått en hel del kritik från erfarna C++20 programmerare att jag programmerar som en riktig C++98 eller C99 nörd. :roll:
Jag skulle vilja påstå att C+11 och framåt är C++ 2.0 eller nästan ett nytt språk, C++14 är en buggrättad C++11, 17 har har en del nyheter, 20 rättar till den del missar samtidigt med massa nytt, 23:an verkar lovande. Enligt Herb Sutter så är C++20 första versionen av C++ som Bjarne hade tänkt sig från början.

En fråga Daniel, vad fick dig att gilla std::string och std::vector? Försöker övertala en del inbitna C-programmerare att åtminstone använda dem.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av DanielM »

Jag kör med C++20 men kan inte skilja mellan C++11 och c++20.
Allt jag ser i modern C++ är att alla datatyper är auto. Är det typ något sätt att undvika datatyper generellt? Typ som python gör.

Jag gillar std::string för att man kan kombinera strängar enkelt.
Jag gillar std::vector för att i C++ så kan man inte ha variabelt ändrande arrayer som går att ha i C99.

Jag ogillar länkad lista. Då är det bättre med std::vector.
Jag gillar också template. Effektivt.

Personligen så tycker jag C++ är bättre än C, men C är något renare och lättare att skriva i. I C++ finns det tio olika sätt att lösa problemet på. Oftast grötig kod. I C så finns det bara ett sätt att lösa problemet på. Oftast bara med funktioner och arrayer samt if- och for-satser.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av mankan »

auto är ingen magisk datatyp, det betyder bara att man låter kompilatorn räkna ut vilken datatyp det ska vara. Det finns en del fallgropar med auto, man kan lätt råka kopiera objekt när man egentligen vill ha en referens. För mycket auto kan också göra koden svårläst men är praktiskt vid refactoring.
'
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av DanielM »

Det är därför jag gillar C eller Java. Där definierar man exakt vad som är vad. :tumupp:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av TomasL »

Ändå så säger du att du alltid använder C++, hur skall du ha det?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av TomasL »

samt if- och for-satser.
Samt while, switch och en massa andra saker.
Personligen gillar jag switch, om man utesluter "default" då det ger felmeddelanden när man missar saker,
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är det för skillnad mellan STMicroelectronics Virtual COM Port och STMicroelectronics STLINK-V2?

Inlägg av DanielM »

TomasL skrev: 16 december 2022, 23:14:59 Ändå så säger du att du alltid använder C++, hur skall du ha det?
Alltid?
Nej.

80% C och 20% C++ använder jag.

Båda språken är bra. Dom fyller sina syften. C är bra. C++ är bra. Men C++ är lite för mycket. Ska man göra datorgrafik så är C++ perfekt. Men övrigt så tycker jag att C är ett perfekt språk. Jag har börjat programmera i C++ och jag tycker det är rätt skönt. Men C är ändå bättre för det är mindre att skriva.

Jag skulle säga:
Långtidsprojekt: C
Korttidsprojekt: C++

Nu bygger jag bland annat ett projekt för PC för C++ som kommunicerar med C program. Det går fint. Jag gillar C++. Jag ogillar att folk klagar på C++ och vill byta. Skärpning. Det finns inget perfekt språk. Tolka språk som verktyg. C++ är utmärkt efter behov.


:)
Skriv svar