Tack för hjälpen, jag tror att jag har fixat det nu, återkommer med hur jag löst det senare.
Jag har däremot fått ett annat bekymmer med en annan del av koden nu.
Jag har detta:
int intNumberOfDevices = tdGetNumberOfDevices();
char ts_aliases[255];
int tdName2Id[intNumberOfDevices];
for (int i = 0; i < intNumberOfDevices; i++) {
if(i>0){
strcat(ts_aliases,"\n");
}
int id = tdGetDeviceId( i );
char *name = tdGetName( id );
char *protocol = tdGetProtocol( id );
tdName2Id[*name]=id;
strcpy(ts_aliases,"ALIAS='");
strcat(ts_aliases,name);
strcat(ts_aliases,"'\nPROTOCOL='");
strcat(ts_aliases,protocol);
strcat(ts_aliases,"' >> ");
printf("%d\t%s\t%s\t%i\n", id, name, protocol,tdName2Id[*name]);
tdReleaseString(name);
tdReleaseString(protocol);
}
Det var ett tag sedan jag skrev denna kod (har återupptagit projektet nyss), och jag vet att tanken är att skapa en char (ts_aliases) som innehåller något i stil med:
ALIAS='Lampa'\nPROTOCOL='NEXA'\nALIAS='Soffa'\nPROTOCOL=NEXA >>
Den delen fungerar som den ska, men sen finns det en del som skall fylla tdName2Id med information
Tanken var att jag skulle kunna anropa tdName2Id med en text, tex "Lampa" och sedan returnerar den en int
Tänk er: (denna information ligger lagrad på servern)
id namn protocol
1 Lampa NEXA
2 Soffa NEXA
Om servern får som svar av klienten (klienten har inte jag gjort, så jag kan inte be den skicka id istället) att den skall tända lampan "Soffa", då vill jag att servern ska förstå att "Soffa" är lampan med id 2. Hänger ni med?
Är jag ute och cyklar med min kod ovanför? Hur skulle ni gjort?
MVH Niclas
edit: ser nu att med raden:
printf("%d\t%s\t%s\t%i\n", id, name, protocol,tdName2Id[*name]);
så får jag ju fram id från tdName2Id[*name]
Men om jag klipper ut den raden och lägger den utanför for-loopen så verkar jag inte få "tag" på informationen som är lagrad i den. Typ att den inte är global? Går fortfarande bet på det alltså :/