/** * @brief:farSignalProcess * * @note: */ void farSignalProcess(void) { gl_leftNumOrig = findLeftBlackNum(); gl_rightNumOrig = findRightBlackNum(); /* gl_leftValueOrig and gl_rightValueOrig are only for SD print. */ gl_leftValueOrig = getLeftValue(gl_leftNumOrig); gl_rightValueOrig = getRightValue(gl_rightNumOrig); // if(ReadSwitch(0X40)) // { // //judgeStartline(); // } /* judge if it is crossline, set gl_crossline, otherwise clear gl_crossline. */ judgeCrossline(); if(!gl_crossline) { farSignalFilter(); } else { gl_leftBlackNum = -1; gl_rightBlackNum = -1; } // farSignalFilter(); s_leftBlackNumLast = gl_leftBlackNum; s_rightBlackNumLast = gl_rightBlackNum; /* gl_leftValue and gl_rightValue are only for SD print. */ gl_leftValue = getLeftValue(gl_leftBlackNum); gl_rightValue = getRightValue(gl_rightBlackNum); gl_outType = judgeOutType(); getHistorySignal(); if(gl_crossline) { speaker_open(SPEAKER0); //BUZZER_ON(); } else { speaker_close(SPEAKER0); //BUZZER_OFF(); } }
void Drop::initPathValue() { for (auto point: _exitPoints) { _map[point.x][point.y] = 1; } for (int i=0; i<xCount; i++) { for (int j=0; j<yCount; j++) { if (Map[i][j] == 0) { _map[i][j] = UnReachable; } else if (_map[i][j] == 0) { auto value = getUpValue(i, j); if (value == 1) { value = getLeftValue(i, j); if (value == 1) { value = getRightValue(i, j); } } _map[i][j] = value; } } } }
void calibrateSensors(){ stop(); lightSequence(10); unsigned short forwardWallDistance; while(true){ forwardWallDistance = getLeftValue(); lightSequence(2); if(forwardWallDistance != 0){ LEFT_LED_OFF; } } }