Nextion Display

Datenkonvertierung

  • 1
  • 2
  • 3
  • Page 2 of 3
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Nextion Display

 · 
Posted: 07.02.2018 - 15:57  ·  #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
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

Re: Nextion Display

 · 
Posted: 08.02.2018 - 08:34  ·  #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
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: Nextion Display

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

e061 = e[30][36][31]
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Nextion Display

 · 
Posted: 08.02.2018 - 11:05  ·  #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
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

Re: Nextion Display

 · 
Posted: 08.02.2018 - 17:39  ·  #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
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Nextion Display

 · 
Posted: 08.02.2018 - 19:28  ·  #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
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

Re: Nextion Display

 · 
Posted: 10.02.2018 - 18:51  ·  #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
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Nextion Display

 · 
Posted: 10.02.2018 - 19:38  ·  #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
  • Page 2 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   137   151 · Page-Gen-Time: 0.02667s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI