From f5e219edf58974d1a4b1b675ffef534eaf1fdd81 Mon Sep 17 00:00:00 2001 From: varun Date: Fri, 26 May 2023 02:06:40 -0400 Subject: [PATCH 1/4] added stop_at --- src/controllers/tanksController.js | 13 +++++-------- src/routes/tanksRoute.js | 1 + 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 4e882515..2e13d78b 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -152,7 +152,7 @@ exports.getTank = async (req, reply) => { exports.updateTanklevels = async (req, reply) => { try { const customerId = req.params.customerId; - const tanks = await Tank.find({ customerId }); + const tanks = await Tank.find({ customerId,tankLocation:"overhead" }); const intervals = {}; @@ -166,7 +166,7 @@ exports.updateTanklevels = async (req, reply) => { const tank_data = await Tank.findOne({ _id:tankId }); const motorStatus = tank_data.motor_status let waterLevel = parseInt(tank_data.waterlevel.replace(/,/g, ''), 10); - const newWaterLevel = Math.floor(waterLevel - 200); + const newWaterLevel = Math.floor(waterLevel - 150); console.log("motorstatus:"+motorStatus) if (newWaterLevel <= 0 ) { @@ -243,7 +243,7 @@ exports.motorAction = async (req, reply) => { if(action === "start"){ const start_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) - + const stop_at = req.body.stop_at @@ -281,7 +281,7 @@ exports.motorAction = async (req, reply) => { const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) console.log((newSupplierWaterLevel/supplier_capacity)*100) // Check if updating should stop - if ((newSupplierWaterLevel/supplier_capacity)*100 <= 5 || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0") { + if ((newSupplierWaterLevel/supplier_capacity)*100 <= stop_at || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0") { clearInterval(intervals[interval_variable]); // Clear the interval for this tank delete intervals[interval_variable]; sum_oh_count--; @@ -400,7 +400,7 @@ exports.motorAction = async (req, reply) => { const newWaterLevel = receiver_waterlevel + 300//Math.floor(supplier_waterlevel * 0.1); const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel - 300);// Math.floor(supplier_waterlevel * 0.15)); // Check if updating should stop - if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" || (newSupplierWaterLevel/supplier_capacity)*100 <= 5 ) { + if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" || (newSupplierWaterLevel/supplier_capacity)*100 <= stop_at ) { clearInterval(intervals[interval_variable]); // Clear the interval for this tank delete intervals[interval_variable]; @@ -432,9 +432,6 @@ exports.motorAction = async (req, reply) => { - - - if(supplier_tank_type==="bore" && receiver_type === "sump"){ const receiver_capacity = parseInt(receiver_tank_info.capacity.replace(/,/g, ''), 10) diff --git a/src/routes/tanksRoute.js b/src/routes/tanksRoute.js index cfcfac74..fb52a6c3 100644 --- a/src/routes/tanksRoute.js +++ b/src/routes/tanksRoute.js @@ -245,6 +245,7 @@ module.exports = function (fastify, opts, next) { percentage: { type: "string",default: "100" }, startTime:{ type: "string" }, stopTime:{ type: "string" }, + stop_at:{type:"number"} }, }, From b787c96327770d147500aa05e98c53304e2b68b2 Mon Sep 17 00:00:00 2001 From: varun Date: Fri, 26 May 2023 02:43:27 -0400 Subject: [PATCH 2/4] made changes in start and stop --- src/controllers/tanksController.js | 35 +++++++++++++++++++----------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 9b8d5b11..718c23ce 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -299,13 +299,16 @@ exports.motorAction = async (req, reply) => { // await changingfrom_tankwaterlevel(customerId,initial_update,supplier_tank_info); - let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) + // let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) // console.log(supplier_waterlevel) - let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) + // let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) intervals[interval_variable] = setInterval(async function () { // Calculate new water levels const supplier_tank_info2 = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); + let receiver_waterlevel = parseInt(rcvr_info.waterlevel.replace(/,/g, ''), 10) + + let supplier_waterlevel = parseInt(supplier_tank_info2.waterlevel.replace(/,/g, ''), 10) const newWaterLevel = receiver_waterlevel + (250*sum_oh_count)//Math.floor(supplier_waterlevel * 0.1); const newSupplierWaterLevel = supplier_waterlevel//Math.floor(supplier_waterlevel * 0.1); const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) @@ -332,16 +335,16 @@ exports.motorAction = async (req, reply) => { } else { // Update water levels in database //supplier_waterlevel = newSupplierWaterLevel; - receiver_waterlevel = newWaterLevel; + // receiver_waterlevel = newWaterLevel; console.log((newSupplierWaterLevel/supplier_capacity)*100) // console.log((newWaterLevel/receiver_capacity)*100) console.log(receiver_tank+""+newWaterLevel+""+"bore to sump") await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { waterlevel: newWaterLevel } }) - if (supplier_tank_info2.motor_status==="0"){ + //if (supplier_tank_info2.motor_status==="0"){ supplier_waterlevel = parseInt(supplier_tank_info2.waterlevel.replace(/,/g, ''), 10)-250 console.log(supplier_tank+""+newSupplierWaterLevel+""+"s to oh") await Tank.findOneAndUpdate({customerId, tankName: supplier_tank,tankLocation:supplier_tank_type}, { $set: { waterlevel: supplier_waterlevel } }) - } + // } } }, 2000); @@ -405,6 +408,7 @@ exports.motorAction = async (req, reply) => { if(supplier_tank_type==="sump" && receiver_type === "sump"){ const receiver_capacity = parseInt(receiver_tank_info.capacity.replace(/,/g, ''), 10) + const sumpTank = await Tank.findOne({ customerId, tankName: receiver_tank, tankLocation: receiver_type }); const connection = sumpTank.connections.inputConnections.find((conn) => conn.inputConnections === supplier_tank); @@ -419,16 +423,19 @@ exports.motorAction = async (req, reply) => { await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "1" } }); const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); - let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) - let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) + // let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) + // let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) // console.log(receiver_waterlevel,"1") intervals[interval_variable] = setInterval(async function () { // Calculate new water levels + const splr_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) + let supplier_waterlevel = parseInt(splr_tank_info.waterlevel.replace(/,/g, ''), 10) + let receiver_waterlevel = parseInt(rcvr_info.waterlevel.replace(/,/g, ''), 10) // Calculate new water levels - const newWaterLevel = receiver_waterlevel + 300//Math.floor(supplier_waterlevel * 0.1); - const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel - 300);// Math.floor(supplier_waterlevel * 0.15)); + const newWaterLevel = receiver_waterlevel + 250//Math.floor(supplier_waterlevel * 0.1); + const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel - 250);// Math.floor(supplier_waterlevel * 0.15)); // Check if updating should stop if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" || (newSupplierWaterLevel/supplier_capacity)*100 <= stop_at ) { @@ -443,8 +450,8 @@ exports.motorAction = async (req, reply) => { } else { // Update water levels in database - supplier_waterlevel = newSupplierWaterLevel; - receiver_waterlevel = newWaterLevel; + // supplier_waterlevel = newSupplierWaterLevel; + // receiver_waterlevel = newWaterLevel; console.log(supplier_waterlevel,"0") console.log(receiver_waterlevel,"1") // console.log((newSupplierWaterLevel/supplier_capacity)*100) @@ -477,12 +484,14 @@ exports.motorAction = async (req, reply) => { } - let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) + // let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) // console.log(receiver_waterlevel,"1") intervals[interval_variable] = setInterval(async function () { // Calculate new water levels const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); //console.log(rcvr_info) + let receiver_waterlevel = parseInt(rcvr_info.waterlevel.replace(/,/g, ''), 10) + //console.log(rcvr_info.motor_status) const newWaterLevel = receiver_waterlevel+(250*bore_sump_count); //console.log(newWaterLevel,"2",receiver_tank_info.tankName) @@ -507,7 +516,7 @@ exports.motorAction = async (req, reply) => { } else { // Update water levels in database - receiver_waterlevel = newWaterLevel; + // receiver_waterlevel = newWaterLevel; //console.log((newWaterLevel/receiver_capacity)*100,"4",receiver_tank_info.tankName) await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { waterlevel: newWaterLevel } }) From d98e69aae0fe7e7a7d56df8e7da9cc1d070b7e57 Mon Sep 17 00:00:00 2001 From: varun Date: Fri, 26 May 2023 03:02:00 -0400 Subject: [PATCH 3/4] made changes in start and stop --- src/controllers/tanksController.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 718c23ce..46177ddc 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -273,7 +273,7 @@ exports.motorAction = async (req, reply) => { if(action === "start"){ const start_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) - const stop_at = req.body.stop_at + // const stop_at = req.body.stop_at @@ -314,7 +314,7 @@ exports.motorAction = async (req, reply) => { const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) console.log((newSupplierWaterLevel/supplier_capacity)*100) // Check if updating should stop - if ((newSupplierWaterLevel/supplier_capacity)*100 <= stop_at || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0") { + if ((newSupplierWaterLevel/supplier_capacity)*100 <= 5 || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0") { clearInterval(intervals[interval_variable]); // Clear the interval for this tank delete intervals[interval_variable]; sum_oh_count--; @@ -437,7 +437,7 @@ exports.motorAction = async (req, reply) => { const newWaterLevel = receiver_waterlevel + 250//Math.floor(supplier_waterlevel * 0.1); const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel - 250);// Math.floor(supplier_waterlevel * 0.15)); // Check if updating should stop - if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" || (newSupplierWaterLevel/supplier_capacity)*100 <= stop_at ) { + if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" || (newSupplierWaterLevel/supplier_capacity)*100 <= 5 ) { clearInterval(intervals[interval_variable]); // Clear the interval for this tank delete intervals[interval_variable]; From ec7548593b4ddcc20ef6967f822d7e2250992649 Mon Sep 17 00:00:00 2001 From: varun Date: Fri, 26 May 2023 03:16:32 -0400 Subject: [PATCH 4/4] made changes in start and stop --- src/controllers/tanksController.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 46177ddc..5c636073 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -309,7 +309,7 @@ exports.motorAction = async (req, reply) => { let receiver_waterlevel = parseInt(rcvr_info.waterlevel.replace(/,/g, ''), 10) let supplier_waterlevel = parseInt(supplier_tank_info2.waterlevel.replace(/,/g, ''), 10) - const newWaterLevel = receiver_waterlevel + (250*sum_oh_count)//Math.floor(supplier_waterlevel * 0.1); + const newWaterLevel = receiver_waterlevel + 250//Math.floor(supplier_waterlevel * 0.1); const newSupplierWaterLevel = supplier_waterlevel//Math.floor(supplier_waterlevel * 0.1); const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) console.log((newSupplierWaterLevel/supplier_capacity)*100) @@ -493,7 +493,7 @@ exports.motorAction = async (req, reply) => { let receiver_waterlevel = parseInt(rcvr_info.waterlevel.replace(/,/g, ''), 10) //console.log(rcvr_info.motor_status) - const newWaterLevel = receiver_waterlevel+(250*bore_sump_count); + const newWaterLevel = receiver_waterlevel+250; //console.log(newWaterLevel,"2",receiver_tank_info.tankName) // Check if updating should stop if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" ) {