Pisze aplikacje która przechwytuje sygnały (zmienne double) z zewnetrznego źródła i przy konfiguracji mam wybór czytanych kanałów (max 16 >>>od "0" do "15"<<<) i wybieram channelStart jako kanał poczatkowy oraz channelCount jako ilośc wszytskich kanałow zaczynając od poczatkowego, tak więc jeżeli:
int channelStart = 0;
int channelCount = 3;
To czytam: 0,1,2 kanał, metoda z biblioteki napisanej przez producenta karty po wstępnej konfiguracji karty pomiarowej (konfiguracje pomijam) zwraca mi zmienne z czytanych kanałów w tablicy o tak:
//Inicjuje sobie tablice oraz ilość jej elementów:
czytaneDane = new double[channelCount]; //<<-- tablica ma mieć rozmiar "kontenera kanałów"
//teraz w pentelce czytam kazdy kanal po koleii:
for(int i = channelStart; i < channelStart + channelCount; i++)
{
blabla.Read(jakas_wlasciwowsc, out czytaneDane[i]);
}
I teraz wiadomo zeby sie odwołać do zmiennej muszę tylko podać indeks tablicy i włola:
//Dla pierwszego kanalu(dla kanalu 0)
czytaneDane[0]....
//Dla drugiego kanalu(dla kanalu 1)
czytaneDane[1]....
//Dla trzeciego kanalu(dla kanalu 2)
czytaneDane[2]....
Wiec wszytsko dziala jak należy :)
Ale ... z tym że problem pojawia się jak kanał startowy ustawie powyżej "0", bo wtety indeksy tablicy nie zgadzaja sie z moimi czytanymi danymi, np.:
int channelStart = 2;
int channelCount = 3;
CZYLI POBIERA Z 2,3.4 KANAŁU i dalej:
//Inicjuje sobie tablice oraz ilość jej elementów:
czytaneDane = new double[channelCount]; //<<-- tablica ma mieć rozmiar "kontenera kanałów"
//teraz w pentelce czytam kazdy kanal po koleii:
for(int i = channelStart; i < channelStart + channelCount; i++)
{
blabla.Read(jakas_wlasciwowsc, out czytaneDane[i]);
}
I tu juz jest big problem bo inicjuje tablice, która jest jednowymiarowa lecz posiada trzy "pola" ale indeksy tej tablicy to 0,1,2 a ja w petli mam zamiar przypisac z mienne do indeksow 2,3,4 i wywala mi aplikacje.
Wiec tu pojawia sie wreszcie moje pytanie czy moge zasugerowac konstruktorowi tablicy ze ma numerowac od podanej przezem,nie wartosci a nie od "0"? Wtedy bedzie mi łatwo się odwoływac bo nie bede musial kombinować jak przypisac kanaly do tablicy tak zeby pasowalo np:
double ch5 = czytaneDane[0];
Bo to juz by sie mijalo zupełnie z celem.
Pozdrawiam
Oskar