mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-02-15 17:36:59 +01:00
implemented upload protocol 1.2
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Sonoff NSPanel Lovelance UI Serial Protocol driver by joBr99 + nextion upload protocol implementation using http range and tcpclient
|
# Sonoff NSPanel Lovelance UI Serial Protocol driver by joBr99 + nextion upload protocol 1.2 (test fast one yay) implementation using http range and tcpclient
|
||||||
# based on;
|
# based on;
|
||||||
# Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
|
# Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
|
||||||
|
|
||||||
@@ -108,6 +108,7 @@ class Nextion : Driver
|
|||||||
var ser
|
var ser
|
||||||
var flash_size
|
var flash_size
|
||||||
var flash_mode
|
var flash_mode
|
||||||
|
var flash_skip
|
||||||
var flash_current_byte
|
var flash_current_byte
|
||||||
var tftd
|
var tftd
|
||||||
var progress_percentage_last
|
var progress_percentage_last
|
||||||
@@ -117,6 +118,7 @@ class Nextion : Driver
|
|||||||
log("NSP: Initializing Driver")
|
log("NSP: Initializing Driver")
|
||||||
self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
|
self.ser = serial(17, 16, 115200, serial.SERIAL_8N1)
|
||||||
self.flash_mode = 0
|
self.flash_mode = 0
|
||||||
|
self.flash_skip = false
|
||||||
tasmota.add_driver(self)
|
tasmota.add_driver(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -235,19 +237,8 @@ class Nextion : Driver
|
|||||||
return chunk.size()
|
return chunk.size()
|
||||||
end
|
end
|
||||||
|
|
||||||
def every_100ms()
|
def flash_nextion()
|
||||||
import string
|
import string
|
||||||
if self.ser.available() > 0
|
|
||||||
var msg = self.ser.read()
|
|
||||||
if size(msg) > 0
|
|
||||||
print("NSP: Received Raw =", msg)
|
|
||||||
if (self.flash_mode==1)
|
|
||||||
var str = msg[0..-4].asstring()
|
|
||||||
log(str, 3)
|
|
||||||
if (string.find(str,"comok 2")==0)
|
|
||||||
self.sendnx(string.format("whmi-wri %d,115200,res0",self.flash_size))
|
|
||||||
elif (size(msg)==1 && msg[0]==0x05)
|
|
||||||
print("rec 0x05")
|
|
||||||
var x = self.write_chunk(self.flash_current_byte)
|
var x = self.write_chunk(self.flash_current_byte)
|
||||||
self.flash_current_byte = self.flash_current_byte + x
|
self.flash_current_byte = self.flash_current_byte + x
|
||||||
var progress_percentage = (self.flash_current_byte*100/self.flash_size)
|
var progress_percentage = (self.flash_current_byte*100/self.flash_size)
|
||||||
@@ -262,6 +253,31 @@ class Nextion : Driver
|
|||||||
end
|
end
|
||||||
tasmota.yield()
|
tasmota.yield()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def every_100ms()
|
||||||
|
import string
|
||||||
|
if self.ser.available() > 0
|
||||||
|
var msg = self.ser.read()
|
||||||
|
if size(msg) > 0
|
||||||
|
print("NSP: Received Raw =", msg)
|
||||||
|
if (self.flash_mode==1)
|
||||||
|
var str = msg[0..-4].asstring()
|
||||||
|
log(str, 3)
|
||||||
|
if (string.find(str,"comok 2")==0)
|
||||||
|
self.sendnx(string.format("whmi-wris %d,115200,1",self.flash_size))
|
||||||
|
|
||||||
|
elif (size(msg)==1 && msg[0]==0x08)
|
||||||
|
self.flash_skip = true
|
||||||
|
print("rec 0x08")
|
||||||
|
elif (size(msg)==4 && self.flash_skip)
|
||||||
|
var skip_to_byte = msg[0..4].get(0,4)
|
||||||
|
print("skip to ", skip_to_byte)
|
||||||
|
self.flash_current_byte = skip_to_byte
|
||||||
|
self.flash_nextion()
|
||||||
|
elif (size(msg)==1 && msg[0]==0x05)
|
||||||
|
print("rec 0x05")
|
||||||
|
self.flash_nextion()
|
||||||
|
end
|
||||||
else
|
else
|
||||||
# Recive messages using custom protocol 55 BB [payload length] [payload] [crc] [crc]
|
# Recive messages using custom protocol 55 BB [payload length] [payload] [crc] [crc]
|
||||||
if msg[0..1] == self.header
|
if msg[0..1] == self.header
|
||||||
|
|||||||
Reference in New Issue
Block a user