| | |
| | | short jobExistence[12] = { 0 }; |
| | | short slotProcess = 0; |
| | | BuildCassetteCtrlMaps(port, jobExistence, slotProcess); |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked (P1): no JobExistence map (portStatus=%d, scanMap=%d).", |
| | | port->getPortStatus(), port->getScanCassetteMap()); |
| | | return; |
| | | } |
| | | port->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, 0, nullptr, nullptr); |
| | | |
| | | } |
| | |
| | | short jobExistence[12] = { 0 }; |
| | | short slotProcess = 0; |
| | | BuildCassetteCtrlMaps(port, jobExistence, slotProcess); |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked (P2): no JobExistence map (portStatus=%d, scanMap=%d).", |
| | | port->getPortStatus(), port->getScanCassetteMap()); |
| | | return; |
| | | } |
| | | port->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, 0, nullptr, nullptr); |
| | | } |
| | | |
| | |
| | | short jobExistence[12] = { 0 }; |
| | | short slotProcess = 0; |
| | | BuildCassetteCtrlMaps(port, jobExistence, slotProcess); |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked (P3): no JobExistence map (portStatus=%d, scanMap=%d).", |
| | | port->getPortStatus(), port->getScanCassetteMap()); |
| | | return; |
| | | } |
| | | port->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, 0, nullptr, nullptr); |
| | | } |
| | | |
| | |
| | | short jobExistence[12] = { 0 }; |
| | | short slotProcess = 0; |
| | | BuildCassetteCtrlMaps(port, jobExistence, slotProcess); |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked (P4): no JobExistence map (portStatus=%d, scanMap=%d).", |
| | | port->getPortStatus(), port->getScanCassetteMap()); |
| | | return; |
| | | } |
| | | port->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, 0, nullptr, nullptr); |
| | | } |
| | | |
| | |
| | | // process start |
| | | for (int p = 0; p < 4; p++) { |
| | | if (bProcessStart[p]) { |
| | | pPorts[p]->sendCassetteCtrlCmd(CCC_PROCESS_START, nullptr, 0, 0, 0, nullptr, nullptr); |
| | | if (pPorts[p] == nullptr) continue; |
| | | short jobExistence[12] = { 0 }; |
| | | short slotProcess = 0; |
| | | const short scanMap = pPorts[p]->getScanCassetteMap(); |
| | | if (scanMap != 0) { |
| | | jobExistence[0] = scanMap; |
| | | slotProcess = scanMap; |
| | | } |
| | | |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked (ControlJob): no JobExistence map (port=%d, portStatus=%d, scanMap=%d).", |
| | | p + 1, pPorts[p]->getPortStatus(), scanMap); |
| | | continue; |
| | | } |
| | | pPorts[p]->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, 0, nullptr, nullptr); |
| | | Sleep(100); |
| | | } |
| | | } |
| | |
| | | slotProcess = jobExistence[0]; |
| | | } |
| | | |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | const int portStatus = pPort->getPortStatus(); |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked (ProceedWithCarrier): no JobExistence map (port=%u, portStatus=%d, scanMap=%d, cassetteId=%s).", |
| | | port + 1, portStatus, scanMap, pPort->getCassetteId().c_str()); |
| | | return -2; |
| | | } |
| | | if (portStatus != PORT_INUSE) { |
| | | LOGW("ProcessStart warning (ProceedWithCarrier): port status is %d (expected INUSE).", portStatus); |
| | | } |
| | | |
| | | pPort->sendCassetteCtrlCmd(CCC_PROCESS_START, jobExistence, 12, slotProcess, jobCount, nullptr, nullptr); |
| | | return 0; |
| | | } |
| | |
| | | slotProcess = jobExistence[0]; |
| | | } |
| | | |
| | | bool hasExistence = false; |
| | | for (short w : jobExistence) { |
| | | if (w != 0) { hasExistence = true; break; } |
| | | } |
| | | const int portStatus = pPort->getPortStatus(); |
| | | if (!hasExistence) { |
| | | LOGE("ProcessStart blocked: no JobExistence map (port=%d, portStatus=%d, scanMap=%d, cassetteId=%s).", |
| | | selPort + 1, portStatus, scanMap, pPort->getCassetteId().c_str()); |
| | | return; |
| | | } |
| | | if (portStatus != PORT_INUSE) { |
| | | LOGW("ProcessStart warning: port status is %d (expected INUSE).", portStatus); |
| | | } |
| | | |
| | | int ret = pPort->sendCassetteCtrlCmd(cmd, jobExistence, 12, slotProcess, jobCount, nullptr, |
| | | [selPort](int code) -> int { |
| | | if (code == WOK) { |