Nextion Display

Datenkonvertierung

  • 1
  • 2
  • 3
  • Seite 2 von 3
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 987
Dabei seit: 09 / 2007
Betreff:

Re: Nextion Display

 · 
Gepostet: 07.02.2018 - 15:57 Uhr  ·  #9
Wo ist denn jetzt der Haken wenn du es weißt , das die Steuerbefehle dazu gehören ?
Wie soll das Display deine "nur" Bytes interpretieren ?
tbegle
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 150
Dabei seit: 01 / 2018
Betreff:

Re: Nextion Display

 · 
Gepostet: 08.02.2018 - 08:34 Uhr  ·  #10
Hallo,

der Vergleich mit meinem Array will nicht klappen - es sollte 'A' oder 'E' rauskommen

NEXTION DISPLAY 3,5" enhaced
const
ToBLE : Array[1..66] of Char =
('E','A',.......................

Next : Array[1..66] of String[4]=
('e051','e061',...............
{-----------------------------------------------------------------------}
var
{ Var Declarations }
{$IDATA}
count,len1,len2,len3 : byte;
nexti : string[7];
// ***************************************************************************
begin
EnableInts; // Interrupt zulassen
// -----------------------------------------------------------------
loop
read(SerInp,nexti);
len1 := length(nexti);
7-e[00][06][01]ÿÿÿ // 7 Zeichen Nextion Ausgabe
7-e[00][05][01]ÿÿÿ // .......................
// writeln(serout,char(13)+char(10)+bytetostr(len1)+'-'+nexti);
nexti := copy(nexti,1,4); // auf 4 Zeichen eingedampft
len2 := length(nexti);
4-e[00][06][01] - 4-e061 // 4/4 Zeichen Vergleich
4-e[00][06][01] - 4-e051

4-e[00][05][01] - 4-e061 // 4/4 Zeichen Vergleich
4-e[00][05][01] - 4-e051

for count := 1 to 2 do
len3 := length(Next[count]);
writeln(serout,bytetostr(len2)+'-'+nexti +' - '+bytetostr(len3)+'-'+next[count]);

// ---------------- gibt weder A noch E aus! --------------------
if nexti = next[count] then // ????
write(serout,char(13)+char(10)+'*'+ToBLE[count]+'*');
endif;
endfor;
endloop;
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1473
Dabei seit: 03 / 2005
Betreff:

Re: Nextion Display

 · 
Gepostet: 08.02.2018 - 10:16 Uhr  ·  #11
e061 <> e[00][06][01]

e061 = e[30][36][31]
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 987
Dabei seit: 09 / 2007
Betreff:

Re: Nextion Display

 · 
Gepostet: 08.02.2018 - 11:05 Uhr  ·  #12
Es fehlt doch der Name des Objekts was die Daten anzeigen soll im Serout ?

Wenn du ein Edit auf dem Display liegen hast mit dem Namen t0. dann musst du dem Txt Property deinen neuen Text zuweisen:

Code

  Writeln(Serout,"t0.txt="+chr(ToBLE[1])+chr(ToBLE[2])....);
  Writeln(Serout,255);  // CMD Ende  
  Writeln(Serout,255); 
  Writeln(Serout,255);


So ähnlich muss das aussehen.
tbegle
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 150
Dabei seit: 01 / 2018
Betreff:

Re: Nextion Display

 · 
Gepostet: 08.02.2018 - 17:39 Uhr  ·  #13
HI,
das ToBLE ist mein Code über Bluetooth Master an Slave meine Küchenlampe! hat mit Nextion nichts zu tun
Es geht um den if Vergleich der nicht klappen will
Gruss
Toni

NEXTION DISPLAY 3,5" enhaced
const
ToBLE : Array[1..66] of Char =
('E','A',.......................

Next : Array[1..66] of String[4]=
('e[00][06][01]','e[00][05][01]',..........'65000601'.....
{-----------------------------------------------------------------------}
var
{ Var Declarations }
{$IDATA}
count,len1,len2,len3 : byte;
nexti : string[7];
// -----------------------------------------------------------------------
begin
EnableInts; // Interrupt zulassen
// -----------------------------------------------------------------
loop
read(SerInp,nexti);
nexti := copy(nexti,1,4);
write(serout,nexti + ' = ' + next[1]);
e[00][06][01] = e[00][06][01] // ok! hatte ich gedacht! aber in hex!

65 00 06 01 3d 65 5b 30 30 5d 5b 30 36 5d 5b 30 e...=e[00][06][0
31 5d

Die ersten 4 Zeichen passen, aber danach? entweder spinnt mein Term Programm oder
ich schön langsam!

for count := 1 to 2 do
if nexti = next[count] then // ????
write(serout,ToBLE[count]); // A od E
endif;
endfor;
endloop;
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 987
Dabei seit: 09 / 2007
Betreff:

Re: Nextion Display

 · 
Gepostet: 08.02.2018 - 19:28 Uhr  ·  #14
Es sah aber danach aus, da SerOut immer gleich ist.

Versuche doch bitte einmal diesen Code Button zu benutzen damit wir überhaupt was lesen können.
tbegle
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 150
Dabei seit: 01 / 2018
Betreff:

Re: Nextion Display

 · 
Gepostet: 10.02.2018 - 18:51 Uhr  ·  #15
[code][i][code]NEXTION DISPLAY 3,5" enhaced
const
ToBLE : Array[1..66] of Char =
('E','A',.......................

Next : Array[1..66] of String[4]=
('e[00][06][01]','e[00][05][01]',..........'65000601'.....
{-----------------------------------------------------------------------}
var
{ Var Declarations }
{$IDATA}
count,len1,len2,len3 : byte;
nexti : string[7];
// -----------------------------------------------------------------------
begin
EnableInts; // Interrupt zulassen
// -----------------------------------------------------------------
loop
read(SerInp,nexti);
nexti := copy(nexti,1,4);
write(serout,nexti + ' = ' + next[1]);
e[00][06][01] = e[00][06][01] // ok! hatte ich gedacht! aber in hex!

65 00 06 01 3d 65 5b 30 30 5d 5b 30 36 5d 5b 30 e...=e[00][06][0
31 5d

Die ersten 4 Zeichen passen, aber danach? entweder spinnt mein Term Programm oder
ich schön langsam!

for count := 1 to 2 do
if nexti = next[count] then // ????
write(serout,ToBLE[count]); // A od E
endif;
endfor;
endloop;[/code]
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Nextion Display

 · 
Gepostet: 10.02.2018 - 19:38 Uhr  ·  #16
Und so wird ein Schuh draus, wenn auch ein seltsamer
Code
NEXTION DISPLAY 3,5" enhaced
const
  ToBLE : Array[1..66] of Char = ('E','A',.......................

  Next : Array[1..66] of String[4]= ('e[00][06][01]','e[00][05][01]',..........'65000601'.....
{-----------------------------------------------------------------------}
var
{ Var Declarations }
{$IDATA}
  count,len1,len2,len3 : byte;
  nexti : string[7];
// -----------------------------------------------------------------------
begin
  EnableInts; // Interrupt zulassen
// -----------------------------------------------------------------
  loop
    read(SerInp,nexti);
    nexti := copy(nexti,1,4);
    write(serout,nexti + ' = ' + next[1]);
    e[00][06][01] = e[00][06][01] // ok! hatte ich gedacht! aber in hex!

   65 00 06 01 3d 65 5b 30 30 5d 5b 30 36 5d 5b 30 e...=e[00][06][031 5d

Die ersten 4 Zeichen passen, aber danach? entweder spinnt mein Term Programm oder
ich schön langsam!

  for count := 1 to 2 do
    if nexti = next[count] then // ????
      write(serout,ToBLE[count]); // A od E
    endif;
  endfor;
endloop;
  • 1
  • 2
  • 3
  • Seite 2 von 3
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 14 · Cache Hits: 14   140   154 · Page-Gen-Time: 0.029099s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI