Sari la conținut
ELFORUM - Forumul electronistilor

creare interfata grafica pentru un program ce ruleaza in linie de comanda


Postări Recomandate

salutare! cine ma poate sfatui/ajuta in creara unei interfete grafice pentru un program ce ruleaza in linie de comanda? sa detaliez putin: e vorba despre un program care conecteaza PC-ul la o sursa de tensiune controlata digital (cu uc atmega8). adica ruland programul respectiv pot seta valoare tensiunii si a curentului de iesire al sursei. din comand promp trebuie sa navighez pana unde este acel exe si sa-l rulez cu parametrii doriti, de exemplu: portul serial pe care se face comunicatia si valoarea setata. de exemplu scriu in linie de comanda ceva de genul: remote.exe -p COM24 u=110. eu as vrea un programel, sau poate chiar o interfata web daca e mai usor, in care sa apas pe niste butoane, cum ar fi plus si minus si sa se transmita comanda catre sursa sa-mi mareasca tensiunea sau s-o micsoreze. ma gandesc ca se poate lega cumva acea interfata grafica si dand din butoanele alea plus si minus sa scrie in linie de comanda parametrii doriti. asadar...cineva?

Link spre comentariu

Salut.

 

Pt. ca vara nu dorm si am o banuiala ca nu te prea intelegi cu programarea  ti-am facut eu  2 programele:

 

1. Din linia de comanda: RemoteLab.exe - (codul sursa in RemoteLab.src.zip)

Posted Image

 

2. O versiune cu o interfata grafica: UIRemoteLab.exe (codul sursa in UIRemoteLab.src.zip)

Posted Image

 

Pentru a rula aplicatiile trebuie sa ai instalat pe sistem .NETframework (e ok si 2.0).

 

Succes

Radu

RemoteLab.exe.zip

RemoteLab.scr.zip

UIRemoteLab.exe.zip

UIRemoteLab.scr.zip

Link spre comentariu

Multumesc mult, dle Radu. aveti dreptate, chiar imi prind urechile. se pare ca ruleaza aplicatiile si pe calc meu, deci cred ca am ce trebuie ca sa ruleze. banuiesc ca interfata asta grafica creata de dvs tine legatura cu acel remotelab.exe. eu am un alt programel a carui denumire i-am schimbat-o eu in remote.exe - el de fapt se numeste ic2talk.exe. L-am pus intr-o arhiva si-l incarc aici. eu as vrea o interfata care sa-mi permita sa reglez tensiunea, curentul si sa-i pot da o comanda sursei sa memoreze valorile setate. habar nu am cum sa mai fac o rubrica si pentru curent si memorare. ce program ar trebui sa folosesc ca sa pot edita acele scripturi? ca eu unul din acele linii de cod nu resesc sa pricep mare lucru. asta nu e un repros, ci doar afirm ca nu ma pricep deloc la asa ceva. am incercat programelul dvs (si cel in linie de comanda si cel grafic) insa nu reuseste niciunul din ele sa comande sursa (probabil pentru ca nu ati avut programelul meu). am rugamintea, daca nu va solicit prea mult, sa ma ajutati sa modific ce ati creat dvs pentru a face ceea ce-mi tb mie. multumesc mult!  oricum, foarte tare programelul. ma apuc de studiat, poate totusi reusesc ceva.ic2talk.zip

Editat de gabitzu2006
Link spre comentariu

O luam metodic:

 

Pe scurt:

1. Nu am fost foarte atent la textul din primul post al d-voastra drept urmare prima varianta de program nu avea cum sa functioneze.

2. Aceasta varianta (0.2) ar trebui sa mearga (la setarea tensiunii). 

           Posted Image

 

In arhiva atasata sunt 2 executabile: UIRemoteLab.exe - interfata grafica si i2ctalk.exe - aplicatia care comunica efectiv cu sursa. Va rog sa le dezactivati in acelasi director.

 

La apasarea butonului set (sau la schimbarea tensiunii cu "Set automat la modificare V") se apeleaza aplicatia i2ctalk.exe cu parametrii -p portul setat in interfata -d device id-ul si u=valoarea setata.

