edip 240 Kategorie: Programmierung (von Heribert - 5.06.2006 20:20) | ||
| ||
Hallo , hmm ich probiere gerade mehrere edip über ein thread anzusteuern. Bisher habe ich für jedes edip ein eigenes thread gestartet. Aber ich bekomme es nicht ans rennen. mal ein kleiner Auszug über die Ansteuerung eines Displays. edip.RxBuffer Display1; thread start {byte i,a,x; string s,l; display=32; // Display-Adresse var.Anzeige =9 ; edip.enableScreen (display,1); edip.setLight (display,1); run schaltuhr.timer; edip.dimmLight(display, 50); edip.setCursor(display, 0); edip.enableTerminal(display,1); edip.clrScreen(0); edip.FF(0); edip.setTouchKeyAction (display,1,1); byte t[24]; int r; loop { timedate(s); if second!=system.second() {edip.setFont (display,3);sleep 50; edip.setTextMode(display,5);sleep 50; edip.text(display,0,26,2,s); second=system.second(); } r=edip.receiveframe(display,Display1); if var.Anzeige ==1 anzeige.Kist (display); else if var.Anzeige ==2 anzeige.Sist (display); else if var.Anzeige ==3 anzeige.SWist (display); else if var.Anzeige ==4 ; else if var.Anzeige ==5 anzeige.ASollIstK (display); else if var.Anzeige ==6 anzeige.betrieb (display); else if var.Anzeige ==7 anzeige.oel (display); else if var.Anzeige ==9 anzeige.ver (display); if var.DspFlag == 0 {edip.setLight (display,0);edip.setTouchFrame (display,0); edip.areaClear (display,0,0,240,128);edip.touchKey (display,0,0,190,120,5,0,0,""); edip.enableScreen (display,0);var.DspFlag =0xFF;} do {a=edip.getRxData(Display1,t); if a<255 and a {if t[0]=='A' {reset schaltuhr.timer;run schaltuhr.timer; if t[2]==5 {edip.removeTouch(display,5,1); var.Anzeige =9;edip.enableScreen (display,1); edip.setLight (display,1);} if t[2]==20 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige =1;} if t[2]==21 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige =1;} if t[2]==22 {TLoeschen (20);edip.runMakro (display,3);UMenue (0,21,22,23,22); var.Anzeige =0;} etc......... }}} while a<255 and a;}} folgendes habe ich mal probiert ab es geht so leider nicht. edip.RxBuffer Display[2]; thread start {byte i,a,x,o; string s,l; run schaltuhr.timer; for o=0...1 {display=32+o; // Display-Adresse var.Anzeige[o] =9 ; edip.enableScreen (display,1); edip.setLight (display,1); edip.dimmLight(display, 50); edip.setCursor(display, 0); edip.enableTerminal(display,1); edip.clrScreen(display); edip.FF(display); edip.setTouchKeyAction (display,1,1);} byte t[24]; int r; loop {for o=0...1 {display=32+o; timedate(s); if second!=system.second() {edip.setFont (display,3);sleep 50; edip.setTextMode(display,5);sleep 50; edip.text(display,0,26,2,s); second=system.second(); } r=edip.receiveframe(display,Display[o]); if var.Anzeige[o] ==1 anzeige.Kist (display); else if var.Anzeige[o] ==2 anzeige.Sist (display); else if var.Anzeige[o] ==3 anzeige.SWist (display); else if var.Anzeige[o] ==4 ; else if var.Anzeige[o] ==5 anzeige.ASollIstK (display); else if var.Anzeige[o] ==6 anzeige.betrieb (display); else if var.Anzeige[o] ==7 anzeige.oel (display); else if var.Anzeige[o] ==9 {anzeige.ver (display);var.Anzeige[o] =0;} if var.DspFlag[o] == 0 {edip.setLight (display,0);edip.setTouchFrame (display,0); edip.areaClear (display,0,0,240,128);edip.touchKey (display,0,0,190,120,5,0,0,""); edip.enableScreen (display,0);var.DspFlag[o] =0xFF;} do { a=edip.getRxData(Display[o],t); if a<255 and a { if t[0]=='A' {reset schaltuhr.timer;run schaltuhr.timer; if t[2]==5 {edip.removeTouch(display,5,1); var.Anzeige[o] =9;edip.enableScreen (display,1); edip.setLight (display,1);} if t[2]==20 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige[o] =1;} if t[2]==21 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige[o] =1;} etc......... }}} while a<255 and a;}}} Hat event. jemand einen Tipp für mich. Mfg Heribert | ||
Antwort schreiben Antworten: Re: edip 240 (von Heribert - 8.06.2006 9:12) |