Sida 3 av 3

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

Postat: 29 november 2022, 20:44:22
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.

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

Postat: 29 november 2022, 22:53:16
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:

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

Postat: 30 november 2022, 06:40:51
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...

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

Postat: 30 november 2022, 07:57:13
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.

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

Postat: 1 december 2022, 20:52:03
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.

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

Postat: 4 december 2022, 23:28:16
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.

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

Postat: 5 december 2022, 18:39:10
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.
'

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

Postat: 16 december 2022, 23:12:26
av DanielM
Det är därför jag gillar C eller Java. Där definierar man exakt vad som är vad. :tumupp:

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

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

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

Postat: 16 december 2022, 23:17:31
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,

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

Postat: 16 december 2022, 23:45:28
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.


:)