array

2

array

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

hehe jeste malo smesno, sta cu kad ne znam, hvala ti, znaci ako sam dobro razumeo, ne mogu ponovo da definisem ono int buffer->volt posto je on vec definisan kao interval? Znaci dovoljno je samo staviti ga u ovakvu formulu i on ce biti ceo broj? Ili cu sad imati opet neku gresku zato sto je buffer->volt interval a kroz folmulu se dobije decimalni broj pa samim tim buffer->volt vise nije interval nego je double? Malo mi je to sve teze za razumeti.

double first = 22.4555;
double second = 344.1;
buffer->volt = buffer->volt * first / second;



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Napisano: 17 Jun 2011 19:57

Jel mozes da mi pokazes definiciju strukture "battery_reply", da vidim kojih su tipova clanovi?

Kad napises nesto ovako (recimo):
double nekiBr = 5.48; short nekiDrugiBr  = nekiBr;
Kompajler ti salje upozorenje da dolazi do krnjenja i implicitno cast-uje vrednost (u odgovarajuci tip sa leve strane) i dodeljuje "primaocu".

Dok ovako:
double nekiBr = 5.48; short nekiDrugiBr  = (short)nekiBr;
Explicitno cast-ujes u odgovarajuci tip, s'tim da kompajler kod ovakvog cast-a zna da si svestan mogucih gresaka (od krnjenja) pa ne izbacuje upozorenje.
Tip promenjljive sa leve strane ostaje uvek isti, nemoguce ga je promenuti, hteo ili nehteo/slucajno Very Happy Menja se samo vrednost koju "drzi".

Dopuna: 17 Jun 2011 20:51

Neznam ni sam kako ces da izvedes ono sto si hteo bez imalo predznanja iz C-a, al' 'ajde.

E, ovako, clanice strukture "battery_info_reply":
... u32 batt_vol; u32 level; ...
nagovestavaju sa su unsigned celi (samo pozitivni) brojevi, long (32 bita). Znaci isto kao kad bi napisao:
... unsigned long batt_vol; unsigned long level; ...
verovatno je negde definicija u ostalim hederima, nesto kao:
typedef unsigned long u32;//postedjuje kucanja

Ona funkcija za odredjivanje procenta baterije otpada jer ovu strukturu treba da koristis samo za "citanje" vrednosti (read-only) pa stim bi trebao da je napravis drugacije. Osim ako ne planiras da izmenis onu biblioteku?

Nesto kao:
typedef unsigned char u8;//tip dovoljan da drzi vrednosti od 0 - 255 // ako si siguran 100% da su ovo nominalne vrednosti const double minv   = 3420.0; const double maxv   = 4200.0; const double vrange = maxv - minv; static u8 get_batt_level( struct battery_reply *buffer ) {     double vtt;     vtt = (double)buffer->batt_vol;     if (vtt < minv) return 0;     else if (vtt > maxv) return 100;     return (u8)(((vtt - minv) / vrange) * 100); } ... // e sad ovde negde primas podatke "battery_info_reply" od neke funkcije koju si pozvao, recimo: struct battery_info_reply battinfo; htc_battery_level_compute( &battinfo);//ovo moras ti da vidis koju pozivas ... u8 procenat = get_batt_level(&battinfo); ...//ovde koristis taj rezlutat/procenat, sta si vec mislio



offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Ok, kontam nesto, to i jeste moj jedini problem sto ne poznajem c, al trudim se koliko mogu da ga razumem. Ono za level sam resio, kompajlirao, probao i radi pomocu ovoga:
static void htc_battery_level_compute( struct battery_info_reply *buffer ) {     int vtt;     vtt = buffer->batt_vol;     if (vtt < 3420) buffer->level = 0;     else if (vtt > 4200) buffer->level = 100;     else buffer->level = level_table[ vtt - 3420 ]; }

E sad radim na tome da promenim formulu za dobijanje voltaze i za dobijanje currenta, jeste malo teze al valjda cu nekako skontati...hvala ti puno!

Ko je trenutno na forumu
 

Ukupno su 3027 korisnika na forumu :: 60 registrovanih, 3 sakrivenih i 2964 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: ajo baba, ALEKSICMILE, ALEXV, Arhiv, Ba4e, bankulen, Belac91, BlackTower, boromir, Botovac, Brzi voz, bukefal, Chainsaw, Dejan_vw, Djokislav, Djota1, DM1994, Doca, doktor1964, draganl, dusan.l, ghoost, jalos, kingkong1947, knutveliki, Lance Guest, Lošmi, Lucije Kvint, max power, mercedesamg, Metanoja, Miki 84, miodrag, mustangkg, obsc, omen, Panter, pezetgarden11, pfc74, PlayerOne, PMsnow, Prometeus, RajkoB, royst33, Rupert, sales, sevenino, Shilok, skvara, Smiljkovich, StalniPromatrač, stevo svinja, Tamna_strana_Meseca, tooljan, Vaske8990, vazduh, Webb, Zjmc, zlaya011, Žrnov