static bool Running_State_Code(void * pObject, oosmos_sRegion * pRegion, const oosmos_sEvent * pEvent) { matrix * pMatrix = (matrix *) pObject; switch (pEvent->Code) { case oosmos_INSTATE: oosmos_SyncBegin(pRegion); while (true) { for (pMatrix->m_CurrentRowIndex = 0; pMatrix->m_CurrentRowIndex < pMatrix->m_Rows; pMatrix->m_CurrentRowIndex++) { if (pMatrix->m_pRowPins[pMatrix->m_CurrentRowIndex] == NULL) continue; pinOn(pMatrix->m_pRowPins[pMatrix->m_CurrentRowIndex]); oosmos_SyncDelayMS(pRegion, RowOnSettleTimeUS); InterrogateColumns(pMatrix); pinOff(pMatrix->m_pRowPins[pMatrix->m_CurrentRowIndex]); oosmos_SyncDelayMS(pRegion, RowOffSettleTimeUS); } } oosmos_SyncEnd(pRegion); return true; } return false; }
static bool Running_State_Code(void * pObject, oosmos_sRegion * pRegion, const oosmos_sEvent * pEvent) { server * pServer = (server *) pObject; switch (pEvent->Code) { case oosmos_INSTATE: oosmos_SyncBegin(pRegion); while (true) { printf("Waiting for incoming data...\n"); oosmos_SyncWaitCond(pRegion, sockReceive(pServer->m_pSock, pServer->m_Buffer, sizeof(pServer->m_Buffer), &pServer->m_BytesReceived)); printf("Server side, String: '%s', BytesReceived: %u\n", pServer->m_Buffer, (unsigned) pServer->m_BytesReceived); oosmos_SyncWaitCond(pRegion, sockSend(pServer->m_pSock, pServer->m_Buffer, pServer->m_BytesReceived)); } oosmos_SyncEnd(pRegion); return true; } return false; }