📄 hpi.c
字号:
//*********************************************************************
// VANDER PROPRIETARY
//
// COPYRIGHT (c) 2006 BY VANDER ENGINEERING LTD.
// -- ALL RIGHTS RESERVED --
//
//
// File Name: HPI.c
// Author: Willie Hu
// Created: 23 Mar 06
// Modified:
// Revision: 1.0
// Description: High level application interface
//*********************************************************************/
#include "common.h"
#include "TPBULK.H"
#include "HPI.H"
#include "HAL.H"
#include "Fat.h"
extern FLAGS bFlags;
extern unsigned char DBUF[BUFFER_LENGTH];
//////////////////////////////////////////
unsigned char UARTBUF[UARTBUF_LENGTH];
SYS_INFO_BLOCK DeviceInfo;
FILE_INFO ThisFile;
Command_Def Command;
Response_Def Response;
C026_Def code026;
WAVdata_Def WAVdata;
BG_Def BG;
Filelist_Def Filelist;
unsigned short BCDcodeTemp; //缓存并口信号,用来判断是否是同一信号反复接入
unsigned short DirStartCluster,NowCluster;
unsigned long NowSector;
ShowFileName_Def ShowFileName[MaxLFNum]; //long file struct
unsigned char *WAVSEND;
unsigned long WAVreadcount;
unsigned long setpointer; //播放音档的位置指针
/////////////////////////////////////////////
void Background(void)
{
unsigned char i;
BG.BGM = 1; //表示正在播放背景音乐的状态
if(BG.done) //若一首播放完,则载入下一首背景音乐
{
Command.CLass = 0x01;//设置命令为打开文件
for(i=0;i<8;i++)
{
Command.Parameter[i] = 0x20;//把文件名设为空格
}
Command.Parameter[8] = 0x57;//w
Command.Parameter[9] = 0x41;//a
Command.Parameter[10] = 0x56;//v
switch(BG.count) //寻找背景音乐名
{
case 1:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x31; //1
break;
case 2:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x32; //2
break;
case 3:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x33; //3
break;
case 4:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x34; //4
break;
case 5:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x35; //5
break;
case 6:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x36; //6
break;
case 7:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x37; //7
break;
case 8:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x38; //8
break;
case 9:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x30; //0
Command.Parameter[3] = 0x39; //9
break;
case 10:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x30; //0
break;
case 11:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x31; //1
break;
case 12:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x32; //2
break;
case 13:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x33; //3
break;
case 14:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x34; //4
break;
case 15:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x35; //5
break;
case 16:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x36; //6
break;
case 17:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x37; //7
break;
case 18:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x38; //8
break;
case 19:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x31; //1
Command.Parameter[3] = 0x39; //9
break;
case 20:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x30; //0
break;
case 21:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x31; //1
break;
case 22:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x32; //2
break;
case 23:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x33; //3
break;
case 24:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x34; //4
break;
case 25:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x35; //5
break;
case 26:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x36; //6
break;
case 27:
Command.Parameter[0] = 0x42; //B
Command.Parameter[1] = 0x47; //G
Command.Parameter[2] = 0x32; //2
Command.Parameter[3] = 0x37; //7
break;
default:
BG.count = 1; //从头播起
return ;
}
BG.setpointer = 0; //一首背景音乐播放完后,第二首歌从头播起
for(i=0;i<8;i++)BG.name[i] = Command.Parameter[i]; //存储背景音乐名,用来断点续播
}
else
{
for(i=0;i<8;i++)Command.Parameter[i] = BG.name[i]; //断点续播
}
setpointer = BG.setpointer; //断点续播
if(!Findfile()) //若U盘中无所播放文件,则播放下一首
{
BG.done = 1; //播放背景音乐完成
BG.count++; //播放计数加1
if(BG.count>27)BG.count = 1; //设置最多有27首背景音乐(需配合上面的case语句段)
return;
}
UartHandler();
if(BG.BGM) //在背景音乐播放状态下退出播放子程序时设置
{
BG.done = 1; //播放背景音乐完成
BG.count++; //播放计数加1
if(BG.count>27)BG.count = 1; //设置最多有50首背景音乐(需配合上面的case语句段)
}
}
/*
unsigned char Decode026(void) //翻译026编码
{
unsigned char i;
unsigned char nosignal;
nosignal = 0;
bFlags.bits.bUartInDone=0;
Command.CLass = 0x01;//设置命令为打开文件
for(i=8;i>0;i--)
{
Command.Parameter[i] = 0x20;//把文件名设为空格
}
Command.Parameter[8] = 0x57;//w
Command.Parameter[9] = 0x41;//a
Command.Parameter[10] = 0x56;//v
setpointer = 0; //播放信号音乐时,从头播起
switch(code026.floor)//设置文件名
{
case 0x0001: //i.e. 一楼 01F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x31;
Command.Parameter[2] = 0x46;
break;
case 0x0002: //i.e. 二楼 02F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x32;
Command.Parameter[2] = 0x46;
break;
case 0x0003: //i.e. 二楼 03F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x33;
Command.Parameter[2] = 0x46;
break;
case 0x0004: //i.e. 二楼 04F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x34;
Command.Parameter[2] = 0x46;
break;
case 0x0005: //i.e. 二楼 05F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x35;
Command.Parameter[2] = 0x46;
break;
case 0x0006: //i.e. 二楼 06F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0007: //i.e. 二楼 07F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x37;
Command.Parameter[2] = 0x46;
break;
case 0x0008: //i.e. 二楼 08F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x38;
Command.Parameter[2] = 0x46;
break;
case 0x0009: //i.e. 二楼 09F
Command.Parameter[0] = 0x30;
Command.Parameter[1] = 0x39;
Command.Parameter[2] = 0x46;
break;
case 0x000a: //i.e. 二楼 10F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x30;
Command.Parameter[2] = 0x46;
break;
case 0x000b: //i.e. 二楼 11F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x31;
Command.Parameter[2] = 0x46;
break;
case 0x000c: //i.e. 二楼 12F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x32;
Command.Parameter[2] = 0x46;
break;
case 0x000d: //i.e. 二楼 13F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x33;
Command.Parameter[2] = 0x46;
break;
case 0x000e: //i.e. 二楼 14F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x34;
Command.Parameter[2] = 0x46;
break;
case 0x000f: //i.e. 二楼 15F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x35;
Command.Parameter[2] = 0x46;
break;
case 0x0010: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0011: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0012: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0013: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0014: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0015: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0016: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0017: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0018: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0019: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x001a: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x001b: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x001c: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x001d: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x001e: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x001f: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0020: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0021: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0022: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0023: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
case 0x0024: //i.e. 二楼 16F
Command.Parameter[0] = 0x31;
Command.Parameter[1] = 0x36;
Command.Parameter[2] = 0x46;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -