Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: type mismatch??? Kategorie: Programmierung (von Johannes - 20.12.2003 14:45)
Als Antwort auf Re: type mismatch??? von Johannes - 20.12.2003 14:24

So, ich poste hier nochmal den ganzen Code:


type Commands {
  string command;
  long param1;
  long param2;
  long param3;
  long param4;
}

Commands COMDATA;

function Split(string e, byte d, string r[]) {
  int a;
  int newindex;
      newindex = 0;
  int last;
      last = -1;
  int strlegth;
  for a = 0...30 {
    byte c;
    strx.mid(e,c,a,1);
    if c == d {
     strlegth = (a) - (last + 1);
     strx.mid(e,r[newindex],last + 1,strlegth);
     newindex = newindex + 1;
     last = a;
    }
  }
}

function Send(string data) {
  int length;
  length = str.length(data);
  hwcom.send (data, length);
}

function pReceiveByte(byte Buf[]) returns int {
  int a;
  for a=0...19
  { Buf[a] = 0; }
  int returnval;
  returnval = hwcom.receive(Buf, 20, 0);
  return returnval;
}

function pReceive(string data) returns int {
  int a;
  byte Buf[19];
  int returnval;
  returnval = pReceiveByte(Buf);
  data = "";
  for a=0...19
  { str.putchar(data, Buf[a]); }
  return returnval;
}

function GotAnswer(string term) returns int {
  return strx.comp(term, COMDATA.command);
  lcdext.clear();
  lcdext.print(COMDATA.command);  // <- "TYPE MISMATCH"
  COMDATA.command = "";
  COMDATA.param1 = 0;
  COMDATA.param2 = 0;
  COMDATA.param3 = 0;
  COMDATA.param4 = 0;
}

thread Inbox {
  string rawdata;
  string dataset[29];
  int datalength;
  datalength = pReceive(rawdata);
  if datalength > 0 {
    Split(rawdata,32,dataset);
    COMDATA.command = dataset[0];
    COMDATA.param1 = strx.getNum(dataset[1]);
    COMDATA.param2 = strx.getNum(dataset[2]);
    COMDATA.param3 = strx.getNum(dataset[3]);
    COMDATA.param4 = strx.getNum(dataset[4]);
  }
}


thread main {
  lcdext.init();
  hwcom.init();
  hwcom.setspeed (8);

  run Inbox;

  Send("?sdn 53 26");
  wait GotAnswer("!sdn");
  Send("?soe 40 46");
  wait GotAnswer("!soe");

  loop { }
}


Der Code macht noch nicht das, was er soll... aber ich würde von euch gerne wissen, warum an
markierter Stelle "type mismatch" gemeldet wird.

Ich hoffe ihr könnt mir helfen.

Das Programm braucht
hwcom
strx
lcdext

GruÃ?
Johannes


    Antwort schreiben


Antworten:

Re: type mismatch??? (von André H. - 20.12.2003 14:58)
    Re: type mismatch??? (von Johannes - 20.12.2003 18:30)
        Re: type mismatch??? (von Johannes - 20.12.2003 18:55)
            Re: type mismatch??? (von André H. - 21.12.2003 12:06)
                Re: type mismatch??? (von Johannes - 21.12.2003 12:43)