Skip to content
Snippets Groups Projects
Commit c7e095a3 authored by Strasser, Andreas's avatar Strasser, Andreas
Browse files

implemented response payload

parent 92d621da
No related branches found
No related tags found
No related merge requests found
...@@ -108,6 +108,7 @@ end ...@@ -108,6 +108,7 @@ end
class NBIoTProcedure class NBIoTProcedure
var ser var ser
var request var request
var response
var debug var debug
var done var done
var aborted var aborted
...@@ -117,6 +118,7 @@ class NBIoTProcedure ...@@ -117,6 +118,7 @@ class NBIoTProcedure
def init(ser, request) def init(ser, request)
self.ser = ser self.ser = ser
self.request = request self.request = request
self.response = nil
self.debug = false self.debug = false
self.done = false self.done = false
self.aborted = false self.aborted = false
...@@ -351,7 +353,7 @@ class NBIoTNTPProcedure : NBIoTProcedure ...@@ -351,7 +353,7 @@ class NBIoTNTPProcedure : NBIoTProcedure
self.cmd_ntp = NBIoTCommand('AT+QNTP=1,\"0.at.pool.ntp.org\"\r\n', '+QNTP: 0', 10) self.cmd_ntp = NBIoTCommand('AT+QNTP=1,\"0.at.pool.ntp.org\"\r\n', '+QNTP: 0', 10)
end end
def set_system_time(rsp) def extract_timestamp(rsp)
var rsp_args = string.split(rsp, '\"') var rsp_args = string.split(rsp, '\"')
var timestamp = nil var timestamp = nil
...@@ -363,7 +365,7 @@ class NBIoTNTPProcedure : NBIoTProcedure ...@@ -363,7 +365,7 @@ class NBIoTNTPProcedure : NBIoTProcedure
end end
end end
tasmota.cmd('time ' + str(timestamp['epoch'] + 3600)) # UTC + 1 return timestamp['epoch'] + 3600 # UTC + 1
end end
def execute() def execute()
...@@ -374,7 +376,7 @@ class NBIoTNTPProcedure : NBIoTProcedure ...@@ -374,7 +376,7 @@ class NBIoTNTPProcedure : NBIoTProcedure
var rsp = self.fetch_read_rsp_if_contains_expected_rsp_or_send('+QNTP: 0', 'AT+QNTP=1,\"0.at.pool.ntp.org\"\r\n') var rsp = self.fetch_read_rsp_if_contains_expected_rsp_or_send('+QNTP: 0', 'AT+QNTP=1,\"0.at.pool.ntp.org\"\r\n')
if rsp != nil if rsp != nil
self.set_system_time(rsp) self.response = self.extract_timestamp(rsp)
self.done = true self.done = true
end end
...@@ -421,13 +423,19 @@ class NBIoTDriver ...@@ -421,13 +423,19 @@ class NBIoTDriver
self.request_queue.push(request) self.request_queue.push(request)
end end
def init_procedure(procedure) def start_procedure(procedure)
self.procedure = procedure self.procedure = procedure
end end
def finish_procedure(done) def finish_procedure(aborted)
if self.procedure.request != nil && self.procedure.request.callback != nil if self.procedure.request != nil && self.procedure.request.callback != nil
self.procedure.request.callback(done, nil) var error_code = 0
if aborted
error_code = -1
end
self.procedure.request.callback(error_code, self.procedure.response)
end end
self.procedure = nil self.procedure = nil
...@@ -453,13 +461,13 @@ class NBIoTDriver ...@@ -453,13 +461,13 @@ class NBIoTDriver
self.next_state(NBIoTDriverState.RESET) self.next_state(NBIoTDriverState.RESET)
elif self.state == NBIoTDriverState.RESET elif self.state == NBIoTDriverState.RESET
if self.procedure == nil if self.procedure == nil
self.init_procedure(NBIoTResetProcedure(self.ser)) self.start_procedure(NBIoTResetProcedure(self.ser))
end end
self.procedure.execute() self.procedure.execute()
if self.procedure.is_done() if self.procedure.is_done()
self.finish_procedure() self.finish_procedure(false)
if self.psm_disabled if self.psm_disabled
self.next_state(NBIoTDriverState.READY) self.next_state(NBIoTDriverState.READY)
...@@ -469,14 +477,14 @@ class NBIoTDriver ...@@ -469,14 +477,14 @@ class NBIoTDriver
end end
elif self.state == NBIoTDriverState.DISABLE_PSM elif self.state == NBIoTDriverState.DISABLE_PSM
if self.procedure == nil if self.procedure == nil
self.init_procedure(NBIoTDisablePSMProcedure(self.ser)) self.start_procedure(NBIoTDisablePSMProcedure(self.ser))
end end
self.procedure.execute() self.procedure.execute()
if self.procedure.is_done() if self.procedure.is_done()
self.psm_disabled = true self.psm_disabled = true
self.finish_procedure() self.finish_procedure(false)
self.next_state(NBIoTDriverState.READY) self.next_state(NBIoTDriverState.READY)
end end
elif self.state == NBIoTDriverState.READY elif self.state == NBIoTDriverState.READY
...@@ -501,7 +509,7 @@ class NBIoTDriver ...@@ -501,7 +509,7 @@ class NBIoTDriver
end end
if procedure != nil if procedure != nil
self.init_procedure(procedure) self.start_procedure(procedure)
self.next_state(NBIoTDriverState.BUSY) self.next_state(NBIoTDriverState.BUSY)
end end
end end
...@@ -513,7 +521,7 @@ class NBIoTDriver ...@@ -513,7 +521,7 @@ class NBIoTDriver
tasmota.log(string.format('NBT: Exceeded retries at command %s, discarding request', cmd), 2) tasmota.log(string.format('NBT: Exceeded retries at command %s, discarding request', cmd), 2)
end end
self.finish_procedure(self.procedure.is_done()) self.finish_procedure(self.procedure.is_aborted())
self.next_state(NBIoTDriverState.READY) self.next_state(NBIoTDriverState.READY)
else else
self.procedure.execute() self.procedure.execute()
...@@ -553,8 +561,8 @@ nbiot.init = def (m) ...@@ -553,8 +561,8 @@ nbiot.init = def (m)
self._driver.queue_request(request) self._driver.queue_request(request)
end end
def sync_time(callback) def get_timestamp(callback)
var request = NBIoTRequest(callback) var request = NBIoTRequest(NBIoTRequestType.NTP, callback)
self._driver.queue_request(request) self._driver.queue_request(request)
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment