📄 bttest.inc
字号:
case BUTTON_EXIT :
{
State = TSTPRG_INIT;
}
break;
}
}
break;
case TSTPRG_RCX_DISPLAY_INIT :
{
Count = 0;
pMapDisplay->EraseMask |= SCREEN_BIT(SCREEN_BACKGROUND);
State = TSTPRG_RCX_DISPLAY;
}
break;
case TSTPRG_RCX_DISPLAY :
{
if ((Count & 0x7FF) == 0x000)
{
pMapDisplay->pScreens[SCREEN_BACKGROUND] = (BMPMAP*)Test1;
pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
}
if ((Count & 0x7FF) == 0x3FF)
{
pMapDisplay->pScreens[SCREEN_BACKGROUND] = (BMPMAP*)Test2;
pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
}
Count++;
if (cUiReadButtons() != BUTTON_NONE)
{
State = TSTPRG_SKIP_RCX;
}
}
break;
case TSTPRG_RCX_INPUT_SELECT :
{
switch (cUiReadButtons())
{
case BUTTON_LEFT :
{
pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_RCX_INPUT_PASIVE;
for (Count = 0;Count < NO_OF_INPUTS;Count++)
{
pMapInput->Inputs[Count].SensorType = SWITCH;
}
State = TSTPRG_RCX_INPUT_INIT;
}
break;
case BUTTON_ENTER :
{
pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_RCX_INPUT_ACTIVE;
for (Count = 0;Count < NO_OF_INPUTS;Count++)
{
pMapInput->Inputs[Count].SensorType = REFLECTION;
}
State = TSTPRG_RCX_INPUT_INIT;
}
break;
case BUTTON_EXIT :
{
State = TSTPRG_SKIP_RCX;
}
break;
case BUTTON_RIGHT :
{
pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_RCX_INPUT_DIGITAL;
pMapDisplay->pTextLines[TEXTLINE_2] = (UBYTE*)TXT_LINE;
pMapDisplay->pTextLines[TEXTLINE_3] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_4] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_6] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_7] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SUBTEST_STOP;
pMapDisplay->UpdateMask |= TEXTLINE_BITS;
for (Count = 0;Count < NO_OF_INPUTS;Count++)
{
pMapInput->Inputs[Count].SensorType = CUSTOM;
}
SubState = 0;
Timer = 0;
State = TSTPRG_RCX_DIGITAL_INIT;
}
break;
}
}
break;
case TSTPRG_RCX_INPUT_INIT :
{
for (Count = 0;Count < NO_OF_INPUTS;Count++)
{
pMapDisplay->pTextLines[TEXTLINE_3 + Count] = TxtBuffer[Count];
}
pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SUBTEST_STOP;
pMapDisplay->UpdateMask |= TEXTLINE_BITS;
State = TSTPRG_RCX_INPUT;
Timer = 0;
}
break;
case TSTPRG_RCX_INPUT :
{
if (++Timer >= 250)
{
Timer = 0;
for (Count = 0;Count < NO_OF_INPUTS;Count++)
{
if (InputValues[Count] != pMapInput->Inputs[Count].ADRaw)
{
InputValues[Count] = pMapInput->Inputs[Count].ADRaw;
sprintf((char*)TxtBuffer[Count]," Input %u = %4u ",(UWORD)Count + 1,(UWORD)InputValues[Count]);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3 + Count);
}
}
}
if (cUiReadButtons() != BUTTON_NONE)
{
State = TSTPRG_SKIP_RCX;
}
}
break;
case TSTPRG_RCX_DIGITAL_INIT :
{
if (++Timer >= 20)
{
Timer = 0;
switch (SubState)
{
case 0 :
{
pMapInput->Inputs[0].DigiPinsDir |= DIGI0; // Digi 1-0 output -,
pMapInput->Inputs[0].DigiPinsDir &= ~DIGI1; // Digi 1-1 input -, |
pMapInput->Inputs[2].DigiPinsDir &= ~DIGI0; // Digi 3-0 input | -'
pMapInput->Inputs[2].DigiPinsDir |= DIGI1; // Digi 3-1 output -'
pMapInput->Inputs[0].DigiPinsOut |= DIGI0; // Digi 1-0 output high
pMapInput->Inputs[2].DigiPinsOut &= ~DIGI1; // Digi 3-1 output low
SubState++;
}
break;
case 1 :
{
if ((pMapInput->Inputs[2].DigiPinsIn & DIGI0) && !(pMapInput->Inputs[0].DigiPinsIn & DIGI1))
{
pMapInput->Inputs[0].DigiPinsOut &= ~DIGI0; // Digi 1-0 output low
pMapInput->Inputs[2].DigiPinsOut |= DIGI1; // Digi 3-1 output high
SubState++;
}
else
{
State = TSTPRG_RCX_DIGITAL_FAIL;
}
}
break;
case 2 :
{
if (!(pMapInput->Inputs[2].DigiPinsIn & DIGI0) && (pMapInput->Inputs[0].DigiPinsIn & DIGI1))
{
pMapInput->Inputs[0].DigiPinsDir &= ~DIGI0; // Digi 1-0 input
pMapInput->Inputs[0].DigiPinsDir &= ~DIGI1; // Digi 1-1 input
pMapInput->Inputs[2].DigiPinsDir &= ~DIGI0; // Digi 3-0 input
pMapInput->Inputs[2].DigiPinsDir &= ~DIGI1; // Digi 3-1 input
pMapInput->Inputs[1].DigiPinsDir |= DIGI0; // Digi 2-0 output -,
pMapInput->Inputs[1].DigiPinsDir &= ~DIGI1; // Digi 2-1 input -, |
pMapInput->Inputs[3].DigiPinsDir &= ~DIGI0; // Digi 4-0 input | -'
pMapInput->Inputs[3].DigiPinsDir |= DIGI1; // Digi 4-1 output -'
pMapInput->Inputs[1].DigiPinsOut |= DIGI0; // Digi 2-0 output high
pMapInput->Inputs[3].DigiPinsOut &= ~DIGI1; // Digi 4-1 output low
SubState++;
}
else
{
State = TSTPRG_RCX_DIGITAL_FAIL;
}
}
break;
case 3 :
{
if ((pMapInput->Inputs[3].DigiPinsIn & DIGI0) && !(pMapInput->Inputs[1].DigiPinsIn & DIGI1))
{
pMapInput->Inputs[1].DigiPinsOut &= ~DIGI0; // Digi 2-0 output low
pMapInput->Inputs[3].DigiPinsOut |= DIGI1; // Digi 4-1 output high
SubState++;
}
else
{
State = TSTPRG_RCX_DIGITAL_FAIL;
}
}
break;
case 4 :
{
if (!(pMapInput->Inputs[3].DigiPinsIn & DIGI0) && (pMapInput->Inputs[1].DigiPinsIn & DIGI1))
{
pMapInput->Inputs[1].DigiPinsDir &= ~DIGI0; // Digi 2-0 input
pMapInput->Inputs[1].DigiPinsDir &= ~DIGI1; // Digi 2-1 input
pMapInput->Inputs[3].DigiPinsDir &= ~DIGI0; // Digi 4-0 input
pMapInput->Inputs[3].DigiPinsDir &= ~DIGI1; // Digi 4-1 input
State = TSTPRG_RCX_DIGITAL_OK;
}
else
{
State = TSTPRG_RCX_DIGITAL_FAIL;
}
}
break;
}
}
}
break;
case TSTPRG_RCX_DIGITAL_OK :
{
pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_RCX_DIGITAL_OK;
pMapDisplay->UpdateMask |= TEXTLINE_BITS;
State = TSTPRG_RCX_DIGITAL;
}
break;
case TSTPRG_RCX_DIGITAL_FAIL :
{
pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_RCX_DIGITAL_FAIL;
pMapDisplay->UpdateMask |= TEXTLINE_BITS;
State = TSTPRG_RCX_DIGITAL;
}
break;
case TSTPRG_RCX_DIGITAL :
{
if (cUiReadButtons() != BUTTON_NONE)
{
State = TSTPRG_SKIP_RCX;
}
}
break;
case TSTPRG_RCX_MOTOR_INIT :
{
pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_MOTOR;
pMapDisplay->pTextLines[TEXTLINE_2] = (UBYTE*)TXT_LINE;
pMapDisplay->pTextLines[TEXTLINE_3] = (UBYTE*)TXT_MOTOR_HEADER;
pMapDisplay->pTextLines[TEXTLINE_4] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_6] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_7] = (UBYTE*)TXT_EMPTY;
pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_MOTOR_NEXT;
for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
{
OutputValues[Count] = 0x7FFF;
TestPrgRunMotor(Count,0);
strcpy((char*)TxtBuffer[Count]," ");
pMapDisplay->pTextLines[TEXTLINE_4 + Count] = TxtBuffer[Count];
}
Pointer = 0;
pMapDisplay->UpdateMask |= TEXTLINE_BITS;
State = TSTPRG_RCX_MOTOR;
}
break;
case TSTPRG_RCX_MOTOR :
{
for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
{
if (OutputValues[Count] != (SWORD)TestPrgReadMotor(Count))
{
OutputValues[Count] = (SWORD)TestPrgReadMotor(Count);
if (Pointer == Count)
{
sprintf((char*)TxtBuffer[Count],"> %c %-4d %4d",(char)Count + 'A',(SWORD)pMapOutPut->Outputs[Count].Speed,OutputValues[Count]);
}
else
{
sprintf((char*)TxtBuffer[Count]," %c %-4d %4d",(char)Count + 'A',(SWORD)pMapOutPut->Outputs[Count].Speed,OutputValues[Count]);
}
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_4 + Count);
}
}
switch (cUiReadButtons())
{
case BUTTON_LEFT :
{
for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
{
OutputValues[Count] = 0x7FFF;
if (Pointer == Count)
{
TestPrgRunMotor(Count,-50);
}
else
{
TestPrgRunMotor(Count,0);
}
}
}
break;
case BUTTON_ENTER :
{
for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
{
OutputValues[Count] = 0x7FFF;
TestPrgRunMotor(Count,0);
}
if (++Pointer >= NO_OF_OUTPUTS)
{
State = TSTPRG_SKIP_RCX_MOTOR;
}
}
break;
case BUTTON_EXIT :
{
State = TSTPRG_SKIP_RCX_MOTOR;
}
break;
case BUTTON_RIGHT :
{
for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
{
OutputValues[Count] = 0x7FFF;
if (Pointer == Count)
{
TestPrgRunMotor(Count,50);
}
else
{
TestPrgRunMotor(Count,0);
}
}
}
break;
}
}
break;
case TSTPRG_SKIP_RCX_MOTOR :
{
for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
{
TestPrgFloatMotor(Count);
}
State = TSTPRG_RCX_INIT;
}
break;
case TSTPRG_SKIP_RCX :
{
for (Count = 0;Count < NO_OF_INPUTS;Count++)
{
pMapInput->Inputs[Count].SensorType = NO_SENSOR;
}
pMapDisplay->EraseMask |= SCREEN_BIT(SCREEN_BACKGROUND);
State = TSTPRG_RCX_INIT;
}
break;
#endif
case TSTPRG_SKIP :
{
Count++;
if (Count == 100)
{
pMapDisplay->EraseMask |= SCREEN_BIT(SCREEN_BACKGROUND);
}
if (Count >= 200)
{
IOMapUi.Flags |= UI_REDRAW_STATUS;
State = 0;
}
}
break;
default :
{
State = SYSTEM_INIT;
}
break;
}
return (State);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -