⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_ui.h

📁 乐高机器人的源码,开发平台是IAR_for_AVR.
💻 H
📖 第 1 页 / 共 2 页
字号:
MENULEVEL;

typedef   struct
{
  MENULEVEL MenuLevels[MENULEVELS];                 // See above
  UBYTE   FileId;                                   // VarsUi.MenuFiles[VarsUi.MenuFileLevel].FileId
  UBYTE   MenuLevel;                                // VarsUi.MenuFiles[VarsUi.MenuFileLevel].MenuLevel
}
MENUFILE;

typedef   struct
{
  UBYTE   StatusText[STATUSTEXT_SIZE + 1];          // RCX name
  UBYTE   Initialized;                              // Ui init done
  UWORD   SleepTimer;                               // Sleep timer

  // Menu system
  MENUFILE  MenuFiles[MENUFILELEVELS];              // Menu file array
  MENUFILE  *pMenuFile;                             // Actual menu file pointer
  MENULEVEL *pMenuLevel;                            // Actual menu item on level, pointer
  MENUITEM  *pMenuItem;                             // Actual menu item in menu flash file
  UBYTE     MenuFileLevel;                          // Actual menu file level
  UBYTE   Function;                                 // Running function (0 = none)
  UBYTE   Parameter;                                // Parameter for running function
  UBYTE   SecondTime;                               // Second time flag
  UBYTE   EnterOnlyCalls;                           // Enter button only calls
  UBYTE   ExitOnlyCalls;                            // Exit button only calls
  UWORD   ButtonTimer;                              // Button repeat timer
  UWORD   ButtonTime;                               // Button repeat time
  UBYTE   ButtonOld;                                // Button old state

  // Update status
  UWORD   UpdateCounter;                            // Update counter
  UBYTE   Running;                                  // Running pointer
  UBYTE   BatteryToggle;                            // Battery flash toggle flag
  UBYTE   NewStatusIcons[NO_OF_STATUSICONS];        // New status icons (used to detect changes)

  // Low battery voltage
  UBYTE   *LowBattSavedBitmap;                      // Low battery overwritten bitmap placeholder
  UBYTE   LowBatt;                                  // Low battery volatge flag
  UBYTE   LowBattHasOccured;                        // Low battery voltage has occured
  UBYTE   LowBattSavedState;                        // Low battery current state placeholder

  // General used variables
  UBYTE   *MenuIconTextSave;                        // Menu icon text save

  UBYTE   *pTmp;                                    // General UBYTE pointer
  ULONG   TmpLength;                                // General filelength  (used in filelist)
  SWORD   TmpHandle;                                // General filehandle  (used in filelist)

  SWORD   Timer;                                    // General tmp purpose timer
  SWORD   ReadoutTimer;                             // General read out timer
  UBYTE   Tmp;                                      // General UBYTE
  UBYTE   FileType;                                 // General file type
  UBYTE   State;                                    // General tmp purpose state
  UBYTE   Pointer;                                  // General tmp purpose pointer
  UBYTE   Counter;                                  // General tmp purpose counter
  UBYTE   Cursor;                                   // General cursor
  UBYTE   SelectedSensor;                           // General used for selected sensor
  UBYTE   SelectedPort;                             // General used for selected port
  UBYTE   NextState;

  UBYTE   SelectedFilename[FILENAME_LENGTH + 1];    // Selected file name
  UBYTE   FilenameBuffer[FILENAME_LENGTH + 1];      // General filename buffer
  UBYTE   SearchFilenameBuffer[FILENAME_LENGTH + 1];// General filename buffer
  UBYTE   DisplayBuffer[DISPLAYLINE_LENGTH + 1];    // General purpose display buffer

  UBYTE   PortBitmapLeft[SIZE_OF_PORTBITMAP];       // Port no bitmap for left icon
  UBYTE   PortBitmapCenter[SIZE_OF_PORTBITMAP];     // Port no bitmap for center icon
  UBYTE   PortBitmapRight[SIZE_OF_PORTBITMAP];      // Port no bitmap for right icon

  // Find no of files and find name for file no
  ULONG   FNOFLength;                               // Length
  SWORD   FNOFHandle;                               // Handle
  UBYTE   FNOFState;                                // State
  UBYTE   FNOFSearchBuffer[FILENAME_LENGTH + 1];    // Search buffer
  UBYTE   FNOFNameBuffer[FILENAME_LENGTH + 1];      // File name buffer
  UBYTE   FNOFFileNo;                               // File no

  // File list
  UBYTE   FileCenter;                               // File center
  UBYTE   FileLeft;                                 // File left
  UBYTE   FileRight;                                // File right
  UBYTE   NoOfFiles;                                // No of files

  // On brick programming menu
  UBYTE   ProgramSteps[ON_BRICK_PROGRAMSTEPS];      // On brick programming steps
  UBYTE   ProgramStepPointer;                       // On brick programming step pointer
  UBYTE   CursorTmp[SIZE_OF_CURSOR];                // On brick programming cursor
  UBYTE   FileHeader[FILEHEADER_LENGTH];            // File header for programs
  UBYTE   *FeedBackText;                            // Program end text
  UWORD   OBPTimer;                                 // Graphic update timer

  // BT search menu
  UBYTE   NoOfDevices;                              // BT search no of devices found
  UBYTE   NoOfNames;                                // BT search no of names found
  UBYTE   SelectedDevice;                           // BT selected device
  UBYTE   SelectedSlot;                             // BT selected slot

  // BT device list menu
  UBYTE   DevicesKnown;                             // BT device known flag
  UBYTE   Devices;                                  // BT devices
  UBYTE   DeviceLeft;                               // BT device left
  UBYTE   DeviceCenter;                             // BT device center
  UBYTE   DeviceRight;                              // BT device right
  UBYTE   DeviceType;                               // BT device type

  // BT connect Menu
  UBYTE   Slots;                                    // BT connect no of slots
  UBYTE   SlotLeft;                                 // BT connect
  UBYTE   SlotCenter;                               // BT connect
  UBYTE   SlotRight;                                // BT connect

  // Get user string
  UBYTE   GUSTmp;                                   // Seperat tmp for "Get user string"
  UBYTE   GUSState;                                 // Seperat state for "Get user string"
  UBYTE   GUSNoname;                                // No user entry
  UBYTE   UserString[DISPLAYLINE_LENGTH + 1];       // User string
  UBYTE   DisplayText[DISPLAYLINE_LENGTH + 1];      // Display buffer
  SBYTE   FigurePointer;                            // Figure cursor
  UBYTE   GUSCursor;                                // User string cursor

  // Connect request
  ULONG   CRPasskey;                                // Passkey to fake wrong pin code
  UBYTE   CRState;                                  // Seperate state for "Connect request"
  UBYTE   CRTmp;                                    // Seperate tmp for "Connect request"
  
  // Run files
  UBYTE   *RunIconSave;                             // Menu center icon save
  UWORD   RunTimer;                                 // Bitmap change timer
  UBYTE   RunBitmapPointer;                         // Bitmap pointer
  
  // Delete files
  UBYTE   SelectedType;                             // Type of selected files for delete

  // View
  SLONG   ViewSampleValue;                          // Latch for sensor values
  UBYTE   ViewSampleValid;                          // Latch for sensor valid

  // NV storage
  ULONG   NVTmpLength;                              // Non volatile filelength
  SWORD   NVTmpHandle;                              // Non volatile filehandle
  UBYTE   NVFilename[FILENAME_LENGTH + 1];          // Non volatile file name
  UBYTE   NVData;                                   // Non volatile data

  // Feedback
  UBYTE   *FBText;                                  // Seperate text pointer for feedback
  UWORD   FBTimer;                                  // Seperate timer for feedback
  UBYTE   FBState;                                  // Seperate state for feedback
  UBYTE   FBPointer;                                // Seperate pointer for feedback

  // BT command
  UBYTE   BTIndex;                                  // List index
  UBYTE   BTTmpIndex;                               // Tmp list index
  UBYTE   BTCommand;                                // Last lached BT command
  UBYTE   BTPar1;                                   // Last lached BT command parameter 1
  UBYTE   BTPar2;                                   // Last lached BT command parameter 2
  UWORD   BTResult;                                 // Last lached BT command result

  // Error display
  UBYTE   ErrorTimer;                               // Error show timer  
  UBYTE   ErrorFunction;                            // Error latched function
  UBYTE   ErrorParameter;                           // Error latched parameter
  UBYTE   ErrorState;                               // Error latched state
  UBYTE   ErrorString[DISPLAYLINE_LENGTH + 1];      // Error string
}VARSUI;


void      cUiInit(void* pHeader);                   // Init controller
void      cUiCtrl(void);                            // Run  controller
void      cUiExit(void);                            // Exit controller

extern    const HEADER cUi;

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -