@@ -30,7 +30,6 @@ import com.bonait.bnframework.common.helper.MessageLog; | |||||
import com.bonait.bnframework.common.helper.mode.OrderA; | import com.bonait.bnframework.common.helper.mode.OrderA; | ||||
import com.bonait.bnframework.common.helper.mode.ResultA; | import com.bonait.bnframework.common.helper.mode.ResultA; | ||||
import com.bonait.bnframework.modules.home.adapter.loadinggood_adapter; | import com.bonait.bnframework.modules.home.adapter.loadinggood_adapter; | ||||
import com.bonait.bnframework.modules.home.adapter.lsjy_adapter; | |||||
import com.bonait.bnframework.modules.home.adapter.pfsx_adapter; | import com.bonait.bnframework.modules.home.adapter.pfsx_adapter; | ||||
import com.bonait.bnframework.modules.home.adapter.wdsz_adapter; | import com.bonait.bnframework.modules.home.adapter.wdsz_adapter; | ||||
import com.bonait.bnframework.modules.home.adapter.zdqxchid_adapter; | import com.bonait.bnframework.modules.home.adapter.zdqxchid_adapter; | ||||
@@ -78,11 +77,47 @@ public class DataBus { | |||||
if (bpa_silos.size() > 0) { | if (bpa_silos.size() > 0) { | ||||
for (BPA_SILOS silo : bpa_silos) { | for (BPA_SILOS silo : bpa_silos) { | ||||
List<BPA_MATERIAL> m = QueryDB.GetMaterialBySilosID(silo.id); | List<BPA_MATERIAL> m = QueryDB.GetMaterialBySilosID(silo.id); | ||||
lcMode lcMode=new lcMode(); | |||||
lcMode.id= silo.id; | |||||
lcMode.exp= silo.exp; | |||||
lcMode.num= silo.num; | |||||
lcMode.name= silo.name; | |||||
lcMode.warningValue= silo.warningValue; | |||||
lcMode.thrsoleValue= silo.thrsoleValue; | |||||
lcMode.plcValue= silo.plcValue; | |||||
lcMode.bValue= silo.bValue; | |||||
lcMode.jValue= silo.jValue; | |||||
lcMode.status= silo.status; | |||||
lcMode.Sort= silo.Sort; | |||||
lcMode.silosmargin= silo.silosmargin; | |||||
lcMode.siloszl= silo.siloszl; | |||||
lcMode.jTime= silo.jTime; | |||||
lcMode.fTime= silo.fTime; | |||||
lcMode.isenablebcsf= silo.isenablebcsf; | |||||
lcMode.minweight= silo.minweight; | |||||
lcMode.maxweight= silo.maxweight; | |||||
lcMode.jfrequency= silo.jfrequency; | |||||
lcMode.bcsfValue= silo.bcsfValue; | |||||
lcMode.isOpenbcsf= silo.isOpenbcsf; | |||||
lcMode.Gxs= silo.Gxs; | |||||
lcMode.Lxs= silo.Lxs; | |||||
lcMode.tdclsj= silo.tdclsj; | |||||
if (m.size() > 0) { | if (m.size() > 0) { | ||||
lc.add(new lcMode(silo.id, silo.num, m.get(0).name, silo.silosmargin, silo.siloszl, m.get(0).id,m.get(0).type, silo.warningValue, silo.thrsoleValue,silo.name.isEmpty()?"":silo.name,silo.status,silo.bValue)); | |||||
lcMode.materialName= m.get(0).name; | |||||
lcMode.materialId= m.get(0).id; | |||||
lcMode.materiallx= m.get(0).type; | |||||
} else { | } else { | ||||
lc.add(new lcMode(silo.id, silo.num, "未设置", silo.silosmargin, silo.siloszl, "",0, silo.warningValue, silo.thrsoleValue,silo.name.isEmpty()?"":silo.name,silo.status,silo.bValue)); | |||||
lcMode.materialName= "未设置"; | |||||
lcMode.materialId= ""; | |||||
lcMode.materiallx= 0; | |||||
} | } | ||||
lc.add(lcMode); | |||||
} | } | ||||
} | } | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
@@ -303,72 +338,6 @@ public class DataBus { | |||||
} | } | ||||
//endregion | //endregion | ||||
//region 流速校验 | |||||
public ArrayList<SilosLsjyMode> SilosLsjy = new ArrayList<SilosLsjyMode>(); | |||||
public lsjy_adapter lsjyAdapter=null; | |||||
/** | |||||
* 获取流速料仓数据 | |||||
*/ | |||||
public void GetSilosLsjy() | |||||
{ | |||||
try { | |||||
SilosLsjy=new ArrayList<>(); | |||||
//获取料仓数据 | |||||
ArrayList<BPA_SILOS> bpa_silos = QueryDB.GetSilosALL(); | |||||
//加载materials数据 | |||||
if (bpa_silos.size() > 0) { | |||||
// Object[] jzkg= ExecuteTheRecipe.ReadPLC("通道1校准开关",20); | |||||
// Object[] jzz= ExecuteTheRecipe.ReadPLC("校准值1",20); | |||||
for (BPA_SILOS silo : bpa_silos) { | |||||
List<BPA_MATERIAL> m = QueryDB.GetMaterialBySilosID(silo.id); | |||||
SilosLsjyMode mode=new SilosLsjyMode(); | |||||
mode.num= silo.num; | |||||
mode.name= silo.name; | |||||
mode.materialName=m.size() > 0?m.get(0).name:"未设置"; | |||||
//mode.xs= ExecuteTheRecipe.getCalibrationValueXS(silo.num)+""; | |||||
// Object kg=jzkg[silo.num-1]; | |||||
// Object _val=jzz[silo.num-1]; | |||||
// short val=_val==null?0:(short)_val; | |||||
// String s = String.valueOf(val); | |||||
mode.jzkg= false;//kg==null?false:(boolean) kg; | |||||
mode.Value="0.0";// //String.format("%.1f", (Double.parseDouble(s) / 10)); | |||||
mode.mgtime=silo.bValue; | |||||
mode.id=silo.id; | |||||
SilosLsjy.add(mode); | |||||
} | |||||
} | |||||
if (DataBus.getInstance().lsjyAdapter!=null) | |||||
{ | |||||
DataBus.getInstance().lsjyAdapter.refresh(); | |||||
} | |||||
} catch (Exception e) { | |||||
e.printStackTrace(); | |||||
} | |||||
} | |||||
public void GetSilosLsjyValue() | |||||
{ | |||||
Object[] jzkg= ExecuteTheRecipe.ReadPLC("通道1校准开关",20); | |||||
Object[] jzz= ExecuteTheRecipe.ReadPLC("校准值1",20); | |||||
for (SilosLsjyMode mode:SilosLsjy) | |||||
{ | |||||
Object kg=jzkg[mode.num-1]; | |||||
Object _val=jzz[mode.num-1]; | |||||
short val=_val==null?0:(short)_val; | |||||
String s = String.valueOf(val); | |||||
mode.jzkg= kg==null?false:(boolean) kg; | |||||
mode.Value= String.format("%.1f", (Double.parseDouble(s) / 10)); | |||||
} | |||||
if (DataBus.getInstance().lsjyAdapter!=null) | |||||
{ | |||||
DataBus.getInstance().lsjyAdapter.refresh(); | |||||
} | |||||
} | |||||
//endregion | |||||
//region 温度设置 | //region 温度设置 | ||||
public ArrayList<wdszMode> wdszModes = new ArrayList<wdszMode>(); | public ArrayList<wdszMode> wdszModes = new ArrayList<wdszMode>(); | ||||
public wdsz_adapter wdszAdapter=null; | public wdsz_adapter wdszAdapter=null; | ||||
@@ -425,7 +425,7 @@ public class QueryDB { | |||||
* @param id | * @param id | ||||
* @param data | * @param data | ||||
*/ | */ | ||||
public static void UpdateJYZ(String id, int data) { | |||||
public static void UpdateJYZ(String id, String data) { | |||||
BPA_SILOS silos = GetSilosID(id); | BPA_SILOS silos = GetSilosID(id); | ||||
if (silos != null) { | if (silos != null) { | ||||
silos.jValue = data; | silos.jValue = data; | ||||
@@ -491,12 +491,86 @@ public class QueryDB { | |||||
/** | /** | ||||
* 料仓校准时间 | * 料仓校准时间 | ||||
* @param id | * @param id | ||||
* @param | |||||
*/ | |||||
public static void UpdateSilosJZTime(String id, String jdata, String fdata) { | |||||
BPA_SILOS silos = GetSilosID(id); | |||||
if (silos != null) { | |||||
silos.jTime = jdata; | |||||
silos.fTime = fdata; | |||||
Update(BPA_SILOS.class, silos); | |||||
} | |||||
} | |||||
/** | |||||
* 是否启用补偿算法 | |||||
* @param id | |||||
* @param data | |||||
*/ | |||||
public static void UpdateSilosIsEnableBCSF(String id, boolean data) { | |||||
BPA_SILOS silos = GetSilosID(id); | |||||
if (silos != null) { | |||||
silos.isenablebcsf = data?1:0; | |||||
Update(BPA_SILOS.class, silos); | |||||
} | |||||
} | |||||
/** | |||||
* 补偿算法校准变量 | |||||
* @param id | |||||
* @param | |||||
*/ | |||||
public static void UpdateSilosBcsfValue(String id, String _minweight, String _maxweight, String _jfrequency) { | |||||
BPA_SILOS silos = GetSilosID(id); | |||||
if (silos != null) { | |||||
silos.minweight = _minweight; | |||||
silos.maxweight = _maxweight; | |||||
silos.jfrequency = _jfrequency; | |||||
Update(BPA_SILOS.class, silos); | |||||
} | |||||
} | |||||
/** | |||||
* 补偿算法校准值 | |||||
* @param id | |||||
* @param data | * @param data | ||||
*/ | */ | ||||
public static void UpdateSilosJZTime(String id, String data) { | |||||
public static void UpdateSilosBcsfValue(String id, String data) { | |||||
BPA_SILOS silos = GetSilosID(id); | BPA_SILOS silos = GetSilosID(id); | ||||
if (silos != null) { | if (silos != null) { | ||||
silos.plcValue = data; | |||||
silos.bcsfValue = data; | |||||
Update(BPA_SILOS.class, silos); | |||||
} | |||||
} | |||||
/** | |||||
* 是否启用补偿算法 | |||||
* @param id | |||||
* @param data | |||||
*/ | |||||
public static void UpdateSilosisOpenbcsf(String id, boolean data) { | |||||
BPA_SILOS silos = GetSilosID(id); | |||||
if (silos != null) { | |||||
silos.isOpenbcsf = data?1:0; | |||||
Update(BPA_SILOS.class, silos); | |||||
} | |||||
} | |||||
/** | |||||
* 补偿算法 参数 | |||||
* @param id | |||||
* @param | |||||
*/ | |||||
public static void UpdateSilosisOpenbcsf(String id, String G,String L,String time) { | |||||
BPA_SILOS silos = GetSilosID(id); | |||||
if (silos != null) { | |||||
silos.Gxs = G; | |||||
silos.Lxs = L; | |||||
silos.tdclsj = time; | |||||
Update(BPA_SILOS.class, silos); | Update(BPA_SILOS.class, silos); | ||||
} | } | ||||
} | } | ||||
@@ -3235,11 +3309,26 @@ public class QueryDB { | |||||
((BPA_SILOS) data).thrsoleValue = cursor.getInt((int) cursor.getColumnIndex("thrsoleValue")); | ((BPA_SILOS) data).thrsoleValue = cursor.getInt((int) cursor.getColumnIndex("thrsoleValue")); | ||||
((BPA_SILOS) data).plcValue = cursor.getString((int) cursor.getColumnIndex("plcValue")); | ((BPA_SILOS) data).plcValue = cursor.getString((int) cursor.getColumnIndex("plcValue")); | ||||
((BPA_SILOS) data).bValue = cursor.getInt((int) cursor.getColumnIndex("bValue")); | ((BPA_SILOS) data).bValue = cursor.getInt((int) cursor.getColumnIndex("bValue")); | ||||
((BPA_SILOS) data).jValue = cursor.getInt((int) cursor.getColumnIndex("jValue")); | |||||
((BPA_SILOS) data).jValue = cursor.getString((int) cursor.getColumnIndex("jValue")); | |||||
((BPA_SILOS) data).status = cursor.getInt((int) cursor.getColumnIndex("status")); | ((BPA_SILOS) data).status = cursor.getInt((int) cursor.getColumnIndex("status")); | ||||
((BPA_SILOS) data).Sort = cursor.getInt((int) cursor.getColumnIndex("Sort")); | ((BPA_SILOS) data).Sort = cursor.getInt((int) cursor.getColumnIndex("Sort")); | ||||
((BPA_SILOS) data).silosmargin = cursor.getInt((int) cursor.getColumnIndex("silosmargin")); | ((BPA_SILOS) data).silosmargin = cursor.getInt((int) cursor.getColumnIndex("silosmargin")); | ||||
((BPA_SILOS) data).siloszl = cursor.getInt((int) cursor.getColumnIndex("siloszl")); | ((BPA_SILOS) data).siloszl = cursor.getInt((int) cursor.getColumnIndex("siloszl")); | ||||
//测试 | |||||
((BPA_SILOS) data).jTime = cursor.getString((int) cursor.getColumnIndex("jTime")); | |||||
((BPA_SILOS) data).fTime = cursor.getString((int) cursor.getColumnIndex("fTime")); | |||||
((BPA_SILOS) data).isenablebcsf = cursor.getInt((int) cursor.getColumnIndex("isenablebcsf")); | |||||
((BPA_SILOS) data).minweight = cursor.getString((int) cursor.getColumnIndex("minweight")); | |||||
((BPA_SILOS) data).maxweight = cursor.getString((int) cursor.getColumnIndex("maxweight")); | |||||
((BPA_SILOS) data).jfrequency = cursor.getString((int) cursor.getColumnIndex("jfrequency")); | |||||
((BPA_SILOS) data).bcsfValue = cursor.getString((int) cursor.getColumnIndex("bcsfValue")); | |||||
//通道出料 | |||||
((BPA_SILOS) data).isOpenbcsf = cursor.getInt((int) cursor.getColumnIndex("isOpenbcsf")); | |||||
((BPA_SILOS) data).Gxs = cursor.getString((int) cursor.getColumnIndex("Gxs")); | |||||
((BPA_SILOS) data).Lxs = cursor.getString((int) cursor.getColumnIndex("Lxs")); | |||||
((BPA_SILOS) data).tdclsj = cursor.getString((int) cursor.getColumnIndex("tdclsj")); | |||||
break; | break; | ||||
case "BPA_SILOSANDMATERIAL": | case "BPA_SILOSANDMATERIAL": | ||||
data = new BPA_SILOSANDMATERIAL(); | data = new BPA_SILOSANDMATERIAL(); | ||||
@@ -15,10 +15,10 @@ public class BPA_SILOS extends ModeBase { | |||||
public int thrsoleValue; | public int thrsoleValue; | ||||
//PLC控制信号量 | //PLC控制信号量 | ||||
public String plcValue;// 20s | public String plcValue;// 20s | ||||
//标准值 标准 1s出多少g(出场标准) 更改为 满管 需要时间 | |||||
//满管 需要时间 例如 10s | |||||
public int bValue; | public int bValue; | ||||
//校准值 实际校准1s出多少g | |||||
public int jValue; //100 g | |||||
//校准值 实际校准值 | |||||
public String jValue; //100 g | |||||
//状态 状态:0 启用 1 禁用 | //状态 状态:0 启用 1 禁用 | ||||
public int status; | public int status; | ||||
//优先级 优先出料顺序 | //优先级 优先出料顺序 | ||||
@@ -27,4 +27,31 @@ public class BPA_SILOS extends ModeBase { | |||||
public int silosmargin; | public int silosmargin; | ||||
//料仓总量 | //料仓总量 | ||||
public int siloszl; | public int siloszl; | ||||
//校准时间 jValue/jTime = (1s 出多少g) | |||||
public String jTime; | |||||
//反转时间 | |||||
public String fTime; | |||||
//是否启用算法补偿 0 不启用 1 启用 | |||||
public int isenablebcsf; | |||||
//最小重量 | |||||
public String minweight; | |||||
//最大重量 | |||||
public String maxweight; | |||||
//校准频率 2s | |||||
public String jfrequency; | |||||
//算法校准变量: 2.3,32.5|3.0,45.6|3.5,45.9 | |||||
public String bcsfValue; | |||||
//临时补偿校准使用 奶茶机 | |||||
//奶茶机 0 不启用 1 启用 | |||||
public int isOpenbcsf; | |||||
public String Gxs; | |||||
public String Lxs; | |||||
public String tdclsj; | |||||
} | } |
@@ -10,18 +10,38 @@ public class lcMode extends BPA_SILOS { | |||||
public String materialId; | public String materialId; | ||||
//物料类型 | //物料类型 | ||||
public int materiallx; | public int materiallx; | ||||
public lcMode(String id, int num,String materialName, int silosmargin,int siloszl,String materialId,int materiallx,int warningValue,int thrsoleValue,String _name,int _sta,int _bvalue) { | |||||
this.materialName = materialName; | |||||
this.silosmargin = silosmargin; | |||||
this.num = num; | |||||
this.id = id; | |||||
this.materialId = materialId; | |||||
this.materiallx=materiallx; | |||||
this.warningValue=warningValue; | |||||
this.thrsoleValue=thrsoleValue; | |||||
this.siloszl=siloszl; | |||||
this.name=_name; | |||||
this.status=_sta; | |||||
this.bValue=_bvalue; | |||||
public lcMode() | |||||
{ | |||||
} | } | ||||
// public lcMode(String id, int num,String materialName, int silosmargin,int siloszl,String materialId,int materiallx,int warningValue,int thrsoleValue,String _name,int _sta,int _bvalue | |||||
// ,String jTime,String fTime,int isenablebcsf,String minweight,String maxweight,String jfrequency,String bcsfValue | |||||
// ,int isOpenbcsf,String Gxs,String Lxs,String tdclsj) { | |||||
// this.materialName = materialName; | |||||
// this.silosmargin = silosmargin; | |||||
// this.num = num; | |||||
// this.id = id; | |||||
// this.materialId = materialId; | |||||
// this.materiallx=materiallx; | |||||
// this.warningValue=warningValue; | |||||
// this.thrsoleValue=thrsoleValue; | |||||
// this.siloszl=siloszl; | |||||
// this.name=_name; | |||||
// this.status=_sta; | |||||
// this.bValue=_bvalue; | |||||
// | |||||
// this.jTime=jTime; | |||||
// this.fTime=fTime; | |||||
// this.isenablebcsf=isenablebcsf; | |||||
// this.minweight=minweight; | |||||
// this.maxweight=maxweight; | |||||
// this.jfrequency=jfrequency; | |||||
// this.bcsfValue=bcsfValue; | |||||
// this.isOpenbcsf=isOpenbcsf; | |||||
// this.Gxs=Gxs; | |||||
// this.Lxs=Lxs; | |||||
// this.tdclsj=tdclsj; | |||||
// | |||||
// } | |||||
} | } |
@@ -1,255 +0,0 @@ | |||||
package com.bonait.bnframework.modules.home.adapter; | |||||
import android.app.Activity; | |||||
import android.content.Context; | |||||
import android.content.ContextWrapper; | |||||
import android.view.LayoutInflater; | |||||
import android.view.View; | |||||
import android.view.ViewGroup; | |||||
import android.widget.Button; | |||||
import android.widget.EditText; | |||||
import android.widget.ImageView; | |||||
import android.widget.Switch; | |||||
import android.widget.TextView; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import com.bonait.bnframework.R; | |||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | |||||
import com.bonait.bnframework.common.db.res.Res_PLCADDRESS1; | |||||
import com.bonait.bnframework.common.db.res.Res_ZDSF; | |||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | |||||
import com.bonait.bnframework.common.helper.I.MyClickListener; | |||||
import com.bonait.bnframework.common.image.MyBitmapUtils; | |||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import com.bonait.bnframework.modules.home.fragment.mode.image_sp; | |||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; | |||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; | |||||
import com.suke.widget.SwitchButton; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
public class clsfbc_adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | |||||
private final LayoutInflater mLayoutInflater; | |||||
private Context context; | |||||
List<Res_ZDSF> goods = new ArrayList<>(); | |||||
Object[] main_kg =new Object[6]; | |||||
Object[] main_gxs =new Object[6]; | |||||
Object[] main_dxs =new Object[6]; | |||||
Object[] main_bcsj =new Object[6]; | |||||
/** | |||||
* 点击事件 | |||||
*/ | |||||
public MyClickListener mListener=null; | |||||
public clsfbc_adapter(Context context,List<Res_ZDSF> data,Object[] _kg,Object[] _gxs,Object[] _dxs,Object[] _bcsj) { | |||||
this.context = context; | |||||
mLayoutInflater = LayoutInflater.from(context); | |||||
goods=data; | |||||
main_kg=_kg; | |||||
main_gxs =_gxs ; | |||||
main_dxs =_dxs ; | |||||
main_bcsj=_bcsj; | |||||
} | |||||
@NonNull | |||||
@Override | |||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | |||||
View inflate = mLayoutInflater.inflate(R.layout.item_clsfbc, parent, false); | |||||
return new MyLCViewHolder1(inflate); | |||||
} | |||||
@Override | |||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { | |||||
try { | |||||
if (holder instanceof MyLCViewHolder1) { | |||||
MyLCViewHolder1 myViewHolder = (MyLCViewHolder1) holder; | |||||
Res_ZDSF sf= goods.get(position); | |||||
myViewHolder.td_text.setText(sf.name); | |||||
Object kg=main_kg[position]; | |||||
myViewHolder.switch1.setChecked(kg==null?false:((boolean) kg)); | |||||
int index=position+1; | |||||
Object gxs=main_gxs[position]; | |||||
myViewHolder.bc_text1.setText(gxs==null?"0":(gxs+"")); | |||||
Object dxs=main_dxs[position]; | |||||
myViewHolder.bc_text2.setText(dxs==null?"0":(dxs+"")); | |||||
Object time=main_bcsj[position]; | |||||
int timel=time==null?0:(Integer.parseInt(time.toString())); | |||||
myViewHolder.bc_text3.setText(String.format ("%.1f", timel/10.0)+""); | |||||
myViewHolder.save_botton.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
public void onClick(View view) { | |||||
Short H=0; | |||||
Short L=0; | |||||
Short time=0; | |||||
try { | |||||
H=Short.parseShort(myViewHolder.bc_text1.getText().toString()) ; | |||||
L=Short.parseShort(myViewHolder.bc_text2.getText().toString()) ; | |||||
//time=(Short)Math.round(); | |||||
int ftime = (int)Math.round((Double.parseDouble(myViewHolder.bc_text3.getText().toString()) * 10)); | |||||
time=(short) ftime; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
} | |||||
ExecuteTheRecipe.WritePLC("高系数"+index,H,null); | |||||
ExecuteTheRecipe.WritePLC("低系数"+index,L,null); | |||||
ExecuteTheRecipe.WritePLC("补偿" + index + "时间", time, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info(sf.name.toString()+",保存变量成功!"); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.warning( sf.name.toString()+",保存变量失败!"); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
myViewHolder.switch1.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
public void onClick(View view) { | |||||
boolean isopen= myViewHolder.switch1.isChecked(); | |||||
if (ConfigName.getInstance().PlcIsConnect) | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("通道"+index+"补偿开关",isopen,null); | |||||
ToastUtils.info( sf.name.toString()+(isopen?"打开":"关闭")+"成功!"); | |||||
}else | |||||
{ | |||||
ToastUtils.warning( sf.name.toString()+(isopen?"打开":"关闭")+"失败!PLC未连接!!"); | |||||
} | |||||
} | |||||
}); | |||||
/** | |||||
* 模拟出料 | |||||
*/ | |||||
myViewHolder.cl_botton.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
public void onClick(View view) { | |||||
String zltext = myViewHolder.bc_text4.getText().toString(); | |||||
if (zltext.equals("")) { | |||||
ToastUtils.warning("出料重量不能为空!"); | |||||
return; | |||||
} | |||||
double zl = 0; | |||||
try { | |||||
zl = Double.parseDouble(zltext); | |||||
} catch (Exception e) { | |||||
ToastUtils.warning("出料重量获取异常!" + e.getMessage()); | |||||
return; | |||||
} | |||||
if(zl<=0) | |||||
{ | |||||
ToastUtils.warning("出料重量至少大于0g!"); | |||||
return; | |||||
} | |||||
short kkk=(short) ((int) (zl * 10)); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
ExecuteTheRecipe.WritePLC("配料完成",false,null); | |||||
ExecuteTheRecipe.WritePLC("手自切换", true,null); | |||||
ExecuteTheRecipe.WritePLC("需求值" + index,kkk,new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ExecuteTheRecipe.WritePLC("配料启动", true, null); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
} | |||||
}); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
ToastUtils.warning("需求值下发成功!开始配料......"); | |||||
} | |||||
}); | |||||
} | |||||
} catch (Exception e) { | |||||
e.printStackTrace(); | |||||
} | |||||
} | |||||
private Activity findActivity(@NonNull Context context) { | |||||
if (context instanceof Activity) { | |||||
return (Activity) context; | |||||
} else if (context instanceof ContextWrapper) { | |||||
return findActivity(((ContextWrapper) context).getBaseContext()); | |||||
} else { | |||||
return null; | |||||
} | |||||
} | |||||
/** | |||||
* 刷新 | |||||
* | |||||
* @param | |||||
*/ | |||||
public void refresh() { | |||||
Activity activity = findActivity(context); | |||||
if (activity != null) { | |||||
activity.runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
notifyDataSetChanged(); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
@Override | |||||
public int getItemCount() { | |||||
return goods.size(); | |||||
} | |||||
public static class MyLCViewHolder1 extends RecyclerView.ViewHolder { | |||||
TextView td_text;//标题 | |||||
SwitchButton switch1; | |||||
EditText bc_text1,bc_text2,bc_text3,bc_text4; | |||||
Button save_botton,cl_botton; | |||||
public MyLCViewHolder1(View view) { | |||||
super(view); | |||||
td_text=view.findViewById(R.id.td_text); | |||||
switch1=view.findViewById(R.id.switch1); | |||||
bc_text1=view.findViewById(R.id.bc_text1); | |||||
bc_text2=view.findViewById(R.id.bc_text2); | |||||
bc_text3=view.findViewById(R.id.bc_text3); | |||||
bc_text4=view.findViewById(R.id.bc_text4); | |||||
cl_botton=view.findViewById(R.id.cl_botton); | |||||
save_botton=view.findViewById(R.id.save_botton); | |||||
} | |||||
} | |||||
} |
@@ -1,291 +0,0 @@ | |||||
package com.bonait.bnframework.modules.home.adapter; | |||||
import android.app.Activity; | |||||
import android.content.Context; | |||||
import android.content.ContextWrapper; | |||||
import android.os.SystemClock; | |||||
import android.view.LayoutInflater; | |||||
import android.view.View; | |||||
import android.view.ViewGroup; | |||||
import android.widget.Button; | |||||
import android.widget.Chronometer; | |||||
import android.widget.EditText; | |||||
import android.widget.ImageView; | |||||
import android.widget.LinearLayout; | |||||
import android.widget.ProgressBar; | |||||
import android.widget.RelativeLayout; | |||||
import android.widget.TextView; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import com.bonait.bnframework.R; | |||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.common.constant.DataBus; | |||||
import com.bonait.bnframework.common.db.QueryDB; | |||||
import com.bonait.bnframework.common.db.res.SilosLsjyMode; | |||||
import com.bonait.bnframework.common.helper.I.IRun; | |||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import com.suke.widget.SwitchButton; | |||||
import java.sql.Struct; | |||||
import java.util.List; | |||||
/** | |||||
* 流速校验 | |||||
*/ | |||||
public class lsjy_adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | |||||
private final LayoutInflater mLayoutInflater; | |||||
private Context context; | |||||
public List<SilosLsjyMode> mainGoods = DataBus.getInstance().SilosLsjy; | |||||
public lsjy_adapter(Context context) { | |||||
this.context = context; | |||||
mLayoutInflater = LayoutInflater.from(context); | |||||
} | |||||
@NonNull | |||||
@Override | |||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | |||||
View inflate = mLayoutInflater.inflate(R.layout.lsjy_item, parent, false); | |||||
return new MyGoodLCViewHolder(inflate); | |||||
} | |||||
@Override | |||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { | |||||
try { | |||||
if (holder instanceof MyGoodLCViewHolder) { | |||||
MyGoodLCViewHolder myViewHolder = (MyGoodLCViewHolder) holder; | |||||
SilosLsjyMode goodsMake= mainGoods.get(position); | |||||
String name= "通道"+goodsMake.num+"(" +goodsMake.name+")"; | |||||
myViewHolder.num=goodsMake.num; | |||||
myViewHolder.name.setText(name+""); | |||||
myViewHolder.wlname.setText(goodsMake.materialName+""); | |||||
myViewHolder.control_switch.setChecked(goodsMake.jzkg); | |||||
myViewHolder.edittext_tdzl.setText(goodsMake.Value+""); | |||||
myViewHolder.edittext_mgsj.setText(goodsMake.mgtime+""); | |||||
myViewHolder.control_switch.setOnCheckedChangeListener(new SwitchButton.OnCheckedChangeListener() { | |||||
@Override | |||||
public void onCheckedChanged(SwitchButton view, boolean isChecked) { | |||||
DataBus.getInstance().SilosLsjy.get(position).jzkg=isChecked; | |||||
ExecuteTheRecipe.WritePLC("通道" + goodsMake.num+"校准开关", isChecked, null); | |||||
} | |||||
}); | |||||
myViewHolder.save_value.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
public void onClick(View view) { | |||||
String value = myViewHolder.edittext_tdzl.getText().toString(); | |||||
Short val = 0; | |||||
try { | |||||
val = (short) Math.round((Double.parseDouble(value) * 10)); | |||||
} catch (Exception e) { | |||||
} | |||||
ExecuteTheRecipe.WritePLC("校准值" + goodsMake.num, val, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info(name+"保存成功!"); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.error(name+"保存失败!"); | |||||
} | |||||
}); | |||||
String value1 = myViewHolder.edittext_mgsj.getText().toString(); | |||||
int val1 = 0; | |||||
try { | |||||
val1 =(value1==null|| value1.isEmpty())?0:Integer.parseInt(value1); | |||||
QueryDB.UpdateMGTime(DataBus.getInstance().SilosLsjy.get(position).id,val1); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}); | |||||
final int[] time = {0}; | |||||
final int[] zl = {0}; | |||||
//开始计算满管时间 | |||||
myViewHolder.save_mg.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
public void onClick(View view) { | |||||
zl[0] =ExecuteTheRecipe.OutletWeigh; | |||||
StartTime(myViewHolder); | |||||
} | |||||
}); | |||||
//为Chronomter绑定事件监听器,超过一小时自动日内告知 | |||||
myViewHolder.runtime.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { | |||||
@Override | |||||
public void onChronometerTick(Chronometer chronometer) { | |||||
//如果计时到现在超过了一小时秒 10s | |||||
if (SystemClock.elapsedRealtime() - myViewHolder.runtime.getBase() > 10 * 1000) { | |||||
time[0] =StopTime(myViewHolder); | |||||
DataBus.getInstance().SilosLsjy.get(position).mgtime=time[0]; | |||||
QueryDB.UpdateMGTime(DataBus.getInstance().SilosLsjy.get(position).id,time[0]); | |||||
} | |||||
} | |||||
}); | |||||
ExecuteTheRecipe.WeighComplete=new IRun() { | |||||
@Override | |||||
public void Run() { | |||||
if(ExecuteTheRecipe.OutletWeigh >=(zl[0]+2)) | |||||
{ | |||||
time[0] =StopTime(myViewHolder); | |||||
DataBus.getInstance().SilosLsjy.get(position).mgtime=time[0]; | |||||
QueryDB.UpdateMGTime(DataBus.getInstance().SilosLsjy.get(position).id,time[0]); | |||||
} | |||||
} | |||||
}; | |||||
} | |||||
} catch (Exception e) { | |||||
e.printStackTrace(); | |||||
} | |||||
} | |||||
/** | |||||
* 启动定时器 | |||||
*/ | |||||
public void StartTime(MyGoodLCViewHolder myGoodLCViewHolder) { | |||||
myGoodLCViewHolder.jishiqi.setVisibility(View.VISIBLE); | |||||
myGoodLCViewHolder.main_laout.setVisibility(View.GONE); | |||||
myGoodLCViewHolder.runtime.setBase(SystemClock.elapsedRealtime()); | |||||
myGoodLCViewHolder.runtime.start(); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
//自动模式 | |||||
ExecuteTheRecipe.WritePLC("手自切换", false, null); | |||||
//开启 | |||||
ExecuteTheRecipe.WritePLC("手动控制"+myGoodLCViewHolder.num,true,null); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
} | |||||
/** | |||||
* 停止定时器 | |||||
*/ | |||||
public int StopTime(MyGoodLCViewHolder myGoodLCViewHolder) { | |||||
myGoodLCViewHolder.jishiqi.setVisibility(View.GONE); | |||||
myGoodLCViewHolder.main_laout.setVisibility(View.VISIBLE); | |||||
long elapsedMillis = SystemClock.elapsedRealtime() - myGoodLCViewHolder.runtime.getBase(); | |||||
myGoodLCViewHolder.runtime.stop(); | |||||
int time=(int) (elapsedMillis / 1000); | |||||
myGoodLCViewHolder.edittext_mgsj.setText(time+""); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
ExecuteTheRecipe.WritePLC("手动控制"+myGoodLCViewHolder.num,false,null); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
return time;//当前点击多少秒 | |||||
} | |||||
private Activity findActivity(@NonNull Context context) { | |||||
if (context instanceof Activity) { | |||||
return (Activity) context; | |||||
} else if (context instanceof ContextWrapper) { | |||||
return findActivity(((ContextWrapper) context).getBaseContext()); | |||||
} else { | |||||
return null; | |||||
} | |||||
} | |||||
/** | |||||
* 刷新 | |||||
* @param | |||||
*/ | |||||
public void refresh(){ | |||||
Activity activity= findActivity(context); | |||||
if(activity!=null) | |||||
{ | |||||
activity.runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
notifyDataSetChanged(); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
@Override | |||||
public int getItemCount() { | |||||
return mainGoods.size(); | |||||
} | |||||
public static class MyGoodLCViewHolder extends RecyclerView.ViewHolder { | |||||
/** | |||||
* 通道名称 | |||||
*/ | |||||
TextView name; | |||||
/** | |||||
* 物料名称 | |||||
*/ | |||||
TextView wlname; | |||||
/** | |||||
* 校准开关 | |||||
*/ | |||||
SwitchButton control_switch; | |||||
/** | |||||
* 通道重量 | |||||
*/ | |||||
EditText edittext_tdzl; | |||||
/** | |||||
* 保存值 | |||||
*/ | |||||
Button save_value; | |||||
EditText edittext_mgsj; | |||||
Button save_mg; | |||||
RelativeLayout jishiqi; | |||||
LinearLayout main_laout; | |||||
Chronometer runtime; | |||||
int num=0; | |||||
public MyGoodLCViewHolder(View view) { | |||||
super(view); | |||||
name = (TextView) view.findViewById(R.id.name); | |||||
wlname = (TextView) view.findViewById(R.id.wlname); | |||||
// edittext_xs=(EditText) view.findViewById(R.id.edittext_xs); | |||||
control_switch = (SwitchButton)view.findViewById(R.id.control_switch); | |||||
edittext_tdzl=(EditText) view.findViewById(R.id.edittext_tdzl); | |||||
save_value=(Button) view.findViewById(R.id.save_value); | |||||
edittext_mgsj=(EditText) view.findViewById(R.id.edittext_mgsj); | |||||
save_mg=(Button) view.findViewById(R.id.save_mg); | |||||
jishiqi=view.findViewById(R.id.jishiqi); | |||||
main_laout=view.findViewById(R.id.main_laout); | |||||
runtime=view.findViewById(R.id.runtime); | |||||
} | |||||
} | |||||
} |
@@ -24,8 +24,6 @@ import com.bonait.bnframework.common.constant.DataBus; | |||||
import com.bonait.bnframework.common.model.mode.ResMenuLeft; | import com.bonait.bnframework.common.model.mode.ResMenuLeft; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.modules.home.adapter.jiaoyan_adapter; | import com.bonait.bnframework.modules.home.adapter.jiaoyan_adapter; | ||||
import com.bonait.bnframework.modules.home.fragment.from.fragment.JiaoYan_clsfbc_fragment; | |||||
import com.bonait.bnframework.modules.home.fragment.from.fragment.JiaoYan_lsjy_fragment; | |||||
import com.orhanobut.logger.Logger; | import com.orhanobut.logger.Logger; | ||||
import com.qmuiteam.qmui.widget.QMUITopBarLayout; | import com.qmuiteam.qmui.widget.QMUITopBarLayout; | ||||
@@ -119,13 +117,13 @@ public class JiaoYanFragment extends BaseFragment { | |||||
//JiaoYan_sdkz_fragment 删除控制 | //JiaoYan_sdkz_fragment 删除控制 | ||||
//ZdqxActivity | //ZdqxActivity | ||||
if (ConfigName.getInstance().versionSelectionEnum.equals("配料吧台")) { | |||||
menuModes.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"流速校验", R.mipmap.lsjy, R.mipmap.lsjy_select,false)); | |||||
menuModes.add(new ResMenuLeft(new JiaoYan_clsfbc_fragment(),"出料算法补偿", R.mipmap.clsfbc, R.mipmap.clsfbc_selectd,false)); | |||||
}else | |||||
{ | |||||
menuModes.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"流速校验", R.mipmap.lsjy, R.mipmap.lsjy_select,false)); | |||||
} | |||||
// if (ConfigName.getInstance().versionSelectionEnum.equals("配料吧台")) { | |||||
// menuModes.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"流速校验", R.mipmap.lsjy, R.mipmap.lsjy_select,false)); | |||||
// menuModes.add(new ResMenuLeft(new JiaoYan_clsfbc_fragment(),"出料算法补偿", R.mipmap.clsfbc, R.mipmap.clsfbc_selectd,false)); | |||||
// }else | |||||
// { | |||||
// menuModes.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"流速校验", R.mipmap.lsjy, R.mipmap.lsjy_select,false)); | |||||
// } | |||||
for(ResMenuLeft item:menuModes) | for(ResMenuLeft item:menuModes) | ||||
{ | { | ||||
@@ -126,7 +126,7 @@ public class SilosNewActivity extends BaseActivity { | |||||
//设置 | //设置 | ||||
} else if (k == 4) { | } else if (k == 4) { | ||||
//校准 | //校准 | ||||
silos_jz.SetData((lcMode) data,getSupportFragmentManager()); | |||||
silos_jz.SetData((lcMode) data, getSupportFragmentManager()); | |||||
silos_jz.setVisibility(View.VISIBLE); | silos_jz.setVisibility(View.VISIBLE); | ||||
} else if (k == 5) { | } else if (k == 5) { | ||||
// | // | ||||
@@ -49,7 +49,7 @@ public class ZdqxActivity extends BaseActivity { | |||||
@Override | @Override | ||||
protected void onCreate(Bundle savedInstanceState) { | protected void onCreate(Bundle savedInstanceState) { | ||||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||||
setContentView(R.layout.fragment_jiaoyan_zdqx); | |||||
setContentView(R.layout.activity_zdqx); | |||||
ButterKnife.bind(this); | ButterKnife.bind(this); | ||||
context = getContext(); | context = getContext(); | ||||
activity = this; | activity = this; | ||||
@@ -1,127 +0,0 @@ | |||||
package com.bonait.bnframework.modules.home.fragment.from.fragment; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.appcompat.app.AppCompatActivity; | |||||
import androidx.recyclerview.widget.LinearLayoutManager; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.content.Context; | |||||
import android.os.Bundle; | |||||
import android.view.LayoutInflater; | |||||
import android.view.View; | |||||
import com.bonait.bnframework.R; | |||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.common.base.BaseFragment; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | |||||
import com.bonait.bnframework.common.constant.DataBus; | |||||
import com.bonait.bnframework.common.helper.I.IRun; | |||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | |||||
import com.bonait.bnframework.common.helper.WrapContentLinearLayoutManager; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import com.bonait.bnframework.common.view.MyLayoutManager; | |||||
import com.bonait.bnframework.modules.home.adapter.clsfbc_adapter; | |||||
import com.bonait.bnframework.modules.home.adapter.image_sp_adapter; | |||||
import com.bonait.bnframework.modules.home.adapter.lsjy_adapter; | |||||
import com.orhanobut.logger.Logger; | |||||
import com.qmuiteam.qmui.widget.QMUITopBarLayout; | |||||
import butterknife.BindView; | |||||
import butterknife.ButterKnife; | |||||
import butterknife.OnClick; | |||||
public class JiaoYan_clsfbc_fragment extends BaseFragment { | |||||
@BindView(R.id.recycler_clsfbc) | |||||
RecyclerView recycler_clsfbc;//出料算法补偿 | |||||
private Context context; | |||||
@Override | |||||
protected View onCreateView() { | |||||
View root = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_jiaoyan_clsfbc, null); | |||||
ButterKnife.bind(this, root); | |||||
return root; | |||||
} | |||||
@Override | |||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { | |||||
super.onViewCreated(view, savedInstanceState); | |||||
Logger.d("我的fragment创建"); | |||||
context = getContext(); | |||||
InitView(); | |||||
} | |||||
/** | |||||
* 初始化界面 | |||||
*/ | |||||
public void InitView() { | |||||
Initdata(); | |||||
} | |||||
// boolean IsStart = false; | |||||
// @OnClick({R.id.save_time,R.id.bt_start}) | |||||
// public void onViewClicked(View view) { | |||||
// | |||||
// } | |||||
//region 数据加载 | |||||
/** | |||||
* 初始化数据加载 | |||||
*/ | |||||
public void Initdata() { | |||||
try { | |||||
MyLayoutManager layout = new MyLayoutManager(); | |||||
layout.setAutoMeasureEnabled(true); | |||||
recycler_clsfbc.setLayoutManager(layout); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
Object[] kg =ExecuteTheRecipe.ReadPLC("通道1补偿开关",6); | |||||
Object[] gxs =ExecuteTheRecipe.ReadPLC("高系数1",6); | |||||
Object[] dxs =ExecuteTheRecipe.ReadPLC("低系数1",6); | |||||
Object[] bcsj =ExecuteTheRecipe.ReadPLC("补偿1时间",6); | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
clsfbc_adapter spadapter = new clsfbc_adapter(context | |||||
, ConfigName.getInstance().zdsfs_出料算法 | |||||
,kg,gxs,dxs,bcsj); | |||||
recycler_clsfbc.setAdapter(spadapter); | |||||
} | |||||
}); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
//endregion | |||||
@Override | |||||
public void onDestroy() { | |||||
super.onDestroy(); | |||||
Logger.d("我的fragment销毁"); | |||||
} | |||||
/** | |||||
* 当在activity设置viewPager + BottomNavigation + fragment时, | |||||
* 为防止viewPager左滑动切换界面,与fragment左滑返回上一界面冲突引起闪退问题, | |||||
* 必须加上此方法,禁止fragment左滑返回上一界面。 | |||||
* <p> | |||||
* 切记!切记!切记!否则会闪退! | |||||
* <p> | |||||
* 当在fragment设置viewPager + BottomNavigation + fragment时,则不会出现这个问题。 | |||||
*/ | |||||
@Override | |||||
protected boolean canDragBack() { | |||||
return false; | |||||
} | |||||
} |
@@ -1,498 +0,0 @@ | |||||
package com.bonait.bnframework.modules.home.fragment.from.fragment; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.appcompat.app.AppCompatActivity; | |||||
import androidx.recyclerview.widget.LinearLayoutManager; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.content.Context; | |||||
import android.os.Bundle; | |||||
import android.os.Handler; | |||||
import android.os.Message; | |||||
import android.util.Log; | |||||
import android.view.LayoutInflater; | |||||
import android.view.View; | |||||
import android.view.WindowManager; | |||||
import android.widget.Button; | |||||
import android.widget.EditText; | |||||
import android.widget.LinearLayout; | |||||
import android.widget.TextView; | |||||
import com.bonait.bnframework.R; | |||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.common.base.BaseFragment; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | |||||
import com.bonait.bnframework.common.constant.DataBus; | |||||
import com.bonait.bnframework.common.db.QueryDB; | |||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS; | |||||
import com.bonait.bnframework.common.db.mode.BPA_GOODSTYPE; | |||||
import com.bonait.bnframework.common.db.res.SilosLsjyMode; | |||||
import com.bonait.bnframework.common.helper.I.IRun; | |||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | |||||
import com.bonait.bnframework.common.helper.MediaPlayerHelper; | |||||
import com.bonait.bnframework.common.helper.WrapContentLinearLayoutManager; | |||||
import com.bonait.bnframework.common.linktab.LinkMode; | |||||
import com.bonait.bnframework.common.linktab.TopItemDecoration; | |||||
import com.bonait.bnframework.common.linktab.makegood.MakeGoodLeftAdapter; | |||||
import com.bonait.bnframework.common.linktab.makegood.MakeGoodRightAdapter; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import com.bonait.bnframework.modules.home.adapter.lsjy_adapter; | |||||
import com.orhanobut.logger.Logger; | |||||
import java.util.ArrayList; | |||||
import java.util.Arrays; | |||||
import java.util.List; | |||||
import butterknife.BindView; | |||||
import butterknife.ButterKnife; | |||||
import butterknife.OnClick; | |||||
public class JiaoYan_lsjy_fragment extends BaseFragment { | |||||
@BindView(R.id.Recy_Lsjy) | |||||
RecyclerView Recy_Lsjy;//流速校验 | |||||
@BindView(R.id.zhongliang) | |||||
TextView zhongliang;//实时重量 | |||||
@BindView(R.id.edittext_jzsj) | |||||
EditText edittext_jzsj;//校准时间 | |||||
@BindView(R.id.edittext_fzsj) | |||||
EditText edittext_fzsj;//反转时间 | |||||
@BindView(R.id.edittext_cl) | |||||
EditText edittext_cl;//出料重量 | |||||
@BindView(R.id.linelayout_fanzhuantime) | |||||
LinearLayout linelayout_fanzhuantime;//出料重量 | |||||
private Context context; | |||||
@Override | |||||
protected View onCreateView() { | |||||
View root = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_jiaoyan_lsjy, null); | |||||
ButterKnife.bind(this, root); | |||||
return root; | |||||
} | |||||
@Override | |||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { | |||||
super.onViewCreated(view, savedInstanceState); | |||||
Logger.d("我的fragment创建"); | |||||
context = getContext(); | |||||
InitView(); | |||||
} | |||||
/** | |||||
* 初始化界面 | |||||
*/ | |||||
public void InitView() { | |||||
Initdata(); | |||||
Run(); | |||||
} | |||||
public int selectIndexSilos=-99; | |||||
@OnClick({R.id.save_jzsj,R.id.save_fzsj | |||||
,R.id.czql,R.id.save_czql,R.id.ksjz | |||||
,R.id.kscl | |||||
}) | |||||
public void onViewClicked(View view) { | |||||
switch (view.getId()) { | |||||
case R.id.save_jzsj://保存校准时间 | |||||
try { | |||||
String stime = edittext_jzsj.getText().toString(); | |||||
if (stime.equals("")) { | |||||
ToastUtils.info("校准基准时间不能为空!"); | |||||
return; | |||||
} | |||||
int ftime = 0; | |||||
try { | |||||
ftime = (int) Math.round((Double.parseDouble(stime) * 10)); | |||||
} catch (Exception e) { | |||||
ToastUtils.error("校准基准时间异常!" + e.getMessage()); | |||||
return; | |||||
} | |||||
ExecuteTheRecipe.WritePLC("基准时间", (short) ftime, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info("校准基准时间保存成功!"); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.error("校准基准时间保存失败!"); | |||||
} | |||||
}); | |||||
} catch (WindowManager.BadTokenException e) { | |||||
ToastUtils.error("校准基准时间保存配置异常!" + e.getMessage()); | |||||
} | |||||
break; | |||||
case R.id.save_fzsj://保存反转时间 | |||||
try { | |||||
String stime = edittext_fzsj.getText().toString(); | |||||
if (stime.equals("")) { | |||||
ToastUtils.info("反转时间不能为空!"); | |||||
return; | |||||
} | |||||
int ftime = 0; | |||||
try { | |||||
ftime = (int) Math.round((Double.parseDouble(stime) * 10)); | |||||
} catch (Exception e) { | |||||
ToastUtils.error("反转时间异常!" + e.getMessage()); | |||||
return; | |||||
} | |||||
ExecuteTheRecipe.WritePLC("反转时间", (short) ftime, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info("反转时间保存成功!"); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.error("反转时间保存失败!"); | |||||
} | |||||
}); | |||||
} catch (WindowManager.BadTokenException e) { | |||||
ToastUtils.error("反转时间保存配置异常!" + e.getMessage()); | |||||
} | |||||
break; | |||||
case R.id.czql://称重清零 | |||||
case R.id.save_czql: | |||||
ExecuteTheRecipe.WritePLC("重量清零", true, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info("清零成功!"); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.error("清零失败!"); | |||||
} | |||||
}); | |||||
break; | |||||
case R.id.ksjz://开始校准 | |||||
//切换手动 | |||||
//region 判断是否只勾选了一个料仓 | |||||
SelectSilos(); | |||||
//endregion | |||||
//判断是否为果糖 | |||||
if (!ConfigName.getInstance().versionSelectionEnum.equals("配料吧台")) | |||||
{ | |||||
if(selectIndexSilos==11) | |||||
{ | |||||
Object sx=ExecuteTheRecipe.ReadPLC("果糖左温度设置"); | |||||
int wdsz=sx==null?0:(int)sx; | |||||
if(ExecuteTheRecipe.SugarTempLeft<wdsz) | |||||
{ | |||||
ToastUtils.warning("果糖左仓温度未达到设置值,不允许校准..."); | |||||
return; | |||||
} | |||||
}else if(selectIndexSilos==12) | |||||
{ | |||||
Object sx=ExecuteTheRecipe.ReadPLC("果糖右温度设置"); | |||||
int wdsz=sx==null?0:(int)sx; | |||||
if(ExecuteTheRecipe.SugarTempRight<wdsz) | |||||
{ | |||||
ToastUtils.warning("果糖右仓温度未达到设置值,不允许校准..."); | |||||
return; | |||||
} | |||||
} | |||||
} | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
ExecuteTheRecipe.WritePLC("校准完成",false,null); | |||||
ExecuteTheRecipe.WritePLC("手自切换", false, null); | |||||
ExecuteTheRecipe.WritePLC("通道校准", true, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info("启动通道校准成功!"); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.error("启动通道校准失败!"); | |||||
} | |||||
}); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
break; | |||||
case R.id.kscl://开始出料 | |||||
String zltext = edittext_cl.getText().toString(); | |||||
if (zltext.equals("")) { | |||||
ToastUtils.warning("出料重量不能为空!"); | |||||
return; | |||||
} | |||||
double zl = 0; | |||||
try { | |||||
zl = Double.parseDouble(zltext); | |||||
} catch (Exception e) { | |||||
ToastUtils.warning("出料重量获取异常!" + e.getMessage()); | |||||
return; | |||||
} | |||||
if(zl<=0) | |||||
{ | |||||
ToastUtils.warning("出料重量至少大于0g!"); | |||||
return; | |||||
} | |||||
if (!ExecuteTheRecipe.IsCup) | |||||
{ | |||||
ToastUtils.warning("出料口没有检测到器皿!"); | |||||
return; | |||||
} | |||||
//region 判断是否只勾选了一个料仓 | |||||
SelectSilos(); | |||||
//endregion | |||||
if (selectIndexSilos==-88) | |||||
{ | |||||
ToastUtils.warning("只能打开一个通道开关!"); | |||||
return; | |||||
} | |||||
if (selectIndexSilos<=0) | |||||
{ | |||||
ToastUtils.warning("请打开通道开关!"); | |||||
return; | |||||
} | |||||
short kkk=(short) ((int) (zl * 10)); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
ExecuteTheRecipe.WritePLC("配料完成",false,null); | |||||
ExecuteTheRecipe.WritePLC("手自切换", true,null); | |||||
ExecuteTheRecipe.WritePLC("需求值" + selectIndexSilos,kkk,new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ExecuteTheRecipe.WritePLC("配料启动", true, null); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
} | |||||
}); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
ToastUtils.warning("需求值下发成功!开始配料......"); | |||||
break; | |||||
} | |||||
} | |||||
/** | |||||
* 判断是否只勾选了一个料仓 | |||||
*/ | |||||
public void SelectSilos() | |||||
{ | |||||
//region 判断是否只勾选了一个料仓 | |||||
selectIndexSilos=-99; | |||||
for (SilosLsjyMode item:DataBus.getInstance().SilosLsjy) | |||||
{ | |||||
if(item.jzkg) | |||||
{ | |||||
if(selectIndexSilos==-99) | |||||
{ | |||||
selectIndexSilos=item.num; | |||||
}else | |||||
{ | |||||
selectIndexSilos=-88; | |||||
} | |||||
} | |||||
} | |||||
//endregion | |||||
} | |||||
//region 数据加载 | |||||
/** | |||||
* 初始化数据加载 | |||||
*/ | |||||
public void Initdata() { | |||||
try { | |||||
//顶部料仓信息 | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
DataBus.getInstance().GetSilosLsjy(); | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
if(isAdded()) | |||||
{ | |||||
Recy_Lsjy.setLayoutManager(new WrapContentLinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL,false)); | |||||
DataBus.getInstance().lsjyAdapter = new lsjy_adapter(getContext()); | |||||
Recy_Lsjy.setAdapter(DataBus.getInstance().lsjyAdapter); | |||||
} | |||||
} | |||||
}); | |||||
DataBus.getInstance().GetSilosLsjyValue(); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
//底部按钮信息 | |||||
Object obj= ExecuteTheRecipe.ReadPLC("基准时间"); | |||||
String time = obj==null?"0":obj.toString(); | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
//校准时间 | |||||
edittext_jzsj.setText(String.format("%.1f", (Double.parseDouble(time) / 10))); | |||||
if (ConfigName.getInstance().versionSelectionEnum.equals("配料吧台")) | |||||
{ | |||||
Object obj1= ExecuteTheRecipe.ReadPLC("反转时间"); | |||||
String fztime = obj1==null?"0":obj1.toString(); | |||||
edittext_fzsj.setText(String.format("%.1f", (Double.parseDouble(fztime) / 10))); | |||||
}else | |||||
{ | |||||
linelayout_fanzhuantime.setVisibility(View.GONE); | |||||
} | |||||
} | |||||
}); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
private Handler mHandler = new Handler() { | |||||
public void handleMessage(Message msg) { | |||||
switch (msg.what) { | |||||
case 0: | |||||
zhongliang.setText(String.valueOf((int)ExecuteTheRecipe.OutletWeigh / 10.0) + " g"); | |||||
break; | |||||
case 1: | |||||
break; | |||||
case 2: | |||||
break; | |||||
} | |||||
} | |||||
}; | |||||
/** | |||||
* 实时显示线程 | |||||
*/ | |||||
public void Run() { | |||||
ExecuteTheRecipe.WeighComplete=new IRun() { | |||||
@Override | |||||
public void Run() { | |||||
mHandler.sendEmptyMessage(0); | |||||
} | |||||
}; | |||||
ExecuteTheRecipe.OnChargeMixtureComNotPar = new IRun() { | |||||
@Override | |||||
public void Run() { | |||||
if (selectIndexSilos > 0) { | |||||
final int kkk = selectIndexSilos; | |||||
try { | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
new Handler().postDelayed(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
ToastUtils.warning("通道校准完成!"); | |||||
// 在2秒后执行按钮操作 | |||||
int zhongliangxianshi=ExecuteTheRecipe.OutletWeigh; | |||||
ExecuteTheRecipe.WritePLC("校准值"+kkk,(short) zhongliangxianshi,null); | |||||
String s = String.valueOf(zhongliangxianshi); | |||||
for (SilosLsjyMode item:DataBus.getInstance().SilosLsjy) | |||||
{ | |||||
if(kkk==item.num) | |||||
{ | |||||
item.Value=String.format("%.1f", (Double.parseDouble(s) / 10)); | |||||
ToastUtils.warning("重量!" +item.Value); | |||||
} | |||||
} | |||||
if (DataBus.getInstance().lsjyAdapter!=null) | |||||
{ | |||||
DataBus.getInstance().lsjyAdapter.refresh(); | |||||
} | |||||
} | |||||
}, 2000); | |||||
} catch (Exception e) { | |||||
ToastUtils.error("重量解析显示异常!" + e.getMessage()); | |||||
} | |||||
} | |||||
}); | |||||
} catch (Exception ex) { | |||||
Log.d("dsds", "Run: " + ex.getMessage()); | |||||
} | |||||
selectIndexSilos = -99; | |||||
} | |||||
} | |||||
}; | |||||
} | |||||
//endregion | |||||
@Override | |||||
public void onDestroy() { | |||||
super.onDestroy(); | |||||
Logger.d("我的fragment销毁"); | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
ExecuteTheRecipe.WritePLC("手自切换", true, null); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
} | |||||
/** | |||||
* 当在activity设置viewPager + BottomNavigation + fragment时, | |||||
* 为防止viewPager左滑动切换界面,与fragment左滑返回上一界面冲突引起闪退问题, | |||||
* 必须加上此方法,禁止fragment左滑返回上一界面。 | |||||
* <p> | |||||
* 切记!切记!切记!否则会闪退! | |||||
* <p> | |||||
* 当在fragment设置viewPager + BottomNavigation + fragment时,则不会出现这个问题。 | |||||
*/ | |||||
@Override | |||||
protected boolean canDragBack() { | |||||
return false; | |||||
} | |||||
} |
@@ -27,11 +27,11 @@ import com.bonait.bnframework.common.db.res.lcMode; | |||||
import com.bonait.bnframework.common.helper.I.IRun; | import com.bonait.bnframework.common.helper.I.IRun; | ||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | import com.bonait.bnframework.common.helper.I.IWriteCallBack; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.modules.home.adapter.lsjy_adapter; | |||||
import com.bonait.bnframework.modules.home.fragment.from.LogActivity; | import com.bonait.bnframework.modules.home.fragment.from.LogActivity; | ||||
import com.bonait.bnframework.modules.home.fragment.from.PlcControlActivity; | import com.bonait.bnframework.modules.home.fragment.from.PlcControlActivity; | ||||
import com.bonait.bnframework.modules.home.fragment.from.RealTimeActivity; | import com.bonait.bnframework.modules.home.fragment.from.RealTimeActivity; | ||||
import com.orhanobut.logger.Logger; | import com.orhanobut.logger.Logger; | ||||
import com.suke.widget.SwitchButton; | |||||
import java.util.List; | import java.util.List; | ||||
@@ -80,21 +80,35 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
final int[] zl = {0}; | final int[] zl = {0}; | ||||
//endregion | //endregion | ||||
//region 物料校准变量 | //region 物料校准变量 | ||||
@BindView(R.id.wljz1) | @BindView(R.id.wljz1) | ||||
EditText edit_wljz1; | |||||
EditText wljz1; | |||||
@BindView(R.id.wljz2) | @BindView(R.id.wljz2) | ||||
EditText edit_wljz2; | |||||
EditText wljz2; | |||||
@BindView(R.id.wljz3) | @BindView(R.id.wljz3) | ||||
EditText edit_wljz3; | |||||
EditText wljz3; | |||||
@BindView(R.id.text_wljz) | @BindView(R.id.text_wljz) | ||||
TextView text_wljz2; | TextView text_wljz2; | ||||
//endregion | //endregion | ||||
//region 通道补偿 | |||||
@BindView(R.id.control_switch) | |||||
SwitchButton control_switch; | |||||
@BindView(R.id.bcjz_gxs) | |||||
EditText bcjz_gxs; | |||||
@BindView(R.id.bcjz_dxs) | |||||
EditText bcjz_dxs; | |||||
@BindView(R.id.bcjz_clsj) | |||||
EditText bcjz_clsj; | |||||
//endregion | |||||
//region 变量 | //region 变量 | ||||
private Context context; | private Context context; | ||||
/** | /** | ||||
@@ -222,15 +236,15 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
new Handler().postDelayed(new Runnable() { | new Handler().postDelayed(new Runnable() { | ||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
ToastUtils.warning("通道校准完成!"); | |||||
// 在2秒后执行按钮操作 | // 在2秒后执行按钮操作 | ||||
int zhongliangxianshi = ExecuteTheRecipe.OutletWeigh; | int zhongliangxianshi = ExecuteTheRecipe.OutletWeigh; | ||||
ExecuteTheRecipe.WritePLC("校准值" + kkk, (short) zhongliangxianshi, null); | ExecuteTheRecipe.WritePLC("校准值" + kkk, (short) zhongliangxianshi, null); | ||||
String s = String.valueOf(zhongliangxianshi); | String s = String.valueOf(zhongliangxianshi); | ||||
String zll=String.format("%.1f", (Double.parseDouble(s) / 10)); | String zll=String.format("%.1f", (Double.parseDouble(s) / 10)); | ||||
edit_wljz3.setText(zll+""); | |||||
lcMode.jValue=zhongliangxianshi; | |||||
QueryDB.UpdateJYZ(lcMode.id,zhongliangxianshi); | |||||
wljz3.setText(zll+""); | |||||
lcMode.jValue=zll; | |||||
QueryDB.UpdateJYZ(lcMode.id,zll); | |||||
ToastUtils.warning("通道校准完成!"); | |||||
} | } | ||||
}, 2000); | }, 2000); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
@@ -244,36 +258,23 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
} | } | ||||
}; | }; | ||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
//底部按钮信息 | |||||
Object obj = ExecuteTheRecipe.ReadPLC("基准时间"); | |||||
Object jzz = ExecuteTheRecipe.ReadPLC("校准值" + lcMode.num); | |||||
String time = obj == null ? "0" : obj.toString(); | |||||
short val = jzz == null ? 0 : (short) jzz; | |||||
getActivity().runOnUiThread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
//校准时间 | |||||
edit_wljz1.setText(String.format("%.1f", (Double.parseDouble(time) / 10))); | |||||
edit_wljz3.setText(String.format("%.1f", (Double.parseDouble(String.valueOf(val)) / 10))); | |||||
if (!ConfigName.getInstance().versionSelectionEnum.equals("奶茶机")) { | |||||
Object obj1 = ExecuteTheRecipe.ReadPLC("反转时间"); | |||||
String fztime = obj1 == null ? "0" : obj1.toString(); | |||||
edit_wljz2.setText(String.format("%.1f", (Double.parseDouble(fztime) / 10))); | |||||
} else { | |||||
edit_wljz2.setVisibility(View.GONE); | |||||
text_wljz2.setVisibility(View.GONE); | |||||
} | |||||
} | |||||
}); | |||||
ExecuteTheRecipe.WritePLC("通道" + lcMode.num + "校准开关", true, null); | |||||
} catch (Exception e) { | |||||
} | |||||
} | |||||
}).start(); | |||||
//填充校准时间 | |||||
String time = lcMode.jTime == null ? "0.0" : lcMode.jTime; | |||||
String ftime = lcMode.fTime == null ? "0.0" : lcMode.fTime; | |||||
String jvalue = lcMode.jValue == null ? "0.0" : lcMode.jValue; | |||||
wljz1.setText(time); | |||||
wljz1.setText(ftime); | |||||
wljz3.setText(jvalue); | |||||
String Gxs = lcMode.Gxs == null ? "0.0" : lcMode.Gxs; | |||||
String Lxs = lcMode.Lxs == null ? "0.0" : lcMode.Lxs; | |||||
String tdclsj = lcMode.tdclsj == null ? "0.0" : lcMode.tdclsj; | |||||
control_switch.setChecked(lcMode.isOpenbcsf==1); | |||||
bcjz_gxs.setText(Gxs); | |||||
bcjz_gxs.setText(Lxs); | |||||
bcjz_gxs.setText(tdclsj); | |||||
} | } | ||||
//endregion | //endregion | ||||
@@ -308,7 +309,8 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
R.id.qingling1, R.id.qingling2, R.id.qingling3, | R.id.qingling1, R.id.qingling2, R.id.qingling3, | ||||
R.id.chuliao1, R.id.chuliao2, R.id.chuliao3, | R.id.chuliao1, R.id.chuliao2, R.id.chuliao3, | ||||
R.id.click_mgjz, R.id.click_mgjz_save, | R.id.click_mgjz, R.id.click_mgjz_save, | ||||
R.id.click_wljz, R.id.click_wljz_save | |||||
R.id.click_wljz, R.id.click_wljz_save, | |||||
R.id.control_switch,R.id.click_bcjz_save, | |||||
}) | }) | ||||
public void onViewClicked(View view) { | public void onViewClicked(View view) { | ||||
switch (view.getId()) { | switch (view.getId()) { | ||||
@@ -344,6 +346,22 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
case R.id.click_wljz_save://物料校准 保存参数 | case R.id.click_wljz_save://物料校准 保存参数 | ||||
SaveWLJZ(); | SaveWLJZ(); | ||||
break; | break; | ||||
case R.id.control_switch://通道开关 | |||||
boolean isopen= control_switch.isChecked(); | |||||
if (ConfigName.getInstance().PlcIsConnect) | |||||
{ | |||||
ExecuteTheRecipe.WritePLC("通道"+lcMode.num+"补偿开关",isopen,null); | |||||
QueryDB.UpdateSilosisOpenbcsf(lcMode.id,isopen); | |||||
ToastUtils.info(lcMode.name.toString()+(isopen?"打开":"关闭")+"成功!"); | |||||
}else | |||||
{ | |||||
ToastUtils.warning(lcMode.name.toString()+(isopen?"打开":"关闭")+"失败!PLC未连接!!"); | |||||
} | |||||
break; | |||||
case R.id.click_bcjz_save://补偿校准 保存参数 | |||||
SaveBCJZ(); | |||||
break; | |||||
} | } | ||||
} | } | ||||
//endregion | //endregion | ||||
@@ -431,8 +449,8 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
//region 保存物料校准参数 | //region 保存物料校准参数 | ||||
public void SaveWLJZ() { | public void SaveWLJZ() { | ||||
String stime = edit_wljz1.getText().toString(); | |||||
String ftime = edit_wljz2.getText().toString(); | |||||
String stime = wljz1.getText().toString(); | |||||
String ftime = wljz2.getText().toString(); | |||||
if (stime.equals("")) { | if (stime.equals("")) { | ||||
ToastUtils.info("校准基准时间不能为空!"); | ToastUtils.info("校准基准时间不能为空!"); | ||||
return; | return; | ||||
@@ -470,7 +488,7 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
QueryDB.UpdateSilosJZTime(lcMode.id,ftime); | |||||
QueryDB.UpdateSilosJZTime(lcMode.id,stime,ftime); | |||||
ExecuteTheRecipe.WritePLC("基准时间", (short) stime_1, new IWriteCallBack() { | ExecuteTheRecipe.WritePLC("基准时间", (short) stime_1, new IWriteCallBack() { | ||||
@Override | @Override | ||||
public void onSuccess() { | public void onSuccess() { | ||||
@@ -520,10 +538,56 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
} | } | ||||
}); | }); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
} | |||||
} | |||||
}).start(); | |||||
} | |||||
//endregion | |||||
//region 补偿校准 | |||||
public void SaveBCJZ() { | |||||
Short H=0; | |||||
Short L=0; | |||||
Short time=0; | |||||
try { | |||||
H=Short.parseShort(bcjz_gxs.getText().toString()) ; | |||||
L=Short.parseShort(bcjz_dxs.getText().toString()) ; | |||||
int ftime = (int)Math.round((Double.parseDouble(bcjz_clsj.getText().toString()) * 10)); | |||||
time=(short) ftime; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
ToastUtils.error( "数据不合法,保存变量失败!"+ex.getMessage()); | |||||
return; | |||||
} | |||||
Short finalH = H; | |||||
Short finalL = L; | |||||
Short finalTime = time; | |||||
new Thread(new Runnable() { | |||||
@Override | |||||
public void run() { | |||||
try { | |||||
ExecuteTheRecipe.WritePLC("高系数"+lcMode.num, finalH,null); | |||||
ExecuteTheRecipe.WritePLC("低系数"+lcMode.num, finalL,null); | |||||
ExecuteTheRecipe.WritePLC("补偿" + lcMode.num + "时间", finalTime, new IWriteCallBack() { | |||||
@Override | |||||
public void onSuccess() { | |||||
ToastUtils.info("保存变量成功!"); | |||||
QueryDB.UpdateSilosisOpenbcsf(lcMode.id,bcjz_gxs.getText().toString(), | |||||
bcjz_dxs.getText().toString(),bcjz_clsj.getText().toString()); | |||||
} | |||||
@Override | |||||
public void onFailure(String ErrorMsg) { | |||||
ToastUtils.warning("保存变量失败!"); | |||||
} | |||||
}); | |||||
} catch (Exception e) { | |||||
} | } | ||||
} | } | ||||
}).start(); | }).start(); | ||||
} | } | ||||
//endregion | //endregion | ||||
@@ -533,7 +597,6 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
} | } | ||||
//endregion | //endregion | ||||
//region 定时器 | //region 定时器 | ||||
/** | /** | ||||
@@ -561,12 +624,9 @@ public class Silos_item_jiaoyan_fragment extends BaseFragment { | |||||
* 停止定时器 | * 停止定时器 | ||||
*/ | */ | ||||
public int StopTime() { | public int StopTime() { | ||||
long elapsedMillis = SystemClock.elapsedRealtime() - runtime.getBase(); | long elapsedMillis = SystemClock.elapsedRealtime() - runtime.getBase(); | ||||
runtime.stop(); | runtime.stop(); | ||||
int time = (int) (elapsedMillis / 1000); | int time = (int) (elapsedMillis / 1000); | ||||
exit_mgjz.setText(time + ""); | |||||
new Thread(new Runnable() { | new Thread(new Runnable() { | ||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
@@ -31,7 +31,6 @@ import com.bonait.bnframework.common.db.mode.BPA_SUBORDER; | |||||
import com.bonait.bnframework.common.db.res.ResGoodProperty; | import com.bonait.bnframework.common.db.res.ResGoodProperty; | ||||
import com.bonait.bnframework.common.helper.I.MyClickListener; | import com.bonait.bnframework.common.helper.I.MyClickListener; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.modules.home.adapter.lsjy_adapter; | |||||
import com.bonait.bnframework.modules.home.adapter.pfsx_adapter; | import com.bonait.bnframework.modules.home.adapter.pfsx_adapter; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
@@ -39,7 +39,6 @@ import com.bonait.bnframework.common.helper.I.IWriteCallBack; | |||||
import com.bonait.bnframework.common.helper.I.MyClickListener; | import com.bonait.bnframework.common.helper.I.MyClickListener; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.modules.home.adapter.goodpf_apapter; | import com.bonait.bnframework.modules.home.adapter.goodpf_apapter; | ||||
import com.bonait.bnframework.modules.home.adapter.lsjy_adapter; | |||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; | import com.qmuiteam.qmui.widget.dialog.QMUIDialog; | ||||
import com.suke.widget.SwitchButton; | import com.suke.widget.SwitchButton; | ||||
@@ -30,7 +30,6 @@ import com.bonait.bnframework.common.helper.I.IWriteCallBack; | |||||
import com.bonait.bnframework.common.helper.I.MyClickListener; | import com.bonait.bnframework.common.helper.I.MyClickListener; | ||||
import com.bonait.bnframework.common.model.mode.ResMenuLeft; | import com.bonait.bnframework.common.model.mode.ResMenuLeft; | ||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.modules.home.fragment.from.fragment.JiaoYan_lsjy_fragment; | |||||
import com.qmuiteam.qmui.arch.QMUIFragment; | import com.qmuiteam.qmui.arch.QMUIFragment; | ||||
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter; | import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter; | ||||
import com.qmuiteam.qmui.widget.QMUIViewPager; | import com.qmuiteam.qmui.widget.QMUIViewPager; | ||||
@@ -97,14 +96,14 @@ public class silos_jiaoyan extends LinearLayout { | |||||
froms.clear(); | froms.clear(); | ||||
if(lcMode.name.equals("外置仓")) | if(lcMode.name.equals("外置仓")) | ||||
{ | { | ||||
froms.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"物料校准",0,0,true)); | |||||
froms.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"满管校准",0,0,false)); | |||||
froms.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"酱料校准",0,0,false)); | |||||
froms.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"补偿校准",0,0,false)); | |||||
froms.add(new ResMenuLeft(null,"物料校准",0,0,true)); | |||||
froms.add(new ResMenuLeft(null,"满管校准",0,0,false)); | |||||
froms.add(new ResMenuLeft(null,"酱料校准",0,0,false)); | |||||
froms.add(new ResMenuLeft(null,"补偿校准",0,0,false)); | |||||
}else | }else | ||||
{ | { | ||||
froms.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"物料校准",0,0,true)); | |||||
froms.add(new ResMenuLeft(new JiaoYan_lsjy_fragment(),"满管校准",0,0,false)); | |||||
froms.add(new ResMenuLeft(null,"物料校准",0,0,true)); | |||||
froms.add(new ResMenuLeft(null,"满管校准",0,0,false)); | |||||
} | } | ||||
QMUIFragmentPagerAdapter adapter = new QMUIFragmentPagerAdapter(fragmentManager) { | QMUIFragmentPagerAdapter adapter = new QMUIFragmentPagerAdapter(fragmentManager) { | ||||
@@ -1,28 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||||
xmlns:tools="http://schemas.android.com/tools" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
tools:context=".modules.home.fragment.from.fragment.JiaoYan_clsfbc_fragment"> | |||||
<RelativeLayout | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:background="@color/main_background" | |||||
android:orientation="vertical"> | |||||
<RelativeLayout | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent"> | |||||
<ScrollView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent"> | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/recycler_clsfbc" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content"/> | |||||
</ScrollView> | |||||
</RelativeLayout> | |||||
</RelativeLayout> | |||||
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> |
@@ -1,432 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout | |||||
xmlns:android="http://schemas.android.com/apk/res/android" | |||||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||||
xmlns:tools="http://schemas.android.com/tools" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
tools:context=".modules.home.fragment.from.fragment.JiaoYan_lsjy_fragment"> | |||||
<LinearLayout | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:background="@color/main_background" | |||||
android:orientation="vertical"> | |||||
<!-- 顶部通道 --> | |||||
<RelativeLayout | |||||
android:layout_width="match_parent" | |||||
android:layout_height="0dp" | |||||
android:layout_weight="1.1"> | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/Recy_Lsjy" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:layout_marginLeft="0dp"> | |||||
</androidx.recyclerview.widget.RecyclerView> | |||||
</RelativeLayout> | |||||
<!--边框分割细线--> | |||||
<LinearLayout | |||||
android:layout_alignParentBottom="true" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="1dp" | |||||
android:background="@color/color3" /> | |||||
<!-- 底部流程 --> | |||||
<RelativeLayout | |||||
android:layout_width="match_parent" | |||||
android:layout_height="0dp" | |||||
android:layout_weight="1"> | |||||
<LinearLayout | |||||
android:layout_centerHorizontal="true" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content"> | |||||
<TextView | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="重量:" | |||||
android:textSize="20dp"/> | |||||
<TextView | |||||
android:layout_marginLeft="10dp" | |||||
android:id="@+id/zhongliang" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="0g" | |||||
android:textColor="@color/colorAccent" | |||||
android:textStyle="bold" | |||||
android:textSize="30dp"></TextView> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
android:layout_marginTop="40dp" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content"> | |||||
<TextView | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="校准:" | |||||
android:textSize="16dp"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="①" | |||||
android:textAlignment="center" /> | |||||
<LinearLayout | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="horizontal"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="校准时间(s):" | |||||
android:textAlignment="center" /> | |||||
<EditText | |||||
android:id="@+id/edittext_jzsj" | |||||
android:layout_width="100dp" | |||||
android:layout_height="wrap_content" | |||||
android:background="@drawable/input_bj" | |||||
android:hint="请输入" | |||||
android:inputType="number|numberDecimal" | |||||
android:digits="0123456789." | |||||
android:maxLines="1" | |||||
android:padding="3dp" | |||||
android:textSize="12dp" | |||||
android:text="0.0"/> | |||||
<Button | |||||
android:id="@+id/save_jzsj" | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="50dp" | |||||
android:layout_height="26dp" | |||||
android:layout_centerInParent="true" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:text="保存" | |||||
android:textColor="@color/white" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
android:id="@+id/linelayout_fanzhuantime" | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="horizontal"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="反转时间(s):" | |||||
android:textAlignment="center" /> | |||||
<EditText | |||||
android:id="@+id/edittext_fzsj" | |||||
android:layout_width="100dp" | |||||
android:layout_height="wrap_content" | |||||
android:background="@drawable/input_bj" | |||||
android:hint="请输入" | |||||
android:inputType="number|numberDecimal" | |||||
android:digits="0123456789." | |||||
android:maxLines="1" | |||||
android:padding="3dp" | |||||
android:textSize="12dp" | |||||
android:text="0.0"/> | |||||
<Button | |||||
android:id="@+id/save_fzsj" | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="50dp" | |||||
android:layout_height="26dp" | |||||
android:layout_centerInParent="true" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:text="保存" | |||||
android:textColor="@color/white" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
<ImageView | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_marginRight="10dp" | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:src="@mipmap/jt_y"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="②" | |||||
android:textAlignment="center" /> | |||||
<Button | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:id="@+id/czql" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:layout_centerInParent="true" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:text="称重清零" | |||||
android:textColor="@color/white" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
<ImageView | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_marginRight="10dp" | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:src="@mipmap/jt_y"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="③" | |||||
android:textAlignment="center" /> | |||||
<TextView | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:text="打开校准开关" | |||||
android:textAlignment="center" /> | |||||
</LinearLayout> | |||||
<ImageView | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_marginRight="10dp" | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:src="@mipmap/jt_y"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="④" | |||||
android:textAlignment="center" /> | |||||
<Button | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:id="@+id/ksjz" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:layout_centerInParent="true" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:text="开始校准" | |||||
android:textColor="@color/white" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
<!-- <ImageView--> | |||||
<!-- android:layout_marginLeft="20dp"--> | |||||
<!-- android:layout_marginRight="20dp"--> | |||||
<!-- android:layout_marginTop="30dp"--> | |||||
<!-- android:layout_width="wrap_content"--> | |||||
<!-- android:layout_height="match_parent"--> | |||||
<!-- android:src="@mipmap/jt_y"/>--> | |||||
<!-- <LinearLayout--> | |||||
<!-- android:layout_marginLeft="@dimen/dp_10"--> | |||||
<!-- android:layout_width="wrap_content"--> | |||||
<!-- android:layout_height="wrap_content"--> | |||||
<!-- android:orientation="vertical">--> | |||||
<!-- <TextView--> | |||||
<!-- android:layout_width="match_parent"--> | |||||
<!-- android:layout_height="wrap_content"--> | |||||
<!-- android:text="⑤"--> | |||||
<!-- android:textAlignment="center" />--> | |||||
<!-- <TextView--> | |||||
<!-- android:layout_marginTop="30dp"--> | |||||
<!-- android:layout_width="match_parent"--> | |||||
<!-- android:layout_height="match_parent"--> | |||||
<!-- android:text="写入通道重量"--> | |||||
<!-- android:textAlignment="center" />--> | |||||
<!-- </LinearLayout>--> | |||||
<!-- <ImageView--> | |||||
<!-- android:layout_marginLeft="20dp"--> | |||||
<!-- android:layout_marginRight="20dp"--> | |||||
<!-- android:layout_marginTop="30dp"--> | |||||
<!-- android:layout_width="wrap_content"--> | |||||
<!-- android:layout_height="match_parent"--> | |||||
<!-- android:src="@mipmap/jt_y"/>--> | |||||
<!-- <LinearLayout--> | |||||
<!-- android:layout_marginLeft="@dimen/dp_10"--> | |||||
<!-- android:layout_width="wrap_content"--> | |||||
<!-- android:layout_height="wrap_content"--> | |||||
<!-- android:orientation="vertical">--> | |||||
<!-- <TextView--> | |||||
<!-- android:layout_width="match_parent"--> | |||||
<!-- android:layout_height="wrap_content"--> | |||||
<!-- android:text="⑥"--> | |||||
<!-- android:textAlignment="center" />--> | |||||
<!-- <Button--> | |||||
<!-- android:layout_marginTop="@dimen/dp_10"--> | |||||
<!-- android:id="@+id/save_jzz"--> | |||||
<!-- android:layout_width="match_parent"--> | |||||
<!-- android:layout_height="match_parent"--> | |||||
<!-- android:layout_centerInParent="true"--> | |||||
<!-- android:background="@drawable/bg_btn_login_selected"--> | |||||
<!-- android:text="保存校准值"--> | |||||
<!-- android:textColor="@color/white"--> | |||||
<!-- android:textSize="14dp" />--> | |||||
<!-- </LinearLayout>--> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
android:layout_marginTop="140dp" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content"> | |||||
<TextView | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="出料:" | |||||
android:textSize="16dp"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="①" | |||||
android:textAlignment="center" /> | |||||
<TextView | |||||
android:layout_marginTop="10dp" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:text="打开校准开关\n(只允许一个通道模拟出料\n请关闭其他通道)" | |||||
android:textAlignment="center" /> | |||||
</LinearLayout> | |||||
<ImageView | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_marginRight="10dp" | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:src="@mipmap/jt_y"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="②" | |||||
android:textAlignment="center" /> | |||||
<Button | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:id="@+id/save_czql" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:layout_centerInParent="true" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:text="称重清零" | |||||
android:textColor="@color/white" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
<ImageView | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_marginRight="10dp" | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:src="@mipmap/jt_y"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="③" | |||||
android:textAlignment="center" /> | |||||
<LinearLayout | |||||
android:layout_marginTop="25dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:orientation="horizontal"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="出料重量(g):" | |||||
android:textAlignment="center" /> | |||||
<EditText | |||||
android:id="@+id/edittext_cl" | |||||
android:layout_width="100dp" | |||||
android:layout_height="wrap_content" | |||||
android:background="@drawable/input_bj" | |||||
android:hint="请输入" | |||||
android:inputType="number|numberDecimal" | |||||
android:digits="0123456789." | |||||
android:maxLines="1" | |||||
android:padding="3dp" | |||||
android:textSize="12dp" | |||||
android:text="0.0"/> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
<ImageView | |||||
android:layout_marginLeft="10dp" | |||||
android:layout_marginRight="10dp" | |||||
android:layout_marginTop="30dp" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="match_parent" | |||||
android:src="@mipmap/jt_y"/> | |||||
<LinearLayout | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:orientation="vertical"> | |||||
<TextView | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:text="④" | |||||
android:textAlignment="center" /> | |||||
<Button | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:id="@+id/kscl" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="match_parent" | |||||
android:layout_centerInParent="true" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:text="出料" | |||||
android:textColor="@color/white" | |||||
android:textSize="14dp" /> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</RelativeLayout> | |||||
</LinearLayout> | |||||
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> |
@@ -10,6 +10,7 @@ | |||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
<!-- 物料校准 --> | <!-- 物料校准 --> | ||||
<LinearLayout | <LinearLayout | ||||
android:visibility="gone" | |||||
android:id="@+id/wuliaojiaozhun" | android:id="@+id/wuliaojiaozhun" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
@@ -555,7 +556,6 @@ | |||||
<!-- 补偿校准 --> | <!-- 补偿校准 --> | ||||
<LinearLayout | <LinearLayout | ||||
android:visibility="gone" | |||||
android:id="@+id/buchangjiaozhun" | android:id="@+id/buchangjiaozhun" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
@@ -601,16 +601,16 @@ | |||||
<RelativeLayout | <RelativeLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content"> | android:layout_height="wrap_content"> | ||||
<com.suke.widget.SwitchButton | <com.suke.widget.SwitchButton | ||||
android:layout_centerInParent="true" | |||||
app:sb_uncheck_color="@color/app_color_blue" | |||||
app:sb_uncheckcircle_color="@color/app_color_blue" | |||||
app:sb_button_color="@color/app_color_blue" | |||||
android:id="@+id/control_switch" | android:id="@+id/control_switch" | ||||
android:layout_width="120dp" | android:layout_width="120dp" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_centerInParent="true" | |||||
android:focusable="true" | android:focusable="true" | ||||
/> | |||||
app:sb_button_color="@color/app_color_blue" | |||||
app:sb_uncheck_color="@color/app_color_blue" | |||||
app:sb_uncheckcircle_color="@color/app_color_blue" /> | |||||
</RelativeLayout> | </RelativeLayout> | ||||
<TextView | <TextView | ||||
@@ -621,6 +621,7 @@ | |||||
android:textSize="16dp" | android:textSize="16dp" | ||||
/> | /> | ||||
<EditText | <EditText | ||||
android:id="@+id/bcjz_gxs" | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_centerInParent="true" | android:layout_centerInParent="true" | ||||
@@ -634,15 +635,14 @@ | |||||
android:textSize="12dp" | android:textSize="12dp" | ||||
android:layout_marginBottom="10dp" | android:layout_marginBottom="10dp" | ||||
/> | /> | ||||
<TextView | <TextView | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="低范围系数" | android:text="低范围系数" | ||||
android:textAlignment="center" | android:textAlignment="center" | ||||
android:textSize="16dp" | |||||
/> | |||||
android:textSize="16dp"/> | |||||
<EditText | <EditText | ||||
android:id="@+id/bcjz_dxs" | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_centerInParent="true" | android:layout_centerInParent="true" | ||||
@@ -664,19 +664,21 @@ | |||||
android:textSize="16dp" | android:textSize="16dp" | ||||
/> | /> | ||||
<EditText | <EditText | ||||
android:id="@+id/bcjz_clsj" | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_centerInParent="true" | android:layout_centerInParent="true" | ||||
android:background="@drawable/input_bj" | android:background="@drawable/input_bj" | ||||
android:digits="0123456789." | android:digits="0123456789." | ||||
android:hint="请输入" | android:hint="请输入" | ||||
android:inputType="text" | |||||
android:inputType="numberDecimal" | |||||
android:maxLines="1" | android:maxLines="1" | ||||
android:padding="3dp" | android:padding="3dp" | ||||
android:text="0" | android:text="0" | ||||
android:textSize="12dp" | android:textSize="12dp" | ||||
/> | /> | ||||
<Button | <Button | ||||
android:id="@+id/click_bcjz_save" | |||||
android:layout_marginTop="@dimen/dp_10" | android:layout_marginTop="@dimen/dp_10" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="40dp" | android:layout_height="40dp" | ||||