📄 remote1.c
字号:
open_cursor();
set_cursor(0,3);
old_key_value = 0;
in_enable = 1;
break;
}
}
roll_station = 0xff;
break;
case 0xc8://save and return to the another kind page
TR0 = 0;
close_cursor( );
disp_save( );
clear( );
display( old_page_flag,1 );
if(page_kind)
{
in_enable = 0;
roll_station = 0xff;
}
else
{
open_cursor();
set_cursor(0,3);
old_key_value = 0;
}
break;
}
}
}
/**************************************************************************\
*
* 函数名 :void disp_save( void )
*
* 功 能 :save disp data
*
* 参 数 :none
*
* 返回值 : none
*
\**************************************************************************/
void disp_save( void )
{
uchar i;
uchar j;
uchar k;
uint faddr;
uint paddr;
uchar Tbuff[128];
i = 0;
j = 0;
faddr = page_flag*param_size + disp_base_addr;
paddr = faddr;
faddr /= 128;
faddr *= 128;
k = paddr%128;
//starting address
FLASH_read( faddr, Tbuff, 128 );
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
if(k >= 128)
{ //the next sector
FLASH_erase_S( faddr );
FLASH_write( faddr, Tbuff, 128 );
faddr += 128;
k -= 128;
FLASH_read( faddr, Tbuff, 128 );
}
Tbuff[k++] = param[i][j];
}
k += 2;
k += curr_param_file_info.code_length;
}
//the final sector
FLASH_erase_S( faddr );
FLASH_write( faddr, Tbuff, 128 );
}
/**************************************************************************\
*
* 函数名 :void dev_select( void )
*
* 功 能 :device select
*
* 参 数 :none
*
* 返回值 : none
*
\**************************************************************************/
void dev_select( void )
{
uchar i;
uchar j;
uchar k;
uchar w;
uchar u;
uint readaddr;
struct device_info device_info2;
display_hanzi_str("设备选择", 0, 0, 0);
for(i=0;i<8;i++)
{
dev_loc1[i].kind_index = 0xff;
dev_loc1[i].dev_index = 0xff;
}
k = 1;
for(i=0;i<kind_info1.kind_num;i++)
{
readaddr = 0x80 + i*256;
FLASH_read( readaddr,&device_info2, 12 );
for(w=0; (device_info2.kind_name[w]!=0)&&(w<10); w++);
//for one kind
for(j=0;j<device_info2.device_num;j++)
{
dev_loc1[k-1].kind_index = i;
dev_loc1[k-1].dev_index = j;
for(u=0; u<w; u++)
dev_loc1[k-1].dev_name[u] = device_info2.kind_name[u];
dev_loc1[k-1].dev_name[u] = j+0x31;
dev_loc1[k-1].dev_name[u+1] = 0;
display_hanzi_str(dev_loc1[k-1].dev_name, k, 0, 0);
if(roll_station==0xff)//reverse display current device
{
if( (i==kind_info1.curr_kind_index)&&(j==device_info1.curr_device_index) )
{
roll_station = k;
display_hanzi_str(dev_loc1[k-1].dev_name, k, 0, 1);
}
}
else //reverse display selected device
{
if(roll_station==k)
display_hanzi_str(dev_loc1[k-1].dev_name, k, 0, 1);
}
k++;
if(k>8)
break;
}
if(k>8)
break;
}
display_hanzi_str("添新设备", 9, 0, 0);
page_kind = 3;
page_flag = 100;
}
/**************************************************************************\
*
* 函数名 :void dev_sel_handle( void )
*
* 功 能 :device select
*
* 参 数 :none
*
* 返回值 : none
*
\**************************************************************************/
void dev_sel_handle( void )
{
uchar i;
uchar kbuff[128];
uint Raddr;
uchar NumTab[10] = {0x21,0x22,0x24,0x28,0x30,0x41,0x42,0x44,0x48,0x50};
if(key_value==0x50)
{
clear( );
R232_down( );
}
else
{
for(i=1;i<9;i++)
{ //number key
if( (NumTab[i]==key_value)&&(dev_loc1[i-1].kind_index!=0xff) )
{
Raddr = 0x80 + dev_loc1[i-1].kind_index * 256;
Raddr = Raddr + 12 + 20 * dev_loc1[i-1].dev_index;
roll_station = i;
clear( );
dev_watch( Raddr );
break;
}
}
if(i==9)
{
if(key_value==0xc8)//sure
{
FLASH_read( KINDADDR, kbuff, 128 );
kbuff[1] = dev_loc1[roll_station-1].kind_index;
FLASH_erase_S( KINDADDR );
FLASH_write( KINDADDR, kbuff, 128 );
Raddr = DEVICEBASE + dev_loc1[roll_station-1].kind_index * 256;
FLASH_read( Raddr, kbuff, 128 );
kbuff[11] = dev_loc1[roll_station-1].dev_index;
FLASH_erase_S( Raddr );
FLASH_write(Raddr, kbuff, 128);
system_init( );
}
else if(key_value==0x81)//infomation
{
Raddr = 0x80 + dev_loc1[roll_station-1].kind_index * 256;
Raddr = Raddr + 12 + 20 * dev_loc1[roll_station-1].dev_index;
clear( );
dev_watch( Raddr );
}
else if(key_value==0xe1)//roll up
{
display_hanzi_str(dev_loc1[roll_station-1].dev_name, roll_station, 0, 0);
roll_station++;
if( (dev_loc1[roll_station-1].kind_index==0xff)||(roll_station>8) )
roll_station = 1;
display_hanzi_str(dev_loc1[roll_station-1].dev_name, roll_station, 0, 1);
}
else if(key_value==0xe2)//roll down
{
display_hanzi_str(dev_loc1[roll_station-1].dev_name, roll_station, 0, 0);
if(roll_station==1)
{
roll_station = 8;
for( ; dev_loc1[roll_station-1].kind_index==0xff; roll_station--);
}
else
roll_station--;
display_hanzi_str(dev_loc1[roll_station-1].dev_name, roll_station, 0, 1);
}
else if(key_value==0x82) //cancel
{
roll_station = 0xff;
clear( );
display(old_page_flag,0);
}
}
}
}
/**************************************************************************\
*
* 函数名 :void dev_watch( void )
*
* 功 能 :device infomation watch
*
* 参 数 :readaddr
*
* 返回值 : none
*
\**************************************************************************/
void dev_watch( uint readaddr )
{
struct device devicex;
FLASH_read( readaddr,&devicex, 20 );
display_hanzi_str("生产厂商", 1, 0, 0);
display_hanzi_str(devicex.factory, 2, 0, 0);
display_hanzi_str("本机型号", 4, 0, 0);
display_hanzi_str(devicex.typeNo, 5, 0, 0);
page_kind = 3;
page_flag = 101;
}
/**************************************************************************\
*
* 函数名 :void dev_watch_handle( void )
*
* 功 能 :device infomation watch
*
* 参 数 :none
*
* 返回值 : none
*
\**************************************************************************/
void dev_watch_handle( void )
{
clear( );
dev_select( );
}
/**************************************************************************\
*
* 函数名 :void 232_down( void )
*
* 功 能 :down device code
*
* 参 数 :none
*
* 返回值 : none
*
\**************************************************************************/
void R232_down( void )
{
display_hanzi_str("添新设备", 0,0, 0);
display_hanzi_str("请用串口电缆连接本遥控器与电脑", 3, 0, 0);
display_hanzi_str("确定", 8, 0, 0);
display_hanzi_str("退出", 9, 0, 0);
page_kind = 3;
page_flag = 102;
}
/**************************************************************************\
*
* 函数名 :void 232_down_handle( void )
*
* 功 能 :down device code
*
* 参 数 :none
*
* 返回值 : none
*
\**************************************************************************/
void R232_down_handle( void )
{
clear( );
dev_select( );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -