face-freq-and-rich-timer
This commit is contained in:
@@ -1905,6 +1905,16 @@ function add_widget() {
|
|||||||
topic_input_div.append(topic_input)
|
topic_input_div.append(topic_input)
|
||||||
topic_input.val("face")
|
topic_input.val("face")
|
||||||
editForm.append(topic_input_div)
|
editForm.append(topic_input_div)
|
||||||
|
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerInterval + '</h5>'))
|
||||||
|
var trigger_interval_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
||||||
|
var trigger_interval = $("<input type='number' step='100' min='1000' max='100000' required class='form-control form-control-user' style='text-align:center'/>")
|
||||||
|
trigger_interval.val(1000)
|
||||||
|
trigger_interval_div.append(trigger_interval)
|
||||||
|
trigger_interval.change(function(){
|
||||||
|
if(trigger_interval.val()<1000)
|
||||||
|
trigger_interval.val(1000)
|
||||||
|
})
|
||||||
|
editForm.append(trigger_interval_div)
|
||||||
var bottomDiv = $('<div style="width:100%;margin-top:15px;display:flex;flex-direction:row;align-items:center;justify-content:space-around"/>')
|
var bottomDiv = $('<div style="width:100%;margin-top:15px;display:flex;flex-direction:row;align-items:center;justify-content:space-around"/>')
|
||||||
var confirmEdit = $('<a class="btn btn-primary btn-circle" style="margin-right:10px;box-shadow:1px 1px 5px #4e73df;"><i class="fa fa-check"></i></a>')
|
var confirmEdit = $('<a class="btn btn-primary btn-circle" style="margin-right:10px;box-shadow:1px 1px 5px #4e73df;"><i class="fa fa-check"></i></a>')
|
||||||
bottomDiv.append(confirmEdit)
|
bottomDiv.append(confirmEdit)
|
||||||
@@ -1914,7 +1924,7 @@ function add_widget() {
|
|||||||
if (getByteLen(topic_input.val()) > 0 && getByteLen(topic_input.val()) < 11)
|
if (getByteLen(topic_input.val()) > 0 && getByteLen(topic_input.val()) < 11)
|
||||||
if (true) {
|
if (true) {
|
||||||
if (countSubstr(grid.html(), 'user-title=\"' + title_input.val() + '\"', false) <= 0) {
|
if (countSubstr(grid.html(), 'user-title=\"' + title_input.val() + '\"', false) <= 0) {
|
||||||
add_face(title_input.val(), topic_input.val(), "")
|
add_face(title_input.val(), topic_input.val(), "[" + trigger_interval.val() + "]")
|
||||||
modifyDia.close().remove()
|
modifyDia.close().remove()
|
||||||
} else
|
} else
|
||||||
showtext(JSLang[lang].sameUnit)
|
showtext(JSLang[lang].sameUnit)
|
||||||
@@ -2711,10 +2721,22 @@ function add_widget() {
|
|||||||
topic_input.val("timer")
|
topic_input.val("timer")
|
||||||
editForm.append(topic_input_div)
|
editForm.append(topic_input_div)
|
||||||
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerMessage + '</h5>'))
|
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerMessage + '</h5>'))
|
||||||
|
var moreButtonDiv = $('<div style="display:flex;flex-direction:row;align-items:center;justify-content:center"></div>')
|
||||||
|
var currTimeBtn = $('<a class="btn btn-sm btn-light" style="margin:1px 4px">实时时间</a>')
|
||||||
|
var ranNumBtn = $('<a class="btn btn-sm btn-light" style="margin:1px 4px">随机整数(1-99)</a>')
|
||||||
|
moreButtonDiv.append(currTimeBtn)
|
||||||
|
moreButtonDiv.append(ranNumBtn)
|
||||||
|
editForm.append(moreButtonDiv)
|
||||||
var message_input_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
var message_input_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
||||||
var message_input = $("<input class='form-control form-control-user' style='text-align:center'/>")
|
var message_input = $("<input class='form-control form-control-user' style='text-align:center'/>")
|
||||||
message_input_div.append(message_input)
|
message_input_div.append(message_input)
|
||||||
editForm.append(message_input_div)
|
editForm.append(message_input_div)
|
||||||
|
currTimeBtn.click(function(){
|
||||||
|
message_input.val("$CURR_TIME$")
|
||||||
|
})
|
||||||
|
ranNumBtn.click(function(){
|
||||||
|
message_input.val("$RAN_NUM$")
|
||||||
|
})
|
||||||
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerInterval + '</h5>'))
|
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerInterval + '</h5>'))
|
||||||
var trigger_interval_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
var trigger_interval_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
||||||
var trigger_interval = $("<input type='number' step='100' min='500' max='100000' required class='form-control form-control-user' style='text-align:center'/>")
|
var trigger_interval = $("<input type='number' step='100' min='500' max='100000' required class='form-control form-control-user' style='text-align:center'/>")
|
||||||
|
|||||||
107
js/widgets.js
107
js/widgets.js
@@ -2410,7 +2410,12 @@ function add_timer(user_title, user_topic, user_content, user_style, title_style
|
|||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
itemdiv.removeClass("triggered")
|
itemdiv.removeClass("triggered")
|
||||||
}, 150)
|
}, 150)
|
||||||
MixIO.publish(triggerTopic, triggerMessage)
|
if(triggerMessage=="$CURR_TIME$")
|
||||||
|
MixIO.publish(triggerTopic, (new Date().getHours() > 10 ? new Date().getHours()+"" : ("0" + new Date().getHours())) +":"+ (new Date().getMinutes() > 10 ? new Date().getMinutes()+"" : ("0" + new Date().getMinutes())) +":"+ (new Date().getSeconds() > 10 ? new Date().getSeconds()+"" : ("0" + new Date().getSeconds())))
|
||||||
|
else if(triggerMessage=="$RAN_NUM$")
|
||||||
|
MixIO.publish(triggerTopic, Math.round(Math.random()*99+1))
|
||||||
|
else
|
||||||
|
MixIO.publish(triggerTopic, triggerMessage)
|
||||||
localTime = localTime + 1
|
localTime = localTime + 1
|
||||||
}
|
}
|
||||||
}, triggerInterval)
|
}, triggerInterval)
|
||||||
@@ -2445,10 +2450,22 @@ function add_timer(user_title, user_topic, user_content, user_style, title_style
|
|||||||
topic_input_div.append(topic_input)
|
topic_input_div.append(topic_input)
|
||||||
editForm.append(topic_input_div)
|
editForm.append(topic_input_div)
|
||||||
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerMessage + '</h5>'))
|
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerMessage + '</h5>'))
|
||||||
|
var moreButtonDiv = $('<div style="display:flex;flex-direction:row;align-items:center;justify-content:center"></div>')
|
||||||
|
var currTimeBtn = $('<a class="btn btn-sm btn-light" style="margin:1px 4px">实时时间</a>')
|
||||||
|
var ranNumBtn = $('<a class="btn btn-sm btn-light" style="margin:1px 4px">随机整数(1-99)</a>')
|
||||||
|
moreButtonDiv.append(currTimeBtn)
|
||||||
|
moreButtonDiv.append(ranNumBtn)
|
||||||
|
editForm.append(moreButtonDiv)
|
||||||
var message_input_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
var message_input_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
||||||
var message_input = $("<input class='form-control form-control-user' style='text-align:center'/>")
|
var message_input = $("<input class='form-control form-control-user' style='text-align:center'/>")
|
||||||
message_input_div.append(message_input)
|
message_input_div.append(message_input)
|
||||||
editForm.append(message_input_div)
|
editForm.append(message_input_div)
|
||||||
|
currTimeBtn.click(function(){
|
||||||
|
message_input.val("$CURR_TIME$")
|
||||||
|
})
|
||||||
|
ranNumBtn.click(function(){
|
||||||
|
message_input.val("$RAN_NUM$")
|
||||||
|
})
|
||||||
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerInterval + '</h5>'))
|
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerInterval + '</h5>'))
|
||||||
var trigger_interval_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
var trigger_interval_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
||||||
var trigger_interval = $("<input type='number' step='100' min='500' max='100000' required class='form-control form-control-user' style='text-align:center'/>")
|
var trigger_interval = $("<input type='number' step='100' min='500' max='100000' required class='form-control form-control-user' style='text-align:center'/>")
|
||||||
@@ -5974,7 +5991,7 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
var user_data = JSON.parse(user_content)
|
var user_data = JSON.parse(user_content)
|
||||||
user_data.push({"name": "", "landmarks": data})
|
user_data.push({"name": "", "landmarks": data})
|
||||||
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
||||||
showtext("人脸数据已保存。ID:" + (user_data.length - 1))
|
showtext("人脸数据已保存。")
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -6073,7 +6090,7 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
user_data.push({"name": name_input.val(), "landmarks": data})
|
user_data.push({"name": name_input.val(), "landmarks": data})
|
||||||
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
||||||
modald.close().remove()
|
modald.close().remove()
|
||||||
showtext("人脸数据已保存。ID:" + (user_data.length - 1))
|
showtext("人脸数据已保存。")
|
||||||
sync_table_info()
|
sync_table_info()
|
||||||
dia.close().remove()
|
dia.close().remove()
|
||||||
}
|
}
|
||||||
@@ -6156,6 +6173,16 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
if (user_content == undefined || user_content == "")
|
if (user_content == undefined || user_content == "")
|
||||||
user_content = "[]"
|
user_content = "[]"
|
||||||
var user_data = JSON.parse(user_content)
|
var user_data = JSON.parse(user_content)
|
||||||
|
var interval = 1000
|
||||||
|
if(user_data.length==0 || user_data[0]["name"])
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
interval = user_data[0]
|
||||||
|
user_data.shift()
|
||||||
|
}
|
||||||
var min_euclidean_distance = 0.4
|
var min_euclidean_distance = 0.4
|
||||||
var min_index = -1
|
var min_index = -1
|
||||||
for (var i = 0; i < user_data.length; i++)
|
for (var i = 0; i < user_data.length; i++)
|
||||||
@@ -6190,9 +6217,12 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
const drawBox = new faceapi.draw.DrawBox(resizedDetections[0].detection.box, {"label":"ID:" + min_index + " Name:" + user_data[min_index]["name"] +" Mouth: " + (isMouthOpen == 1 ? "Open" : "Close")})
|
const drawBox = new faceapi.draw.DrawBox(resizedDetections[0].detection.box, {"label":"ID:" + min_index + " Name:" + user_data[min_index]["name"] +" Mouth: " + (isMouthOpen == 1 ? "Open" : "Close")})
|
||||||
drawBox.draw(canvas[0])
|
drawBox.draw(canvas[0])
|
||||||
}
|
}
|
||||||
if(!lastPublishTime || new Date().getTime() - lastFacePublishTime >= 1000)
|
if(!lastPublishTime || new Date().getTime() - lastFacePublishTime >= interval)
|
||||||
{
|
{
|
||||||
publish(user_topic, JSON.stringify({id: min_index, name: user_data[min_index]["name"], isMouthOpen: isMouthOpen, faceProbability: resizedDetections[0].detection.score.toFixed(3), happy: resizedDetections[0].expressions.happy.toFixed(3), sad: resizedDetections[0].expressions.sad.toFixed(3), angry: resizedDetections[0].expressions.angry.toFixed(3), surprised: resizedDetections[0].expressions.surprised.toFixed(3), disgusted: resizedDetections[0].expressions.disgusted.toFixed(3), fearful: resizedDetections[0].expressions.fearful.toFixed(3)}))
|
if(min_index == -1)
|
||||||
|
publish(user_topic, JSON.stringify({id: min_index, name: "Unknown", isMouthOpen: isMouthOpen, faceProbability: resizedDetections[0].detection.score.toFixed(3), happy: resizedDetections[0].expressions.happy.toFixed(3), sad: resizedDetections[0].expressions.sad.toFixed(3), angry: resizedDetections[0].expressions.angry.toFixed(3), surprised: resizedDetections[0].expressions.surprised.toFixed(3), disgusted: resizedDetections[0].expressions.disgusted.toFixed(3), fearful: resizedDetections[0].expressions.fearful.toFixed(3)}))
|
||||||
|
else
|
||||||
|
publish(user_topic, JSON.stringify({id: min_index, name: user_data[min_index]["name"], isMouthOpen: isMouthOpen, faceProbability: resizedDetections[0].detection.score.toFixed(3), happy: resizedDetections[0].expressions.happy.toFixed(3), sad: resizedDetections[0].expressions.sad.toFixed(3), angry: resizedDetections[0].expressions.angry.toFixed(3), surprised: resizedDetections[0].expressions.surprised.toFixed(3), disgusted: resizedDetections[0].expressions.disgusted.toFixed(3), fearful: resizedDetections[0].expressions.fearful.toFixed(3)}))
|
||||||
lastFacePublishTime = new Date().getTime()
|
lastFacePublishTime = new Date().getTime()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6214,6 +6244,16 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
if (user_content == undefined || user_content == "")
|
if (user_content == undefined || user_content == "")
|
||||||
user_content = "[]"
|
user_content = "[]"
|
||||||
var user_data = JSON.parse(user_content)
|
var user_data = JSON.parse(user_content)
|
||||||
|
var interval = 1000
|
||||||
|
if(user_data.length==0 || user_data[0]["name"])
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
interval = user_data[0]
|
||||||
|
user_data.shift()
|
||||||
|
}
|
||||||
var datafields = [{"name": "ID", "type": "text", "width": 50, "align": "center", "editing": false},
|
var datafields = [{"name": "ID", "type": "text", "width": 50, "align": "center", "editing": false},
|
||||||
{"name": "Name", "type": "text", "width": 100, "align": "center"},
|
{"name": "Name", "type": "text", "width": 100, "align": "center"},
|
||||||
{"type": "control", "width": 50}];
|
{"type": "control", "width": 50}];
|
||||||
@@ -6237,6 +6277,15 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
if (user_content == undefined || user_content == "")
|
if (user_content == undefined || user_content == "")
|
||||||
user_content = "[]"
|
user_content = "[]"
|
||||||
var user_data = JSON.parse(user_content)
|
var user_data = JSON.parse(user_content)
|
||||||
|
if(user_data.length==0 || user_data[0]["name"])
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
interval = user_data[0]
|
||||||
|
user_data.shift()
|
||||||
|
}
|
||||||
var isDel = false
|
var isDel = false
|
||||||
for (var i = 0; i < data.length; i++)
|
for (var i = 0; i < data.length; i++)
|
||||||
{
|
{
|
||||||
@@ -6244,10 +6293,12 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
{
|
{
|
||||||
isDel = true
|
isDel = true
|
||||||
user_data.splice(i, 1)
|
user_data.splice(i, 1)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!isDel)
|
if(!isDel)
|
||||||
user_data.splice(data.length, 1)
|
user_data.splice(data.length, 1)
|
||||||
|
user_data.unshift(interval)
|
||||||
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
||||||
sync_table_info()
|
sync_table_info()
|
||||||
},
|
},
|
||||||
@@ -6257,11 +6308,22 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
if (user_content == undefined || user_content == "")
|
if (user_content == undefined || user_content == "")
|
||||||
user_content = "[]"
|
user_content = "[]"
|
||||||
var user_data = JSON.parse(user_content)
|
var user_data = JSON.parse(user_content)
|
||||||
|
if(user_data.length==0 || user_data[0]["name"])
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
interval = user_data[0]
|
||||||
|
user_data.shift()
|
||||||
|
}
|
||||||
for (var i = 0; i < data.length; i++)
|
for (var i = 0; i < data.length; i++)
|
||||||
{
|
{
|
||||||
user_data[i]["name"] = data[i]["Name"]
|
user_data[i]["name"] = data[i]["Name"]
|
||||||
}
|
}
|
||||||
|
user_data.unshift(interval)
|
||||||
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
title.parent().parent().attr('user-content', JSON.stringify(user_data))
|
||||||
|
sync_table_info()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
allDataTable.on('click', function(event) {
|
allDataTable.on('click', function(event) {
|
||||||
@@ -6310,6 +6372,16 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
var topic_input = $("<input class='form-control form-control-user' style='text-align:center'/>")
|
var topic_input = $("<input class='form-control form-control-user' style='text-align:center'/>")
|
||||||
topic_input_div.append(topic_input)
|
topic_input_div.append(topic_input)
|
||||||
editForm.append(topic_input_div)
|
editForm.append(topic_input_div)
|
||||||
|
editForm.append($('<h5 style="margin-top:15px;text-align:center">' + JSLang[lang].triggerInterval + '</h5>'))
|
||||||
|
var trigger_interval_div = $('<div style="display:flex;flex-direction:row;align-items:center"/>')
|
||||||
|
var trigger_interval = $("<input type='number' step='100' min='1000' max='100000' required class='form-control form-control-user' style='text-align:center'/>")
|
||||||
|
trigger_interval.val(1000)
|
||||||
|
trigger_interval.change(function(){
|
||||||
|
if(trigger_interval.val()<1000)
|
||||||
|
trigger_interval.val(1000)
|
||||||
|
})
|
||||||
|
trigger_interval_div.append(trigger_interval)
|
||||||
|
editForm.append(trigger_interval_div)
|
||||||
var bottomDiv = $('<div style="width:100%;margin-top:15px;display:flex;flex-direction:row;align-items:center;justify-content:space-around"/>')
|
var bottomDiv = $('<div style="width:100%;margin-top:15px;display:flex;flex-direction:row;align-items:center;justify-content:space-around"/>')
|
||||||
var confirmEdit = $('<a class="btn btn-primary btn-circle" style="margin-right:10px;box-shadow:1px 1px 5px #4e73df"><i class="fa fa-check"></i></a>')
|
var confirmEdit = $('<a class="btn btn-primary btn-circle" style="margin-right:10px;box-shadow:1px 1px 5px #4e73df"><i class="fa fa-check"></i></a>')
|
||||||
bottomDiv.append(confirmEdit)
|
bottomDiv.append(confirmEdit)
|
||||||
@@ -6322,7 +6394,21 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
title.parent().parent().attr('user-title', title_input.val())
|
title.parent().parent().attr('user-title', title_input.val())
|
||||||
title.parent().parent().attr('user-topic', topic_input.val())
|
title.parent().parent().attr('user-topic', topic_input.val())
|
||||||
if (title.parent().parent().attr('user-content') == undefined || title.parent().parent().attr('user-content') == "")
|
if (title.parent().parent().attr('user-content') == undefined || title.parent().parent().attr('user-content') == "")
|
||||||
title.parent().parent().attr('user-content', "[]")
|
title.parent().parent().attr('user-content', "[" + trigger_interval.val() + "]")
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var user_content = title.parent().parent().attr('user-content')
|
||||||
|
var user_data = JSON.parse(user_content)
|
||||||
|
if(user_data.length==0 || user_data[0]["name"])
|
||||||
|
{
|
||||||
|
user_data.unshift(trigger_interval.val())
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
user_data[0] = trigger_interval.val()
|
||||||
|
}
|
||||||
|
title.parent().parent().attr("user-content", JSON.stringify(user_data))
|
||||||
|
}
|
||||||
title.text(title_input.val())
|
title.text(title_input.val())
|
||||||
topic.text(topic_input.val())
|
topic.text(topic_input.val())
|
||||||
modifyDia.close()
|
modifyDia.close()
|
||||||
@@ -6377,6 +6463,15 @@ function add_face(user_title, user_topic, user_content, user_style, title_style)
|
|||||||
}
|
}
|
||||||
title_input.val(title.text())
|
title_input.val(title.text())
|
||||||
topic_input.val(topic.text())
|
topic_input.val(topic.text())
|
||||||
|
var user_content_json = JSON.parse(title.parent().parent().attr('user-content'))
|
||||||
|
if(user_content_json.length==0 || user_content_json[0]["name"])
|
||||||
|
{
|
||||||
|
trigger_interval.val(1000)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trigger_interval.val(user_content_json[0])
|
||||||
|
}
|
||||||
if (!d.open)
|
if (!d.open)
|
||||||
{
|
{
|
||||||
d.show(itemdiv[0]);
|
d.show(itemdiv[0]);
|
||||||
|
|||||||
Reference in New Issue
Block a user