| | |
| | | // return m_pSignalThread->AddThreadData(signalData); |
| | | // } |
| | | // |
| | | /*< SWK 20221226 - #4403 ADD Start >*/ |
| | | if (0 == nOnTime) |
| | | { |
| | | Write_SendSignal(nAddrIndex, nSignalIndex, wSignalValue != 0); |
| | | return TRUE; |
| | | } |
| | | /*< SWK 20221226 - #4403 ADD End >*/ |
| | | if (m_pSignalThread == NULL) return FALSE; |
| | | |
| | | CSignalData signalData; |
| | |
| | | return m_pSignalThread->AddThreadData(signalData); |
| | | /*< SWK 20221221 - #4403 MOD End >*/ |
| | | } |
| | | |
| | | /*< SWK 20221226 - #4403 ADD Start >*/ |
| | | inline void CSignalControl_DitSharedMemorySync::Write_SendSignal(int nAddrIndex, int nSignalIndex, bool bOn) |
| | | { |
| | | int nAddress = m_pSendSignalValueAddr[nAddrIndex]; |
| | | WORD wSendValue = 1 << nSignalIndex; |
| | | |
| | | WORD wCurValue = 0; |
| | | CSingleLock localLock(&m_csWriteSignal, TRUE); |
| | | memcpy(&wCurValue, m_pMemStartAddr + nAddress, sizeof(WORD)); |
| | | if (bOn) wCurValue |= wSendValue; |
| | | else wCurValue &= ~wSendValue; |
| | | memcpy(m_pMemStartAddr + nAddress, &wCurValue, sizeof(WORD)); |
| | | } |
| | | /*< SWK 20221226 - #4403 ADD End >*/ |
| | | |
| | | void CSignalControl_DitSharedMemorySync::IST2P_RunThreadProcess(const CSignalData& signalData) |
| | | { |
| | |
| | | } |
| | | else if (GetTickCount64() - signalData.ullStartTick < signalData.dwOnTime) // Check Holding Time |
| | | { |
| | | //< KEJ 20230310 - #4403 ADD > |
| | | Sleep(1); |
| | | CSignalData NewSignalData = signalData; |
| | | m_pSignalThread->AddThreadData(NewSignalData); |
| | | return; |
| | | } |
| | | /*< SWK 20221226 - #4403 MOD Start >*/ |
| | | // int nAddress = m_pSendSignalValueAddr[signalData.nAddrIndex]; |
| | | // WORD wSendValue = 1 << signalData.nSignalIndex; |
| | | // |
| | | // WORD wCurValue = 0; |
| | | // memcpy(&wCurValue, m_pMemStartAddr + nAddress, sizeof(WORD)); |
| | | // if (true == signalData.wSignalValue) wCurValue |= wSendValue; |
| | | // else wCurValue &= ~wSendValue; |
| | | // memcpy(m_pMemStartAddr + nAddress, &wCurValue, sizeof(WORD)); |
| | | |
| | | int nAddress = m_pSendSignalValueAddr[signalData.nAddrIndex]; |
| | | WORD wSendValue = 1 << signalData.nSignalIndex; |
| | | |
| | | WORD wCurValue = 0; |
| | | memcpy(&wCurValue, m_pMemStartAddr + nAddress, sizeof(WORD)); |
| | | if (true == signalData.wSignalValue) wCurValue |= wSendValue; |
| | | else wCurValue &= ~wSendValue; |
| | | memcpy(m_pMemStartAddr + nAddress, &wCurValue, sizeof(WORD)); |
| | | Write_SendSignal(signalData.nAddrIndex, signalData.nSignalIndex, signalData.wSignalValue != 0); |
| | | /*< SWK 20221226 - #4403 MOD End >*/ |
| | | /*< SWK 20221221 - #4403 MOD End >*/ |
| | | } |
| | | |