You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
5.3 KiB
Java
149 lines
5.3 KiB
Java
package com.example.jinyu_rfid;
|
|
|
|
import androidx.databinding.DataBindingUtil;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.os.Bundle;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.widget.Toast;
|
|
|
|
import com.example.jinyu_rfid.adapter.ResultAdapter;
|
|
import com.example.jinyu_rfid.base.BaseActivity;
|
|
import com.example.jinyu_rfid.base.MyRecultCall;
|
|
import com.example.jinyu_rfid.base.MyResult;
|
|
import com.example.jinyu_rfid.been.ConfigurationTable;
|
|
import com.example.jinyu_rfid.been.ReadTyreNoResult;
|
|
import com.example.jinyu_rfid.broadcast.ScanERCodeReceiver;
|
|
import com.example.jinyu_rfid.callback.DataReturnCall;
|
|
import com.example.jinyu_rfid.databinding.ActivityWriteUserBinding;
|
|
import com.example.jinyu_rfid.rfid.C5106Device;
|
|
import com.example.jinyu_rfid.rfid.RFIDModel;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.lzy.okgo.OkGo;
|
|
import com.lzy.okgo.model.Response;
|
|
|
|
import org.litepal.LitePal;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
|
|
import okhttp3.RequestBody;
|
|
|
|
public class WriteUserActivity extends BaseActivity implements DataReturnCall {
|
|
private Intent intent1;
|
|
private Intent intent2;
|
|
private RFIDModel rfidModel;
|
|
private ActivityWriteUserBinding binding;
|
|
private ResultAdapter adapter;
|
|
private List<ReadTyreNoResult> list;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
binding = DataBindingUtil.setContentView(this, R.layout.activity_write_user);
|
|
binding.setTitle(getString(R.string.activity_name_configuration));
|
|
rfidModel = new C5106Device(this);
|
|
intent1 = new Intent(this, ConfigurationTableActivity.class);
|
|
intent2 = new Intent(this, ConfigurationTableActivity.class);
|
|
ScanERCodeReceiver scanERCodeReceiver = new ScanERCodeReceiver(this);
|
|
registerReceiver(scanERCodeReceiver, new IntentFilter("com.rfid.SCAN"));
|
|
adapter = new ResultAdapter(this);
|
|
binding.setAdapter(adapter);
|
|
|
|
}
|
|
|
|
|
|
public void writeReadEPC(View view) {
|
|
rfidModel.sanEpc(6);
|
|
}
|
|
|
|
// 写入
|
|
public void writeUser(View view) {
|
|
if (list == null || list.isEmpty()) return;
|
|
var epcStr = binding.writeEpcCode.getText().toString();
|
|
if (epcStr.isEmpty()) return;
|
|
// EPC编码~胎号~品牌~规格~花纹~层级~轮胎名称~速度级别~负荷指数~轮辋直径~扁平比~销售区域
|
|
List<ConfigurationTable> tagList = LitePal.findAll(ConfigurationTable.class);
|
|
StringBuilder tagUserStr = new StringBuilder(tagList.get(0).isState() ? epcStr : "_");
|
|
for (int i = 1; i < 12; i++) {
|
|
var configuration = tagList.get(i);
|
|
var state = configuration.isState();
|
|
tagUserStr.append("~");
|
|
/* if (state) {
|
|
Optional<ReadTyreNoResult> optionalResult = Optional.ofNullable(list.get(i-1));
|
|
String propertyContent = optionalResult.map(ReadTyreNoResult::getPropertyContent).orElse("_");
|
|
tagUserStr.append(propertyContent);
|
|
} else {
|
|
tagUserStr.append("_");
|
|
}*/
|
|
if (state) {
|
|
try {
|
|
var result = list.get(i-1);
|
|
var propertyContent = result.getPropertyContent();
|
|
tagUserStr.append(propertyContent==null?"_":propertyContent);
|
|
}catch (IndexOutOfBoundsException e){
|
|
tagUserStr.append("_");
|
|
}
|
|
} else {
|
|
tagUserStr.append("_");
|
|
}
|
|
}
|
|
Log.e("TAG", "writeUser:" + tagUserStr);
|
|
}
|
|
|
|
|
|
public void writeGoRead(View view) {
|
|
startActivity(intent1);
|
|
}
|
|
|
|
public void writeGoConfiguration(View view) {
|
|
startActivity(intent2);
|
|
}
|
|
|
|
@Override
|
|
public void readEpcCodeInfo(String info, boolean state, String stateInfo) {
|
|
if (state) {
|
|
binding.writeEpcCode.setText(info);
|
|
super.music.start();
|
|
return;
|
|
}
|
|
binding.writeEpcCode.setText(null);
|
|
// Log.e("TAG", "读取状态:" + stateInfo);
|
|
}
|
|
|
|
@Override
|
|
public void readUserInfo(String user) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void readerCodeInfo(String erCode) {
|
|
binding.writeTire.setText(erCode);
|
|
Map<String, String> map = new HashMap<>();
|
|
map.put("TyreNo", erCode);
|
|
map.put("token", "123456");
|
|
OkGo.<MyResult>post(url + "/readTyreNo").upRequestBody(RequestBody.create(JSON, gson.toJson(map))).execute(new MyRecultCall(dialog, this) {
|
|
@SuppressLint("NotifyDataSetChanged")
|
|
@Override
|
|
public void onSuccess(Response<MyResult> response) {
|
|
super.onSuccess(response);
|
|
var body = response.body();
|
|
if (body.getResultFlag().equals("1")) {
|
|
|
|
list = gson.fromJson(body.getJson(), new TypeToken<List<ReadTyreNoResult>>() {
|
|
}.getType());
|
|
list.remove(0);
|
|
adapter.setList(list);
|
|
adapter.notifyDataSetChanged();
|
|
return;
|
|
}
|
|
Toast.makeText(WriteUserActivity.this, body.getResultData().toString(), Toast.LENGTH_SHORT).show();
|
|
}
|
|
});
|
|
}
|
|
} |