Tag Archives: SOFT

PID, dalis #0

Pasišlykštėjęs kiniškų termokontroleriu nutariau kiek pasidomėti PID kontrolerio teorija. O tam reikėjo pasirašyti šildytuvo modelį (emuliatorių).

PID emuliatorius

Gavosi maždaug toks. Tai 100ml vandens kuris neverda (sferinio arklio vakuume) kaitintuvas su stabiliu aušinimu. Man tikrai patiko, kaip kontroleris reaguoja į netikėta aušinimo pastiprinimą ir kaip jis stabilizuojasi.

Kol kas tik tiek. Taip buvo pirmas vakaras. Pratesimas jau čia.

UPGRADE

Tai UPGRADE versija…[1.5.2 upgrading 2.1, 2.2, 2.2.3 -parėjo kategorijos, parėjo Lietuvių kalba. Error!, 2.3 error – teko perkelinėti per export/import XML. UTF8 upgrade, 2.3.3, 2.5, 2.6.1, 2.6.5, 2.7.1, 2.9.1, 3.0.1, 3.2.1, striginėjo -dingo administravimo puslapiai, 3.4.2, 3.8.1, 3.8.41, 4.0.38, 4.4.31, išsidrąsinau, 4.9.24, 5.0.20, 5.1.17, php versijos keitimas, fizinis serverio keitimas, duombazės eksportas, 6.xx versija. Daugiau nėra]

Dabar reikia surasti kokią nors normalią temą.

Serveriai

Čia senas ir naujas serveris. Technologijos tobulėja.

SHUTDOWNAS!

DĖMĖSIO! KONTROLIUOJAMAS ŠUTDAUNAS.

Kontroliuojamas šutdaunas baigtas. Sunaudotas koks kilometras optinio kabelio (x12 rodos), visos tarppastatinės linijos upgreidintos iki 1Gb/s. Gyvas velnias keitiklių ir biški mąstymo.
Šie puslapiai guli dabar ant žemės laboratorijoje. Kitas panašus daiGtas persikraustė į tikrą serverinę. Dar bus sutrikimų, kai telekomas darys savo “voice”, nes “niekas neparašė paraiškos” ir panašiai.

Šios žiemos planas- pilnas puslapių serverio upgreidas. Tiek geležis, tiek programinė pusė. Bet žiauriai tingiu.

Įdomus momentas- transportavimo metu serveris atliko šuolį laike ir kuri laiką rodė rodos 5 metų senumo informaciją. 🙂

2023.11.14:
Pradėjom migruoti į naują softą ir SSL variantą (https://www.vabolis.lt). Galimi puslapių sutrikimai. Per dešimtmečius iš esmės pasikeitė wordpress. Iš paprasto blogų rašymo įrankio konvertavosi į pilną ultra uždizaineriuotą CMS. Baisu.

2023.11.16:
“Specifinis” softas kuris sukosi ant senojo serverio tiesiogiai nesikelia į naują. Dėl PHP versijų kardinalaus pasikeitimo. Kromelis jau veikia abiem variantais http://kromelis.savel.org ir https://kromelis.savel.org

Gali kilti klausimų, kodėl čia taip sunkiai gaunasi. Ogi pabandykit paprastais metodais paleisti 80 ir 443 versijas ant skirtingų fiziškai serverių, kur visas softas skiriasi iš esmės. O visokie LetsEncrypt nori, kad sertifikatai instaliuotusi per 80, o veiktu per 443.

Iš juokingų nuotykių- niekada nepagelbėkite statybininkams. Žmogus atsakingas už video stebėjimo kamerų perkėlimą paėmė ir nukirpo optinį kabelį (gerai, kad seną), bet kartu nusikirpo visas savo kameras ir internetą griauname pastate. Dar rytoj turės viską suvirinti, nors kabelis bus naikinamas po mėnesio. Kodėl nukirpo? Ogi kažkoks statybininkas paprašė… 🙂

Ne emuliatorius!

Čia tikrai ne emuliatorius, o multifunkcinis vienetinis instrumentas….
Kažkada rašiau apie Z80 plokštę ir pramoninį kompiuterį. O dabar neturėjau ką veikti ir ištraukiau seną “toolsą”, kiek ji patobulinau ir pademonstruosiu. Tai tikrai ne ZX spectrum emuliatorius, nors jis tai gali daryti:
multifunkcinis Z80 daiGtas: ZX spectrum mode
Aišku taimingai neteisingi, kokios nors prigulnybės nepadarytos. Bet čia ne ZX emuliatorius, o Z80 debug įrankis. Nuo randomu internete jis skiriasi tuom, kad bet kuriu momentu galima bet ką sugadinti- perrašyti procesoriaus registrus, pakeisti RAM turinį (ar ROM), peršokti iš vieno procesoriaus emuliatoriaus į kitą. Čia iš esmės yra du “procikai”: loginis- kuris gal labiau intelio, Zilog režime jis neparašytas iki galo, nes man to nereikėjo. Ir “C-sharp”, tai procikas kurį radau internete.
Continue reading →

ZX klonų CP/M diskų žiūreklis

Atnešė diskelių kurie buvo rašyti su ZX klonu. Juos nuskaitėm su Greaseweazle, bet joks emuliatorius neleido paleisti CP/M iš disko kopijų. O ir šiaip, labai norėjosi ištraukti failus. Tačiau, nei vienas CP/M diskų analizatorius nematė failų- paprasčiausiai, mūsų “hakeriai” kai konstravo tą kastruotą CP/M kažką kitaip padarė. O “viešos” programos neleido modifikuoti disko sektorių struktūros.

Todėl teko pasirašyti nepilnai veikiančią programą:
CP/M ZX disk image browser
Diskai tai HD (80 takelių)*, 5 sektoriai takelyje (cilindre) ir 1024 baitai sektoriuje. Tačiau CP/M blokas yra 2048 baitų.

Dabartinė programa gali eksportuoti failus, tačiau kol kas nesugalvojau, kaip eksportuoti failus kurie surašyti kaip keli įrašai direktorijoje (failai didesnis nei 8*2048 baitai). Direktorija- 20 ir 21 sektorius.
Rodos pagal CP/M specifikacijas failo dydis aprašomas vienaip, tačiau mūsų “santakistai” kažkaip ignoravo tuos laukelius ir ten visur nuliai (arba aš dar nesupratau kaip). Taip pat kiek neaišku su failo ilgiu- CP/M rašo 128 baitų blokais, tačiau failai ne visada būna kartotini 128 baitams.
Svarbu, kad didžioji dalis unikalių failų išsitraukė.

Tačiau! Kitas žmogus atnešė irgi “santakos diskelių” su CP/M ir jie vėl kitokie! Gal vėliau išgaminsim ir jiems programą ir patobulinsim šią. Tačiau kiek pavargom, gal net keturis vakarus rašėm softą.

Nelabai tikiu, kad kam nors to reikia, bet programą CPMD galima nusikrauti.

*) Rašė kaip HD, bet dėl ubagystės dažnai naudojo DD diskelius. Todėl dabar jie sunkiai nusiskaito.

P.S.
Kai parašiau programą, atsiliepė vienas iš “ten” ir paaiškino kaip sukonfiguruoti jo programą darbui su šiais diskais. Programa vadinasi “Steinblume”.

MS… ir vėl?

MS: Ar naudojat Edge, jis toks geras.
L: Ne.
MS: Ar nori Edge?
L: Ne.

Praeina kiek laiko. Ir po kažkiektais updeitų…
startup
MS: Nenori, nenori. Va ir naudojies.

Dar patiko užrašas- “high impact”

Taigis, eikit į “startup” arba Lietuviškai “paleisties” ar kaip ten ir išjungiam.

Dar karta galios matuoklis

Praėjo dešimt metų ir vėl prireikė elektros galios matuoklio… Va tai laikas bėga. Senąjį modelį aš vieną padovanojau, kitą pardaviau ir sau nepalikau. Buvo dar kelios PCB, keli dar skaitliukai. Bet va firmwarė man nepatiko. Norėjosi universalesnės, rimtesnės ir dar norėjosi kitokių funkcijų. Teko kiek pakrapštyti galvą ir gavosi nauja firmvarė, bet prietaiso konfiguravimas dar labiau užsikomplikavo. Teko parašyti ir konfiguravimo utilitą.

Va softo ekrano vaizdeliai:
ADE7758
Čia nešiojamas kompas pajungtas. Matosi kad galima rašyti į bet kurį ADE7758 registrą ar į EEPROMą. EEPROM laikomos visos registrų reikšmės ir dar kelios konstantos, kaip srovės trafo koeficientai ir įtampos daliklio parametrai.
Continue reading →

Softas Vanta XRF grafikams