Rezultatul intors de aplicatia i2ctalk.exe este afisat in partea de jos a ferestrei.

 

Pe lung:

 

1. Sursa d-voastra comunica cu calculatorul printr-un port serial (COM)  - posibil sa aveti si un USB-Serial ....

2. Protocolul de comunicare este I2C (mai multe detalii gasiti pe net) pe scurt: fiecare device din retea are o adresa (device id), comunicarea se face in sistemul master - slave.

Acest mod de comunicare PC->device folosind protocolul i2c este rar folosit (este pt. ptima data cand i-l intalnesc) - de obicei se utilizeaza o comunicare seriala standard. 

 

Protocolul I2C se poate implementa pe PC direct pe serial deoarece ai control direct pe pinii Dtr si Rts - dar e (un pic) o munca de chinez - am gasit pe net ceva ... adica daca am implementa protocolul i2c direct in interfata grafica nu am mai avea nevoie de executabilul i2ctalk.exe. Avantaje: viteza de executie mult mai mare.

 

O  alta varianta ar fi sa punem un microcontroler (ex Arduino) intre sursa si pc (pe post de translator):

    PC ---- (serial/usb2serial ) ----> Arduino ----- I2C ----> sursa.

In acest mod programarea ar fi mai simpla - si iNtegrarea functiilor sursei cu interfata grafica s-ar putea face mai ok.

 

In fine va propun urmatoarele :

   T1. Verificam ca aplicata asta merge - seteaza tensiunea.

   T2. Implementam (tot in acest mod - cu apel i2ctalk.exe) si restul parametrilor pe care-i puteti controla la sursa (curent, memorare parametrii, etc)- aici ma intereseaza o documentatie a acestora.

 

Apropo ce sursa este aceasta ? Este construita de d-voastra ?

 

Aplicatia este scrisa in c# - windows forms  - proiectul in VisualStudio 2012 (gasiti si o versiune free la Microsoft) - in attachment gasiti si sursa aplicatie (revin aici cu detalii intr-un post ulterior).

 

Dati-mi un semn: T1 ? T2 ?

 

Succes

Radu 

 

 

 

 

 

 

UIRemoteLab.exe.0.2.zip

UIRemoteLab.src.0.2.zip

Link spre comentariu

acum am vazut postul. rulez testele si revin cu rezultate. sursa este construita de mine, dar nu proiectata de mine. este luata de pe un site, tuxgraphics. org parca. daca va intereseaza va trimit linkul exact. da, ma gandeam si eu sa fie facuta implementarea i2c direct in interfata grafica, dar asta depaseste cu mult posibilitatile mele de intelegere. asa cum am procedat pana acum, sa apelam aplicatia i2ctalk mai inteleg cate ceva. brb!

aplicatia functioneaza! cu urmatoarele amendamente:

1. as vrea ca tensiunea sa poata fi reglata in pasi de 0,1V (atasez poza cu display-ul sursei) iar curentul in pasi de 0,01A.

2. nu am inteles pentru ce anume este acel device ID si cum ar trebui sa-l setez...implicit era 3 si a functionat asa.

3. nu sunt inca sigur ca imi este necesar sa vad ce face aplicatia i2ctalk. v-as ruga sa-mi spuneti ce ar trebui sa fac sa o dezactivez (macar atata lucru poate reusesc si eu..sau cel putin mai invat cate ceva).

4. in descrierea modului de folosire al i2ctalk se spunea ca pentru  a seta o valoare a tensiunii, de, sa zicem 13V, ar trebui scris u=130. sau pentru 13,3V ar trebui u=133 si tot asa...sigur ati prins ideea. asta ca sa va usurez munca pentru pct 1.

ca sa sintetizez, aplicatia ar trebui sa poata regla tensiunea in pasi de 0,1V, curentul in pasi de 0,01A (e vorba de limitarea de curent) si sa poata memora in uc valorile setate (aici chiar nu ar fi utila o casuta de genul celei puse de dvs cu ”set automat la modificarea V”. in i2ctalk pentru memorare in loc de u=x se punea simplu s. exemplu: i2ctalk -p com24 s. Multumesc mult!post-235064-0-25594600-1427404269_thumb.jpg

 

am incercat azi sa instalez visual studio dar imi zice ca imi trebuie cel putin 10GB liberi pe drive, pe C nu am atata iar pe D tot nu vrea. incerc sa-i fac loc.

 

un alt ”defect”: daca ii dau o valoare peste 100 (adica peste 10V) nu vrea si imi ia maximul, adica 100 (10V)

 

 

autorul zice asa:

I2C commands for the DC power supply:=====================================# set Imax to 0.20A:i2ctalk i=20# get current I value:i2ctalk i# store current settingsi2ctalk s# set Umax to 2.1V:i2ctalk u=21# get current voltage value:i2ctalk u

insa in linie de comanda nu reusesc sa fac sursa sa-mi transmita valorile pentru u si i (sau din cine stie ce motiv nu mi le afiseaza calculatorul

Editat de gabitzu2006
Link spre comentariu

1. as vrea ca tensiunea sa poata fi reglata in pasi de 0,1V (atasez poza cu display-ul sursei) iar curentul in pasi de 0,01A.

  OK - fac modificarea.

2. nu am inteles pentru ce anume este acel device ID si cum ar trebui sa-l setez...implicit era 3 si a functionat asa.

   pe aceiasi interfata i2c (cele 2 fire) pot fi atasate pana la 128 de device-uri acest nr (device id) le identifica 

3. nu sunt inca sigur ca imi este necesar sa vad ce face aplicatia i2ctalk. v-as ruga sa-mi spuneti ce ar trebui sa fac sa o dezactivez (macar atata lucru poate reusesc si eu..sau cel putin mai invat cate ceva).

   acesta aplicatie comunica efectiv cu sursa - aplicatia grafica apeleza i2ctalk.exe - avem nevoie de ea in directorul aplicatiei grafice - nu inteleg la ce va referiti cu: ce ar trebui sa fac sa o dezactivez

4. Parametrii:

    4.1 la tensiune i-mi este clar:   U_sursa = U_interfata * 10;

    4.2 la limitare curent ce parametru se foloseste ?

    4.3 la salvare i-mi este clar: s

revin cu un nou exe.

Link spre comentariu

la 3 ma refeream ca nu stiu inca sigur daca imi este necesara fereastra de jos a aplicatiei, acolo unde scrie comanda in linie de comanda. pe aceea e posibil sa vreau s-o dezactivez.

la 4.2 e vorba de setarea curentului, i=100 (la sursa se seteaza valoarea curentului pentru care sursa intra in limitare de curent). intre timp am mai adaugat ceva: citirea valorilor u si i, de genul ”i2ctalk -p com24 u”. la mine, in linie de comanda, nu-mi afiseaza nimic dupa ce dau comanda asta, desi sta un pic „sa se gandeasca” dupa care imi afiseaza iar promptul. posibil sa nu mearga nici cu interfata grafica. dar eu as fi suuuuper multumit daca imi merge numai partea cu setarea si memorarea valorilor u si i.

Link spre comentariu

Vers. 0.3.

 

Cred ca incepe sa prinda contur.

Posted Image

 

- cu patratelul din stanga jos: afisare/ascundere mesaje.

- Memoreaza - trimite comanda de memorare a ultimelor valori setate

- Tensiune: daca autoset este bifat la schimbarea valorii tensiunii aceasta este trimisa automat la sursa (nu mai trebuie apasat pe butonul de set).

- volorile lui U si I se pot modifica si manual - prin scrierea valorii direct in casuta

 

Da-mi un semn daca mai sunt observatii.

 

Succes

Radu

 

Nu e obligatoriu acele valori implicite - pot fi si zero, dar cel mai logic ar fi sa fie valorile pe care le folosesti in mod uzual.

UIRemoteLab.exe.0.3.zip

UIRemoteLab.src.0.3.zip

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări