@@ -930,14 +930,6 @@ public class ConfigData { | |||||
* 连接PLC | * 连接PLC | ||||
*/ | */ | ||||
public void ConnectPLC() { | public void ConnectPLC() { | ||||
ConfigName.getInstance().PLC_Address.clear(); | |||||
ArrayList<BPA_PLCADDRESS> address = QueryDB.GetPlcaddressALL(); | |||||
for (BPA_PLCADDRESS item : address) { | |||||
if (!item.address.isEmpty() && !item.address.equals("-------------")) { | |||||
ConfigName.getInstance().PLC_Address.put(item.name, item); | |||||
} | |||||
} | |||||
ExecuteTheRecipe.Listening();//启动数据监听 | |||||
new Thread(new Runnable() { | new Thread(new Runnable() { | ||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
@@ -959,7 +951,8 @@ public class ConfigData { | |||||
* PLC初始化完成时,需要注册的服务 | * PLC初始化完成时,需要注册的服务 | ||||
*/ | */ | ||||
public void PLC_Init() { | public void PLC_Init() { | ||||
//PLC连接成功,启动数据监听 | |||||
ExecuteTheRecipe.Listening(); | |||||
} | } | ||||
//endregion | //endregion | ||||
@@ -36,29 +36,64 @@ import java.util.concurrent.ConcurrentHashMap; | |||||
*/ | */ | ||||
public class ExecuteTheRecipe { | public class ExecuteTheRecipe { | ||||
//region 变量 | |||||
/** | /** | ||||
* 等待超时时间 | * 等待超时时间 | ||||
*/ | */ | ||||
public static int whileTime = 2; | |||||
public static int whileTime = 10; | |||||
/** | /** | ||||
* 监听变量值 | * 监听变量值 | ||||
*/ | */ | ||||
public static HashMap<String, Object> ListeningValue = new HashMap<String, Object>(); | public static HashMap<String, Object> ListeningValue = new HashMap<String, Object>(); | ||||
/** | |||||
* 外部界面 | |||||
*/ | |||||
public static Context context = null; | |||||
/** | |||||
* 商品是否强制结束 | |||||
*/ | |||||
public static boolean IsForcedEnd = false; | |||||
//endregion | |||||
//region 强制结束 | |||||
/** | |||||
* 设置强制结束 | |||||
*/ | |||||
public static void SetForcedEnd() | |||||
{ | |||||
ToastUtils.info("客官,小菠萝正在强制结束当前炒制菜品,请耐心等候!!!"); | |||||
IsForcedEnd=true; | |||||
} | |||||
/** | |||||
* 停止强制结束 | |||||
*/ | |||||
public static void StopForcedEnd() | |||||
{ | |||||
IsForcedEnd=false; | |||||
} | |||||
//endregion | |||||
//region 执行配方 | |||||
/** | /** | ||||
* 执行配方 | * 执行配方 | ||||
* | * | ||||
* @param recipe | * @param recipe | ||||
* @return | * @return | ||||
*/ | */ | ||||
public static Context context = null; | |||||
public static boolean Execute(BPA_GOODSRECIPE recipe) { | public static boolean Execute(BPA_GOODSRECIPE recipe) { | ||||
boolean status = false; | boolean status = false; | ||||
try { | try { | ||||
ToastUtils.info("开始执行:" + recipe.sort + "、" + recipe.processms); | |||||
//1.解析 | //1.解析 | ||||
if(IsForcedEnd) | |||||
{ | |||||
ToastUtils.info("客官,小菠萝正在强制结束当前炒制菜品,请耐心等候!!!"); | |||||
return false; | |||||
} | |||||
ToastUtils.info("开始执行:" + recipe.sort + "、" + recipe.processms); | |||||
if (recipe.materialType == 0)//正常物料 | if (recipe.materialType == 0)//正常物料 | ||||
{ | { | ||||
ExecuteMaterialIssuance(recipe.processvalue); | ExecuteMaterialIssuance(recipe.processvalue); | ||||
@@ -180,6 +215,7 @@ public class ExecuteTheRecipe { | |||||
ToastUtils.error("异常信息:" + ex.getMessage()); | ToastUtils.error("异常信息:" + ex.getMessage()); | ||||
} | } | ||||
} | } | ||||
//endregion | |||||
//region 物料PLC控制 | //region 物料PLC控制 | ||||
@@ -640,6 +676,13 @@ public class ExecuteTheRecipe { | |||||
//region PLC监听线程 | //region PLC监听线程 | ||||
public static void Listening() { | public static void Listening() { | ||||
ConfigName.getInstance().PLC_Address.clear(); | |||||
ArrayList<BPA_PLCADDRESS> address = QueryDB.GetPlcaddressALL(); | |||||
for (BPA_PLCADDRESS item : address) { | |||||
if (!item.address.isEmpty() && !item.address.equals("-------------")) { | |||||
ConfigName.getInstance().PLC_Address.put(item.name, item); | |||||
} | |||||
} | |||||
ThreadManager.Get().StartLong("PLC设备数据监听", true, new IThread() { | ThreadManager.Get().StartLong("PLC设备数据监听", true, new IThread() { | ||||
@Override | @Override | ||||
public void Run() throws InterruptedException { | public void Run() throws InterruptedException { | ||||
@@ -577,10 +577,6 @@ public class ConfigName { | |||||
//翻转正转模型 | //翻转正转模型 | ||||
add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1)); | add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1)); | ||||
add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1)); | |||||
//翻转反转模型 | |||||
add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1)); | add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1)); | ||||
add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1)); | add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1)); | ||||
@@ -589,6 +585,8 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("加热", "M10.6", 0, 1)); | add(new Res_PLCADDRESS("加热", "M10.6", 0, 1)); | ||||
add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1)); | add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1)); | ||||
//主料 | |||||
add(new Res_PLCADDRESS("主料", "M17.4", 0, 1)); | |||||
//抽水放水 | //抽水放水 | ||||
add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1)); | add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1)); | ||||
@@ -614,21 +612,20 @@ public class ConfigName { | |||||
//液体料模型 | //液体料模型 | ||||
add(new Res_PLCADDRESS("液体料", "-------------", 0, 0)); | add(new Res_PLCADDRESS("液体料", "-------------", 0, 0)); | ||||
add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1)); | |||||
add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1)); | |||||
add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1)); | |||||
add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1)); | |||||
add(new Res_PLCADDRESS("料仓1下料手动", "M12.3", 0, 1)); | add(new Res_PLCADDRESS("料仓1下料手动", "M12.3", 0, 1)); | ||||
add(new Res_PLCADDRESS("料仓2下料手动", "M12.4", 0, 1)); | add(new Res_PLCADDRESS("料仓2下料手动", "M12.4", 0, 1)); | ||||
add(new Res_PLCADDRESS("料仓3下料手动", "M12.5", 0, 1)); | add(new Res_PLCADDRESS("料仓3下料手动", "M12.5", 0, 1)); | ||||
add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1)); | |||||
add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1)); | add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1)); | ||||
add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1)); | add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1)); | ||||
add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1)); | add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1)); | ||||
add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1)); | |||||
add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1)); | |||||
add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1)); | |||||
add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1)); | |||||
//上下限 | //上下限 | ||||
add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0)); | add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0)); | ||||
@@ -649,6 +646,54 @@ 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("平移-点动正转", "M14.0", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-点动反转", "M14.1", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-回原点", "M14.2", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-去1号位", "M14.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-去2号位", "M14.4", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-去3号位", "M14.5", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-去4号位", "M14.6", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-1#位置设定", "M15.0", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-2#位置设定", "M15.1", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-3#位置设定", "M15.2", 0, 1)); | |||||
add(new Res_PLCADDRESS("平移-4#位置设定", "M15.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-点动正转", "M16.0", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-点动反转", "M16.1", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-回原点", "M16.2", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-去1号位", "M16.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-去2号位", "M16.4", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-去3号位", "M16.5", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-去4号位", "M16.6", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-1#位置设定", "M17.0", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-2#位置设定", "M17.1", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-3#位置设定", "M17.2", 0, 1)); | |||||
add(new Res_PLCADDRESS("翻转-4#位置设定", "M17.3", 0, 1)); | |||||
add(new Res_PLCADDRESS("倒菜启动", "M17.4", 0, 1)); | |||||
add(new Res_PLCADDRESS("磁铁吸合", "M17.5", 0, 1)); | |||||
//自动投料-翻转轴 | |||||
add(new Res_PLCADDRESS("转轴监控", "-------------", 0, 0)); | |||||
add(new Res_PLCADDRESS("平移-伺服当前值", "VD220", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-点动速度", "VD224", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-回原点速度", "VD228", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-定位运行速度", "VD232", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-1号位置值", "VD236", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-2号位置值", "VD240", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-3号位置值", "VD244", 1, 1)); | |||||
add(new Res_PLCADDRESS("平移-4号位置值", "VD248", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-伺服当前值", "VD260", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-点动速度", "VD264", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-回原点速度", "VD268", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-定位运行速度", "VD272", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-1号位置值", "VD276", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-2号位置值", "VD280", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-3号位置值", "VD284", 1, 1)); | |||||
add(new Res_PLCADDRESS("翻转-4号位置值", "VD288", 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)); | ||||
@@ -667,6 +712,15 @@ public class ConfigName { | |||||
add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0)); | add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0)); | ||||
add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0)); | add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0)); | ||||
add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0)); | add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0)); | ||||
add(new Res_PLCADDRESS("平移轴在1号位", "M43.0", 1, 0)); | |||||
add(new Res_PLCADDRESS("平移轴在2号位", "M43.1", 1, 0)); | |||||
add(new Res_PLCADDRESS("平移轴在3号位", "M43.2", 1, 0)); | |||||
add(new Res_PLCADDRESS("平移轴在4号位", "M43.3", 1, 0)); | |||||
add(new Res_PLCADDRESS("翻转轴在1号位", "M44.0", 1, 0)); | |||||
add(new Res_PLCADDRESS("翻转轴在2号位", "M44.1", 1, 0)); | |||||
add(new Res_PLCADDRESS("翻转轴在3号位", "M44.2", 1, 0)); | |||||
add(new Res_PLCADDRESS("翻转轴在4号位", "M44.3", 1, 0)); | |||||
add(new Res_PLCADDRESS("倒菜完成", "M44.4", 1, 0)); | |||||
//检测信号 | //检测信号 | ||||
add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0)); | add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0)); | ||||
@@ -700,7 +754,7 @@ public class ConfigName { | |||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | ||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | ||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | ||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料重量", "延迟(秒)", "投料动作"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作"))); | |||||
add(new ProcessT("液体料", new ArrayList<>())); | add(new ProcessT("液体料", new ArrayList<>())); | ||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | ||||
add(new ProcessT("出菜", Arrays.asList("延迟(秒)"))); | add(new ProcessT("出菜", Arrays.asList("延迟(秒)"))); | ||||
@@ -5,6 +5,7 @@ import android.view.LayoutInflater; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import android.widget.ImageView; | import android.widget.ImageView; | ||||
import android.widget.LinearLayout; | |||||
import android.widget.TextView; | import android.widget.TextView; | ||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
@@ -74,7 +75,7 @@ public class FilePickerShowAdapter extends RecyclerView.Adapter<RecyclerView.Vie | |||||
holder.mIvType.setImageResource(R.mipmap.file_picker_def); | holder.mIvType.setImageResource(R.mipmap.file_picker_def); | ||||
} | } | ||||
holder.itemView.setOnClickListener(new View.OnClickListener() { | |||||
holder.image_open.setOnClickListener(new View.OnClickListener() { | |||||
@Override | @Override | ||||
public void onClick(View v) { | public void onClick(View v) { | ||||
if (mOnItemClickListener != null) { | if (mOnItemClickListener != null) { | ||||
@@ -86,9 +87,15 @@ public class FilePickerShowAdapter extends RecyclerView.Adapter<RecyclerView.Vie | |||||
holder.mIvDelete.setOnClickListener(new View.OnClickListener() { | holder.mIvDelete.setOnClickListener(new View.OnClickListener() { | ||||
@Override | @Override | ||||
public void onClick(View v) { | public void onClick(View v) { | ||||
mDataList.remove(holder.getAdapterPosition()); | |||||
if (mOnDeleteListener != null) | |||||
mOnDeleteListener.delete(holder.getAdapterPosition()); | |||||
int position=holder.getAdapterPosition(); | |||||
File file= mDataList.get(position).getFile(); | |||||
if (file.exists() && file.isFile()) | |||||
{ | |||||
file.delete(); | |||||
mDataList.remove(position); | |||||
} | |||||
notifyDataSetChanged(); | notifyDataSetChanged(); | ||||
} | } | ||||
}); | }); | ||||
@@ -106,13 +113,14 @@ public class FilePickerShowAdapter extends RecyclerView.Adapter<RecyclerView.Vie | |||||
class FileShowViewHolder extends RecyclerView.ViewHolder { | class FileShowViewHolder extends RecyclerView.ViewHolder { | ||||
private ImageView mIvType, mIvDelete; | private ImageView mIvType, mIvDelete; | ||||
private TextView mTvName, mTvDetail; | private TextView mTvName, mTvDetail; | ||||
private LinearLayout image_open; | |||||
public FileShowViewHolder(View itemView) { | public FileShowViewHolder(View itemView) { | ||||
super(itemView); | super(itemView); | ||||
mIvType = (ImageView) itemView.findViewById(R.id.iv_type); | mIvType = (ImageView) itemView.findViewById(R.id.iv_type); | ||||
mIvDelete = (ImageView) itemView.findViewById(R.id.iv_delete); | mIvDelete = (ImageView) itemView.findViewById(R.id.iv_delete); | ||||
mTvName = (TextView) itemView.findViewById(R.id.tv_name); | mTvName = (TextView) itemView.findViewById(R.id.tv_name); | ||||
mTvDetail = (TextView) itemView.findViewById(R.id.tv_detail); | mTvDetail = (TextView) itemView.findViewById(R.id.tv_detail); | ||||
image_open=itemView.findViewById(R.id.image_open); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -158,7 +158,6 @@ public class BottomNavigation2Activity extends BaseActivity { | |||||
//判断连接环境 | //判断连接环境 | ||||
ConfigData.getInstance().ToggleEnvironment(); | ConfigData.getInstance().ToggleEnvironment(); | ||||
//2.初始化PLC | //2.初始化PLC | ||||
//ConfigData.getInstance().ConnectPLC(); | |||||
//3. | |||||
ConfigData.getInstance().ConnectPLC(); | |||||
} | } | ||||
} | } |
@@ -108,7 +108,9 @@ public class Home1Fragment extends BaseFragment { | |||||
@BindView(R.id.nifty_slider3) | @BindView(R.id.nifty_slider3) | ||||
NiftySlider nifty_slider3;// | NiftySlider nifty_slider3;// | ||||
/** | |||||
* 商品是否开始制作 | |||||
*/ | |||||
public boolean Status = false; | public boolean Status = false; | ||||
/** | /** | ||||
* 当前制作商品信息 | * 当前制作商品信息 | ||||
@@ -139,14 +141,14 @@ public class Home1Fragment extends BaseFragment { | |||||
nifty_slider2.setOnValueChangeListener(new NiftySlider.OnValueChangeListener() { | nifty_slider2.setOnValueChangeListener(new NiftySlider.OnValueChangeListener() { | ||||
@Override | @Override | ||||
public void onValueChange(@NonNull NiftySlider niftySlider, float v, boolean b) { | public void onValueChange(@NonNull NiftySlider niftySlider, float v, boolean b) { | ||||
nifty_slider2.setThumbText((int)v+""); | |||||
nifty_slider2.setThumbText((int) v + ""); | |||||
} | } | ||||
}); | }); | ||||
nifty_slider3.setOnValueChangeListener(new NiftySlider.OnValueChangeListener() { | nifty_slider3.setOnValueChangeListener(new NiftySlider.OnValueChangeListener() { | ||||
@Override | @Override | ||||
public void onValueChange(@NonNull NiftySlider niftySlider, float v, boolean b) { | public void onValueChange(@NonNull NiftySlider niftySlider, float v, boolean b) { | ||||
nifty_slider3.setThumbText((int)v+""); | |||||
nifty_slider3.setThumbText((int) v + ""); | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@@ -181,6 +183,10 @@ public class Home1Fragment extends BaseFragment { | |||||
DataBus.getInstance().lcadapter = new lc_adapter(getContext()); | DataBus.getInstance().lcadapter = new lc_adapter(getContext()); | ||||
recyclerView.setAdapter(DataBus.getInstance().lcadapter); | recyclerView.setAdapter(DataBus.getInstance().lcadapter); | ||||
nifty_slider2.setValue(0,true); | |||||
nifty_slider3.setValue(0,true); | |||||
} catch (Exception e) { | } catch (Exception e) { | ||||
ToastUtils.info("异常信息:" + e.getMessage()); | ToastUtils.info("异常信息:" + e.getMessage()); | ||||
} | } | ||||
@@ -193,7 +199,7 @@ public class Home1Fragment extends BaseFragment { | |||||
huoli.mListener = new MyClickListener() { | huoli.mListener = new MyClickListener() { | ||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
ExecuteTheRecipe.Write_PLC_HuoLI((int)data); | |||||
ExecuteTheRecipe.Write_PLC_HuoLI((int) data); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -205,6 +211,7 @@ public class Home1Fragment extends BaseFragment { | |||||
DataBus.getInstance().mListener = new MyClickListener() { | DataBus.getInstance().mListener = new MyClickListener() { | ||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
//if (!IsMake(true)) { return; } | |||||
good = (BPA_GOODS) data; | good = (BPA_GOODS) data; | ||||
SetBottonStatus(false); | SetBottonStatus(false); | ||||
caipumingcheng.setText(good.name); | caipumingcheng.setText(good.name); | ||||
@@ -218,117 +225,145 @@ public class Home1Fragment extends BaseFragment { | |||||
}; | }; | ||||
} | } | ||||
public void ControlClicked() | |||||
{ | |||||
// @BindView(R.id.choushui_control) | |||||
// imagebutton_control choushui_control;//抽水 | |||||
// @BindView(R.id.fangshui_control) | |||||
// imagebutton_control fangshui_control;//防水 | |||||
jiaoban_control.mListener=new MyClickListener() { | |||||
/** | |||||
* Image Button 按钮点击事件 | |||||
*/ | |||||
public void ControlClicked() { | |||||
//搅拌挡位 | |||||
jiaoban_control.mListener = new MyClickListener() { | |||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
boolean status=(boolean) data; | |||||
int jd=(int) nifty_slider2.getValue(); | |||||
ToastUtils.info("点击按钮:搅拌"+status+".搅拌频率:"+jd); | |||||
boolean status = (boolean) data; | |||||
if (!IsMake(true)) | |||||
{ | |||||
jiaoban_control.SetStatus(!status); | |||||
return; | |||||
} | |||||
int jd = (int) nifty_slider2.getValue(); | |||||
ToastUtils.info("点击按钮:搅拌" + status + ".搅拌频率:" + jd); | |||||
ExecuteTheRecipe.WritePLC("搅拌速度", jd, new IWriteCallBack() { | ExecuteTheRecipe.WritePLC("搅拌速度", jd, new IWriteCallBack() { | ||||
@Override | @Override | ||||
public void onSuccess() { | public void onSuccess() { | ||||
if(jd==0) | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("搅拌", false,null); | |||||
}else | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("搅拌", status,null); | |||||
if (jd == 0) { | |||||
ExecuteTheRecipe.WritePLC("搅拌", false, null); | |||||
} else { | |||||
ExecuteTheRecipe.WritePLC("搅拌", status, null); | |||||
} | } | ||||
} | } | ||||
@Override | @Override | ||||
public void onFailure(String ErrorMsg) { | public void onFailure(String ErrorMsg) { | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@Override | @Override | ||||
public void clickListenerNew(View v, int k, Object data) { | public void clickListenerNew(View v, int k, Object data) { | ||||
} | } | ||||
}; | }; | ||||
zhuandong_control_left.mListener=new MyClickListener() { | |||||
//转动 左 | |||||
zhuandong_control_left.mListener = new MyClickListener() { | |||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
boolean status=(boolean) data; | |||||
ToastUtils.info("点击按钮:炒锅正转"+status); | |||||
int jd= (int) nifty_slider3.getValue(); | |||||
ToastUtils.info("点击按钮:搅拌"+status+".转动频率:"+jd); | |||||
boolean status = (boolean) data; | |||||
if (!IsMake(true)) | |||||
{ | |||||
zhuandong_control_left.SetStatus(!status); | |||||
return; | |||||
} | |||||
ToastUtils.info("点击按钮:炒锅正转" + status); | |||||
int jd = (int) nifty_slider3.getValue(); | |||||
ToastUtils.info("点击按钮:搅拌" + status + ".转动频率:" + jd); | |||||
ExecuteTheRecipe.WritePLC("转动速度", jd, new IWriteCallBack() { | ExecuteTheRecipe.WritePLC("转动速度", jd, new IWriteCallBack() { | ||||
@Override | @Override | ||||
public void onSuccess() { | public void onSuccess() { | ||||
if(jd==0) | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("翻转正转", false,null); | |||||
}else | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("翻转正转", status,null); | |||||
if (jd == 0) { | |||||
ExecuteTheRecipe.WritePLC("翻转正转", false, null); | |||||
} else { | |||||
ExecuteTheRecipe.WritePLC("翻转正转", status, null); | |||||
} | } | ||||
} | } | ||||
@Override | @Override | ||||
public void onFailure(String ErrorMsg) { | public void onFailure(String ErrorMsg) { | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@Override | @Override | ||||
public void clickListenerNew(View v, int k, Object data) { | public void clickListenerNew(View v, int k, Object data) { | ||||
} | } | ||||
}; | }; | ||||
zhuandong_control_Rift.mListener=new MyClickListener() { | |||||
//转动 右 | |||||
zhuandong_control_Rift.mListener = new MyClickListener() { | |||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
boolean status=(boolean) data; | |||||
ToastUtils.info("点击按钮:炒锅反转"+status); | |||||
int jd= (int) nifty_slider3.getValue(); | |||||
ToastUtils.info("点击按钮:搅拌"+status+".转动频率:"+jd); | |||||
boolean status = (boolean) data; | |||||
if (!IsMake(true)) | |||||
{ | |||||
zhuandong_control_Rift.SetStatus(!status); | |||||
return; | |||||
} | |||||
ToastUtils.info("点击按钮:炒锅反转" + status); | |||||
int jd = (int) nifty_slider3.getValue(); | |||||
ToastUtils.info("点击按钮:搅拌" + status + ".转动频率:" + jd); | |||||
ExecuteTheRecipe.WritePLC("转动速度", jd, new IWriteCallBack() { | ExecuteTheRecipe.WritePLC("转动速度", jd, new IWriteCallBack() { | ||||
@Override | @Override | ||||
public void onSuccess() { | public void onSuccess() { | ||||
if(jd==0) | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("翻转反转", false,null); | |||||
}else | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("翻转反转", status,null); | |||||
if (jd == 0) { | |||||
ExecuteTheRecipe.WritePLC("翻转反转", false, null); | |||||
} else { | |||||
ExecuteTheRecipe.WritePLC("翻转反转", status, null); | |||||
} | } | ||||
} | } | ||||
@Override | @Override | ||||
public void onFailure(String ErrorMsg) { | public void onFailure(String ErrorMsg) { | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@Override | @Override | ||||
public void clickListenerNew(View v, int k, Object data) { | public void clickListenerNew(View v, int k, Object data) { | ||||
} | } | ||||
}; | }; | ||||
choushui_control.mListener=new MyClickListener() { | |||||
//抽水启动 | |||||
choushui_control.mListener = new MyClickListener() { | |||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
boolean status=(boolean) data; | |||||
ToastUtils.info("点击按钮:炒锅抽水"+status); | |||||
ExecuteTheRecipe.WritePLC("炒锅抽水", status,null); | |||||
boolean status = (boolean) data; | |||||
if (!IsMake(true)) | |||||
{ | |||||
choushui_control.SetStatus(!status); | |||||
return; | |||||
} | |||||
ToastUtils.info("点击按钮:炒锅抽水" + status); | |||||
ExecuteTheRecipe.WritePLC("炒锅抽水", status, null); | |||||
} | } | ||||
@Override | @Override | ||||
public void clickListenerNew(View v, int k, Object data) { | public void clickListenerNew(View v, int k, Object data) { | ||||
} | } | ||||
}; | }; | ||||
fangshui_control.mListener=new MyClickListener() { | |||||
//放水启动 | |||||
fangshui_control.mListener = new MyClickListener() { | |||||
@Override | @Override | ||||
public void clickListener(View v, Object data) { | public void clickListener(View v, Object data) { | ||||
boolean status=(boolean) data; | |||||
ToastUtils.info("点击按钮:炒锅放水"+status); | |||||
ExecuteTheRecipe.WritePLC("炒锅放水", status,null); | |||||
boolean status = (boolean) data; | |||||
if (!IsMake(true)) | |||||
{ | |||||
fangshui_control.SetStatus(!status); | |||||
return; | |||||
} | |||||
ToastUtils.info("点击按钮:炒锅放水" + status); | |||||
ExecuteTheRecipe.WritePLC("炒锅放水", status, null); | |||||
} | } | ||||
@Override | @Override | ||||
public void clickListenerNew(View v, int k, Object data) { | public void clickListenerNew(View v, int k, Object data) { | ||||
@@ -339,9 +374,8 @@ public class Home1Fragment extends BaseFragment { | |||||
/** | /** | ||||
* 商品制作线程 | * 商品制作线程 | ||||
*/ | */ | ||||
public void MakeThread() | |||||
{ | |||||
ExecuteTheRecipe.context=context; | |||||
public void MakeThread() { | |||||
ExecuteTheRecipe.context = context; | |||||
new Thread(new Runnable() { | new Thread(new Runnable() { | ||||
@Override | @Override | ||||
@@ -349,24 +383,18 @@ public class Home1Fragment extends BaseFragment { | |||||
while (true) { | while (true) { | ||||
try { | try { | ||||
if(Status && good!=null) | |||||
{ | |||||
try | |||||
{ | |||||
if (Status && good != null) { | |||||
try { | |||||
//获取工艺 | //获取工艺 | ||||
ArrayList<BPA_GOODSRECIPE> goodsrecipes = QueryDB.GetGoodsSrecipeID(good.id); | ArrayList<BPA_GOODSRECIPE> goodsrecipes = QueryDB.GetGoodsSrecipeID(good.id); | ||||
for(BPA_GOODSRECIPE item:goodsrecipes) | |||||
{ | |||||
for (BPA_GOODSRECIPE item : goodsrecipes) { | |||||
ExecuteTheRecipe.Execute(item); | ExecuteTheRecipe.Execute(item); | ||||
} | } | ||||
}catch (Exception ex) | |||||
{ | |||||
} catch (Exception ex) { | |||||
ToastUtils.error("异常信息:" + ex.getMessage()); | ToastUtils.error("异常信息:" + ex.getMessage()); | ||||
}finally { | |||||
Activity activity=getActivity(); | |||||
if(activity!=null) | |||||
{ | |||||
} finally { | |||||
Activity activity = getActivity(); | |||||
if (activity != null) { | |||||
activity.runOnUiThread(new Runnable() { | activity.runOnUiThread(new Runnable() { | ||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
@@ -376,7 +404,19 @@ public class Home1Fragment extends BaseFragment { | |||||
} | } | ||||
} | } | ||||
} | } | ||||
Thread.sleep(1000); | |||||
} catch (InterruptedException e) { | |||||
ToastUtils.info("异常信息:" + e.getMessage()); | |||||
} | |||||
} | |||||
} | |||||
}).start(); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
while (true) { | |||||
try { | |||||
SxUI(); | SxUI(); | ||||
Thread.sleep(1000); | Thread.sleep(1000); | ||||
} catch (InterruptedException e) { | } catch (InterruptedException e) { | ||||
@@ -390,40 +430,46 @@ public class Home1Fragment extends BaseFragment { | |||||
/** | /** | ||||
* 刷新UI界面 | * 刷新UI界面 | ||||
*/ | */ | ||||
public void SxUI() | |||||
{ | |||||
Activity activity=getActivity(); | |||||
if(activity!=null) | |||||
{ | |||||
public void SxUI() { | |||||
Activity activity = getActivity(); | |||||
if (activity != null) { | |||||
activity.runOnUiThread(new Runnable() { | activity.runOnUiThread(new Runnable() { | ||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
Object val_wd= ExecuteTheRecipe.getListingValue("当前锅底温度"); | |||||
Object val_wz= ExecuteTheRecipe.getListingValue("编码器当前位值"); | |||||
if(val_wd!=null) | |||||
{ | |||||
chaoguo_wendu.setText(val_wd+""); | |||||
}else | |||||
{ | |||||
Object val_wd = ExecuteTheRecipe.getListingValue("当前锅底温度"); | |||||
Object val_wz = ExecuteTheRecipe.getListingValue("编码器当前位值"); | |||||
Object val_jbpl = ExecuteTheRecipe.getListingValue("搅拌频率"); | |||||
Object val_fzpv = ExecuteTheRecipe.getListingValue("翻转频率"); | |||||
if (val_wd != null) { | |||||
chaoguo_wendu.setText(val_wd + ""); | |||||
} else { | |||||
chaoguo_wendu.setText("未知"); | chaoguo_wendu.setText("未知"); | ||||
} | } | ||||
if(val_wz!=null) | |||||
{ | |||||
chaoguo_weizhi.setText(val_wz+""); | |||||
}else | |||||
{ | |||||
if (val_wz != null) { | |||||
chaoguo_weizhi.setText(val_wz + ""); | |||||
} else { | |||||
chaoguo_weizhi.setText("未知"); | chaoguo_weizhi.setText("未知"); | ||||
} | } | ||||
plc_zhuangtai.setText(ConfigName.getInstance().PlcIsConnect?"已连接":"断开"); | |||||
plc_zhuangtai.setTextColor(ConfigName.getInstance().PlcIsConnect? Color.GREEN:Color.BLACK); | |||||
if (val_jbpl != null) { | |||||
int val=Integer.parseInt(String.valueOf(val_jbpl)); | |||||
nifty_slider2.setValue(val,true); | |||||
} | |||||
if (val_fzpv != null) { | |||||
int val=Integer.parseInt(String.valueOf(val_jbpl)); | |||||
nifty_slider3.setValue(val,true); | |||||
} | |||||
SetBottonStatus(false); | |||||
plc_zhuangtai.setText(ConfigName.getInstance().PlcIsConnect ? "已连接" : "断开"); | |||||
plc_zhuangtai.setTextColor(ConfigName.getInstance().PlcIsConnect ? Color.GREEN : Color.BLACK); | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* 设置进度条百分比 | * 设置进度条百分比 | ||||
* | * | ||||
@@ -434,7 +480,7 @@ public class Home1Fragment extends BaseFragment { | |||||
try { | try { | ||||
jingdu.setProgress((usertime * 100) / alltime); | jingdu.setProgress((usertime * 100) / alltime); | ||||
jingdu.setSecondProgress((usertime * 100) / alltime); | jingdu.setSecondProgress((usertime * 100) / alltime); | ||||
shengyushijian.setText("预计剩余时间:" + (alltime-usertime) + "s"); | |||||
shengyushijian.setText("预计剩余时间:" + (alltime - usertime) + "s"); | |||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
ToastUtils.error("异常信息:" + ex.getMessage()); | ToastUtils.error("异常信息:" + ex.getMessage()); | ||||
} | } | ||||
@@ -450,10 +496,10 @@ public class Home1Fragment extends BaseFragment { | |||||
Status = status; | Status = status; | ||||
if (status) { | if (status) { | ||||
startbutton.setImageResource(R.mipmap.tzzz); | startbutton.setImageResource(R.mipmap.tzzz); | ||||
TimerCount(good.maketime,true);//开始计时器,记录进度条 | |||||
TimerCount(good.maketime, true);//开始计时器,记录进度条 | |||||
} else { | } else { | ||||
startbutton.setImageResource(R.mipmap.qdzz); | startbutton.setImageResource(R.mipmap.qdzz); | ||||
TimerCount(0,false);//停止计时器 | |||||
TimerCount(0, false);//停止计时器 | |||||
} | } | ||||
if (good != null) { | if (good != null) { | ||||
SetProcesssUI(good.maketime, 0); | SetProcesssUI(good.maketime, 0); | ||||
@@ -467,33 +513,31 @@ public class Home1Fragment extends BaseFragment { | |||||
/** | /** | ||||
* 计时器 | * 计时器 | ||||
* | |||||
* @param alltime | * @param alltime | ||||
* @param status | * @param status | ||||
*/ | */ | ||||
public void TimerCount(int alltime, boolean status) { | public void TimerCount(int alltime, boolean status) { | ||||
if(status) | |||||
{ | |||||
if(countDownTimer==null) | |||||
{ | |||||
if (status) { | |||||
if (countDownTimer == null) { | |||||
countDownTimer = new CountDownTimer(alltime * 1000, 1000) { | countDownTimer = new CountDownTimer(alltime * 1000, 1000) { | ||||
@Override | @Override | ||||
public void onTick(long millisUntilFinished) { | public void onTick(long millisUntilFinished) { | ||||
int overtime = (int) ((millisUntilFinished) / 1000);//剩余时间 | int overtime = (int) ((millisUntilFinished) / 1000);//剩余时间 | ||||
SetProcesssUI(alltime,alltime-overtime); | |||||
SetProcesssUI(alltime, alltime - overtime); | |||||
} | } | ||||
@Override | @Override | ||||
public void onFinish() { | public void onFinish() { | ||||
SetProcesssUI(alltime,alltime);//进度条100% | |||||
SetProcesssUI(alltime, alltime);//进度条100% | |||||
} | } | ||||
}; | }; | ||||
} | } | ||||
countDownTimer.start(); | countDownTimer.start(); | ||||
}else | |||||
{ | |||||
if(countDownTimer!=null) | |||||
{ | |||||
} else { | |||||
if (countDownTimer != null) { | |||||
countDownTimer.cancel(); | countDownTimer.cancel(); | ||||
countDownTimer=null; | |||||
countDownTimer = null; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -505,8 +549,8 @@ public class Home1Fragment extends BaseFragment { | |||||
*/ | */ | ||||
@OnClick({R.id.xzcp, R.id.startbutton, R.id.qdjb, R.id.tzjb | @OnClick({R.id.xzcp, R.id.startbutton, R.id.qdjb, R.id.tzjb | ||||
, R.id.yaoqian, R.id.tingyao | , R.id.yaoqian, R.id.tingyao | ||||
, R.id.ydw, R.id.dcw, R.id.clw,R.id.qxw,R.id.ccw1,R.id.ccw2,R.id.ccw3 | |||||
, R.id.chushihua,R.id.jiting}) | |||||
, R.id.ydw, R.id.dcw, R.id.clw, R.id.qxw, R.id.ccw1, R.id.ccw2, R.id.ccw3 | |||||
, R.id.chushihua, R.id.jiting}) | |||||
public void onViewClicked(View view) { | public void onViewClicked(View view) { | ||||
switch (view.getId()) { | switch (view.getId()) { | ||||
case R.id.xzcp://选择菜谱按钮点击 | case R.id.xzcp://选择菜谱按钮点击 | ||||
@@ -515,81 +559,125 @@ public class Home1Fragment extends BaseFragment { | |||||
break; | break; | ||||
case R.id.startbutton: | case R.id.startbutton: | ||||
if (Status) { | if (Status) { | ||||
ToastUtils.info("客官菜谱正在制作过程中,请耐心等待一下,马上就好啦!"); | |||||
return; | |||||
// //按钮点击 | |||||
// String title = "停止操作提示!"; | |||||
// String message = "请问客官确定要停止制作吗,小菠萝会生气的,啊啊啊啊啊啊啊...我的饭饭?"; | |||||
// AlertDialogUtils.showDialog(context, title, message, new QMUIDialogAction.ActionListener() { | |||||
// @Override | |||||
// public void onClick(QMUIDialog dialog, int index) { | |||||
// SetBottonStatus(false); | |||||
// dialog.dismiss(); | |||||
// } | |||||
// }); | |||||
// ToastUtils.info("客官菜谱正在制作过程中,请耐心等待一下,马上就好啦!"); | |||||
// return; | |||||
//按钮点击 | |||||
String title = "停止操作提示!"; | |||||
String message = "请问客官确定要停止制作吗,小菠萝会生气的,啊啊啊啊啊啊啊...我的饭饭?"; | |||||
AlertDialogUtils.showDialog(context, title, message, new QMUIDialogAction.ActionListener() { | |||||
@Override | |||||
public void onClick(QMUIDialog dialog, int index) { | |||||
//强制结束 | |||||
ExecuteTheRecipe.SetForcedEnd(); | |||||
dialog.dismiss(); | |||||
} | |||||
}); | |||||
} else { | } else { | ||||
if (good == null) { | if (good == null) { | ||||
ToastUtils.info("请先选择一个商品"); | ToastUtils.info("请先选择一个商品"); | ||||
return; | return; | ||||
} | } | ||||
//if (!IsMake(false)) { return; } | |||||
//按钮点击 | //按钮点击 | ||||
String title = "开始操作提示!"; | String title = "开始操作提示!"; | ||||
String message = "请问客官确定要开始制作吗,小菠萝好开心呀,马上就有好吃的耶?"; | String message = "请问客官确定要开始制作吗,小菠萝好开心呀,马上就有好吃的耶?"; | ||||
AlertDialogUtils.showDialog(context, title, message, new QMUIDialogAction.ActionListener() { | AlertDialogUtils.showDialog(context, title, message, new QMUIDialogAction.ActionListener() { | ||||
@Override | @Override | ||||
public void onClick(QMUIDialog dialog, int index) { | public void onClick(QMUIDialog dialog, int index) { | ||||
ExecuteTheRecipe.StopForcedEnd(); | |||||
SetBottonStatus(true); | SetBottonStatus(true); | ||||
dialog.dismiss(); | dialog.dismiss(); | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
break; | break; | ||||
case R.id.qdjb://开始搅拌 | |||||
case R.id.qdjb://开始清洗 | |||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Clean(MyStatus.Start); | ExecuteTheRecipe.Write_PLC_Clean(MyStatus.Start); | ||||
break; | break; | ||||
case R.id.tzjb://停止搅拌 | |||||
case R.id.tzjb://停止清洗 | |||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Clean(MyStatus.Stop); | ExecuteTheRecipe.Write_PLC_Clean(MyStatus.Stop); | ||||
break; | break; | ||||
case R.id.yaoqian: | case R.id.yaoqian: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_YaoQian(MyStatus.Start); | ExecuteTheRecipe.Write_PLC_YaoQian(MyStatus.Start); | ||||
break; | break; | ||||
case R.id.tingyao: | case R.id.tingyao: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_YaoQian(MyStatus.Stop); | ExecuteTheRecipe.Write_PLC_YaoQian(MyStatus.Stop); | ||||
break; | break; | ||||
case R.id.ydw://R.id.ydw, R.id.dcw, R.id.clw,R.id.qxw,R.id.ccw1,R.id.ccw2,R.id.ccw3 | case R.id.ydw://R.id.ydw, R.id.dcw, R.id.clw,R.id.qxw,R.id.ccw1,R.id.ccw2,R.id.ccw3 | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("原点位"); | ExecuteTheRecipe.Write_PLC_Location("原点位"); | ||||
break; | break; | ||||
case R.id.dcw: | case R.id.dcw: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("倒菜位"); | ExecuteTheRecipe.Write_PLC_Location("倒菜位"); | ||||
break; | break; | ||||
case R.id.clw: | case R.id.clw: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("抽料位"); | ExecuteTheRecipe.Write_PLC_Location("抽料位"); | ||||
break; | break; | ||||
case R.id.qxw: | case R.id.qxw: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("清洗位"); | ExecuteTheRecipe.Write_PLC_Location("清洗位"); | ||||
break; | break; | ||||
case R.id.ccw1: | case R.id.ccw1: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("炒菜位1"); | ExecuteTheRecipe.Write_PLC_Location("炒菜位1"); | ||||
break; | break; | ||||
case R.id.ccw2: | case R.id.ccw2: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("炒菜位2"); | ExecuteTheRecipe.Write_PLC_Location("炒菜位2"); | ||||
break; | break; | ||||
case R.id.ccw3: | case R.id.ccw3: | ||||
if (!IsMake(true)) { return; } | |||||
ExecuteTheRecipe.Write_PLC_Location("炒菜位3"); | ExecuteTheRecipe.Write_PLC_Location("炒菜位3"); | ||||
break; | break; | ||||
case R.id.chushihua: | case R.id.chushihua: | ||||
if (!IsMake(true)) { return; } | |||||
ToastUtils.info("点击按钮:初始化"); | ToastUtils.info("点击按钮:初始化"); | ||||
ExecuteTheRecipe.WritePLC("初始化", true,null); | |||||
ExecuteTheRecipe.WritePLC("初始化", true, null); | |||||
break; | break; | ||||
case R.id.jiting: | case R.id.jiting: | ||||
if (!IsMake(true)) { return; } | |||||
ToastUtils.info("点击按钮:急停"); | ToastUtils.info("点击按钮:急停"); | ||||
ExecuteTheRecipe.WritePLC("停止", true,null); | |||||
ExecuteTheRecipe.WritePLC("停止", true, null); | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
/** | |||||
* 是否可以制作商品 | |||||
* @return | |||||
*/ | |||||
public boolean IsMake(boolean k) | |||||
{ | |||||
if (!ConfigName.getInstance().PlcIsConnect) { | |||||
ToastUtils.warning("PLC未准备就绪!!!"); | |||||
return false; | |||||
} | |||||
Object chushiover = ExecuteTheRecipe.getListingValue("初始化完成"); | |||||
Object jiting = ExecuteTheRecipe.getListingValue("设备急停"); | |||||
if (chushiover == null || !(boolean) chushiover) { | |||||
ToastUtils.warning("设备未初始化,请先手动初始化设备!!!"); | |||||
return false; | |||||
} | |||||
if (jiting == null || !(boolean) jiting) { | |||||
ToastUtils.warning("设备已急停,请检查设备!!!"); | |||||
return false; | |||||
} | |||||
if (Status && k) | |||||
{ | |||||
ToastUtils.warning("客官,商品制作未结束请勿进行其他操作.请耐心等待商品制作结束!!!"); | |||||
return false; | |||||
} | |||||
return true; | |||||
} | |||||
/** | /** | ||||
* 跳转界面 | * 跳转界面 | ||||
*/ | */ | ||||
@@ -1,6 +1,7 @@ | |||||
package com.bonait.bnframework.modules.home.fragment.from.fragment; | package com.bonait.bnframework.modules.home.fragment.from.fragment; | ||||
import android.content.Context; | import android.content.Context; | ||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import androidx.appcompat.app.AppCompatActivity; | import androidx.appcompat.app.AppCompatActivity; | ||||
@@ -10,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; | |||||
import android.content.Intent; | import android.content.Intent; | ||||
import android.graphics.Bitmap; | import android.graphics.Bitmap; | ||||
import android.graphics.BitmapFactory; | import android.graphics.BitmapFactory; | ||||
import android.net.Uri; | |||||
import android.os.Bundle; | import android.os.Bundle; | ||||
import android.os.Environment; | import android.os.Environment; | ||||
import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||
@@ -52,7 +54,7 @@ import pub.devrel.easypermissions.EasyPermissions; | |||||
/** | /** | ||||
* 资源管理 | * 资源管理 | ||||
*/ | */ | ||||
public class systeminternetfragment extends BaseFragment{ | |||||
public class systeminternetfragment extends BaseFragment { | |||||
@BindView(R.id.rl_file) | @BindView(R.id.rl_file) | ||||
RecyclerView mRecyclerView; | RecyclerView mRecyclerView; | ||||
@BindView(R.id.rl_yx_file) | @BindView(R.id.rl_yx_file) | ||||
@@ -60,6 +62,7 @@ public class systeminternetfragment extends BaseFragment{ | |||||
@BindView(R.id.baocunbendi) | @BindView(R.id.baocunbendi) | ||||
Button baocunbendi; | Button baocunbendi; | ||||
private Context context; | private Context context; | ||||
@Override | @Override | ||||
protected View onCreateView() { | protected View onCreateView() { | ||||
View root = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_system_internet, null); | View root = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_system_internet, null); | ||||
@@ -75,7 +78,7 @@ public class systeminternetfragment extends BaseFragment{ | |||||
FlushedImage(); | FlushedImage(); | ||||
} | } | ||||
@OnClick({R.id.xuanzhewenjian,R.id.baocunbendi}) | |||||
@OnClick({R.id.xuanzhewenjian, R.id.baocunbendi}) | |||||
public void onViewClicked(View view) { | public void onViewClicked(View view) { | ||||
switch (view.getId()) { | switch (view.getId()) { | ||||
case R.id.xuanzhewenjian://保存按钮 | case R.id.xuanzhewenjian://保存按钮 | ||||
@@ -84,13 +87,12 @@ public class systeminternetfragment extends BaseFragment{ | |||||
break; | break; | ||||
case R.id.baocunbendi://保存按钮 | case R.id.baocunbendi://保存按钮 | ||||
BitmapFactory.Options options = new BitmapFactory.Options(); | BitmapFactory.Options options = new BitmapFactory.Options(); | ||||
options.inSampleSize=2;//宽高压缩为原来的1/2 | |||||
for (FileEntity item:PickerManager.getInstance().files) | |||||
{ | |||||
File file= item.getFile(); | |||||
options.inSampleSize = 2;//宽高压缩为原来的1/2 | |||||
for (FileEntity item : PickerManager.getInstance().files) { | |||||
File file = item.getFile(); | |||||
try { | try { | ||||
Bitmap bitmap1= BitmapFactory.decodeStream(new FileInputStream(file)); | |||||
new LocalCacheUtils().setBitmapToLocal(file.getName(),bitmap1); | |||||
Bitmap bitmap1 = BitmapFactory.decodeStream(new FileInputStream(file)); | |||||
new LocalCacheUtils().setBitmapToLocal(file.getName(), bitmap1); | |||||
} catch (Exception e) { | } catch (Exception e) { | ||||
} | } | ||||
} | } | ||||
@@ -98,10 +100,11 @@ public class systeminternetfragment extends BaseFragment{ | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
ArrayList<FileEntity> yx_files=new ArrayList<>(); | |||||
private static final String CACHE_PATH= Environment.getExternalStorageDirectory().getAbsolutePath()+"/hblxiaochaodb/WebImage"; | |||||
public void FlushedImage() | |||||
{ | |||||
ArrayList<FileEntity> yx_files = new ArrayList<>(); | |||||
private static final String CACHE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/hblxiaochaodb/WebImage"; | |||||
public void FlushedImage() { | |||||
File path = new File(CACHE_PATH);// 获得路径 | File path = new File(CACHE_PATH);// 获得路径 | ||||
File[] files = path.listFiles();// 读取文件 | File[] files = path.listFiles();// 读取文件 | ||||
yx_files.clear(); | yx_files.clear(); | ||||
@@ -113,24 +116,25 @@ public class systeminternetfragment extends BaseFragment{ | |||||
} else { | } else { | ||||
e = new FileEntity(absolutePath, f, false); | e = new FileEntity(absolutePath, f, false); | ||||
} | } | ||||
if(f.isFile()) | |||||
{ | |||||
String[] imgs = {"png","jpg","jpeg","gif"}; | |||||
e.setFileType(new FileType("IMG",imgs,0)); | |||||
if (f.isFile()) { | |||||
String[] imgs = {"png", "jpg", "jpeg", "gif"}; | |||||
e.setFileType(new FileType("IMG", imgs, 0)); | |||||
yx_files.add(e); | yx_files.add(e); | ||||
} | } | ||||
} | } | ||||
rl_yx_file.setLayoutManager(new LinearLayoutManager(context)); | rl_yx_file.setLayoutManager(new LinearLayoutManager(context)); | ||||
FilePickerShowAdapter adapter = new FilePickerShowAdapter(context,yx_files); | |||||
FilePickerShowAdapter adapter = new FilePickerShowAdapter(context, yx_files); | |||||
rl_yx_file.setAdapter(adapter); | rl_yx_file.setAdapter(adapter); | ||||
adapter.setOnDeleteListener(new OnDeleteListener() { | |||||
adapter.setOnItemClickListener(new OnFileItemClickListener() { | |||||
@Override | @Override | ||||
public void delete(int position) { | |||||
File file= yx_files.get(position).getFile(); | |||||
if (file.exists() && file.isFile()) | |||||
{ | |||||
file.delete(); | |||||
} | |||||
public void click(int position) { | |||||
String path=yx_files.get(position).getPath(); | |||||
//打开系统相册浏览照片 | |||||
Intent intent = new Intent(); | |||||
intent.setAction(Intent.ACTION_VIEW); | |||||
intent.setDataAndType(Uri.parse("file://" + path), "image/*"); | |||||
startActivity(intent); | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@@ -147,19 +151,24 @@ public class systeminternetfragment extends BaseFragment{ | |||||
@Override | @Override | ||||
public void onActivityResult(int requestCode, int resultCode, Intent data) { | public void onActivityResult(int requestCode, int resultCode, Intent data) { | ||||
super.onActivityResult(requestCode, resultCode, data); | super.onActivityResult(requestCode, resultCode, data); | ||||
if(requestCode == Constants.REQ_CODE){ | |||||
if (requestCode == Constants.REQ_CODE) { | |||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(context)); | mRecyclerView.setLayoutManager(new LinearLayoutManager(context)); | ||||
FilePickerShowAdapter adapter = new FilePickerShowAdapter(context,PickerManager.getInstance().files); | |||||
FilePickerShowAdapter adapter = new FilePickerShowAdapter(context, PickerManager.getInstance().files); | |||||
mRecyclerView.setAdapter(adapter); | mRecyclerView.setAdapter(adapter); | ||||
String res = "("+ PickerManager.getInstance().files.size()+"/"+PickerManager.getInstance().maxCount+")"; | |||||
baocunbendi.setText(getString(R.string.file_select_res1,res)); | |||||
// adapter.setOnItemClickListener(new OnFileItemClickListener() { | |||||
// @Override | |||||
// public void click(int position) { | |||||
// startActivity(Intent.createChooser(OpenFile.openFile(PickerManager.getInstance().files.get(position).getPath(),getBaseFragmentActivity()), "选择程序")); | |||||
// } | |||||
// }); | |||||
String res = "(" + PickerManager.getInstance().files.size() + "/" + PickerManager.getInstance().maxCount + ")"; | |||||
baocunbendi.setText(getString(R.string.file_select_res1, res)); | |||||
adapter.setOnItemClickListener(new OnFileItemClickListener() { | |||||
@Override | |||||
public void click(int position) { | |||||
String path=PickerManager.getInstance().files.get(position).getPath(); | |||||
Intent intent = new Intent(); | |||||
intent.setAction(Intent.ACTION_VIEW); | |||||
intent.setDataAndType(Uri.parse("file://" + path), "image/*"); | |||||
startActivity(intent); | |||||
} | |||||
}); | |||||
} | } | ||||
} | } | ||||
@@ -173,9 +182,9 @@ public class systeminternetfragment extends BaseFragment{ | |||||
* 当在activity设置viewPager + BottomNavigation + fragment时, | * 当在activity设置viewPager + BottomNavigation + fragment时, | ||||
* 为防止viewPager左滑动切换界面,与fragment左滑返回上一界面冲突引起闪退问题, | * 为防止viewPager左滑动切换界面,与fragment左滑返回上一界面冲突引起闪退问题, | ||||
* 必须加上此方法,禁止fragment左滑返回上一界面。 | * 必须加上此方法,禁止fragment左滑返回上一界面。 | ||||
* | |||||
* <p> | |||||
* 切记!切记!切记!否则会闪退! | * 切记!切记!切记!否则会闪退! | ||||
* | |||||
* <p> | |||||
* 当在fragment设置viewPager + BottomNavigation + fragment时,则不会出现这个问题。 | * 当在fragment设置viewPager + BottomNavigation + fragment时,则不会出现这个问题。 | ||||
*/ | */ | ||||
@Override | @Override | ||||
@@ -75,7 +75,7 @@ public class imagebutton_control extends LinearLayout { | |||||
text_u.setText(""); | text_u.setText(""); | ||||
} | } | ||||
SetStatus(); | |||||
SetStatus(Status); | |||||
} | } | ||||
@OnClick({R.id.startjb}) | @OnClick({R.id.startjb}) | ||||
@@ -83,7 +83,7 @@ public class imagebutton_control extends LinearLayout { | |||||
switch (view.getId()) { | switch (view.getId()) { | ||||
case R.id.startjb: | case R.id.startjb: | ||||
Status=!Status; | Status=!Status; | ||||
SetStatus(); | |||||
SetStatus(Status); | |||||
break; | break; | ||||
} | } | ||||
@@ -97,9 +97,9 @@ public class imagebutton_control extends LinearLayout { | |||||
* 设置级别 | * 设置级别 | ||||
* @param | * @param | ||||
*/ | */ | ||||
public void SetStatus() | |||||
public void SetStatus(boolean status) | |||||
{ | { | ||||
if(Status) | |||||
if(status) | |||||
{ | { | ||||
image_u.setImageResource(ks_ys); | image_u.setImageResource(ks_ys); | ||||
}else | }else | ||||
@@ -38,8 +38,7 @@ | |||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
android:layout_marginTop="5dp" | android:layout_marginTop="5dp" | ||||
android:layout_marginBottom="@dimen/dp_10" | android:layout_marginBottom="@dimen/dp_10" | ||||
android:background="@color/main_background"> | |||||
> | |||||
<androidx.recyclerview.widget.RecyclerView | <androidx.recyclerview.widget.RecyclerView | ||||
android:id="@+id/rl_yx_file" | android:id="@+id/rl_yx_file" | ||||
@@ -73,8 +72,7 @@ | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
android:layout_marginTop="5dp" | android:layout_marginTop="5dp" | ||||
android:layout_marginBottom="@dimen/dp_10" | |||||
android:background="@color/main_background"> | |||||
android:layout_marginBottom="@dimen/dp_10"> | |||||
<androidx.recyclerview.widget.RecyclerView | <androidx.recyclerview.widget.RecyclerView | ||||
android:id="@+id/rl_file" | android:id="@+id/rl_file" | ||||
@@ -6,38 +6,46 @@ | |||||
android:gravity="center_vertical" | android:gravity="center_vertical" | ||||
android:orientation="horizontal"> | android:orientation="horizontal"> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_marginTop="10dp" | |||||
android:id="@+id/image_open" | |||||
android:layout_marginTop="5dp" | |||||
android:background="@color/activity_background" | android:background="@color/activity_background" | ||||
android:layout_marginLeft="@dimen/dp_10" | android:layout_marginLeft="@dimen/dp_10" | ||||
android:layout_marginRight="@dimen/dp_10" | android:layout_marginRight="@dimen/dp_10" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
<ImageView | |||||
android:id="@+id/iv_type" | |||||
android:layout_width="40dp" | |||||
android:layout_height="40dp" | |||||
android:layout_marginLeft="10dp" /> | |||||
<RelativeLayout | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent"> | |||||
<ImageView | |||||
android:id="@+id/iv_type" | |||||
android:layout_width="50dp" | |||||
android:layout_height="50dp" | |||||
android:layout_centerVertical="true" | |||||
android:src="@mipmap/image1"/> | |||||
</RelativeLayout> | |||||
<LinearLayout | <LinearLayout | ||||
android:id="@+id/layout_info" | android:id="@+id/layout_info" | ||||
android:layout_width="0dp" | android:layout_width="0dp" | ||||
android:layout_height="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:layout_marginLeft="10dp" | android:layout_marginLeft="10dp" | ||||
android:layout_toRightOf="@id/iv_type" | android:layout_toRightOf="@id/iv_type" | ||||
android:layout_weight="1" | android:layout_weight="1" | ||||
android:orientation="vertical" | android:orientation="vertical" | ||||
android:padding="10dp"> | |||||
> | |||||
<TextView | <TextView | ||||
android:id="@+id/tv_name" | android:id="@+id/tv_name" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="0dp" | |||||
android:layout_weight="1" | |||||
android:layout_height="wrap_content" | |||||
android:ellipsize="end" | android:ellipsize="end" | ||||
android:maxLines="1" | android:maxLines="1" | ||||
android:textSize="@dimen/text_size_16" | |||||
android:textColor="@color/file_picker_title" | android:textColor="@color/file_picker_title" | ||||
tools:text="文件名" /> | |||||
tools:text="image.png" /> | |||||
<TextView | <TextView | ||||
android:id="@+id/tv_detail" | android:id="@+id/tv_detail" | ||||
@@ -50,12 +58,18 @@ | |||||
/> | /> | ||||
</LinearLayout> | </LinearLayout> | ||||
<ImageView | |||||
android:id="@+id/iv_delete" | |||||
android:layout_width="40dp" | |||||
android:layout_height="40dp" | |||||
<RelativeLayout | |||||
android:layout_marginRight="10dp" | android:layout_marginRight="10dp" | ||||
android:src="@mipmap/file_picker_delete" | |||||
android:visibility="gone" /> | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent"> | |||||
<ImageView | |||||
android:layout_centerVertical="true" | |||||
android:id="@+id/iv_delete" | |||||
android:layout_width="40dp" | |||||
android:layout_height="40dp" | |||||
android:src="@mipmap/file_picker_delete" | |||||
/> | |||||
</RelativeLayout> | |||||
</LinearLayout> | </LinearLayout> | ||||
</LinearLayout> | </LinearLayout> |