Пример #1
0
/**
 * 	@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();
    }
}
Пример #2
0
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;
            }
        }
    }
}