📄 functions.inl
字号:
{
for (Tmp = 0;(Tmp < SIZE_OF_BT_DEVICE_TABLE) && (Result == 0);Tmp++)
{
if ((pMapComm->BtDeviceTable[Tmp].DeviceStatus & BT_DEVICE_KNOWN))
{
if (No == *pIndex)
{
*pIndex = Tmp;
Result = ~0;
}
else
{
(*pIndex)++;
}
}
}
}
else
{
for (Tmp = 0;(Tmp < SIZE_OF_BT_DEVICE_TABLE) && (Result == 0);Tmp++)
{
if ((pMapComm->BtDeviceTable[Tmp].DeviceStatus & BT_DEVICE_UNKNOWN) || (pMapComm->BtDeviceTable[Tmp].DeviceStatus & BT_DEVICE_KNOWN))
{
if (No == *pIndex)
{
*pIndex = Tmp;
Result = ~0;
}
else
{
(*pIndex)++;
}
}
}
}
return (Result);
}
UWORD cUiBTCommand(UBYTE Cmd,UBYTE Flag,UBYTE *pParam1,UBYTE *pParam2)
{
UWORD Result = UI_BT_FAILED;
switch(Cmd)
{
case UI_BT_GET_DEVICES :
{
cUiBTGetDeviceIndex(Flag,SIZE_OF_BT_DEVICE_TABLE,pParam1);
Result = UI_BT_SUCCES;
}
break;
case UI_BT_GET_DEVICE_NAME :
{
if ((*pParam1 < SIZE_OF_BT_DEVICE_TABLE) && (pParam2 != NULL))
{
pParam2[0] = 0;
if (cUiBTGetDeviceIndex(Flag,*pParam1,&VarsUi.BTTmpIndex))
{
sprintf((char*)pParam2,"%.*s",DISPLAYLINE_LENGTH,(char*)pMapComm->BtDeviceTable[VarsUi.BTTmpIndex].Name);
Result = UI_BT_SUCCES;
}
}
}
break;
case UI_BT_GET_DEVICE_TYPE :
{
if ((*pParam1 < SIZE_OF_BT_DEVICE_TABLE) && (pParam2 != NULL))
{
pParam2[0] = 0;
if (cUiBTGetDeviceIndex(Flag,*pParam1,&VarsUi.BTTmpIndex))
{
pParam2[0] = cUiBTGetDeviceType(pMapComm->BtDeviceTable[VarsUi.BTTmpIndex].ClassOfDevice);
Result = UI_BT_SUCCES;
}
}
}
break;
case UI_BT_GET_CONNECTION_NAME :
{
if (*pParam1 < SIZE_OF_BT_CONNECT_TABLE)
{
if (pMapComm->BtConnectTable[*pParam1].Name[0])
{
if (pParam2 != NULL)
{
sprintf((char*)pParam2,"%.*s",DISPLAYLINE_LENGTH,(char*)pMapComm->BtConnectTable[*pParam1].Name);
}
Result = UI_BT_SUCCES;
}
else
{
if (pParam2 != NULL)
{
pParam2[0] = 0;
}
}
}
}
break;
case UI_BT_GET_CONNECTION_TYPE :
{
if ((*pParam1 < SIZE_OF_BT_CONNECT_TABLE) && (pParam2 != NULL))
{
pParam2[0] = 0;
if (pMapComm->BtConnectTable[*pParam1].Name[0])
{
pParam2[0] = cUiBTGetDeviceType(pMapComm->BtConnectTable[*pParam1].ClassOfDevice);
Result = UI_BT_SUCCES;
}
}
}
break;
case UI_BT_GET_CONNECTION_VALID :
{
if (*pParam1 < SIZE_OF_BT_CONNECT_TABLE)
{
if (pMapComm->BtConnectTable[*pParam1].Name[0])
{
Result = UI_BT_SUCCES;
}
}
}
break;
}
return (Result);
}
#include "BtTest.inc"
//******* cUiNVxxxxx *********************************************************
void cUiNVWriteByte(void)
{
sprintf((char*)VarsUi.NVFilename,"%s.%s",(char*)NONVOLATILE_NAME,(char*)TXT_SYS_EXT);
VarsUi.NVTmpHandle = pMapLoader->pFunc(FINDFIRST,VarsUi.NVFilename,VarsUi.SearchFilenameBuffer,&VarsUi.NVTmpLength);
if (!(VarsUi.NVTmpHandle & 0x8000))
{
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.NVTmpHandle,NULL,NULL);
pMapLoader->pFunc(DELETE,VarsUi.NVFilename,NULL,NULL);
}
VarsUi.NVTmpLength = 1;
VarsUi.NVTmpHandle = pMapLoader->pFunc(OPENWRITE,VarsUi.NVFilename,NULL,&VarsUi.NVTmpLength);
pMapLoader->pFunc(WRITE,(UBYTE*)&VarsUi.NVTmpHandle,(UBYTE*)&VarsUi.NVData,&VarsUi.NVTmpLength);
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.NVTmpHandle,NULL,NULL);
}
void cUiNVWritePowerOnTimeCount(UBYTE Count)
{
VarsUi.NVData &= ~0x07;
VarsUi.NVData |= (Count & 0x07);
cUiNVWriteByte();
}
UBYTE cUiNVReadPowerOnTimeCount(void)
{
return (VarsUi.NVData & 0x07);
}
void cUiNVWriteVolumeCount(UBYTE Count)
{
VarsUi.NVData &= ~0x70;
VarsUi.NVData |= ((Count << 4) & 0x70);
cUiNVWriteByte();
}
UBYTE cUiNVReadVolumeCount(void)
{
return ((VarsUi.NVData >> 4) & 0x07);
}
void cUiNVReadByte(void)
{
VarsUi.NVData = 0xFF;
sprintf((char*)VarsUi.NVFilename,"%s.%s",(char*)NONVOLATILE_NAME,(char*)TXT_SYS_EXT);
VarsUi.NVTmpHandle = pMapLoader->pFunc(OPENREAD,VarsUi.NVFilename,NULL,&VarsUi.NVTmpLength);
if (!(VarsUi.NVTmpHandle & 0x8000))
{
VarsUi.NVTmpLength = 1;
pMapLoader->pFunc(READ,(UBYTE*)&VarsUi.NVTmpHandle,&VarsUi.NVData,&VarsUi.NVTmpLength);
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.NVTmpHandle,NULL,NULL);
}
if ((cUiNVReadPowerOnTimeCount() > (POWER_OFF_TIME_STEPS - 1)) || (cUiNVReadVolumeCount() > MAX_VOLUME))
{
VarsUi.NVData = 0xFF;
cUiNVWritePowerOnTimeCount(POWER_OFF_TIME_DEFAULT);
cUiNVWriteVolumeCount(MAX_VOLUME);
}
}
//******* cUiFeedback ********************************************************
UBYTE cUiFeedback(BMPMAP *Bitmap,UBYTE TextNo1,UBYTE TextNo2,UWORD Time) // Show bimap and text
{
// if ((VarsUi.FBState == 0) || ((pMapDisplay->Flags & DISPLAY_POPUP) == 0))
{
switch (VarsUi.FBState)
{
case 0 : // Set busy
{
VarsUi.FBState++;
}
break;
case 1 : // Clear line 2,3,4
{
if (DISPLAY_IDLE)
{
pMapDisplay->EraseMask |= (TEXTLINE_BIT(TEXTLINE_2) | TEXTLINE_BIT(TEXTLINE_3) | TEXTLINE_BIT(TEXTLINE_4));
VarsUi.FBState++;
}
}
break;
case 2 : // Show bitmap if pressent
{
if (DISPLAY_IDLE)
{
if (Bitmap != NULL)
{
pMapDisplay->pBitmaps[BITMAP_1] = Bitmap;
pMapDisplay->UpdateMask |= BITMAP_BIT(BITMAP_1);
}
VarsUi.FBState++;
}
}
break;
case 3 : // Get text string
{
if (DISPLAY_IDLE)
{
pMapDisplay->UpdateMask |= SPECIAL_BIT(TOPLINE);
VarsUi.FBText = cUiGetString(TextNo1);
VarsUi.FBPointer = 0;
if (TextNo2)
{
VarsUi.FBState = 5;
}
else
{
VarsUi.FBState++;
}
}
}
break;
case 4 : // Show text string
{
if ((VarsUi.FBText[VarsUi.FBPointer]) && (VarsUi.FBPointer < NO_OF_FEEDBACK_CHARS))
{
pMapDisplay->pFunc(DISPLAY_CHAR,TRUE,24 + VarsUi.FBPointer * 6,16,VarsUi.FBText[VarsUi.FBPointer],0);
VarsUi.FBPointer++;
}
else
{
VarsUi.FBTimer = 0;
VarsUi.FBState = 7;
}
}
break;
case 5 : // Show text string
{
if ((VarsUi.FBText[VarsUi.FBPointer]) && (VarsUi.FBPointer < NO_OF_FEEDBACK_CHARS))
{
pMapDisplay->pFunc(DISPLAY_CHAR,TRUE,24 + VarsUi.FBPointer * 6,12,VarsUi.FBText[VarsUi.FBPointer],0);
VarsUi.FBPointer++;
}
else
{
VarsUi.FBText = cUiGetString(TextNo2);
VarsUi.FBPointer = 0;
VarsUi.FBState++;
}
}
break;
case 6 : // Show text string
{
if ((VarsUi.FBText[VarsUi.FBPointer]) && (VarsUi.FBPointer < NO_OF_FEEDBACK_CHARS))
{
pMapDisplay->pFunc(DISPLAY_CHAR,TRUE,24 + VarsUi.FBPointer * 6,20,VarsUi.FBText[VarsUi.FBPointer],0);
VarsUi.FBPointer++;
}
else
{
VarsUi.FBTimer = 0;
VarsUi.FBState++;
}
}
break;
case 7 : // Wait if time provided
{
if (++VarsUi.FBTimer >= (Time + 100))
{
VarsUi.FBState++;
}
}
break;
default : // Exit
{
VarsUi.FBState = 0;
}
break;
}
}
return (VarsUi.FBState);
}
//******* cUiFileList ********************************************************
UBYTE cUiFindNoOfFiles(UBYTE FileType,UBYTE *NoOfFiles)
{
switch (VarsUi.FNOFState)
{
case 0 :
{
*NoOfFiles = 0;
if (FileType >= FILETYPES)
{
FileType = FILETYPE_ALL;
}
sprintf((char*)VarsUi.FNOFSearchBuffer,"*.%s",TXT_FILE_EXT[FileType]);
VarsUi.FNOFHandle = pMapLoader->pFunc(FINDFIRST,VarsUi.FNOFSearchBuffer,VarsUi.FNOFNameBuffer,&VarsUi.FNOFLength);
if (!(VarsUi.FNOFHandle & 0x8000))
{
*NoOfFiles = 1;
VarsUi.FNOFState++;
}
}
break;
case 1 :
{
VarsUi.FNOFHandle = pMapLoader->pFunc(FINDNEXT,(UBYTE*)&VarsUi.FNOFHandle,VarsUi.FNOFNameBuffer,&VarsUi.FNOFLength);
if (!(VarsUi.FNOFHandle & 0x8000))
{
*NoOfFiles += 1;
}
else
{
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.FNOFHandle,NULL,NULL);
VarsUi.FNOFState = 0;
}
}
break;
}
return (VarsUi.FNOFState);
}
UBYTE cUiFindNameForFileNo(UBYTE FileType,UBYTE FileNo,UBYTE *Name)
{
switch (VarsUi.FNOFState)
{
case 0 :
{
Name[0] = 0;
if (FileNo)
{
if (FileType >= FILETYPES)
{
FileType = FILETYPE_ALL;
}
sprintf((char*)VarsUi.FNOFSearchBuffer,"*.%s",TXT_FILE_EXT[FileType]);
VarsUi.FNOFHandle = pMapLoader->pFunc(FINDFIRST,VarsUi.FNOFSearchBuffer,Name,&VarsUi.FNOFLength);
if (!(VarsUi.FNOFHandle & 0x8000))
{
if (FileNo != 1)
{
VarsUi.FNOFFileNo = 1;
VarsUi.FNOFState++;
}
else
{
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.FNOFHandle,NULL,NULL);
}
}
}
}
break;
case 1 :
{
VarsUi.FNOFHandle = pMapLoader->pFunc(FINDNEXT,(UBYTE*)&VarsUi.FNOFHandle,Name,&VarsUi.FNOFLength);
if (!(VarsUi.FNOFHandle & 0x8000))
{
VarsUi.FNOFFileNo++;
if (FileNo == VarsUi.FNOFFileNo)
{
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.FNOFHandle,NULL,NULL);
VarsUi.FNOFState = 0;
}
}
else
{
pMapLoader->pFunc(CLOSE,(UBYTE*)&VarsUi.FNOFHandle,NULL,NULL);
VarsUi.FNOFState = 0;
}
}
break;
}
return (VarsUi.FNOFState);
}
UBYTE cUiFileList(UBYTE Action) // Show files and select
{
switch (Action)
{
case MENU_INIT :
{
if (!VarsUi.State)
{
VarsUi.FileCenter = 1;
VarsUi.NextState = IOMapUi.State;
}
Action = MENU_DRAW;
}
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -