finished to implement new JSON API, everything seems to work fine, but there are still some crashes and bugs
This commit is contained in:
parent
3cea0af9b5
commit
88cf8a4328
6 changed files with 28 additions and 101 deletions
|
@ -106,6 +106,8 @@ public slots:
|
||||||
|
|
||||||
Q_INVOKABLE QVariantMap sendCommand(int header, QJsonValue data);
|
Q_INVOKABLE QVariantMap sendCommand(int header, QJsonValue data);
|
||||||
|
|
||||||
|
Q_INVOKABLE int writeRemoteSetting(QString key, QString value);
|
||||||
|
|
||||||
Q_INVOKABLE bool refreshConnections();
|
Q_INVOKABLE bool refreshConnections();
|
||||||
|
|
||||||
void refreshTimers();
|
void refreshTimers();
|
||||||
|
|
|
@ -270,35 +270,29 @@ Popup {
|
||||||
property string title: "Autostart"
|
property string title: "Autostart"
|
||||||
property int delegateHeight: height*0.18
|
property int delegateHeight: height*0.18
|
||||||
|
|
||||||
function updateSett(key, val, del){
|
function updateSetting(key, val, del){
|
||||||
del.enabled = false
|
del.enabled = false
|
||||||
_cppAppSettings.writeSetting(key, val)
|
|
||||||
if(baseConn.state === "connected"){
|
if(baseConn.state === "connected"){
|
||||||
switch(key){
|
baseConn.writeRemoteSetting(key, val)
|
||||||
case "ready_en":
|
|
||||||
key = "READY_EN"
|
|
||||||
break
|
|
||||||
case "ready_delay":
|
|
||||||
key = "READY_DELAY"
|
|
||||||
break
|
|
||||||
case "at_marks_en":
|
|
||||||
key = "AT_MARKS_EN"
|
|
||||||
break
|
|
||||||
case "at_marks_delay":
|
|
||||||
key = "AT_MARKS_DELAY"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
baseConn.sendCommand(3000, [key, val])
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
_cppAppSettings.writeSetting(key, val)
|
||||||
|
}
|
||||||
|
|
||||||
del.enabled = true
|
del.enabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadSetting(key, del){
|
function loadSetting(key, del){
|
||||||
del.enabled = false
|
del.enabled = false
|
||||||
var val = _cppAppSettings.loadSetting(key)
|
var val
|
||||||
if(baseConn.state === "connected"){
|
if(baseConn.state === "connected"){
|
||||||
val = baseConn.sendCommand(3001, key)["data"]
|
val = baseConn.sendCommand(3001, key)["data"]
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
val = _cppAppSettings.loadSetting(key)
|
||||||
|
}
|
||||||
|
|
||||||
del.enabled = true
|
del.enabled = true
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
@ -319,7 +313,7 @@ Popup {
|
||||||
font.pixelSize: options_stack.text_pixelSize
|
font.pixelSize: options_stack.text_pixelSize
|
||||||
|
|
||||||
onCheckedChanged: {
|
onCheckedChanged: {
|
||||||
parent.updateSett("ready_en",checked, ready_del)
|
parent.updateSetting("ready_en",checked, ready_del)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,7 +346,7 @@ Popup {
|
||||||
text: autostart_col.loadSetting("ready_delay", ready_del)
|
text: autostart_col.loadSetting("ready_delay", ready_del)
|
||||||
|
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
autostart_col.updateSett("ready_delay", text, ready_delay_del)
|
autostart_col.updateSetting("ready_delay", text, ready_delay_del)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -373,7 +367,7 @@ Popup {
|
||||||
font.pixelSize: options_stack.text_pixelSize
|
font.pixelSize: options_stack.text_pixelSize
|
||||||
|
|
||||||
onCheckedChanged: {
|
onCheckedChanged: {
|
||||||
parent.updateSett("at_marks_en",at_marks_del.checked, at_marks_del)
|
parent.updateSetting("at_marks_en",at_marks_del.checked, at_marks_del)
|
||||||
}
|
}
|
||||||
|
|
||||||
indicator: SimpleIndicator{}
|
indicator: SimpleIndicator{}
|
||||||
|
@ -406,7 +400,7 @@ Popup {
|
||||||
text: autostart_col.loadSetting("at_marks_delay", ready_del)
|
text: autostart_col.loadSetting("at_marks_delay", ready_del)
|
||||||
|
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
autostart_col.updateSett("at_marks_delay",text, at_marks_delay_del)
|
autostart_col.updateSetting("at_marks_delay",text, at_marks_delay_del)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
76
qml/main.qml
76
qml/main.qml
|
@ -119,7 +119,7 @@ Window {
|
||||||
|
|
||||||
BaseStationConn {
|
BaseStationConn {
|
||||||
id: baseConn
|
id: baseConn
|
||||||
ipAdress: "localhost"
|
ipAdress: "192.168.4.1"
|
||||||
|
|
||||||
property var status: {'status': baseConn.state, 'progress': baseConn.progress, 'connections': baseConn.connections}
|
property var status: {'status': baseConn.state, 'progress': baseConn.progress, 'connections': baseConn.connections}
|
||||||
|
|
||||||
|
@ -138,79 +138,9 @@ Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
onNextRemoteActionDelayProgChanged: {
|
onNextRemoteActionDelayProgChanged: {
|
||||||
console.log(nextRemoteActionDelayProg)
|
|
||||||
prog.progress = baseConn.nextRemoteActionDelayProg * 100
|
prog.progress = baseConn.nextRemoteActionDelayProg * 100
|
||||||
console.log(prog.progress)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: baseRefreshTimer
|
|
||||||
running: false
|
|
||||||
repeat: false
|
|
||||||
|
|
||||||
interval: 1
|
|
||||||
onTriggered: {
|
|
||||||
switch(root.state){
|
|
||||||
case "RUNNING":
|
|
||||||
var baseReactTime = parseInt(baseConn.sendCommand("GET_REACTTIME"))
|
|
||||||
console.log(baseReactTime)
|
|
||||||
if(baseReactTime !== 0){
|
|
||||||
root.last_run.react_time = baseReactTime
|
|
||||||
}
|
|
||||||
timer_1.text = baseConn.getTime("readable") + " sec"
|
|
||||||
if(baseConn.sendCommand("GET_TIMER_STATE") === "STOPPED"){
|
|
||||||
root.stop("manual")
|
|
||||||
}
|
|
||||||
break
|
|
||||||
case "STARTING":
|
|
||||||
var baseReactTime = parseInt(baseConn.sendCommand("GET_REACTTIME"))
|
|
||||||
if(baseReactTime !== 0){
|
|
||||||
root.last_run.react_time = baseReactTime
|
|
||||||
}
|
|
||||||
|
|
||||||
var baseNextAction = baseConn.sendCommand("GET_NEXT_ACTION")
|
|
||||||
|
|
||||||
if(baseNextAction === "at_marks"){
|
|
||||||
timer_1.text = qsTr("at your\nmarks")
|
|
||||||
var baseNextActionDelay = parseFloat(baseConn.sendCommand("GET_NEXT_ACTION_DELAY_PROG"))
|
|
||||||
prog.progress = baseNextActionDelay * 100
|
|
||||||
}
|
|
||||||
else if(baseNextAction === "ready"){
|
|
||||||
timer_1.text = qsTr("ready")
|
|
||||||
var baseNextActionDelay = parseFloat(baseConn.sendCommand("GET_NEXT_ACTION_DELAY_PROG"))
|
|
||||||
prog.progress = baseNextActionDelay * 100
|
|
||||||
}
|
|
||||||
else if(baseNextAction === "start"){
|
|
||||||
timer_1.text = "0.000 sec"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var baseState = baseConn.sendCommand("GET_TIMER_STATE")
|
|
||||||
console.log(baseState)
|
|
||||||
if(baseState === "RUNNING"){
|
|
||||||
timer_1.start(1)
|
|
||||||
root.state = "RUNNING";
|
|
||||||
}
|
|
||||||
else if(baseState === "STOPPED"){
|
|
||||||
var baseReactTime = parseInt(baseConn.sendCommand("GET_REACTTIME"))
|
|
||||||
if(baseReactTime<0){
|
|
||||||
root.stop("false")
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
root.stop("cancel")
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
root.state = "STOPPED"
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
start()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -338,7 +268,6 @@ Window {
|
||||||
text: "0.000 sec"
|
text: "0.000 sec"
|
||||||
|
|
||||||
onStateChanged: {
|
onStateChanged: {
|
||||||
console.log(newState)
|
|
||||||
root.state = timer_1.getState()
|
root.state = timer_1.getState()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -488,7 +417,7 @@ Window {
|
||||||
:(360/100) * progress
|
:(360/100) * progress
|
||||||
colorCircle: "grey"
|
colorCircle: "grey"
|
||||||
onProgressChanged: {
|
onProgressChanged: {
|
||||||
console.log(progress)
|
//console.log(progress)
|
||||||
}
|
}
|
||||||
|
|
||||||
animationDuration: baseConn.state === "connected" ? 150:0
|
animationDuration: baseConn.state === "connected" ? 150:0
|
||||||
|
@ -499,7 +428,6 @@ Window {
|
||||||
interval: 1
|
interval: 1
|
||||||
repeat: false
|
repeat: false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
console.log("prog refresh timer")
|
|
||||||
prog.arcEnd = 360 * (( next_actionTimer.interval - ( new Date().getTime() - next_actionTimer.started_at ) ) / next_actionTimer.interval)
|
prog.arcEnd = 360 * (( next_actionTimer.interval - ( new Date().getTime() - next_actionTimer.started_at ) ) / next_actionTimer.interval)
|
||||||
prog_refresh.start()
|
prog_refresh.start()
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,9 +223,12 @@ void BaseConn::readyRead() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----Functions to control the local stopwatch-----*/
|
int BaseConn::writeRemoteSetting(QString key, QString value) {
|
||||||
|
QJsonArray requestData;
|
||||||
|
requestData.append(key);
|
||||||
|
requestData.append(value);
|
||||||
|
return this->sendCommand(3000, requestData)["status"].toInt();
|
||||||
|
}
|
||||||
|
|
||||||
void BaseConn::refreshTimers(){
|
void BaseConn::refreshTimers(){
|
||||||
if(this->state != "connected"){
|
if(this->state != "connected"){
|
||||||
|
@ -412,6 +415,7 @@ bool BaseConn::refreshConnections() {
|
||||||
|
|
||||||
if(reply["status"] != 200){
|
if(reply["status"] != 200){
|
||||||
//handle Error!!
|
//handle Error!!
|
||||||
|
qDebug() << "+--- error refreshing connections: " << reply["status"];
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
connections = reply["data"].toString().split("|||");
|
connections = reply["data"].toString().split("|||");
|
||||||
|
|
|
@ -83,7 +83,7 @@ void SpeedTimer::reset(){
|
||||||
|
|
||||||
void SpeedTimer::setState(timerState newState){
|
void SpeedTimer::setState(timerState newState){
|
||||||
this->state = newState;
|
this->state = newState;
|
||||||
qDebug() << "timer state changed: " << newState;
|
qDebug() << "+--- timer state changed: " << newState;
|
||||||
emit this->stateChanged(newState);
|
emit this->stateChanged(newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,6 @@ QString SpeedTimerQmlAdapter::getState(){
|
||||||
void SpeedTimerQmlAdapter::setState(SpeedTimer::timerState newState){
|
void SpeedTimerQmlAdapter::setState(SpeedTimer::timerState newState){
|
||||||
|
|
||||||
this->state = newState;
|
this->state = newState;
|
||||||
qDebug() << "tmer state changed: " << newState;
|
|
||||||
emit this->stateChanged(newState);
|
emit this->stateChanged(newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue