123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680 |
- @*
- For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
- *@
- @{
- Layout = null;
- }
- @model Applications.UniversalApi_WebConsole_App.Models.OnlineMonitor.OnlineMonitorInfo
- @{
- int screenWidth = 1280;
- int mainviewHeight = 570;
- int maxNozzleNumberInOnePage = 12;
- int maxNozzlewidth = 176;
- int minNozzlewidth = 129;
- //including the right margin at the end of a row,current display 6 nozzles in one row
- int marginleft = (screenWidth - maxNozzlewidth * 6) / 7;
- int nozzleHeight = 259;
- int margintop = (mainviewHeight - nozzleHeight * 2) / 3;
- int textlableHeight = 34;//人民币未付款图标高度/宽度
- int nozzleImagHeight = 123;
- int lableFontSize = 22;
- int imgPaidHeight = 25;
- int imgPaidWidth = 20;
- int alImgWidth = 44;
- int alImgHeight = 43;
- int headRightHeight = 44;
- int alLogoWidth = 61;
- int smartFuelLogoWidth = 43;
- int alLogoTop = 0;
- //int alLogoTop = headRightHeight + 10;
- string imgPrePath = "/images/onlineMonitor/nozzleView/";
- }
- <script>
- var currentPage = 1;
- var oldPage = currentPage;
- var totalPage = 1;
- var currentView = "AL";
- //var alLogoVisibility = currentView === "AL" ? "hidden" : "visible";
- //var smartFuelLogoVisibility = currentView === "SmartFuel" ? "hidden" : "visible";
- var alLogoVisibility = "hidden";
- var smartFuelLogoVisibility = "hidden";
- var warningNozzles = new Array();
- var alarmNozzles = new Array();
- //Generate AL nozzle view according messages got from mqtt
- function GenerateNozzleView(message) {
- var nozzlesDiv = document.getElementById("nozzles");
- if (nozzlesDiv == null) {
- console.log("nozzles div is null");
- return;
- }
- if (message == null || message.data == null) {
- console.log("Invalid message received for GenerateNozzleView");
- return;
- }
- if (warningNozzles.length > 0) {
- warningNozzles.splice(0,warningNozzles.length);
- }
- if (alarmNozzles.length > 0) {
- alarmNozzles.splice(0,alarmNozzles.length);
- }
- totalPage = Math.ceil(message.data.length / @(maxNozzleNumberInOnePage));// +(message.data.length % (@maxNozzleNumberInOnePage) === 0 ? 0 : 1);
- if (currentPage > totalPage) {
- currentPage = totalPage;
- console.log("configuration changed???");
- }
- message.data.forEach(function(d) {
- if (d.VrState === "WARNING") {
- warningNozzles.push(d.SiteLevelDispenserId);
- } else if (d.VrState === "ALARM") {
- alarmNozzles.push(d.SiteLevelDispenserId);
- }
- });
- var dataLength =
- (message.data.length - @maxNozzleNumberInOnePage * (currentPage - 1)) > @maxNozzleNumberInOnePage
- ? @maxNozzleNumberInOnePage
- : (message.data.length - @maxNozzleNumberInOnePage * (currentPage - 1));
- //test
- //var temp1 = message.data.slice(2,3);
- var temp = message.data.slice(@maxNozzleNumberInOnePage * (currentPage - 1), @maxNozzleNumberInOnePage * (currentPage - 1)+dataLength);
- temp.forEach(function(d) {
- var nozzleDiv = document.createElement("div");
- nozzleDiv.id = "nozzle_" + d.SiteLevelNozzleId;
- nozzleDiv.style =
- "position:relative; float: left;margin-left:"+@marginleft+"px; margin-top:" +@(margintop)+"px; width:" +@(maxNozzlewidth)+"px; height:"+@(nozzleHeight)+"px;";
- var nozzleIdDiv = document.createElement("div");
- nozzleIdDiv.id = "nozzleId_" + d.SiteLevelNozzleId;
- nozzleIdDiv.style =
- "position: relative; float:left;width: 100%; height:"+@(textlableHeight)+"px; text-align: left; font-size: 22px;font-weight: bold";
- nozzleIdDiv.innerHTML = d.SiteLevelNozzleId;
- var nozzleImgDiv = document.createElement("div");
- nozzleImgDiv.id = "nozzleImg_" + d.SiteLevelNozzleId;
- nozzleImgDiv.style = "position: relative; float: left;width: 100%; height:" +@(nozzleImagHeight)+"px; text-align: center;";
- var fuelingStatusIdleVisible = (d.FuelingStatus === "IDLE") ? "visible" : "hidden";
- var fuelingStatusFuellingVisible = (d.FuelingStatus === "FUELING") ? "visible" : "hidden";
- //对于油气回收来说目前只有两个状态IDLE,FUELLING
- var imgIdle = document.createElement("img");
- imgIdle.id = "nozzleImage_Idle_" + d.SiteLevelNozzleId;
- imgIdle.style = "visibility:" + fuelingStatusIdleVisible;
- imgIdle.src = "@(imgPrePath)IDEL.png";
- var imgFuelling = document.createElement("img");
- imgFuelling.id = "nozzleImage_Fuelling_" + d.SiteLevelNozzleId;
- imgFuelling.style = "position: absolute; left: 0px;visibility:"+fuelingStatusFuellingVisible;
- imgFuelling.src = "@(imgPrePath)Fuelling.png";
- var alImgNormalVisible = (d.FuelingStatus === "IDLE" && d.VrState === "NORMAL") ? "visible" : "hidden";
- var alImgWarningVisible = (d.FuelingStatus === "IDLE" && d.VrState ==="WARNING")? "visible" : "hidden";
- var alImgAlarmVisible = (d.FuelingStatus === "IDLE" && d.VrState ==="ALARM")? "visible" : "hidden";
- var alImgDisconnectVisible = (d.FuelingStatus === "IDLE" && d.VrState ==="DISCONNETED")? "visible" : "hidden";
- var imgAlNormal = document.createElement("img");
- imgAlNormal.id = "nozzleALImage_Normal_" + d.SiteLevelNozzleId;
- imgAlNormal.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgNormalVisible+";";
- imgAlNormal.src = "@(imgPrePath)NozzleALNormal.png";
- var imgAlWarning = document.createElement("img");
- imgAlWarning.id = "nozzleALImage_Warning_" + d.SiteLevelNozzleId;
- imgAlWarning.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgWarningVisible+";";
- imgAlWarning.src = "@(imgPrePath)NozzleALWarning.png";
- var imgAlAlarm = document.createElement("img");
- imgAlAlarm.id = "nozzleALImage_Alarm_" + d.SiteLevelNozzleId;
- imgAlAlarm.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgAlarmVisible+";";
- imgAlAlarm.src = "@(imgPrePath)NozzleALAlarm.png";
- var imgAlDisconnect = document.createElement("img");
- imgAlDisconnect.id = "nozzleALImage_Disconnect_" + d.SiteLevelNozzleId;
- imgAlDisconnect.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgDisconnectVisible+";";
- imgAlDisconnect.src = "@(imgPrePath)NozzleALDisconnect.png";
- nozzleImgDiv.appendChild(imgIdle);
- nozzleImgDiv.appendChild(imgFuelling);
- nozzleImgDiv.appendChild(imgAlNormal);
- nozzleImgDiv.appendChild(imgAlWarning);
- nozzleImgDiv.appendChild(imgAlAlarm);
- nozzleImgDiv.appendChild(imgAlDisconnect);
- //油气回收界面只有气(升)、液(加油升数)、汽液比值;现只添加三个div即可
- var nozzleGasDiv = document.createElement("div");
- nozzleGasDiv.id = "nozzleGas_" + d.SiteLevelNozzleId;
- nozzleGasDiv.style = "position: relative; float: left;width: 100%; height:" +@(textlableHeight)+"px; font-size:22px; font-weight: bold;";
- nozzleGasDiv.innerHTML = "气:"+d.VaporVolume;
- var nozzleLiterDiv = document.createElement("div");
- nozzleLiterDiv.id = "nozzleLiter_" + d.SiteLevelNozzleId;
- nozzleLiterDiv.style = "position: relative; float: left;width: 100%; height:" +@(textlableHeight)+"px; font-size:22px; font-weight: bold;";
- nozzleLiterDiv.innerHTML = "升:"+d.LiquidVolume;
- var nozzleAlDiv = document.createElement("div");
- nozzleAlDiv.id = "nozzleAL_" + d.SiteLevelNozzleId;
- nozzleAlDiv.style = "position: relative; float: left;width: 100%; height:" +@(textlableHeight)+"px; font-size:22px; font-weight: bold;";
- nozzleAlDiv.innerHTML = "气液比 "+d.VaporLiquidRatio;
- nozzleDiv.appendChild(nozzleIdDiv);
- nozzleDiv.appendChild(nozzleImgDiv);
- nozzleDiv.appendChild(nozzleGasDiv);
- nozzleDiv.appendChild(nozzleLiterDiv);
- nozzleDiv.appendChild(nozzleAlDiv);
- nozzlesDiv.appendChild(nozzleDiv);
- });
- UpdateHeadMessage();
- UpdateFooterPage();
- }
- function UpdateFooterPage() {
- if (document.getElementById("PumpsPage_Bottom_pages") != null) {
- for (var p = 1; p < 6; p++) {
- var imgCurrentPageIdStr = "PumpsPage_Bottom_pages_img_"+p;
- var imgCurrentPageNotShowedIdStr = "PumpsPage_Bottom_pages_notshowed_img_"+p;
- if (p > totalPage) {
- if (document.getElementById(imgCurrentPageIdStr) != null)
- document.getElementById(imgCurrentPageIdStr).style.visibility = "hidden";
- if (document.getElementById(imgCurrentPageNotShowedIdStr) != null)
- document.getElementById(imgCurrentPageNotShowedIdStr).style.visibility = "hidden";
- } else if (p === currentPage || (p === 5 && totalPage > p)) {
- if (document.getElementById(imgCurrentPageIdStr) != null)
- document.getElementById(imgCurrentPageIdStr).style.visibility = "visible";
- if (document.getElementById(imgCurrentPageNotShowedIdStr) != null)
- document.getElementById(imgCurrentPageNotShowedIdStr).style.visibility = "hidden";
- }else {
- if (document.getElementById(imgCurrentPageIdStr) != null)
- document.getElementById(imgCurrentPageIdStr).style.visibility = "hidden";
- if (document.getElementById(imgCurrentPageNotShowedIdStr) != null)
- document.getElementById(imgCurrentPageNotShowedIdStr).style.visibility = "visible";
- }
- }
- }
- }
- function ClearOldItems() {
- var nozzlesDiv = document.getElementById("nozzles");
- if (nozzlesDiv != null) {
- for (var cl = 1; cl < @(maxNozzleNumberInOnePage+1); cl++) {
- var ocn = document.getElementById("nozzle_" + (cl+@(maxNozzleNumberInOnePage)*(currentPage-1)));
- if (ocn != null) nozzlesDiv.removeChild(ocn);
- }
- }
- }
- function UpdateVrState(message) {
- if (message != null && message.NozzleStatus != null && message.NozzleStatus.data != null) {
- message.NozzleStatus.data.forEach(
- function (d) {
- var nozzleId = d.SiteLevelNozzleId;
- if (!(warningNozzles.indexOf(nozzleId) < 0)) {
- if (d.VrState !== "WARNING")
- warningNozzles.splice(warningNozzles.indexOf(nozzleId), 1);
- } else if (!(alarmNozzles.indexOf(nozzleId) < 0)) {
- if (d.VrState !== "ALARM")
- alarmNozzles.splice(alarmNozzles.indexOf(nozzleId), 1);
- }
- if (d.VrState === "WARNING" && warningNozzles.indexOf(nozzleId)<0) warningNozzles.push(nozzleId);
- else if (d.VrState === "ALARM" && alarmNozzles.indexOf(nozzleId) < 0) alarmNozzles.push(nozzleId);
- var nozzleDiv = document.getElementById("nozzle_" + nozzleId);
- if (nozzleDiv != null) {
- var fuelingStatusIdleVisible = (d.FuelingStatus === "IDLE") ? "visible" : "hidden";
- var fuelingStatusFuellingVisible = (d.FuelingStatus === "FUELING") ? "visible" : "hidden";
- var nozzleImgIdle = document.getElementById("nozzleImage_Idle_" + d.SiteLevelNozzleId);
- var nozzleImgFulling = document.getElementById("nozzleImage_Fuelling_" + d.SiteLevelNozzleId);
- if (nozzleImgIdle != null) nozzleImgIdle.style.visibility = fuelingStatusIdleVisible;
- if (nozzleImgFulling != null) nozzleImgFulling.style.visibility = fuelingStatusFuellingVisible;
- var alImgNormalVisible = (d.FuelingStatus === "IDLE" && d.VrState === "NORMAL") ? "visible" : "hidden";
- var alImgWarningVisible = (d.FuelingStatus === "IDLE" && d.VrState ==="WARNING")? "visible" : "hidden";
- var alImgAlarmVisible = (d.FuelingStatus === "IDLE" && d.VrState ==="ALARM")? "visible" : "hidden";
- var alImgDisconnectVisible = (d.FuelingStatus === "IDLE" && d.VrState === "DISCONNETED") ? "visible" : "hidden";
- if(document.getElementById("nozzleALImage_Normal_"+d.SiteLevelNozzleId)!=null)document.getElementById("nozzleALImage_Normal_"+d.SiteLevelNozzleId).style.visibility=alImgNormalVisible;
- if (document.getElementById("nozzleALImage_Warning_"+d.SiteLevelNozzleId) != null) document.getElementById("nozzleALImage_Warning_"+d.SiteLevelNozzleId).style.visibility =alImgWarningVisible;
- if (document.getElementById("nozzleALImage_Alarm_"+d.SiteLevelNozzleId) != null) document.getElementById("nozzleALImage_Alarm_"+d.SiteLevelNozzleId).style.visibility =alImgAlarmVisible;
- if(document.getElementById("nozzleALImage_Disconnect_"+d.SiteLevelNozzleId)!=null)document.getElementById("nozzleALImage_Disconnect_"+d.SiteLevelNozzleId).style.visibility=alImgDisconnectVisible;
- if (document.getElementById("nozzleGas_" + d.SiteLevelNozzleId) != null)
- document.getElementById("nozzleGas_" + d.SiteLevelNozzleId).innerHTML = "气:" + d.VaporVolume;
- if (document.getElementById("nozzleLiter_" + d.SiteLevelNozzleId) != null)
- document.getElementById("nozzleLiter_" + d.SiteLevelNozzleId).innerHTML = "升:" + d.LiquidVolume;
- if (document.getElementById("nozzleAL_" + d.SiteLevelNozzleId) != null)
- document.getElementById("nozzleAL_" + d.SiteLevelNozzleId).innerHTML = "气液比 " + d.VaporLiquidRatio;
- } else {
- console.log("nozzle:"+nozzleId+" is not exist on web UI");
- }
- });
- UpdateHeadMessage();
- } else {
- console.log("Invalid vr state change envent received");
- }
- }
- //Generate nozzle view for smart fuel
- function GenerateSmartFuelNozzleView(message) {
- var nozzlesDiv = document.getElementById("nozzles");
- @*for (var cl = 0; cl < @maxNozzleNumberInOnePage; cl++) {
- var ocn = document.getElementById("nozzle_" + (cl+@(maxNozzleNumberInOnePage)*(oldPage-1)+1));
- if (ocn != null) nozzlesDiv.removeChild(ocn);
- }*@
- if (nozzlesDiv == null) {
- console.log("nozzles div is null");
- return;
- }
- if (message == null || message.data == null) {
- console.log("Invalid message received for GenerateNozzleView");
- return;
- }
- totalPage = Math.ceil(message.data.length / @(maxNozzleNumberInOnePage));//message.data.length / @(maxNozzleNumberInOnePage)+(message.data.length % (@maxNozzleNumberInOnePage) === 0 ? 0 : 1);
- if (currentPage > totalPage) {
- currentPage = totalPage;
- console.log("configuration changed???");
- }
- var dataLength =
- (message.data.length - @maxNozzleNumberInOnePage * (currentPage - 1)) > @maxNozzleNumberInOnePage
- ? @maxNozzleNumberInOnePage
- : (message.data.length - @maxNozzleNumberInOnePage * (currentPage - 1));
- var temp = message.data.slice(@maxNozzleNumberInOnePage * (currentPage - 1), @maxNozzleNumberInOnePage * (currentPage - 1)+dataLength);
- temp.forEach(function (d) {
- var nozzleId = d.SiteLevelNozzleId;
- var nozzleDiv = document.createElement("div");
- nozzleDiv.id = "nozzle_" + nozzleId;
- nozzleDiv.style =
- "position:relative; float: left;margin-left:"+@marginleft+"px; margin-top:" +@(margintop)+"px; width:" +@(maxNozzlewidth)+"px; height:"+@(nozzleHeight)+"px;";
- var nozzleIdDiv = document.createElement("div");
- nozzleIdDiv.id = "nozzleId_" + nozzleId;
- nozzleIdDiv.style =
- "position: relative; float:left;width: 100%; height:"+@(textlableHeight)+"px; text-align: left; font-size: 22px;font-weight: bold";
- nozzleIdDiv.innerHTML = nozzleId;
- var nozzleImgDiv = document.createElement("div");
- nozzleImgDiv.id = "nozzleImg_" + nozzleId;
- nozzleImgDiv.style = "position: relative; float: left;width: 100%; height:" +@(nozzleImagHeight)+"px; text-align: center;";
- //油枪状态图
- var fuelingStatusIdleVisible = (d.FuelingStatus === "IDLE") ? "visible" : "hidden";
- var fuelingStatusFuellingVisible = (d.FuelingStatus === "FUELING") ? "visible" : "hidden";
- var fuelingStatusCallingVisible = "hidden";
- var fuelingStatusAuthrizedVisible = "hidden";
- var fuelingStatusDisconnectVisible = "hidden";
- var fuelingStatusClosedVisible = "hidden";
- //IDLE,CALLING,AUTHORIZED,FUELLING,DISCONNECT,油枪未连接
- var imgIdle = document.createElement("img");
- imgIdle.id = "nozzleImage_Idle_" + nozzleId;
- imgIdle.style = "visibility:" + fuelingStatusIdleVisible;
- imgIdle.src = "@(imgPrePath)IDEL.png";
- var imgCalling = document.createElement("img");
- imgCalling.id = "nozzleImage_Calling_" + nozzleId;
- imgCalling.style = "position: absolute; top: 0px; left:"+@((maxNozzlewidth-minNozzlewidth)/2)+"px;visibility:" + fuelingStatusCallingVisible+";";
- imgCalling.src ="@(imgPrePath)CALLING.png";
- var imgAuthorized= document.createElement("img");
- imgAuthorized.id = "nozzleImage_Authorized_" + nozzleId;
- imgAuthorized.style = "position: absolute; top: 0px; left:"+@((maxNozzlewidth-minNozzlewidth)/2)+"px;visibility:" + fuelingStatusAuthrizedVisible+";";
- imgAuthorized.src = "@(imgPrePath)Authorize.png";
- var imgFuelling = document.createElement("img");
- imgFuelling.id = "nozzleImage_Fuelling_" + nozzleId;
- imgFuelling.style = "position: absolute; left: 0px;visibility:"+fuelingStatusFuellingVisible;
- imgFuelling.src ="@(imgPrePath)Fuelling.png";
- var imgDisconnect= document.createElement("img");
- imgDisconnect.id = "nozzleImage_Disconnect_" + nozzleId;
- imgDisconnect.style = "position: absolute; top: 0px; left:"+@((maxNozzlewidth-minNozzlewidth)/2)+"px;visibility:" + fuelingStatusDisconnectVisible+";";
- imgDisconnect.src = "@(imgPrePath)Offline.png";
- var imgClosed= document.createElement("img");
- imgClosed.id = "nozzleImage_Closed_" + nozzleId;
- imgClosed.style = "position: absolute; top: 0px; left:"+@((maxNozzlewidth-minNozzlewidth)/2)+"px;visibility:" + fuelingStatusClosedVisible+";";
- imgClosed.src = "@(imgPrePath)Closed.png";
- //加油界面油气回收图标暂时都隐藏,之后根据油气回收的消息更新界面
- var alImgNormalVisible = "hidden";
- var alImgWarningVisible = "hidden";
- var alImgAlarmVisible = "hidden";
- var alImgDisconnectVisible = "hidden";
- var imgAlNormal = document.createElement("img");
- imgAlNormal.id = "nozzleALImage_Normal_" + nozzleId;
- imgAlNormal.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgNormalVisible+";";
- imgAlNormal.src = "@(imgPrePath)NozzleALNormal.png";
- var imgAlWarning = document.createElement("img");
- imgAlWarning.id = "nozzleALImage_Warning_" + nozzleId;
- imgAlWarning.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgWarningVisible+";";
- imgAlWarning.src ="@(imgPrePath)NozzleALWarning.png";
- var imgAlAlarm = document.createElement("img");
- imgAlAlarm.id = "nozzleALImage_Alarm_" + nozzleId;
- imgAlAlarm.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgAlarmVisible+";";
- imgAlAlarm.src = "@(imgPrePath)NozzleALAlarm.png";
- var imgAlDisconnect = document.createElement("img");
- imgAlDisconnect.id = "nozzleALImage_Disconnect_" + nozzleId;
- imgAlDisconnect.style = "position: absolute; top:"+@(nozzleImagHeight-alImgHeight)+"px; left:"+@(maxNozzlewidth-alImgWidth)+"px;visibility:"+alImgDisconnectVisible+";";
- imgAlDisconnect.src = "@(imgPrePath)NozzleALDisconnect.png";
- nozzleImgDiv.appendChild(imgIdle);
- nozzleImgDiv.appendChild(imgCalling);
- nozzleImgDiv.appendChild(imgAuthorized);
- nozzleImgDiv.appendChild(imgFuelling);
- nozzleImgDiv.appendChild(imgDisconnect);
- nozzleImgDiv.appendChild(imgClosed);
- nozzleImgDiv.appendChild(imgAlNormal);
- nozzleImgDiv.appendChild(imgAlWarning);
- nozzleImgDiv.appendChild(imgAlAlarm);
- nozzleImgDiv.appendChild(imgAlDisconnect);
- var imgNotPaidVisible = "visible";
- var imgPaidVisible = "visible";
- var nozzleAmountDiv = document.createElement("div");
- nozzleAmountDiv.id = "nozzleAmount_" + nozzleId;
- nozzleAmountDiv.style = "position: relative; float: left;width: 100%; height:" +@(textlableHeight)+"px;";
- var nozzleAmountImgDiv = document.createElement("div");
- nozzleAmountImgDiv.id = "nozzleAmount_img_"+nozzleId;
- nozzleAmountImgDiv.style = "position: relative;float: left;width:" +@(textlableHeight)+"px; height:100%;";
- var nozzleAmountUnpaidImg = document.createElement("img");
- nozzleAmountUnpaidImg.id = "nozzleAmount_img_Unpaid_" + nozzleId;
- nozzleAmountUnpaidImg.style = "visibility:"+imgNotPaidVisible;
- nozzleAmountUnpaidImg.src = "@(imgPrePath)Payable.png";
- var nozzleAmountPaidImg = document.createElement("img");
- nozzleAmountPaidImg.id = "nozzleAmount_img_Paid_" + nozzleId;
- nozzleAmountPaidImg.style = "position: absolute; top:"+@((textlableHeight-imgPaidHeight)/2)+"px; left:"+@((textlableHeight-imgPaidWidth)/2)+"px;visibility:"+imgPaidVisible+";";
- nozzleAmountPaidImg.src = "@(imgPrePath)Paid.png";
- nozzleAmountImgDiv.appendChild(nozzleAmountUnpaidImg);
- nozzleAmountImgDiv.appendChild(nozzleAmountPaidImg);
- var nozzleAmountValueDiv = document.createElement("div");
- nozzleAmountValueDiv.id = "nozzleAmount_value_" + nozzleId;
- nozzleAmountValueDiv.style = "position: relative;float: left;width:" +@(maxNozzlewidth-textlableHeight)+"px; height:100%;";
- nozzleAmountValueDiv.innerHTML = " :"+"12345.00";
- nozzleAmountDiv.appendChild(nozzleAmountImgDiv);
- nozzleAmountDiv.appendChild(nozzleAmountValueDiv);
- var nozzleAccumulatorTextDiv = document.createElement("div");
- nozzleAccumulatorTextDiv.id = "nozzleAccumulatorText_" + nozzleId;
- nozzleAccumulatorTextDiv.style = "position: relative; float: left;width: 100%; height:" +@(textlableHeight)+"px; font-size:22px; font-weight: bold;";
- nozzleAccumulatorTextDiv.innerHTML = "累计数:";
- var nozzleAccumulatorValueDiv = document.createElement("div");
- nozzleAccumulatorValueDiv.id = "nozzleAccumulatorValue_" + nozzleId;
- nozzleAccumulatorValueDiv.style = "position: relative; float: left;width: 100%; height:" +@(textlableHeight)+"px; font-size:22px; font-weight: bold;";
- nozzleAccumulatorValueDiv.innerHTML = "1234567.0000";
- nozzleDiv.appendChild(nozzleIdDiv);
- nozzleDiv.appendChild(nozzleImgDiv);
- nozzleDiv.appendChild(nozzleAmountDiv);
- nozzleDiv.appendChild(nozzleAccumulatorTextDiv);
- nozzleDiv.appendChild(nozzleAmountValueDiv);
- nozzlesDiv.appendChild(nozzleDiv);
- });
- UpdateFooterPage();
- }
- //Update the message on header
- function UpdateHeadMessage() {
- var pumpsHead = document.getElementById("PumpsPage_Head");
- var normalHead = document.getElementById("PumpsPage_Head_Status_normal");
- var warningHead = document.getElementById("PumpsPage_Head_Status_warning");
- var alarmHead = document.getElementById("PumpsPage_Head_Status_alarm");
- var textSpan = document.getElementById("head_left_text");
- if (pumpsHead == null || normalHead == null || warningHead == null || alarmHead == null || textSpan ==null) {
- return;
- }
- var message = "";
- if (alarmNozzles.length > 0) {
- alarmNozzles.forEach(function(d) {
- message = message+d + ",";
- });
- normalHead.style.visibility = "hidden";
- warningHead.style.visibility = "hidden";
- alarmHead.style.visibility = "visible";
- message = message + "号枪处于报警状态";
- textSpan.style.textAlign = "left";
- textSpan.innerHTML = message;
- return;
- }
- if (warningNozzles.length > 0) {
- warningNozzles.forEach(function(d) {
- message = message+d + ",";
- });
- normalHead.style.visibility = "hidden";
- warningHead.style.visibility = "visible";
- alarmHead.style.visibility = "hidden";
- message = message + "号枪处于预警状态";
- textSpan.style.textAlign = "left";
- textSpan.innerHTML = message;
- return;
- }
- }
- </script>
- <div id="nozzles" style="position: relative; width:@(screenWidth)px; height:@(mainviewHeight)px;">
- @*<div id="nozzles_1" style="position: relative; float: left;margin-left:@(marginleft)px; width:@(maxNozzlewidth)px; height:@(nozzleHeight)px; border: 1px solid #00bfff">
- </div>
- <div id="nozzles_2" style="position: relative; float: left;margin-left:@(marginleft)px; width:@(maxNozzlewidth)px; height:@(nozzleHeight)px; border: 1px solid #00bfff">
- </div>*@
- @* <input type="button" onclick="GenerateView(12)" value="GenerateView" />*@
- @*@for (int i = 0; i < 12; i++)
- {
- <div id="nozzles_@i" style="position:relative; float: left;margin-left:@(marginleft)px; margin-top: @(margintop)px; width: @(maxNozzlewidth)px; height: @(nozzleHeight)px;border: 1px solid #00bfff">
- <div id="nozzleId_@i" style="position: relative; float:left;width: 100%; height: @(textlableHeight)px; text-align: left; font-size: 22px;font-weight: bold">@i</div>
- <div id="nozzleImg_@i" style="position: relative; float: left;width: 100%; height: @(nozzleImagHeight)px; text-align: center">
- <img id="nozzleImage_Idle_@i" src="/image/online/油枪IDEL.png" style="visibility: visible" />
- <img id="nozzleImage_Calling_@i" src="/image/online/油枪CALLING.png" style="position: absolute; top: 0px; left:@((maxNozzlewidth-minNozzlewidth)/2)px;visibility: visible" />
- <img id="nozzleImage_Authorized_@i" src="/image/online/油枪授权.png" style="position: absolute; top: 0px; left:@((maxNozzlewidth-minNozzlewidth)/2)px;visibility: visible" />
- <img id="nozzleImage_Fuelling_@i" src="/image/online/油枪加油中.png" style="position: absolute; left: 0px;visibility: visible" />
- <img id="nozzleImage_Closed_@i" src="/image/online/油枪未连接.png" style="position: absolute; top: 0px; left:@((maxNozzlewidth-minNozzlewidth)/2)px;visibility: visible" />
- <img id="nozzleImage_Disconnect_@i" src="/image/online/油枪断开.png" style="position: absolute; top: 0px; left:@((maxNozzlewidth-minNozzlewidth)/2)px;visibility: visible" />
- <img id="nozzleALImage_Normal_@i" src="/image/online/normal.png" style="position: absolute; top:@(nozzleImagHeight-alImgWidth)px; left:@(maxNozzlewidth-alImgWidth)px;visibility: visible" />
- <img id="nozzleALImage_Warning_@i" src="/image/online/warning.png" style="position: absolute; top:@(nozzleImagHeight-alImgWidth)px; left:@(maxNozzlewidth-alImgWidth)px;visibility: visible" />
- <img id="nozzleALImage_Alarm_@i" src="/image/online/alarm.png" style="position: absolute; top:@(nozzleImagHeight-alImgWidth)px; left:@(maxNozzlewidth-alImgWidth)px;visibility: visible" />
- </div>
- <div id="nozzleAmount_@i" style="position: relative; float: left;width: 100%; height:@(textlableHeight)px; border: 1px solid#00bfff;">
- <div id="nozzleAmount_img_@i" style="position: relative;float: left;width:@(textlableHeight+5)px; height:100%;border: 1px solid#00bfff;">
- <img id="nozzleAmount_img_notPaid_@i" src="/image/online/人民币标志NotPaid.png" />
- <img id="nozzleAmount_img_Paid_@i" src="/image/online/人民币标志已付款.png" style="position: absolute; top:@((textlableHeight-imgPaidHeight)/2)px; left:@((textlableHeight-imgPaidWidth)/2)px;" />
- <span style="position: absolute; left: @(textlableHeight)px; text-align: center;line-height: @(textlableHeight)px; font-size: @(lableFontSize)px; font-weight:bold;">:</span>
- </div>
- <div>
- </div>
- </div>
- <div id="nozzleLiter_@i" style="position: relative; float: left; width: 100%; height:@(textlableHeight)px;font-size: @(lableFontSize)px; font-weight: bold;border: 1px solid#00bfff;">
- <div id="nozzleLiter_img_@i" style="position: relative;float:left;width:@(textlableHeight)px; height:100%;">
- 升:
- </div>
- <div id="nozzleLiter_text_@i" style="position: relative; float: left;">
- 1234.00
- </div>
- </div>
- <div id="nozzleAL_@i" style="position: relative; float: left;width: 100%; height: @(textlableHeight)px; font-size: @(lableFontSize)px; font-weight: bold;border: 1px solid#00bfff;">
- 汽液比 1.3
- </div>
- </div>
- }*@
- </div>
- <img id="ALLogo" src="@(imgPrePath)AL.png" onclick="LogonClicked(this.id)" style="position: absolute; left:@(screenWidth-alLogoWidth-10)px; top:@(alLogoTop)px;visibility:visible;" />
- <img id="SmartFuelLogo" src="@(imgPrePath)SmartFuel.png" onclick="LogonClicked(this.id)" style="position: absolute; left:@(screenWidth-smartFuelLogoWidth-10)px; top:@(alLogoTop)px; visibility: hidden;" />
- <script>
- if (document.getElementById("ALLogo") != null)
- document.getElementById("ALLogo").style.visibility = alLogoVisibility;
- if (document.getElementById("SmartFuelLogo") != null)
- document.getElementById("SmartFuelLogo").style.visibility = smartFuelLogoVisibility;
- </script>
- <script src="~/js/mqtt.min.js"></script>
- <script type="text/javascript">
- var hostname = 'localhost', //'192.168.1.2',
- port = 8384,
- clientId = 'mqttjs_' + (Math.random() * 1000000).toString(),
- timeout = 5000,
- keepAlive = 100,
- cleanSession = false,
- mqttVersion = 3,
- ssl = false;
- //var client = new Paho.MQTT.Client(hostname, port, clientId);
- //client.onConnectionLost = onConnectionLost;//绑定连接断开事件
- //client.onMessageArrived = onMessageArrived;//
- var options = {
- //mqtt客户端的id,这里面应该还可以加上其他参数,具体看官方文档
- clientId: 'mqttjs_' + (Math.random() * 1000000).toString(),
- //invocationContext: {
- // host: hostname,
- // port: port,
- // //path: client.path,
- // mqttVersion:mqttVersion,
- // clientId: clientId
- //},
- //mqttVersion:mqttVersion,
- timeout: timeout,
- //keepAliveInterval: keepAlive,
- //cleanSession: cleanSession,
- useSSL: false
- //onSuccess: onConnect,
- //onFailure: onError
- }
- //浏览器采用websocket协议,host主机地址为192.168.0.200,端口为9001,路径为/mqtt
- var client = mqtt.connect("@Model.mqttConnectionString", options); // you add a ws:// url here
- ////建立连接
- client.on('connect',
- function () {
- var a = document.getElementById("testmqqt");
- if (a != null) a.innerHTML = "connected";
- client.subscribe('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetNozzlesData_reply',
- function (err) {
- if (!err) {
- client.publish('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetNozzlesData', "Hello mqtt");
- };
- });
- client.subscribe('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/event/OnVaporRecoveryStateChange/post',
- function (err) {
- if (!err) {
- console.log("subscribe vr state change event successfully");
- } else {
- console.log("subscribe vr state change event failed" + err);
- }
- });
- });
- //如果连接错误,打印错误
- client.on('error',
- function (err) {
- console.log("error happens, will close the client");
- client.end();
- });
- //如果client订阅主题成功,那么这里就是当接收到自己订阅主题的处理逻辑
- client.on('message',
- function (topic, message) {
- // message is Buffer,此处就是打印消息的具体内容
- //console.log('-> ' + message.toString());
- var a = document.getElementById("testmqqt");
- if (a != null) a.innerHTML = topic;
- if (topic === "/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetConfigAsync_reply") {
- processConfigData(JSON.parse(message.toString()));
- return;
- }
- if (topic === "/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetNozzlesData_reply") {
- ClearOldItems();
- GenerateNozzleView(JSON.parse(message.toString()));
- return;
- }
- if (topic === '/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/event/OnVaporRecoveryStateChange/post') {
- UpdateVrState(JSON.parse(message.toString()));
- return;
- }
- });
- function processConfigData(message) {
- var WarningValueMin = message.onlineWatchConfig.WarningValueMin;
- var WarningValueMax = message.onlineWatchConfig.WarningValueMax;
- console.log(message);
- //var a = document.getElementById("testmqqt");
- //if (a != null) a.innerHTML = WarningValueMin;
- }
- function processNozzlesData(message) {
- var data = message.data;
- var pumpMap = new Map();
- var currentDispenserId = 0;
- var nozzlesArray = new Array();
- data.forEach(function (d) {
- if (currentDispenserId === 0) {
- currentDispenserId = d.SiteLevelDispenserId;
- nozzlesArray.push(d);
- } else if (currentDispenserId !== d.SiteLevelDispenserId) {
- pumpMap.set(currentDispenserId, new Array().concat(nozzlesArray));
- currentDispenserId = d.SiteLevelDispenserId;
- nozzlesArray.splice(0, nozzlesArray.length);
- nozzlesArray.push(d);
- } else {
- currentDispenserId = d.SiteLevelDispenserId;
- //nozzlesArray.clear();
- nozzlesArray.push(d);
- }
- });
- if (nozzlesArray.length > 0) {
- pumpMap.set(currentDispenserId, new Array().concat(nozzlesArray));
- nozzlesArray.splice(0, nozzlesArray.length);
- }
- pumpMap.forEach(function (value, key) {
- var dispenserId = key;
- var nozzleCount = value.length;
- });
- }
- function LogonClicked(id) {
- var logo = document.getElementById(id);
- if (logo != null) logo.style.visibility = "hidden";
- ClearOldItems();
- if (id === "ALLogo" && client != null) {
- currentView = "AL";
- client.publish('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetNozzlesData',
- "Hello mqtt");
- if (document.getElementById("SmartFuelLogo") != null)
- document.getElementById("SmartFuelLogo").style.visibility = "visible";
- } else if (id === "SmartFuelLogo" && client != null) {
- if (document.getElementById("ALLogo") != null)
- currentView = "SmartFuel";
- document.getElementById("ALLogo").style.visibility = "visible";
- }
- }
- //// 用户程序点击事件
- function Onmqtttest() {
- message = "message from browser with websocket"; // 消息内容
- //发布主题presence,消息内容为Hello mqtt,订阅与推送一样自发自收
- client.publish('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetConfigAsync', 'Hello mqtt ' + message);
- var a = document.getElementById("testmqqt");
- if (a != null) a.innerHTML = message;
- }
- //显示前一页
- function ShowPreviousPage() {
- if (currentPage === 1) {
- alert("已经是第一页!");
- return;
- }
- ClearOldItems();
- oldPage = currentPage;
- currentPage--;
- //如果当前油气回收页面则重新获取NozzlesData
- if (currentView === "AL" && client != null) {
- client.publish('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetNozzlesData');
- }
- }
- //显示下一页
- function ShowNextPage() {
- if (currentPage === totalPage) {
- alert("已经是最后一页!");
- return;
- }
- ClearOldItems();
- oldPage = currentPage;
- currentPage++;
- //如果当前油气回收页面则重新获取NozzlesData
- if (currentView === "AL" && client != null) {
- client.publish('/sys/Vapor_Recovery_App/Application.VaporRecoveryApp.App/thing/service/GetNozzlesData');
- }
- }
- </script>
|