AndrisBB Oktobris 18, 2020 Share Oktobris 18, 2020 (labots) Tad varbūt no turienes visam kājas aug? Raimonds grib taisīt botu, kurš spēlē zoli (iespējams pokeru), nolasa no ekrāna tekstu, apstrādā un effektīvi ātri atbild, iespējams 10 000 boti uz kautkāda Pokerstars. Tur arī tā prasība par nolasīšanu 2 sekunžu laikā. Labots Oktobris 18, 2020 - AndrisBB 2 Link to comment Share on other sites More sharing options...
Raimonds1 Oktobris 18, 2020 Author Share Oktobris 18, 2020 Nē, tā nav. Kas attiecas uz visādām iekārtām, kas ir starp datoru un interneta kabeli, datoru un monitoru, lasa datus no VGA vai HDMI, visādi VGA frame grabber, programmnodrošinājumi, piemēram https://stackoverflow.com/questions/42362475/how-to-process-frames-from-a-vga2usb-device-using-opencv-c tad tur ir daudz visa kā. Es te gribēju kaut ko daudz vienkāršāku - kā dabūt teksta rindiņu un pēc tam visu lapas tekstu no VGA. Tāpat gan jau to tekstu var dabūt no tā pagaidu faila, kad kopē tekstu (atfiltrējot pārējo). 1. Pavisam vienkāršs lietojums - kompaktāks teksts. vēl kādi 5 lietojumu varianti. ------------------------------- Blakustēmas. 1 2 3 4 5 6 7 Tas viss ir par sarežģītu, mani šeit pagaidām interesē teksta saglabāšana un labāka attēlošana. Ideālā variantā maza ierīce starp datoru un monitoru vai pat iebūvēta monitorā un podziņas vai atsevišķa vadība. Link to comment Share on other sites More sharing options...
Jurkins Oktobris 18, 2020 Share Oktobris 18, 2020 Raimondam šovakar vairāk nelejiet. 1 Link to comment Share on other sites More sharing options...
AndrisBB Decembris 3, 2021 Share Decembris 3, 2021 Šis ir diezgan interesants rakts (kolēģa). Google Translate tiek diezgan labi galā (ja nepatīk franciski) Diezgan būtiskas atšķirības patērētās enerģijas ziņā. Jāsāk vairāk rakstīt kodu iekš Rust. https://rust.developpez.com/actu/329132/Rust-peut-il-sauver-la-planete-Un-composant-JavaScript-a-ete-reecrit-en-Rust-et-aurait-une-amelioration-de-50-pourcent-de-la-latence-une-reduction-de-75-pourcent-de-l-utilisation-du-CPU-et-95-pourcent-de-la-memoire/ https://programmation.developpez.com/actu/253829/Programmation-une-etude-revele-les-langages-les-plus-voraces-en-energie-Perl-Python-et-Ruby-en-tete-C-Rust-et-Cplusplus-les-langages-les-plus-verts/ 2 Link to comment Share on other sites More sharing options...
Mateushs Decembris 16, 2021 Share Decembris 16, 2021 Pirmkārt, ne visi ir sajūsmā par Rust valodu; ir redzēta atšķirīga reakcija uz to. https://dev.to/yujiri8/it-seems-like-rust-software-us-bad-hkk https://news.ycombinator.com/item?id=21597674 Link to comment Share on other sites More sharing options...
AndrisBB Decembris 16, 2021 Share Decembris 16, 2021 Arī C++ daudziem nepatīk un ir kas kunkst pie katrām izmaiņām, tāpat kā jebkurā citā valodā. Kāda jēga balstīt viedokli uz dažu indivīdu domām internetā? Izmēģini, tad redzēsi. Tik tas ka lai tā pavisam nopietni saprastu Rust, nākas mazliet piepūlēt pelēko vielu. 3 Link to comment Share on other sites More sharing options...
raivix95 Decembris 16, 2021 Share Decembris 16, 2021 Es te aiz gara laika sāku lasīt Raimja spriedelējumus no pirmās lapas un kādā brīdī tur pat kaut kas gudrs ir pazibējis... 2015.09.2. , 15:33, Raimonds1 teica: piemeēram, vienu un to pašu lietu var uzrakstīt MAN saprotami un MAN nesaprotami un tāpēc es meklēju, kur tas saprotamais ir ir paslēpies. Dažreiz tiešām vajag saprotamo pameklēt nesaprotamajā. Link to comment Share on other sites More sharing options...
AndrisBB Jūlijs 22, 2022 Share Jūlijs 22, 2022 (labots) Atjautības uzdevums piektdienai. Kā var uzrakstīt C++ funkciju ar regexu, kas stringā aizvietos visus `\\` ar `_5c`? Nu piemēram kā te `-` aizvietojas ar `_2d` std::string String_to_path(std::string path) { return std::regex_replace(path, std::regex("-"), "_2d"); } 71e46d9e-0833-11ed-861d-0242ac120002 -> 71e46d9e_2d0833_2d11ed_2d861d_2d0242ac120002 Labots Jūlijs 22, 2022 - AndrisBB Link to comment Share on other sites More sharing options...
binary Jūlijs 22, 2022 Share Jūlijs 22, 2022 \\\\\\\\? Link to comment Share on other sites More sharing options...
AndrisBB Jūlijs 22, 2022 Share Jūlijs 22, 2022 (labots) Jā, nonācu līdz tādam secinājumam Nestrādā gan ja es mēģinu piemēram uztaisīt testa stringu, jo tad `escape` tiek `escape'ots`. std::string test = "test//string//with//two//escapes"; // tas paliek par "test/string/with/two/escapes" un nekas netiek aizvietots String_to_path(test); Labots Jūlijs 22, 2022 - AndrisBB Link to comment Share on other sites More sharing options...
binary Jūlijs 22, 2022 Share Jūlijs 22, 2022 (labots) Testa stringā liec "\\\\" T.i., sourcē raksti "\\\\", lai stringā (atmiņā) dabūtu "\\". Labots Jūlijs 22, 2022 - binary Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 std::string String_to_path(std::string path) { return std::regex_replace(path, std::regex(R"(\\)"), "_5c"); } Link to comment Share on other sites More sharing options...
AndrisBB Jūlijs 22, 2022 Share Jūlijs 22, 2022 Tad vajadzētu 4 escapus std::string String_to_path(std::string path) { return std::regex_replace(path, std::regex(R"(\\\\)"), "_5c"); } Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 Nu man ar diviem: std::cout << String_to_path("1e46d9e\\0833\\11ed\\861d\\0242ac120002") << std::endl; Link to comment Share on other sites More sharing options...
jema Jūlijs 22, 2022 Share Jūlijs 22, 2022 O, vecā piepe, stagnāts ciparos runā, kas tad nu? Vai tas piektdienas iespaidā? 1 Link to comment Share on other sites More sharing options...
AndrisBB Jūlijs 22, 2022 Share Jūlijs 22, 2022 Pirms 9 minūtēm , Jurkins teica: Nu man ar diviem: std::cout << String_to_path("1e46d9e\\0833\\11ed\\861d\\0242ac120002") << std::endl; Tas tapēc ka tur stringu padod, atpēc tev arī darbojas ar diviem \\ "1e46d9e\0833\11ed\861d\0242ac120002" Izprintē to stringu pirms regex Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 (labots) Pirms 9 minūtēm , jema teica: vecā piepe, stagnāts ciparos runā, kas tad nu? Kapitālisms, vienalga, ir sūds un finansisti ir ielenes. Pirms 3 minūtēm , AndrisBB teica: Tas tapēc ka tur stringu padod Krāslavnieks ir bišku ieņemts, mož tāpēc nevaru iebraukt... bet tak vajag stringā aizvietot. Labots Jūlijs 22, 2022 - Jurkins 2 Link to comment Share on other sites More sharing options...
jema Jūlijs 22, 2022 Share Jūlijs 22, 2022 Kāpēc Tu slēp ka esi inteliģents cilvēks? Noteikti ka pat Trīs sivēntiņus un vilks būsi lasījis? Link to comment Share on other sites More sharing options...
Populārs ieraksts Jurkins Jūlijs 22, 2022 Populārs ieraksts Share Jūlijs 22, 2022 (labots) Just now, jema teica: Noteikti ka pat Trīs sivēntiņus un vilks būsi lasījis? Vinniju Pūku arī 🤣! kto hoģit v gosķi po utram tot pastupajet mudro to tut sto gram, to tam sto gram na to ono i utro! Labots Jūlijs 22, 2022 - Jurkins 5 Link to comment Share on other sites More sharing options...
aoma Jūlijs 22, 2022 Share Jūlijs 22, 2022 Es kādreiz mēģināju mācīties visas šīs valodas, nav mans, varbūt tā ir pat labāk 1 2 Link to comment Share on other sites More sharing options...
AndrisBB Jūlijs 22, 2022 Share Jūlijs 22, 2022 Pirms 9 minūtēm , Jurkins teica: Krāslavnieks ir bišku ieņemts, mož tāpēc nevaru iebraukt... bet tak vajag stringā aizvietot. Nu ja, vajag stringā kurā arī ir divi \\ aizvietot ar _5c. Bet ja tu definē stringu kā tavā piemērā, tad tur ir tikai viens \. Tavs piemērš šdi būtu precizāks std::cout << String_to_path(R"(1e46d9e\\0833\\11ed\\861d\\0242ac120002)") << std::endl; Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 (labots) Es saprotu, ka tupiju... (krāslavnieks ir labs, tikai, suka, beidzās) std::string x = "1e46d9e\\0833\\11ed\\861d\\0242ac120002"; std::cout << String_to_path(x) << std::endl; stringā ir divi, rezultāts tieši tāds pats. Nu jā, ja o stringu printē ārā, tad ir viens, bet, vienalga, nesaprotu, kāpēc vajag izprintēt ar diviem. Tak vajag aizvietot tos divus definētajā stringā. Nē? Labots Jūlijs 22, 2022 - Jurkins Link to comment Share on other sites More sharing options...
AndrisBB Jūlijs 22, 2022 Share Jūlijs 22, 2022 (labots) Ja tu tā nodefinē stringu, tad tur ir tikai viens \ , tapēc ka pirmais `escape` eskeipo otro Labots Jūlijs 22, 2022 - AndrisBB Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 Ok, sapratu tagad. 👍 Ar visām promilēm 🤣. Tas "hello\\kitty" aicina uz izvirtībām. 🤣 1 Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 Tūlīt atnāks Raimis un noliks ar bitiem visus pa pointeriem. 1 Link to comment Share on other sites More sharing options...
Jurkins Jūlijs 22, 2022 Share Jūlijs 22, 2022 Vispār kompilatori baigi iepaliek. Jau c++20 "standartā" ir "constexpr std::string" , bet vismaz mingv12.1 ar "karogu" -std= c+23 neatbalsta. Link to comment Share on other sites More sharing options...
aoma Jūlijs 23, 2022 Share Jūlijs 23, 2022 (labots) 22.07.2022. , 23:52, Jurkins teica: Tas "hello\\kitty" aicina uz izvirtībām Starp citu, viens no maniem pirmajiem andrīšiem, kā telefons jau no dzimšanas bij mēsls, izmantoju tikai smārtam, pēc tam pat to nevilka.. Protams, paralēli tika lietota uzticama podziņu Nokia. Labots Jūlijs 23, 2022 - aoma Link to comment Share on other sites More sharing options...
Jurkins Septembris 3, 2022 Share Septembris 3, 2022 Sveiciens lieliskajā sestdiena vakarā! Netaisīšu jaunu tēmu, jo tieši c++ "tuvums" dzelžiem laikam atbilst tam, ko vēlos jautāt. Lai gan, principā pilnīgi poh... vai cpp vai c vai c# vai pat paitons. Tātad... nu droši vien tupiju, bet ... nu tupiju 😁. Redz, pārsvarā mana programmēšanas pieredze ir iekš mikrokontrolieriem. To beisiku, fortrānu, "ratforu" un delfu paskālu var atlaist un nepieminēt. Vajag nolasīt com portu katru minūti (vai katras 5 minūtes vai 10..), bet gribētos, lai tas notiek 15:01, 15:02... u.t.t. Mcu uztaisītu taimeri un uz pārtraukumiem visu noorganizētu. Bet kā pareizi to darīt uz datora? Kaut vai paitons (visvienkāršāk, pēc tam var par cpp parunāt): while True: if not datetime.now().second: "darām ... to" (skaidrs, ka tur vēl vajag kādu bool mainīgo, lai "darām to" tikai vienu reizi, kamēr sekundes ir "00", bet tas jau ir sekundāri. Nu štrunts par paitonu, bet vai nav kaut kādu sistēmas pulksteņa "notikuma" katru sekundi, ko tādā c, cpp vai c# noķert un tad likt strādāt kodam? Kāds ir standarta variants šādos gadījumos? Gan jau, ka ir. p.s. bišķi nesakarīgi varbūt (alus ir attaisnojošs iemesls) 😁 1 Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 Meklē event loop. Domājams ka +- 1ms tev nav kritiska. Idejiski neko neatšķirsies no MCU taimeriem. int on_timer() // Dari ko tuev tur jādara return 0 int main() evento_loop events = Event_loop_create() events.add_timer(1 * 1000 * 1000, on_timer) events.start() return 0 Nav ne jausmas kas tur Windowistiem pieejams, uz Linukša pa pilno variantu visās iespējamās valodās https://www.freedesktop.org/software/systemd/man/sd_event_add_time.html https://0pointer.net/blog/introducing-sd-event.html https://docs.gtk.org/glib/main-loop.html https://developer.gimp.org/api/2.0/glib/glib-The-Main-Event-Loop.html utt Kautvai libev, laikam pats vienkāršākais variants https://www.systutorials.com/docs/linux/man/3-ev/ 1 Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 Windowistiem iespējams libuv darbojas https://github.com/libuv/libuv Skaties, tur docs folderī piemēru pilns, arī timerim 1 Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 (labots) Un vispār vaitad Windowsā COM ports aka tty nav select-ojams (izsauc eventu, kad tur ir kautkas lasāms, skat tam libuv tty piemēru) vai arī read funkcija bloķējas kamēr kautkas lasāms parādās? Kapēc jāizmanto tādas brutālas metodes kā timers? https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-waitcommevent https://docs.microsoft.com/en-us/windows/win32/devio/monitoring-communications-events?source=recommendations Labots Septembris 3, 2022 - AndrisBB Link to comment Share on other sites More sharing options...
Jurkins Septembris 3, 2022 Share Septembris 3, 2022 (labots) Pirms 16 minūtēm , AndrisBB teica: Kapēc jāizmanto tādas brutālas metodes kā timers? Es nezinu. Taustos "pa tumsu". 😁 Nekad neko neesmu tādu programmējis. Uz tā COMa pats par sevi nekas nenāk. Ok, stāsts ir tāds. Slēdzos klāt pie iekārtas ar modbus protokolu. Pašlaik ir prasts paitona skripts, kurš reizi 5 min. nolasa datus un ieraksta datubāzē. Jautājums - vai tas ir "pareizi" prasti čekot ciklā sistēmas laiku un, ja ir, teiksim, 8:25, tad darīt to pasākumu? Vai to dara savādāk? Gribas aplikāciju, kas grafiku uzzīmē. Var jau tajā pašā paitonā. Bet tīri pašizglītībai skatos uz c# pusi. Labots Septembris 3, 2022 - Jurkins Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 Pirms 3 minūtēm , Jurkins teica: Uz tā COMa pats par sevi nekas nenāk. Pa lielam jau uz COM porta kā reiz pats par sevi arī nāk bet tev visdrīzāk kautkāds protokols, kur tu aizsūti komandu un tad atnāk atbilde, tāka vienkārši gaidīt kad kautkas pārādās nolasāms nesanāks. Nu ja jau taisies grafikus zīmēt, tad jau būs GUI applikācija un kā reiz arī vienkārši izmanto taimeri. https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer?view=net-6.0 Tad arī savā OnTimedEvent lasi ko tev tur vajag nolasīt. Link to comment Share on other sites More sharing options...
Jurkins Septembris 3, 2022 Share Septembris 3, 2022 Pirms 14 minūtēm , AndrisBB teica: Pa lielam jau uz COM porta kā reiz pats par sevi arī nāk Nu jā, tā ir. Bet šajā gadījumā ir modbus protokols pa virsu, kur man jādod komanda nolasīt attiecīgo reģistru un tad saņemu atbildi. Link to comment Share on other sites More sharing options...
TOoMoOT Septembris 3, 2022 Share Septembris 3, 2022 1 stundu atpakaļ, Jurkins teica: Jautājums - vai tas ir "pareizi" prasti čekot ciklā sistēmas laiku un, ja ir, teiksim, 8:25, tad darīt to pasākumu? Vai to dara savādāk? Es ieteiktu izmantot scheduleri, kurš izsauc koda izpildi. Linuxam crontab. WIndowsam Task Scheduler. Tas ir stabilāk. Savādāk, ja kods nobrūk, tad viņš nepildīsies, kāmēr atkal nepalaidīs. 1 Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 (labots) Kapēc lai kods nobruktu, ja daudzmaz jēdzīgi uzrakstīts? Un kas ja crontabs nojūk? Pat ja nobrūk, tad tādu applikāciju, kas tik lasa no porta un liek datubāzē tāpat taisītu kā servisu, kurš ja arī nobrūk, tad restartējas. Tāpat arī kā dependency ieliek datubāzes servisu - ja porta lasītāja serviss palaižas, tad automātiski arī datubāze palaižas un kas vēl tur vajadzīgs. Labots Septembris 3, 2022 - AndrisBB 1 Link to comment Share on other sites More sharing options...
Laxe Septembris 3, 2022 Share Septembris 3, 2022 Ja doma kodēt spēlītes tad ņem vērā ka dzivojam 2022 un nedrīkst lietot sliktu valodu Epic has just updated their C++ Coding Standard for Unreal Engine, which is causing some concerns in the coding scene. It basically means that you are not allowed to use certain words in your C++ code, which can potentially offend. >You are not allowed to use "Blacklist" or "Whitelist" in your code, because of racial discrimination. >You are not allowed to use "Slave" or "Master" in your code, because of historical trauma. >You are not allowed to gender define your code entities, such as: server, function, module or plugin. >If your code functions don't have a defined gender, you must refer to them by the pronouns: they, them and their. 1 Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 Ko tu te kautkādu huinju atkal postē, Unreal var izmantot vai neizmantot, ko vin viņiem gribas, brīva pasaule. 1 Link to comment Share on other sites More sharing options...
M_J Septembris 3, 2022 Share Septembris 3, 2022 (labots) pirms 5 stundām , Jurkins teica: p.s. bišķi nesakarīgi varbūt (alus ir attaisnojošs iemesls) 😁 Man patīk! Arī šovakar esmu pillā! Bet ja par topika virsrakstu "Kā konkrēti izpaužas C++ valodas tuvums "dzelžiem". - manuprāt absolūts idiotisms. Bet ne jau visi tā domā. Es gribētu pārfrazēt apmēram tādā stilā: kā "Kā izpaužas aunu bara tuvums tam aplokam, kurā tas aunu bars iespundēts". Ja varētu runāt par tuvumu "dzelžiem" tad tikai un vienīgi assemblera gadījumā. Bet ja par COM portu (vai arī CAN busu un citiem protokoliem, netrūkst idiotu, kas spējīgi izdomāt protokolus, citu par citu stulbākus un bezjēdzīgākus). Aizmirstam frāzi "kā būtu pareizi"! Tāda varianta nav! Kāpēc tā apgalvoju. Tāpēc ka esmu izķidājis dažādus protokolus PA BITIEM! Modbus RTU, CAN vēl virkni citu protokolu, kuru nosaukumus vairs neatceros (nav tā vērti), virkne no tiem izperēti iekš SIEMENS un manuprāt pasaule būtu daudz labāka un skaistāka, ja šie SIEMENS izperētie protokoli vispār nebūtu ieraudzījuši dienas gaismu. Jā, SIEMENS ir centīgi un akurāti, bet kā teica viens gudrs un TALANTĪGS pasniedzējs - centība neattaisno talanta trūkumu. Atvainojos par lirisko atkāpi. Bet ja par tematu. Neredzu problēmu. Esmu uzrakstījis virkni programmu gan mikrokontroliera, gan PC pusē, kas savstarpēji sazinās, pamatā gan izmantojot Modbus RTU, gan arī idiotiskos SIEMENS protokolus un viss notiek. Tikai aizmirstam vārdu "pareizi". Efektīvie menedžeri izstāstīs kā ir "pareizi". Lai viņi iet d....st ar savu "pareizi". Pareizi ir tā, kā darbojas, nevis tā kā ir "pareizi". Viena lieta ko esmu ielāgojis - ne WINDOWS ne LINUX (daži LINUX it kā esot) nav reālā laika sistēmas. Kaut kāda aptuvena korelācija ar reālo laiku, protams, ir, bet ja vajag kaut kādu lietu nodarīt noteiktā laika momentā, teiksim, ar precizitāti pat 1 milisekunde (kas, starp mums runājot, ir nožēlojami zema precizitāte) - par datoru ar visiem viņa gigaherciem un gigabaitiem aizmirstam - pats vecākais un tizlākais 8 bitu mikrokontrolieris to izdarīs labāk kā dators ar saviem gigaherciem un gigabaitiem (no skopa vēl varētu prasīt, bet ko Tu no nabaga ņemsi). Tātad - ja kaut ko nosūtam no PC mikrokontrolierim - kaut kad jau viņš to saņems. Kad - nezinām. Varbūt, ja paveiksies, pēc 10 ms, ja vien PC šajā brīdī nebūs svarīgāku lietu ar ko nodarboties, piemēram, upgreidot jaunāko picas piegādātāju programmatūru. Tāpat ar mikrokontroliera sūtīto datoram. Jāatzīst - ja kaut ko vajadzēs saglabāt, piemēram, failā, tas tiks godīgi izdarīts. Kad? Nu kaut kad, kad būs tāda sīka vaļa. Īsi sakot - svarīgas lietas, kas jānodara precīzi un noteiktā laikā PC uzticēt nevar, tās jādara mikrokontrolieriem, PC var uzticēt otršķirīgus uzdevumus, ko var veikt kaut kā un kaut kad. He, he - ienāca prātā partija un valdība un nav pat lielas atšķirības PSRS laikos vai tagad - un arī purni daudzviet tie paši. Labots Septembris 3, 2022 - M_J 1 Link to comment Share on other sites More sharing options...
AndrisBB Septembris 3, 2022 Share Septembris 3, 2022 Ko nu stāsti. Skaidrs ka reāla-laika darbības neviens jūzrespeisā neveiks, tam ir domāti draiveri kerneļa līmenī. Un darbosies ne ar sliktāku precizitāti kā uz mikrokontroliera. Widowsā skaidrs ka iespējas ir mazliet ierobežotas salīdzinot ar Linuksi utt. Un jā ar visiem Gigaherciem tas būs ātrāk kā uz mikrokontroliera. Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!