@@ -1102,6 +1102,52 @@ public class ConfigData { | |||||
} | } | ||||
/** | |||||
* 恢复plc地址 | |||||
*/ | |||||
public void RevertPLC() { | |||||
try { | |||||
List<Res_PLCADDRESS> plcaddresses = ConfigName.getInstance().PlcAddress_大炒; | |||||
List<ProcessT> processTS = ConfigName.getInstance().Process_大炒; | |||||
if (ConfigName.getInstance().versionSelectionEnum.equals("大炒版本")) { | |||||
plcaddresses = ConfigName.getInstance().PlcAddress_大炒; | |||||
processTS = ConfigName.getInstance().Process_大炒; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("大炒自动投料版本")) { | |||||
plcaddresses = ConfigName.getInstance().PlcAddress_大炒自动投料; | |||||
processTS = ConfigName.getInstance().Process_大炒自动投料; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("小炒版本")) { | |||||
plcaddresses = ConfigName.getInstance().PlcAddress_小炒; | |||||
processTS = ConfigName.getInstance().Process_小炒; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("一拖四大炒")) { | |||||
plcaddresses = ConfigName.getInstance().PlcAddress_一拖四; | |||||
processTS = ConfigName.getInstance().Process_一拖四; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("一拖二大炒")) { | |||||
plcaddresses = ConfigName.getInstance().PlcAddress_大炒自动投料; | |||||
processTS = ConfigName.getInstance().Process_一拖四; | |||||
} | |||||
//region 恢复PLC | |||||
ArrayList<BPA_PLCADDRESS> arrayList = QueryDB.GetPlcaddressALL(); | |||||
for (BPA_PLCADDRESS item : arrayList) { | |||||
QueryDB.DeletePlcaddress(item); | |||||
} | |||||
int k = 1; | |||||
for (Res_PLCADDRESS item : plcaddresses) { | |||||
BPA_PLCADDRESS plc = new BPA_PLCADDRESS(); | |||||
plc.name = item.name; | |||||
plc.address = item.address; | |||||
plc.isread = item.isread; | |||||
plc.iswrite = item.iswrite; | |||||
plc.sort = k; | |||||
k++; | |||||
QueryDB.AddPlcaddress(plc); | |||||
} | |||||
//endregion | |||||
} catch (Exception ex) { | |||||
} | |||||
} | |||||
/** | /** | ||||
* 恢复出厂设置 PLC与工序 | * 恢复出厂设置 PLC与工序 | ||||
*/ | */ | ||||
@@ -6,7 +6,6 @@ import android.content.ContextWrapper; | |||||
import android.os.Handler; | import android.os.Handler; | ||||
import android.os.Looper; | import android.os.Looper; | ||||
import android.util.Log; | import android.util.Log; | ||||
import android.view.View; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
@@ -16,7 +15,6 @@ import com.bonait.bnframework.common.constant.MessageName; | |||||
import com.bonait.bnframework.common.db.QueryDB; | import com.bonait.bnframework.common.db.QueryDB; | ||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS; | import com.bonait.bnframework.common.db.mode.BPA_GOODS; | ||||
import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; | import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; | ||||
import com.bonait.bnframework.common.db.mode.BPA_MATERIAL; | |||||
import com.bonait.bnframework.common.db.mode.BPA_PLCADDRESS; | import com.bonait.bnframework.common.db.mode.BPA_PLCADDRESS; | ||||
import com.bonait.bnframework.common.db.mode.BPA_SILOS; | import com.bonait.bnframework.common.db.mode.BPA_SILOS; | ||||
import com.bonait.bnframework.common.helper.ByteHelper; | import com.bonait.bnframework.common.helper.ByteHelper; | ||||
@@ -24,29 +22,21 @@ import com.bonait.bnframework.common.helper.I.IRun; | |||||
import com.bonait.bnframework.common.helper.I.IRunT; | import com.bonait.bnframework.common.helper.I.IRunT; | ||||
import com.bonait.bnframework.common.helper.I.IThread; | import com.bonait.bnframework.common.helper.I.IThread; | ||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | import com.bonait.bnframework.common.helper.I.IWriteCallBack; | ||||
import com.bonait.bnframework.common.helper.LogcatHelper; | |||||
import com.bonait.bnframework.common.helper.ThreadManager; | import com.bonait.bnframework.common.helper.ThreadManager; | ||||
import com.bonait.bnframework.common.message.MessageManager; | import com.bonait.bnframework.common.message.MessageManager; | ||||
import com.bonait.bnframework.common.modbus.ModbusTcpMainServer; | import com.bonait.bnframework.common.modbus.ModbusTcpMainServer; | ||||
import com.bonait.bnframework.common.modbus.ModbusTcpServer; | import com.bonait.bnframework.common.modbus.ModbusTcpServer; | ||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.modules.home.fragment.mode.LocationStatus; | |||||
import com.bonait.bnframework.modules.home.fragment.mode.MyStatus; | import com.bonait.bnframework.modules.home.fragment.mode.MyStatus; | ||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; | import com.qmuiteam.qmui.widget.dialog.QMUIDialog; | ||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; | import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; | ||||
import java.text.DecimalFormat; | |||||
import java.text.SimpleDateFormat; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Date; | |||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.IdentityHashMap; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.concurrent.ConcurrentHashMap; | import java.util.concurrent.ConcurrentHashMap; | ||||
import kotlin.UShort; | |||||
import java.util.concurrent.atomic.AtomicBoolean; | |||||
/** | /** | ||||
* 执行配方 | * 执行配方 | ||||
@@ -118,6 +108,11 @@ public class ExecuteTheRecipe { | |||||
* 通知手动暂停 | * 通知手动暂停 | ||||
*/ | */ | ||||
public static IRunT NoticeHandSuspension = null; | public static IRunT NoticeHandSuspension = null; | ||||
/** | |||||
* 当前工序预计剩余时间 | |||||
*/ | |||||
public static IRunT NoticeAtPresentTime=null; | |||||
//endregion | //endregion | ||||
//region 强制结束 | //region 强制结束 | ||||
@@ -165,7 +160,51 @@ public class ExecuteTheRecipe { | |||||
return false; | return false; | ||||
} | } | ||||
//判断是否加热异常 | |||||
boolean isJre = false; | |||||
Object K = ReadPLC("加热"); | |||||
isJre = K == null ? false : (boolean) K; | |||||
if(isJre)//判断是否加热异常 | |||||
{ | |||||
Object gz = ReadPLC("异常加热故障信息"); | |||||
if(gz!=null && (boolean) gz) | |||||
{ | |||||
ExecuteTheRecipe.showlog("客官,检测到硬件加热异常,已主动停止炒制,请联系海科人员!!!"); | |||||
IsForcedEnd=true; | |||||
final boolean[] IsComplete = {false}; | |||||
String title = "加热异常-温馨提示!"; | |||||
String message = "客官硬件加热异常,请联系海科人员,已强制停止炒制!"; | |||||
Activity activity = findActivity(context); | |||||
if (activity != null) { | |||||
activity.runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
//.setCanceledOnTouchOutside(false) // 禁用点击其他地方关闭对话框 | |||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setCanceledOnTouchOutside(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
@Override | |||||
public void onClick(QMUIDialog dialog, int index) { | |||||
IsComplete[0] = true; | |||||
dialog.dismiss(); | |||||
} | |||||
}).create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show(); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
while (!IsComplete[0]) { | |||||
Thread.sleep(100);//10 *6 | |||||
} | |||||
return false; | |||||
} | |||||
} | |||||
ExecuteTheRecipe.showlog("开始执行:" + recipe.sort + "、" + recipe.processms); | ExecuteTheRecipe.showlog("开始执行:" + recipe.sort + "、" + recipe.processms); | ||||
if (NoticeAtPresentTime!=null){NoticeAtPresentTime.Run(0);} | |||||
if (recipe.materialType == 0)//正常物料 | if (recipe.materialType == 0)//正常物料 | ||||
{ | { | ||||
@@ -210,6 +249,10 @@ public class ExecuteTheRecipe { | |||||
public static void ExecuteMaterialIssuance(String text) { | public static void ExecuteMaterialIssuance(String text) { | ||||
try { | try { | ||||
if (!text.isEmpty()) { | if (!text.isEmpty()) { | ||||
long startTime = System.currentTimeMillis(); //起始时间 | |||||
if(NoticeHandSuspension!=null){NoticeHandSuspension.Run(true);} | |||||
//仓号 值 | //仓号 值 | ||||
HashMap<BPA_SILOS, Integer> formulation = new HashMap<>(); | HashMap<BPA_SILOS, Integer> formulation = new HashMap<>(); | ||||
//region 获取仓号和值 | //region 获取仓号和值 | ||||
@@ -258,6 +301,11 @@ public class ExecuteTheRecipe { | |||||
BPA_SILOS silos = entry.getKey(); | BPA_SILOS silos = entry.getKey(); | ||||
ThreadWhile("料仓" + silos.num + "下料完成"); | ThreadWhile("料仓" + silos.num + "下料完成"); | ||||
} | } | ||||
long endTime = System.currentTimeMillis(); //结束时间 | |||||
int time = (int) ((endTime - startTime) / 1000); | |||||
HandTime=HandTime+time; | |||||
if(NoticeHandSuspension!=null){NoticeHandSuspension.Run(false);} | |||||
} | } | ||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
ToastUtils.error("异常信息:" + ex.getMessage()); | ToastUtils.error("异常信息:" + ex.getMessage()); | ||||
@@ -560,7 +608,8 @@ public class ExecuteTheRecipe { | |||||
public void run() { | public void run() { | ||||
try { | try { | ||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
//.setCanceledOnTouchOutside(false) // 禁用点击其他地方关闭对话框 | |||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setCanceledOnTouchOutside(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
@Override | @Override | ||||
public void onClick(QMUIDialog dialog, int index) { | public void onClick(QMUIDialog dialog, int index) { | ||||
IsComplete[0] = true; | IsComplete[0] = true; | ||||
@@ -979,7 +1028,7 @@ public class ExecuteTheRecipe { | |||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
try { | try { | ||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setCanceledOnTouchOutside(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
@Override | @Override | ||||
public void onClick(QMUIDialog dialog, int index) { | public void onClick(QMUIDialog dialog, int index) { | ||||
IsComplete[0] = true; | IsComplete[0] = true; | ||||
@@ -1122,7 +1171,7 @@ public class ExecuteTheRecipe { | |||||
public void run() { | public void run() { | ||||
try { | try { | ||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
new QMUIDialog.MessageDialogBuilder(context).setCancelable(false).setCanceledOnTouchOutside(false).setTitle(title).setMessage(message).addAction("确定", new QMUIDialogAction.ActionListener() { | |||||
@Override | @Override | ||||
public void onClick(QMUIDialog dialog, int index) { | public void onClick(QMUIDialog dialog, int index) { | ||||
IsComplete[0] = true; | IsComplete[0] = true; | ||||
@@ -2004,16 +2053,23 @@ public class ExecuteTheRecipe { | |||||
*/ | */ | ||||
public static void ThreadDelay(int delay) { | public static void ThreadDelay(int delay) { | ||||
ExecuteTheRecipe.showlog("工序线程等待-------时长:" + delay + "秒,请耐心等待,开始计时!"); | ExecuteTheRecipe.showlog("工序线程等待-------时长:" + delay + "秒,请耐心等待,开始计时!"); | ||||
long startTime = System.currentTimeMillis(); | |||||
while ((System.currentTimeMillis() - startTime) <= (delay * 1000) && !IsForcedEnd && ConfigName.getInstance().PlcIsConnect) | |||||
int AtPresentTime=delay; | |||||
if (NoticeAtPresentTime!=null){NoticeAtPresentTime.Run(AtPresentTime);} | |||||
long startTime = System.currentTimeMillis();// && ConfigName.getInstance().PlcIsConnect | |||||
while ((System.currentTimeMillis() - startTime) <= (delay * 1000) && !IsForcedEnd) | |||||
{ | { | ||||
try { | try { | ||||
Thread.sleep(100); | Thread.sleep(100); | ||||
int mmmm=delay- (int) ((System.currentTimeMillis() - startTime)/1000); | |||||
if (AtPresentTime!=mmmm) | |||||
{ | |||||
if (NoticeAtPresentTime!=null){NoticeAtPresentTime.Run(mmmm);} | |||||
} | |||||
} catch (InterruptedException ex) { | } catch (InterruptedException ex) { | ||||
} | } | ||||
} | } | ||||
AtPresentTime=0; | |||||
if (NoticeAtPresentTime!=null){NoticeAtPresentTime.Run(AtPresentTime);} | |||||
long endTime = System.currentTimeMillis(); //结束时间 | long endTime = System.currentTimeMillis(); //结束时间 | ||||
int time = (int) ((endTime - startTime) / 1000); | int time = (int) ((endTime - startTime) / 1000); | ||||
ExecuteTheRecipe.showlog("工序线程等待结束-------总耗时:" + time); | ExecuteTheRecipe.showlog("工序线程等待结束-------总耗时:" + time); | ||||
@@ -141,7 +141,6 @@ public class ConfigName { | |||||
public String Version = "1.0"; | public String Version = "1.0"; | ||||
//endregion | //endregion | ||||
//region 是否手动下单 | //region 是否手动下单 | ||||
/** | /** | ||||
* 是否手动下单 | * 是否手动下单 | ||||
@@ -275,7 +274,7 @@ public class ConfigName { | |||||
//搅拌模型 | //搅拌模型 | ||||
add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1)); | |||||
add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | ||||
//翻转正转模型 | //翻转正转模型 | ||||
@@ -361,6 +360,22 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1)); | add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1)); | ||||
add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1)); | add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1)); | ||||
add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1)); | |||||
add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1)); | |||||
//反馈信号 | //反馈信号 | ||||
add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); | add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); | add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); | ||||
@@ -435,7 +450,7 @@ public class ConfigName { | |||||
//搅拌模型 | //搅拌模型 | ||||
add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1)); | |||||
add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | ||||
//翻转正转模型 | //翻转正转模型 | ||||
@@ -602,6 +617,21 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("倒菜完成", "M44.4", 1, 0)); | add(new Res_PLCADDRESS("倒菜完成", "M44.4", 1, 0)); | ||||
add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1)); | add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1)); | ||||
add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1)); | |||||
add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1)); | |||||
//检测信号 | //检测信号 | ||||
add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0)); | add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0)); | ||||
@@ -626,7 +656,6 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0)); | add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0)); | ||||
add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0)); | add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0)); | ||||
add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0)); | add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0)); | ||||
}}; | }}; | ||||
/** | /** | ||||
* 大炒自动投料工序模型 | * 大炒自动投料工序模型 | ||||
@@ -656,7 +685,7 @@ public class ConfigName { | |||||
//搅拌模型 | //搅拌模型 | ||||
add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1)); | |||||
add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | ||||
//翻转正转模型 | //翻转正转模型 | ||||
@@ -793,6 +822,22 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("倒菜启动", "M17.4", 0, 1)); | add(new Res_PLCADDRESS("倒菜启动", "M17.4", 0, 1)); | ||||
add(new Res_PLCADDRESS("磁铁吸合", "M17.5", 0, 1)); | add(new Res_PLCADDRESS("磁铁吸合", "M17.5", 0, 1)); | ||||
add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1)); | |||||
add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1)); | |||||
//反馈信号 | //反馈信号 | ||||
add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); | add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); | add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); | ||||
@@ -877,7 +922,7 @@ public class ConfigName { | |||||
//搅拌模型 | //搅拌模型 | ||||
add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1)); | |||||
add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); | ||||
//翻转正转模型 | //翻转正转模型 | ||||
@@ -1038,6 +1083,23 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("翻转2-4#位置设定", "M19.3", 0, 1)); | add(new Res_PLCADDRESS("翻转2-4#位置设定", "M19.3", 0, 1)); | ||||
add(new Res_PLCADDRESS("倒菜启动2", "M19.4", 0, 1)); | add(new Res_PLCADDRESS("倒菜启动2", "M19.4", 0, 1)); | ||||
add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1)); | |||||
add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1)); | |||||
add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1)); | |||||
add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1)); | |||||
//反馈信号 | //反馈信号 | ||||
add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); | add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); | add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); | ||||
@@ -1230,7 +1292,6 @@ public class ConfigName { | |||||
* 炒锅状态上报信息 | * 炒锅状态上报信息 | ||||
*/ | */ | ||||
public List<StatusMode> statusModes = new ArrayList<StatusMode>() {{ | public List<StatusMode> statusModes = new ArrayList<StatusMode>() {{ | ||||
//硬件设备 初始化 | //硬件设备 初始化 | ||||
add(new StatusMode("急停", false, R.mipmap.jiting, R.mipmap.jiting, 0)); | add(new StatusMode("急停", false, R.mipmap.jiting, R.mipmap.jiting, 0)); | ||||
add(new StatusMode("炒锅正限位报警", false, R.mipmap.cg_sxw, R.mipmap.cg_sxw, 2)); | add(new StatusMode("炒锅正限位报警", false, R.mipmap.cg_sxw, R.mipmap.cg_sxw, 2)); | ||||
@@ -1238,6 +1299,7 @@ public class ConfigName { | |||||
add(new StatusMode("编码器通讯异常", false, R.mipmap.bmq, R.mipmap.bmq, 4)); | add(new StatusMode("编码器通讯异常", false, R.mipmap.bmq, R.mipmap.bmq, 4)); | ||||
add(new StatusMode("搅拌电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 6)); | add(new StatusMode("搅拌电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 6)); | ||||
add(new StatusMode("翻转电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 7)); | add(new StatusMode("翻转电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 7)); | ||||
add(new StatusMode("炒锅加热异常", false, R.mipmap.hr, R.mipmap.hr, 8)); | |||||
}}; | }}; | ||||
/** | /** | ||||
* 电机状态上报信息 | * 电机状态上报信息 | ||||
@@ -1374,7 +1436,7 @@ public class ConfigName { | |||||
//endregion | //endregion | ||||
//region | |||||
//region 手动投料是否关闭 | |||||
/** | /** | ||||
* 手动投料是否关闭火力 | * 手动投料是否关闭火力 | ||||
*/ | */ | ||||
@@ -414,7 +414,8 @@ public class BottomNavigationNewActivity extends BaseActivity { | |||||
if (!ExecuteTheRecipe.IsForcedEnd) { | if (!ExecuteTheRecipe.IsForcedEnd) { | ||||
int ztime=time-ExecuteTheRecipe.HandTime; | int ztime=time-ExecuteTheRecipe.HandTime; | ||||
QueryDB.UpdateGoodsMakeTime(goods.id, ztime>0?ztime:time); | |||||
goods.maketime=ztime>0?ztime:time; | |||||
QueryDB.UpdateGoodsMakeTime(goods.id, goods.maketime); | |||||
} | } | ||||
ExecuteTheRecipe.HandTime=0;//默认将手动操作时间复位 | ExecuteTheRecipe.HandTime=0;//默认将手动操作时间复位 | ||||
@@ -427,7 +428,7 @@ public class BottomNavigationNewActivity extends BaseActivity { | |||||
{ | { | ||||
ToastUtils.info("客官,当前菜品已强制结束!!!"); | ToastUtils.info("客官,当前菜品已强制结束!!!"); | ||||
//初始化 | //初始化 | ||||
ExecuteTheRecipe.BottomClick("初始化"); | |||||
//ExecuteTheRecipe.BottomClick("初始化"); | |||||
ExecuteTheRecipe.showlog("菜谱【"+goods.name+"】已强制结束..."); | ExecuteTheRecipe.showlog("菜谱【"+goods.name+"】已强制结束..."); | ||||
if (ConfigName.getInstance().versionSelectionEnum.contains("一拖"))//通知任务结束 | if (ConfigName.getInstance().versionSelectionEnum.contains("一拖"))//通知任务结束 | ||||
@@ -559,16 +560,40 @@ public class BottomNavigationNewActivity extends BaseActivity { | |||||
public void Run(Object o) { | public void Run(Object o) { | ||||
if(IsRunThread) | if(IsRunThread) | ||||
{ | { | ||||
if((boolean) o) | |||||
{ | |||||
onRecordPause(); | |||||
}else | |||||
{ | |||||
onRecordPauseStart(); | |||||
} | |||||
runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
if((boolean) o) | |||||
{ | |||||
onRecordPause(); | |||||
}else | |||||
{ | |||||
onRecordPauseStart(); | |||||
} | |||||
} | |||||
}); | |||||
} | } | ||||
} | } | ||||
}; | }; | ||||
ExecuteTheRecipe.NoticeAtPresentTime=new IRunT() { | |||||
@Override | |||||
public void Run(Object o) { | |||||
if(IsRunThread) | |||||
{ | |||||
int k=(int) o; | |||||
runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
cooking.SetMiaoShuTime(k); | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
}; | |||||
} | } | ||||
/** | /** | ||||
@@ -55,13 +55,13 @@ public class monitor_adapter extends RecyclerView.Adapter<RecyclerView.ViewHolde | |||||
if(statusMode.Status) | if(statusMode.Status) | ||||
{ | { | ||||
myViewHolder.image.setImageResource(statusMode.Url_open); | myViewHolder.image.setImageResource(statusMode.Url_open); | ||||
myViewHolder.text.setText("打开"); | |||||
myViewHolder.text.setTextColor(context.getResources().getColor(R.color.black)); | |||||
myViewHolder.text.setText("异常"); | |||||
myViewHolder.text.setTextColor(context.getResources().getColor(R.color.red_primary)); | |||||
}else | }else | ||||
{ | { | ||||
myViewHolder.image.setImageResource(statusMode.Url_close); | myViewHolder.image.setImageResource(statusMode.Url_close); | ||||
myViewHolder.text.setText("关闭"); | |||||
myViewHolder.text.setTextColor(context.getResources().getColor(R.color.red_primary)); | |||||
myViewHolder.text.setText("正常"); | |||||
myViewHolder.text.setTextColor(context.getResources().getColor(R.color.green_primary)); | |||||
} | } | ||||
} | } | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
@@ -27,6 +27,7 @@ import android.widget.ImageView; | |||||
import android.widget.LinearLayout; | import android.widget.LinearLayout; | ||||
import android.widget.RelativeLayout; | import android.widget.RelativeLayout; | ||||
import android.widget.SeekBar; | import android.widget.SeekBar; | ||||
import android.widget.TextView; | |||||
import com.aliyun.alink.linksdk.tmp.devicemodel.Event; | import com.aliyun.alink.linksdk.tmp.devicemodel.Event; | ||||
import com.aliyun.alink.linksdk.tmp.devicemodel.Property; | import com.aliyun.alink.linksdk.tmp.devicemodel.Property; | ||||
@@ -134,6 +135,14 @@ public class Home1Fragment extends BaseFragment { | |||||
@BindView(R.id.wk_zhuangtai) | @BindView(R.id.wk_zhuangtai) | ||||
QMUILinkTextView wk_zhuangtai;// | QMUILinkTextView wk_zhuangtai;// | ||||
@BindView(R.id.gongxumiaoshu) | |||||
TextView gongxumiaoshu;//工序描述 | |||||
@BindView(R.id.gongxutime) | |||||
TextView gongxutime;//预计等待 | |||||
/** | /** | ||||
* 当前制作商品信息 | * 当前制作商品信息 | ||||
*/ | */ | ||||
@@ -241,6 +250,7 @@ public class Home1Fragment extends BaseFragment { | |||||
if (!IsMake(true)) { | if (!IsMake(true)) { | ||||
return; | return; | ||||
} | } | ||||
gongxumiaoshu.setText("等待开始"); | |||||
good = (BPA_GOODS) data; | good = (BPA_GOODS) data; | ||||
SetBottonStatus(false); | SetBottonStatus(false); | ||||
caipumingcheng.setText(good.name); | caipumingcheng.setText(good.name); | ||||
@@ -588,6 +598,12 @@ public class Home1Fragment extends BaseFragment { | |||||
for (BPA_GOODSRECIPE item : goodsrecipes) { | for (BPA_GOODSRECIPE item : goodsrecipes) { | ||||
MakeCipe = item; | MakeCipe = item; | ||||
gongxuIndex++; | gongxuIndex++; | ||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
gongxumiaoshu.setText("正在执行:" + item.processms); | |||||
} | |||||
}); | |||||
boolean status = ExecuteTheRecipe.Execute(item, goodsrecipes, m); | boolean status = ExecuteTheRecipe.Execute(item, goodsrecipes, m); | ||||
m++; | m++; | ||||
} | } | ||||
@@ -612,7 +628,8 @@ public class Home1Fragment extends BaseFragment { | |||||
if (!ExecuteTheRecipe.IsForcedEnd) { | if (!ExecuteTheRecipe.IsForcedEnd) { | ||||
int ztime=time-ExecuteTheRecipe.HandTime; | int ztime=time-ExecuteTheRecipe.HandTime; | ||||
QueryDB.UpdateGoodsMakeTime(good.id, ztime>0?ztime:time); | |||||
good.maketime=ztime>0?ztime:time; | |||||
QueryDB.UpdateGoodsMakeTime(good.id, good.maketime); | |||||
} | } | ||||
ExecuteTheRecipe.HandTime=0;//默认将手动操作时间复位 | ExecuteTheRecipe.HandTime=0;//默认将手动操作时间复位 | ||||
@@ -628,7 +645,7 @@ public class Home1Fragment extends BaseFragment { | |||||
{ | { | ||||
ToastUtils.info("客官,当前菜品已强制结束!!!"); | ToastUtils.info("客官,当前菜品已强制结束!!!"); | ||||
//初始化 | //初始化 | ||||
ExecuteTheRecipe.BottomClick("初始化"); | |||||
// ExecuteTheRecipe.BottomClick("初始化"); | |||||
ExecuteTheRecipe.showlog("菜谱【"+good.name+"】已强制结束..."); | ExecuteTheRecipe.showlog("菜谱【"+good.name+"】已强制结束..."); | ||||
if (ConfigName.getInstance().versionSelectionEnum.contains("一拖"))//通知任务结束 | if (ConfigName.getInstance().versionSelectionEnum.contains("一拖"))//通知任务结束 | ||||
{ | { | ||||
@@ -641,7 +658,6 @@ public class Home1Fragment extends BaseFragment { | |||||
} | } | ||||
ExecuteTheRecipe.showlog("--------------------------------------"); | ExecuteTheRecipe.showlog("--------------------------------------"); | ||||
ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | ||||
} | } | ||||
} | } | ||||
Thread.sleep(1000); | Thread.sleep(1000); | ||||
@@ -775,13 +791,33 @@ public class Home1Fragment extends BaseFragment { | |||||
public void Run(Object o) { | public void Run(Object o) { | ||||
if(IsRunThread) | if(IsRunThread) | ||||
{ | { | ||||
if((boolean) o) | |||||
{ | |||||
onRecordPause(); | |||||
}else | |||||
{ | |||||
onRecordPauseStart(); | |||||
} | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
if((boolean) o) | |||||
{ | |||||
onRecordPause(); | |||||
}else | |||||
{ | |||||
onRecordPauseStart(); | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
}; | |||||
ExecuteTheRecipe.NoticeAtPresentTime=new IRunT() { | |||||
@Override | |||||
public void Run(Object o) { | |||||
if(IsRunThread) | |||||
{ | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
gongxutime.setText("预计等待:"+(int) o+"s"); | |||||
} | |||||
}); | |||||
} | } | ||||
} | } | ||||
}; | }; | ||||
@@ -896,9 +932,11 @@ public class Home1Fragment extends BaseFragment { | |||||
if (status) { | if (status) { | ||||
startbutton.setImageResource(R.mipmap.tzzz); | startbutton.setImageResource(R.mipmap.tzzz); | ||||
TimerCount(good.maketime, true);//开始计时器,记录进度条 | TimerCount(good.maketime, true);//开始计时器,记录进度条 | ||||
gongxumiaoshu.setText("等待开始"); | |||||
} else { | } else { | ||||
startbutton.setImageResource(R.mipmap.qdzz); | startbutton.setImageResource(R.mipmap.qdzz); | ||||
TimerCount(0, false);//停止计时器 | TimerCount(0, false);//停止计时器 | ||||
gongxumiaoshu.setText("等待开始"); | |||||
} | } | ||||
if (good != null) { | if (good != null) { | ||||
SetProcesssUI(good.maketime, 0); | SetProcesssUI(good.maketime, 0); | ||||
@@ -73,6 +73,9 @@ public class CookingActivity extends LinearLayout { | |||||
@BindView(R.id.gongxumiaoshu) | @BindView(R.id.gongxumiaoshu) | ||||
TextView gongxumiaoshu;//工序描述 | TextView gongxumiaoshu;//工序描述 | ||||
@BindView(R.id.gongxutime) | |||||
TextView gongxutime;//预计等待 | |||||
@BindView(R.id.start_goodmake) | @BindView(R.id.start_goodmake) | ||||
imagebuttom start_goodmake;//开始 | imagebuttom start_goodmake;//开始 | ||||
@@ -204,6 +207,15 @@ public class CookingActivity extends LinearLayout { | |||||
gongxumiaoshu.setText(text + ""); | gongxumiaoshu.setText(text + ""); | ||||
} | } | ||||
/** | |||||
* 设置描述时间 | |||||
* | |||||
* @param | |||||
*/ | |||||
public void SetMiaoShuTime(int time) { | |||||
gongxutime.setText("预计等待:"+time+"s"); | |||||
} | |||||
/** | /** | ||||
* 设置进度条 | * 设置进度条 | ||||
* | * | ||||
@@ -401,6 +401,23 @@ public class DiyActivity extends BaseActivity { | |||||
case R.id.add_hrgx://添加工序 | case R.id.add_hrgx://添加工序 | ||||
BPA_GOODSRECIPE goodsrecipe = GetSelectItemFromValue(); | BPA_GOODSRECIPE goodsrecipe = GetSelectItemFromValue(); | ||||
if (goodsrecipe != null) { | if (goodsrecipe != null) { | ||||
if(goodsrecipe.processname.equals("加热")) | |||||
{ | |||||
boolean isfa=false; | |||||
for (BPA_GOODSRECIPE item:bpa_goodsrecipes) | |||||
{ | |||||
if(item.processname.equals("搅拌")) | |||||
{ | |||||
isfa=true; | |||||
} | |||||
} | |||||
if(isfa==false) | |||||
{ | |||||
ToastUtils.warning("加热工序之前,必须先添加搅拌工序!"); | |||||
return; | |||||
} | |||||
} | |||||
bpa_goodsrecipes.add(GetSelectItemFromValue()); | bpa_goodsrecipes.add(GetSelectItemFromValue()); | ||||
gxbz_adapter.notifyDataSetChanged(); | gxbz_adapter.notifyDataSetChanged(); | ||||
} | } | ||||
@@ -386,6 +386,22 @@ public class DiyUpdate1Activity extends BaseActivity { | |||||
case R.id.add_hrgx://添加工序 | case R.id.add_hrgx://添加工序 | ||||
BPA_GOODSRECIPE goodsrecipe = GetSelectItemFromValue(); | BPA_GOODSRECIPE goodsrecipe = GetSelectItemFromValue(); | ||||
if (goodsrecipe != null) { | if (goodsrecipe != null) { | ||||
if(goodsrecipe.processname.equals("加热")) | |||||
{ | |||||
boolean isfa=false; | |||||
for (BPA_GOODSRECIPE item:bpa_goodsrecipes) | |||||
{ | |||||
if(item.processname.equals("搅拌")) | |||||
{ | |||||
isfa=true; | |||||
} | |||||
} | |||||
if(isfa==false) | |||||
{ | |||||
ToastUtils.warning("加热工序之前,必须先添加搅拌工序!"); | |||||
return; | |||||
} | |||||
} | |||||
bpa_goodsrecipes.add(GetSelectItemFromValue()); | bpa_goodsrecipes.add(GetSelectItemFromValue()); | ||||
gxbz_adapter.notifyDataSetChanged(); | gxbz_adapter.notifyDataSetChanged(); | ||||
} | } | ||||
@@ -443,6 +443,22 @@ public class DiyUpdateActivity extends BaseActivity { | |||||
BPA_GOODSRECIPE goodsrecipe= GetSelectItemFromValue(); | BPA_GOODSRECIPE goodsrecipe= GetSelectItemFromValue(); | ||||
if(goodsrecipe!=null) | if(goodsrecipe!=null) | ||||
{ | { | ||||
if(goodsrecipe.processname.equals("加热")) | |||||
{ | |||||
boolean isfa=false; | |||||
for (BPA_GOODSRECIPE item:bpa_goodsrecipes) | |||||
{ | |||||
if(item.processname.equals("搅拌")) | |||||
{ | |||||
isfa=true; | |||||
} | |||||
} | |||||
if(isfa==false) | |||||
{ | |||||
ToastUtils.warning("加热工序之前,必须先添加搅拌工序!"); | |||||
return; | |||||
} | |||||
} | |||||
bpa_goodsrecipes.add(GetSelectItemFromValue()); | bpa_goodsrecipes.add(GetSelectItemFromValue()); | ||||
gxbz_adapter.notifyDataSetChanged(); | gxbz_adapter.notifyDataSetChanged(); | ||||
} | } | ||||
@@ -95,7 +95,14 @@ public class SystemCsMonitorFragment extends BaseFragment { | |||||
try { | try { | ||||
for (StatusMode item:ConfigName.getInstance().statusModes) | for (StatusMode item:ConfigName.getInstance().statusModes) | ||||
{ | { | ||||
item.Status= ExecuteTheRecipe.getConcurrentHash(item.sort); | |||||
if(item.Name.contains("炒锅加热异常") ) | |||||
{ | |||||
Object K= ExecuteTheRecipe.ReadPLC("异常加热故障信息"); | |||||
item.Status= K == null ? false : (boolean) K; | |||||
}else | |||||
{ | |||||
item.Status= ExecuteTheRecipe.getConcurrentHash(item.sort); | |||||
} | |||||
} | } | ||||
jiaobandianji.setText( ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("搅拌电机"))); | jiaobandianji.setText( ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("搅拌电机"))); | ||||
@@ -121,7 +121,7 @@ public class SystemCsPLCFragment extends BaseFragment { | |||||
@Override | @Override | ||||
public void onClick(QMUIDialog dialog, int index) { | public void onClick(QMUIDialog dialog, int index) { | ||||
load_view.setVisibility(View.VISIBLE); | load_view.setVisibility(View.VISIBLE); | ||||
ConfigData.getInstance().RevertPLCProcess(); | |||||
ConfigData.getInstance().RevertPLC(); | |||||
Init(); | Init(); | ||||
ToastUtils.info("初始化成功!"); | ToastUtils.info("初始化成功!"); | ||||
dialog.dismiss(); | dialog.dismiss(); | ||||
@@ -123,6 +123,14 @@ public class fragment_plc_control extends LinearLayout { | |||||
edittext_plc.setText(str.toCharArray(), 0, str.length()); | edittext_plc.setText(str.toCharArray(), 0, str.length()); | ||||
} | } | ||||
} | } | ||||
if(model.address.startsWith("VR")) | |||||
{ | |||||
edittext_plc.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_CLASS_NUMBER); | |||||
}else | |||||
{ | |||||
edittext_plc.setInputType(InputType.TYPE_CLASS_NUMBER); | |||||
} | |||||
} | } | ||||
}else //只读 | }else //只读 | ||||
{ | { | ||||
@@ -150,13 +158,7 @@ public class fragment_plc_control extends LinearLayout { | |||||
} | } | ||||
}else //文本 | }else //文本 | ||||
{ | { | ||||
int val_k=0; | |||||
String dw=""; | String dw=""; | ||||
if(val!=null) | |||||
{ | |||||
val_k=Integer.parseInt(String.valueOf(val)); | |||||
} | |||||
if(model.name.contains("温度")) | if(model.name.contains("温度")) | ||||
{ | { | ||||
dw=" °C"; | dw=" °C"; | ||||
@@ -179,7 +181,7 @@ public class fragment_plc_control extends LinearLayout { | |||||
{ | { | ||||
dw=" 挡"; | dw=" 挡"; | ||||
} | } | ||||
text_wb.setText(val_k+dw); | |||||
text_wb.setText(val+dw); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -231,6 +233,19 @@ public class fragment_plc_control extends LinearLayout { | |||||
{ | { | ||||
int val=Integer.parseInt(text); | int val=Integer.parseInt(text); | ||||
ExecuteTheRecipe.WritePLC(model.name,val,null); | ExecuteTheRecipe.WritePLC(model.name,val,null); | ||||
} | |||||
else if(model.address.startsWith("VR")) | |||||
{ | |||||
float val=0; | |||||
try { | |||||
val=Float.parseFloat(text); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
ToastUtils.warning("输入数据不合法!"); | |||||
return; | |||||
} | |||||
ExecuteTheRecipe.WritePLC(model.name,val,null); | |||||
}else | }else | ||||
{ | { | ||||
Short val=Short.parseShort(text); | Short val=Short.parseShort(text); | ||||
@@ -9,8 +9,10 @@ import android.widget.ImageView; | |||||
import android.widget.LinearLayout; | import android.widget.LinearLayout; | ||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.helper.I.MyClickListener; | import com.bonait.bnframework.common.helper.I.MyClickListener; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -90,6 +92,14 @@ public class huoli_control extends LinearLayout { | |||||
@OnClick({R.id.colse, | @OnClick({R.id.colse, | ||||
R.id.hl1,R.id.hl2,R.id.hl3,R.id.hl4,R.id.hl5,R.id.hl6,R.id.hl7,R.id.hl8}) | R.id.hl1,R.id.hl2,R.id.hl3,R.id.hl4,R.id.hl5,R.id.hl6,R.id.hl7,R.id.hl8}) | ||||
public void onViewClicked(View view) { | public void onViewClicked(View view) { | ||||
if (view.getId()!=R.id.colse) | |||||
{ | |||||
Object OBJ = ExecuteTheRecipe.getListingValue("搅拌"); | |||||
if (!(OBJ != null && (boolean) OBJ)) { | |||||
ToastUtils.warning("请先打开搅拌!"); | |||||
return; | |||||
} | |||||
} | |||||
switch (view.getId()) { | switch (view.getId()) { | ||||
case R.id.colse://选择菜谱按钮点击 | case R.id.colse://选择菜谱按钮点击 | ||||
if(Status) | if(Status) | ||||
@@ -10,8 +10,10 @@ import android.widget.LinearLayout; | |||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.helper.I.MyClickListener; | import com.bonait.bnframework.common.helper.I.MyClickListener; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -109,6 +111,14 @@ public class newhuoli_control extends LinearLayout { | |||||
// { | // { | ||||
// return; | // return; | ||||
// } | // } | ||||
if (view.getId()!=R.id.colse) | |||||
{ | |||||
Object OBJ = ExecuteTheRecipe.getListingValue("搅拌"); | |||||
if (!(OBJ != null && (boolean) OBJ)) { | |||||
ToastUtils.warning("请先打开搅拌!"); | |||||
return; | |||||
} | |||||
} | |||||
switch (view.getId()) { | switch (view.getId()) { | ||||
case R.id.colse://选择菜谱按钮点击 | case R.id.colse://选择菜谱按钮点击 | ||||
if(Status) | if(Status) | ||||
@@ -91,14 +91,28 @@ | |||||
android:layout_height="45dp" /> | android:layout_height="45dp" /> | ||||
</RelativeLayout> | </RelativeLayout> | ||||
<TextView | |||||
android:id="@+id/gongxumiaoshu" | |||||
<LinearLayout | |||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | |||||
android:layout_marginTop="5dp" | |||||
android:text="步骤1 加油50g" | |||||
android:textColor="#797373" | |||||
android:textSize="14dp" /> | |||||
android:layout_height="wrap_content"> | |||||
<TextView | |||||
android:id="@+id/gongxumiaoshu" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:layout_marginTop="5dp" | |||||
android:text="步骤1 加油50g" | |||||
android:textColor="#797373" | |||||
android:textSize="14dp" /> | |||||
<TextView | |||||
android:id="@+id/gongxutime" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_marginTop="5dp" | |||||
android:text="预计等待:0" | |||||
android:textColor="#797373" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
</LinearLayout> | </LinearLayout> | ||||
<com.bonait.bnframework.modules.home.fragment.mode.imagebuttom | <com.bonait.bnframework.modules.home.fragment.mode.imagebuttom | ||||
@@ -64,7 +64,7 @@ | |||||
<!-- 开始启动 --> | <!-- 开始启动 --> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="60dp" | |||||
android:layout_height="80dp" | |||||
android:layout_marginTop="2dp" | android:layout_marginTop="2dp" | ||||
android:background="@color/qmui_config_color_white" | android:background="@color/qmui_config_color_white" | ||||
android:padding="5dp"> | android:padding="5dp"> | ||||
@@ -101,6 +101,29 @@ | |||||
android:textColor="@color/app_color_blue" | android:textColor="@color/app_color_blue" | ||||
android:textSize="18dp" /> | android:textSize="18dp" /> | ||||
<LinearLayout | |||||
android:layout_marginTop="20dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content"> | |||||
<TextView | |||||
android:id="@+id/gongxumiaoshu" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:layout_marginTop="5dp" | |||||
android:text="等待开始.." | |||||
android:textColor="#797373" | |||||
android:textSize="14dp" /> | |||||
<TextView | |||||
android:id="@+id/gongxutime" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_marginTop="5dp" | |||||
android:text="预计等待:0" | |||||
android:textColor="#797373" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
<com.qmuiteam.qmui.widget.textview.QMUILinkTextView | <com.qmuiteam.qmui.widget.textview.QMUILinkTextView | ||||
android:id="@+id/shengyushijian" | android:id="@+id/shengyushijian" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
@@ -45,7 +45,7 @@ | |||||
android:layout_marginLeft="5dp" | android:layout_marginLeft="5dp" | ||||
android:background="@drawable/input_bj" | android:background="@drawable/input_bj" | ||||
android:hint="请输入变量" | android:hint="请输入变量" | ||||
android:inputType="number" | |||||
android:inputType="number|numberDecimal" | |||||
android:layout_centerVertical="true" | android:layout_centerVertical="true" | ||||
android:maxLines="1" | android:maxLines="1" | ||||
android:padding="3dp" | android:padding="3dp" | ||||