Jau kelis metus Olympusas negali padaryti normalaus softo. Net elementariausios klaidos dar nepataisytos, o jau dėl grafikų tai išviso neklausk. O dirbant kartais reikia palyginti visą XRF spektrą- pvz palyginti medžiagos “fingerprint”. Ne tik palyginti, bet ir pažymėti svarbesnes zonas, uždėti markerius. Ir aišku, gražiai atspausdinti ar eksportuoti į pdf failą.
Visas softas parašytas per kokius penkis vakarus ir grynai “for fun”. Kartu kiek daugiau išmokau apie .NET galimybes.

Kad naudotis programa, reikia kaip nors išeksportuoti XRF spektrą į CSV failą. Tai irgi ne iškarto pavyksta, bet galima nugalėti Olympuso kvailystes ir šiaip ne tai ištraukti duomenis. Toliau reikia pašalinti pirmas 40 eilučių ir pirmą stulpelį (gal vėliau padarysiu automatinį importą).

Darbinis pavyzdys, trys medžiagos, labai panašios. “Standartinis” grafikas, matomas originaliam softe atrodo maždaug taip:
XRF
Continue reading →

Proto mankšta: SVG kalbos interpretatorius

Viskas prasideda nuo mažos nesamonės: nutariau ant vieno 3D spausdinto gaminio padaryti USB jungties logotipą. Kokio nors STL failo greitai nusikrauti niekur neradau (for free arba download be registracijos). Tada sau galvoju- nu yra gi SVG iliustracija, ten gi grynas vektorius, tereikia jį tik “ištempti” į viršų (extrude) ir viskas bus čiki.

Ir tada pradidėjo… Mano 3D printeriavimo ir modeliavimo programa tokių failų nepriima. Gerai, ji netobula ir ne tam skirta. Online konverteris kažko irgi neveikia:
Defektuotas STL
Matom kaip nukando gabaliuką nuo kvadratėlio.
Continue reading →

VB.NET ir bitai, bei tekstai

Kaip apsukti bitų seką iš LSB į MSB? Galima padaryti ciklą ir kiekvieną bituką perkopijuoti į kitą baitą. Atrodo paprasta užduotis ir šiuolaikiniam 32/64 bitų kompui paprastas reikalas. Taip ir atrodė, kol nepabandėm prasukti megabaitus… Chmm, atrodo lėtokai. Galima daryti su 256 variantų look-up lentele. Keista atrodo, bet irgi ne taip greita kaip atrodo… x86 ar 64 tikrai turi kokias nors komandas tokioms operacijom… bet VB.NET nusprendė, kad to nereikia…

O ką siūlo internetiniai maniakai…? Wow:

a = ((buferis(i) * &H202020202UL And &H10884422010UL) Mod 1023UL) ' no way! 3 operacijos

Kas per? Bet veikia! Ir gana greitai veikia… geras. Buvo dar keli variantai kurie veikia su C ar C# ar C++, bet perrašius į VB jau neveikia. Spėju dėl “overflow”, nes VB neleidžia daryti perpildymo tokiose operacijose.

O kas dėl teksto? Ogi vėl lėtai veikia. Visose VB.NET pavyzdukuose naudojama:

tekstas="Tekstas"+kazkas.ToString+"dar kazkas"+vbCrLf
arba
sampleStr = "Hello" & " World"

Viskas kaip ir veikia. O bet tačiau! Jei pabandytumėm tokias operacijas padaryti su keliais milijonais teksto gabaliukų, pastebėtume, kad kompas intensyviai dirba. Tačiau lėtai. Kame reikalas? Ogi MS programuotojai nusprendė, kad nafig optimizuoti tą kodą (matyt dėl suderinamumo- tai dėl atminties rezervavimo subtilybių) ir kiekviena operacija tai naujo “string” sukurimas ir kopijavimas į jį. Techniškai du stringai nesusijungia, o sukuriamas trečias stringas i kurį kopijuojama pirmų stringų turinys. Darant milijonus operacijų, tai labai pasijunta.
Kaip tai sprendžiasi? Juk stringų klijavimas yra viena iš pamatinių demokr….ptfu programavimo principų. Yra net specialios stringų programavimo kalbos (perlas?) ir panašiai.

MS sukūrė dar vieną kintamųjų tipą: System.Text.StringBuilder(). Va į šitą galima klijuoti kiek nori visokiausių teksto stringų. Ir tai darosi tikrai greitai. Milijonus teksto gabaliukų suklijuoja akimirksniu palyginus su senu metodu (dešimtys sekundžių).

Kas moka programuoti, tai tokie reikalai visiškai nestebina. O man tai tikrai atradimai. O jei dar pašnekėti apie Multi Thread… 🙂