/***************************************************************************** * Name : * Input: * Output: * Description : * Comments : *****************************************************************************/ bool TestStep(u8 testCaseNbr) { bool result = false; // nastavim 1 output na vystup OUT1_DDR = OUT_group1_BASE |OUT_group1_mask[testCaseNbr]; OUT2_DDR = OUT_group2_BASE |OUT_group2_mask[testCaseNbr]; //nastavim 1 na jednom vystupu OUT1_ODR = OUT_group1_BASE |OUT_group1_mask[testCaseNbr]; OUT2_ODR = OUT_group2_BASE |OUT_group2_mask[testCaseNbr]; SetTimeoutTime(10); while (!IsTimeoutExpired()); // test pruchodnosti - jeden vstup(maskovany podle zvoleneho vystupu musi byt nastaveny if (! ((IN1_IDR & IN_group1_BASE & IN_group1_mask[testCaseNbr]) || (IN2_IDR & IN_group2_BASE & IN_group2_mask[testCaseNbr]))) { return false; //- neprochazi } // test zkratu na zadnem vstupu (ostatnich) nesmi byt 1 krome testovaneho if ((IN1_IDR & IN_group1_BASE & ~IN_group1_mask[testCaseNbr]) || (IN2_IDR & IN_group2_BASE & ~IN_group2_mask[testCaseNbr])) { return false;// - zkrat } // test zkratu 2 - take na zadnem z ostatnich vystupu nesmi byt 1 ( v IN modu) if ((OUT1_IDR & OUT_group1_BASE_Mask & ~OUT_group1_mask[testCaseNbr]) || (OUT2_IDR & OUT_group2_BASE_Mask & ~OUT_group2_mask[testCaseNbr])) { return false;// - zkrat } // test na nulovy stav - nastaveim 1 na vsechny vystupy krome testovaneho OUT1_DDR = OUT_group1_BASE_Mask; // vsechny vystupy jako vystupy OUT2_DDR = OUT_group2_BASE_Mask; OUT1_ODR = OUT_group1_BASE_Mask & ~OUT_group1_mask[testCaseNbr]; // nastav vsechny vystup krome jednoho OUT2_ODR = OUT_group2_BASE_Mask & ~OUT_group2_mask[testCaseNbr]; SetTimeoutTime(10); while (!IsTimeoutExpired()); // test pruchodnosti a zkratu - testovany vstup musi byt 0 if ( ((IN1_IDR & IN_group1_BASE & IN_group1_mask[testCaseNbr]) || (IN2_IDR & IN_group2_BASE & IN_group2_mask[testCaseNbr]))) { return false; } return true; }
bool CTeamspeak::ConnectT() { if(!IP.length()) return false; SocketMutex.Lock(); struct addrinfo sHints, *sRes; memset(&sHints, 0, sizeof sHints); sHints.ai_family = AF_UNSPEC; sHints.ai_socktype = SOCK_STREAM; if(getaddrinfo(IP.c_str(), "10011", &sHints, &sRes) != 0) return SocketMutex.Unlock(), false; SocketID = socket(sRes->ai_family, sRes->ai_socktype, sRes->ai_protocol); if(SocketID == -1) return SocketMutex.Unlock(), false; if(connect(SocketID, sRes->ai_addr, sRes->ai_addrlen) == SOCKET_ERROR) return SocketMutex.Unlock(), false; SetTimeoutTime(10); SLEEP(50); string GreetingMsg, TmpRecvBuf; while(Recv(&TmpRecvBuf) != SOCKET_ERROR) { GreetingMsg.append(TmpRecvBuf); TmpRecvBuf.clear(); } char SendCmd[32]; sprintf(SendCmd, "use port=%s", Port.c_str()); Send(SendCmd); string SendRes; if(Recv(&SendRes) == SOCKET_ERROR) return SocketMutex.Unlock(), false; Connected = true; SocketMutex.Unlock(); return true; }
void main() { u16 tmp; u8 tmp8, tmp8_A,i; bool result; //RC => fcp //CLK_Init(CLK_HSI); // internal RC as a clock source CLK->CKDIVR = 0; disableInterrupts(); GPIO_Init(); TIM4_Init(); enableInterrupts(); OK = 0; FAIL = 0; do { if (START == 0) { //nastavim 1 vystup do 0 OUT1_ODR = OUT_group1_BASE; OUT2_ODR = OUT_group2_BASE; SetTimeoutTime(10); while (!IsTimeoutExpired()); // test zkratu na VCC - na zadnem vstupu nesmi byt 1 if ((IN1_IDR & IN_group1_BASE ) || (IN2_IDR & IN_group2_BASE )) { FAIL = 1;// - neni klidovy stav OK = 1; } else { result = true; for (i = 0; i < TEST_PAIRS; ++i) { SetTimeoutTime(10); while (!IsTimeoutExpired()); result &= TestStep(i); } if (result) { OK = 1; FAIL = 0; } else { OK = 0; FAIL = 1; } } //SetTimeoutTime(7000); //while (!IsTimeoutExpired()); while (!START); OK = 0; FAIL = 0; SetTimeoutTime(2000); while (!IsTimeoutExpired()); } /** LED Flashing **/ if (GetLedState()) { LED_ON; //CAN_Write(&CAN_TxMsg); } else { LED_OFF; } } while (1); }