| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.BasCircularShuttle; |
| | | import com.zy.asrs.entity.BasDevpPosition; |
| | | import com.zy.asrs.entity.BasRgv; |
| | | import com.zy.asrs.entity.BasSte; |
| | | import com.zy.asrs.service.BasCircularShuttleService; |
| | | import com.zy.asrs.service.BasDevpPositionService; |
| | | import com.zy.asrs.service.BasDevpService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.DevpThread; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | private BasDevpService basDevpService; |
| | | @Autowired |
| | | private BasRgvServiceImpl basRgvService; |
| | | @Autowired |
| | | private BasDevpPositionService basDevpPositionService; |
| | | @Autowired |
| | | private BasCircularShuttleService basCircularShuttleService; |
| | | /** |
| | | * 站点任务检测 下发小车取放任务 |
| | | */ |
| | | public synchronized void updateStePosition() { |
| | | try{ |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("ste_id", true)); |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){ |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getSteNo()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol.modeType != RgvModeType.AUTO || (rgvProtocol.getStatusType() != RgvStatusType.IDLE && rgvProtocol.getStatusType() != RgvStatusType.SOS1001) ){ |
| | | |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | /** |
| | | * 站点任务检测 下发小车取放任务 |
| | |
| | | |
| | | NONE(-1, "离线","#4A4035"), |
| | | IDLE(0, "无任务","#1F3696"), |
| | | WORKING(1, "取货行走","#2196F3"), |
| | | SOS(2, "进站运行中","#2196F3"), |
| | | FETCHING(3, "进站完成","#2196F3"), |
| | | PICK_UP_WALK(1, "取货行走","#2196F3"), |
| | | IN_STATION_OPERATION(2, "进站运行中","#2196F3"), |
| | | STATION_ENTRY_COMPLETED(3, "进站完成","#2196F3"), |
| | | PUTTING(4, "有物待出站","#2196F3"), |
| | | WAITING(5, "出站行走","#E2C027"), |
| | | WAITING1(5, "出站行走","#E2C027"), |
| | | FETCHWAITING(6, "出站请求","#2196F3"), |
| | | SOS99(7, "出站运行中","#2196F3"), |
| | | SOS100(8, "出站完成","#2196F3"), |
| | | SOS1001(11, "漫游","#2196F3"), |
| | | SOS1002(100, "任务执行完成","#2196F3"), |
| | | WAITING(100, "任务执行完成等待确认","#2196F3"), |
| | | SOSSUPER(999, "未知","#2196F3") |
| | | ; |
| | | |
| | |
| | | */ |
| | | private void readStatus(){ |
| | | try { |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) 18); |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) 20); |
| | | if (result.IsSuccess) { |
| | | if (null == rgvProtocol) { |
| | | rgvProtocol = new RgvProtocol(); |
| | | rgvProtocol.setRgvNo(slave.getId()); |
| | | } |
| | | rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0)); |
| | | rgvProtocol.setStartSta(siemensNet.getByteTransform().TransInt16(result.Content, 2)); |
| | | rgvProtocol.setEndSta(siemensNet.getByteTransform().TransInt16(result.Content, 4)); |
| | | rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 6)); |
| | | rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 8)); |
| | | rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransUInt32(result.Content, 14)); |
| | | rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 2)); |
| | | rgvProtocol.setStartSta(siemensNet.getByteTransform().TransInt16(result.Content, 4)); |
| | | rgvProtocol.setEndSta(siemensNet.getByteTransform().TransInt16(result.Content, 6)); |
| | | rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 8)); |
| | | rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 14)); |
| | | rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransUInt32(result.Content, 16)); |
| | | rgvProtocol.setRgvPos(slave.getId().longValue()*100000); |
| | | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | |