diff --git a/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.c b/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.c index a7c8ae90..66e5fe1d 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.c +++ b/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.c @@ -17,7 +17,6 @@ #include "app_voice_player.h" #include "BkDriverFlash.h" #include "manual_ps_pub.h" - #ifdef PKG_USING_EASYFLASH #include "easyflash.h" @@ -27,7 +26,6 @@ #include "saradc_pub.h" #include "ring_queue.h" -#include "opus_encoder.h" #include "charge.h" #include "mqtt_client.h" @@ -41,8 +39,9 @@ static beken_timer_t timer_hall_detect; static beken_timer_t timer_poweroff; static beken_timer_t timer_bind; static beken_timer_t timer_idle; -static beken_timer_t timer_battery_refresh ; -//static beken_timer_t timer_charge_hell ; +static beken_timer_t timer_battery_refresh; +static beken_timer_t timer_ble_scan; +static beken_timer_t timer_charge_hell ; int start_bind_detect = 0; int hall_key_down_count = 0; @@ -137,6 +136,7 @@ int temperature_adv_get_name(recv_adv_t *r_ind,char *name){ } return name_len; } +void timer_ble_scan_callback(void *arg); /** * 搜索广播回调 */ @@ -201,6 +201,12 @@ void temperature_adv_callback(recv_adv_t *r_ind) return; }else{ bk_printf("same : %s \r\n",str_current); + if(0){//box_info.charge_state == 0){ + belon_ble_scan_stop(); + rtos_init_timer(&timer_ble_scan, BLE_SCAN_INTERVAL, timer_ble_scan_callback, NULL); + rtos_start_timer(&timer_ble_scan); + } + } //int i; @@ -405,6 +411,8 @@ void timer_check_device_run_callback(void *arg){ } //rtos_start_timer(&timer_poweroff); box_poweroff_timeout_callback(NULL); + + //合盖状态接入充电 ---> 关机 // if (box_info.hall_state == 0) // { @@ -418,6 +426,11 @@ void timer_check_device_run_callback(void *arg){ // } } +void timer_ble_scan_callback(void *arg){ + //belon_ble_scan_start(); + //rtos_deinit_timer(&timer_ble_scan); +} + /** * 显示 ... 表示等待 */ @@ -441,15 +454,15 @@ static void app_temperature_ui_wait_entry(void *parameter) ui_wait_step =1; break; case 1: - OLED_ShowString(0+20,0,(u8 *)".",32,1); + OLED_ShowString(16,0,(u8 *)".",32,1); ui_wait_step =2; break; case 2: - OLED_ShowString(0+20,0,(u8 *)"..",32,1); + OLED_ShowString(16,0,(u8 *)"..",32,1); ui_wait_step =3; break; case 3: - OLED_ShowString(0+20,0,(u8 *)"...",32,1); + OLED_ShowString(16,0,(u8 *)"...",32,1); ui_wait_step =0; break; break; @@ -501,30 +514,30 @@ static void box_adc_detect_callback(int new_mv, void *user_data) bat_volt -= 48 ; } rt_kprintf("battery_calc --> bat_volt:%d\n",bat_volt); - if(bat_volt >= batt_max) - box_battery_percent = 100; - else if(bat_volt <= batt_max && bat_volt >= 4000){ + if(bat_volt >= batt_max) + box_battery_percent = 100; + else if(bat_volt <= batt_max && bat_volt >= 4000){ kmah = (-28880*bat_volt+120895600)/151; box_battery_percent = (443570-kmah)*100/443570; // 4000~4150 - } - else if(bat_volt <= 4000 && bat_volt >= 3800){ + } + else if(bat_volt <= 4000 && bat_volt >= 3800){ kmah = (-78560*bat_volt+321360000)/200; box_battery_percent = (443570-kmah)*100/443570; // 3800~4000 - } + } else if(bat_volt <= 3800 && bat_volt >= 3600){ kmah = (-134960*bat_volt+535680000)/200; box_battery_percent = (443570-kmah)*100/443570; // 3600~3800 - } - else if(bat_volt <= 3600 && bat_volt >= 3400){ + } + else if(bat_volt <= 3600 && bat_volt >= 3400){ kmah = (-163110*bat_volt+637020000)/200; box_battery_percent = (443570-kmah)*100/443570; // 3400~3600 - } - else if(bat_volt <= 3600 && bat_volt >= 3400){ + } + else if(bat_volt <= 3600 && bat_volt >= 3400){ kmah = (-31340*bat_volt+271448000)/400; box_battery_percent = (443570-kmah)*100/443570; // 3000~3400 - } - else - box_battery_percent = 1; + } + else + box_battery_percent = 1; // if (bat_volt < batt_min) { // box_battery_percent=0; @@ -586,13 +599,30 @@ void app_show_memory_detect_info(){ } rtos_stop_timer(&timer_battery_refresh); OLED_Clear(); - OLED_ShowString(2,1,(u8 *)"M1",16,1); + OLED_ShowString(21,5,(u8 *)"M1",32,1); + OLED_Refresh(); + rt_thread_mdelay(1000); + + OLED_Clear(); char str_temp[12]={0}; - rt_sprintf(str_temp,"%d.%d C\n",record.temperature_value/100,record.temperature_value/10%10); + //rt_sprintf(str_temp,"%d.%d\n",record.temperature_value/100,record.temperature_value/10%10); + rt_memset(str_temp,0,sizeof(str_temp)); + rt_sprintf(str_temp,"%d",record.temperature_value/100/10);//整数 + OLED_ShowString(0,0,(u8*)str_temp,48,1); + rt_sprintf(str_temp,"%d",record.temperature_value/100%10);//整数 + OLED_ShowString(19,0,(u8*)str_temp,48,1); + + OLED_ShowChar(35,0+18,'.',24,1);//小数点 + + rt_memset(str_temp,0,sizeof(str_temp)); + rt_sprintf(str_temp,"%d",record.temperature_value/10%10);//小数点后一位 + OLED_ShowString(41,0,(u8*)str_temp,48,1); + OLED_ShowChar(61,18,'C',24,1); + OLED_DrawCircle(63,10,4); //rt_sprintf(str_temp,"") //OLED_ShowString(0,18,(u8 *)"36.5 C",24,1); - OLED_ShowString(0,18,(u8 *)str_temp,24,1); - OLED_DrawCircle(55,15,4); + //OLED_ShowString(0,0,(u8 *)str_temp,48,1); + //OLED_DrawCircle(55,15,4); OLED_Refresh(); rt_thread_mdelay(1000); } @@ -664,21 +694,23 @@ static void app_temperature_ui_detect_entry(void *parameter) rt_sprintf(str_temp,"%d.%d \n",temp_body/100,temp_body/10%10); //rt_kprintf("%s\r\n",str_temp); - if(temp_body > BLE_TEMPERATURE_LIMIT_MIN && temp_body < BLE_TEMPERATURE_LIMIT_MAX){ + //if(temp_body > BLE_TEMPERATURE_LIMIT_MIN && temp_body < BLE_TEMPERATURE_LIMIT_MAX){ OLED_Clear(); rt_memset(str_temp,0,sizeof(str_temp)); - rt_sprintf(str_temp,"%d",temp_body/100);//整数 - OLED_ShowString(0,0+10,(u8*)str_temp,32,1); + rt_sprintf(str_temp,"%d",temp_body/100/10);//整数 + OLED_ShowString(0,0,(u8*)str_temp,48,1); + rt_sprintf(str_temp,"%d",temp_body/100%10);//整数 + OLED_ShowString(19,0,(u8*)str_temp,48,1); - OLED_ShowChar(32,0+10,'.',32,1);//小数点 + OLED_ShowChar(35,0+18,'.',24,1);//小数点 rt_memset(str_temp,0,sizeof(str_temp)); rt_sprintf(str_temp,"%d",temp_body/10%10);//小数点后一位 - OLED_ShowString(40,0+10,(u8*)str_temp,32,1); - OLED_ShowChar(61,16,'C',24,1); + OLED_ShowString(41,0,(u8*)str_temp,48,1); + OLED_ShowChar(61,18,'C',24,1); //屏幕上的点(度) 闪烁 if(ui_show_point){ - OLED_DrawCircle(62,10,4); + OLED_DrawCircle(63,10,4); //未测量完成才允许闪烁 if(temperature_info.device_state == STATE_DETECT_ING){ ui_show_point = 0; @@ -687,9 +719,9 @@ static void app_temperature_ui_detect_entry(void *parameter) ui_show_point = 1; } - } + //} - if(temp_body < BLE_TEMPERATURE_LIMIT_MIN){ + /*if(temp_body < BLE_TEMPERATURE_LIMIT_MIN){ OLED_Clear(); //OLED_ShowString(0+10,0+5,(u8 *)"LOW",32,1); OLED_ShowChinese(3,5,0,32,1); //低 @@ -701,7 +733,7 @@ static void app_temperature_ui_detect_entry(void *parameter) //OLED_ShowString(0+5,0+5,(u8 *)"HIGH",32,1); OLED_ShowChinese(3,5,9,32,1); //超 OLED_ShowChinese(35,5,2,32,1);//温 - } + }*/ OLED_Refresh(); } @@ -816,9 +848,12 @@ void app_enter_ui(app_ui_mode mode){ { case UI_BOX_BATTERY: app_show_box_battery(); - - rtos_init_timer(&timer_battery_refresh, 10000, timer_battery_refresh_callback, NULL); - rtos_start_timer(&timer_battery_refresh); + //static int battery_timer_inited = 0; + + rtos_init_timer(&timer_battery_refresh, 10000, timer_battery_refresh_callback, NULL); + rtos_start_timer(&timer_battery_refresh); + // battery_timer_inited = 1; + break; case UI_SHOW_DEVICE_INFO: @@ -848,6 +883,39 @@ void app_enter_ui(app_ui_mode mode){ } +void volume_save_record(app_detect_record_t *record){ + EfErrCode result = EF_NO_ERR; + //char t[sizeof(app_detect_record_t)] = {0x88,0x86,0x89}; + //app_detect_record_t record; + //record.temperature_value = t_value; + char data[32]; + rt_memset(data,0,sizeof(data)); + rt_sprintf(data,"%d",record->volume); + + result = ef_set_env(BLE_TEMPERATURE_FLASH_RECORD_KEY_VOLUME, data); + result = ef_save_env(); + if (result == EF_NO_ERR) + { + rt_kprintf("volume_save_record success !!!\r\n"); + }else{ + rt_kprintf("volume_save_record failed !!!\r\n"); + } +} + +void volume_read_record(app_detect_record_t *record){ + rt_memset(record,0,sizeof(app_detect_record_t)); + /*获取easy flash存入的数据*/ + char *t = ef_get_env(BLE_TEMPERATURE_FLASH_RECORD_KEY_VOLUME); + if(t != NULL){ + //rt_kprintf("%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\r\n",t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]); + //rt_memcpy(record,t,sizeof(app_detect_record_t)); + uint8 Volume = atoi(t); + record->volume = Volume; + }else{ + rt_kprintf("volume_read_record error\r\n"); + } +} + /** * 保存最新的一次记录 */ @@ -907,15 +975,15 @@ void charge_sleep_on(int on) { // voice_player_mute(1); //声音 // rtos_start_timer(&timer_detect); // bk_wlan_start_sta(BK_STATION); //WIFI - // belon_ble_scan_start(); //蓝牙扫描 - // belon_ble_start_adv(); //蓝牙广播 + belon_ble_scan_start(); //蓝牙扫描 + belon_ble_start_adv(); //蓝牙广播 }else{ OLED_DisPlay_Off();//屏幕 voice_player_mute(0); //声音 // rtos_stop_timer(&timer_detect); // //bk_wlan_stop(BK_STATION); //WIFI - // belon_ble_scan_stop(); //蓝牙扫描 - // belon_ble_deinit_adv(); //蓝牙广播 + belon_ble_scan_stop(); //蓝牙扫描 + belon_ble_deinit_adv(); //蓝牙广播 } } } @@ -1048,8 +1116,8 @@ void timer_hall_detect_callback(void *arg){ rtos_stop_timer(&timer_poweroff); } if(!oled_is_on){ //充电时开盖复位设备 - rt_kprintf("charge_sleep_on(1) !!!\r\n"); charge_sleep_on(1); + rt_kprintf("charge_sleep_on(1) !!!\r\n"); } // 只有在5秒内且开关盖次数达到5才进入绑定 if(start_bind_detect && hall_key_down_count == 5 && (now_tick - hall_first_down_tick <= HALL_BIND_WINDOW_MS)){ @@ -1332,11 +1400,25 @@ void poka_client_password(){ rt_kprintf("password=%s\r\n", mqtt_password); } +void record_init(void){ + app_detect_record_t record; + memset((void *)&record, 0, sizeof(record)); + volume_read_record(&record); + rt_kprintf("record.volume=%d record.temperature_value=%d record.timestamp=%d\r\n", record.volume,record.temperature_value,record.timestamp); + if(record.volume==0&&record.temperature_value==0){ + record.volume=70; + volume_save_record(&record); + } + +} + void temperature_init(void){ extern long list_memheap(void); + //rt_thread_mdelay(3000); list_memheap(); - bk_wlan_stop(BK_STATION); + //bk_wlan_stop(1); + //bk_wlan_stop(0); temperature_led_ble(0); // 查询绑定设备 //uint8_t test_device_mac[6] = {0xe5, 0xe6, 0xb6, 0x09, 0x28, 0x37}; @@ -1358,12 +1440,9 @@ void temperature_init(void){ rtos_init_timer(&timer_poweroff, BLE_TEMPERATURE_POWEROFF_TIMEOUT, box_poweroff_timeout_callback, NULL); rtos_init_timer(&timer_bind, BLE_TEMPERATURE_BIND_MODE_TIMEOUT, box_bind_timeout_callback, NULL); rtos_init_timer(&timer_idle, BLE_TEMPERATURE_IDLE_MODE_TIMEOUT, timer_app_idle_callback, NULL); - - - //初始化电量 box_init_power(); - // user_app_start(); + //user_app_start(); app_enter_ui(UI_BOX_BATTERY); @@ -1377,12 +1456,13 @@ void temperature_init(void){ //app_show_last_detect_info(); app_enter_ui(UI_SHOW_MEMORY_INFO); + app_show_wait_temperature(); //app_enter_ui(UI_WAIT_TEMPERATURE); //注册WIFI回调 - bk_wlan_status_register_cb(wifi_status_cb); + //bk_wlan_status_register_cb(wifi_status_cb); //自动联网 - //wifi_init(); + wifi_init(); //初始化BLE belon_ble_active(); @@ -1396,16 +1476,19 @@ void temperature_init(void){ rtos_init_timer(&timer_detect, BLE_TEMPERATURE_DETECT_DEVICE_INTERVAL, timer_check_device_run_callback, NULL); rtos_start_timer(&timer_detect); - // rtos_init_timer(&timer_charge_hell, 300000, timer_charge_hell, NULL); - // rtos_start_timer(&timer_charge_hell); + rtos_init_timer(&timer_charge_hell, 300000, timer_hall_detect_callback, NULL); + rtos_start_timer(&timer_charge_hell); charger_module_enable(0); //sctrl_ctrl(CMD_SCTRL_USB_CHARGE_STOP, 0); voice_player_mute(1); voice_player_init(); + record_init(); list_memheap(); - + + //belon_ble_scan_stop(); + //belon_ble_deinit_adv(); //app_tcp_init(); //app_tcp_connect(); diff --git a/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.h b/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.h index 0851ce86..779a8164 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.h +++ b/beken_rtt_sdk_release-SDK_3.0.76/applications/app_temperature.h @@ -42,6 +42,11 @@ */ #define BLE_TEMPERATURE_DETECT_DEVICE_INTERVAL 1000 +/** + * 蓝牙扫描间隔时间 + */ +#define BLE_SCAN_INTERVAL 8000 + /** * 显示温度最小值 低于该值显示LOW */ @@ -87,7 +92,7 @@ /** * 超时25s 都没有收到温度广播数据 回到等待测温页面 */ -#define BLE_TEMPERATURE_IDLE_MODE_TIMEOUT 25000 //ms +#define BLE_TEMPERATURE_IDLE_MODE_TIMEOUT 30000 //ms /** * 配置文件easyflah KEY @@ -117,6 +122,11 @@ * 测温记录 easyflah KEY time */ #define BLE_TEMPERATURE_FLASH_RECORD_KEY_TIMESTAMP "m1_timestamp" +/** + * 音量记录 easyflah KEY volume + */ +#define BLE_TEMPERATURE_FLASH_RECORD_KEY_VOLUME "m1_volume" + typedef enum { @@ -173,8 +183,9 @@ typedef struct typedef struct { - uint8_t timestamp[8]; + uint8_t timestamp[8]; uint16_t temperature_value; + uint8_t volume; }app_detect_record_t; @@ -199,6 +210,7 @@ int mqtt_start(char username[],char password[]); void poka_client_password(); void poka_client_username(); void connnect_wifi(char *oob_ssid,char *connect_key); +void timer_ble_scan_callback(void *arg); /** * 保存最新的一次记录 @@ -213,4 +225,8 @@ void temperature_read_record(app_detect_record_t *record); void temperature_led_ble(bool onoff); void app_enter_ui(app_ui_mode mode); + +void volume_read_record(app_detect_record_t *record); + +void volume_save_record(app_detect_record_t *record); #endif //_APP_TEMPERATURE_H_ diff --git a/beken_rtt_sdk_release-SDK_3.0.76/applications/app_voice_player.c b/beken_rtt_sdk_release-SDK_3.0.76/applications/app_voice_player.c index cc839401..e8d73e9a 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/applications/app_voice_player.c +++ b/beken_rtt_sdk_release-SDK_3.0.76/applications/app_voice_player.c @@ -16,6 +16,7 @@ #include "app_voice_player.h" #include "tts_player.h" +#include "player.h" static char *tts_list[6] = {NULL}; char * voice_get_mp3_file(int num){ @@ -59,12 +60,20 @@ char * voice_get_mp3_file(int num){ /* 播放一个文件*/ void voice_tts_player_play_one(void *p) { + app_detect_record_t record; + memset((void *)&record, 0, sizeof(record)); + volume_read_record(&record); + player_set_volume(record.volume); tts_player_block(tts_list, 1); } /* 阻塞式播放 TTS */ void voice_tts_player_block_run(void *p) { + app_detect_record_t record; + memset((void *)&record, 0, sizeof(record)); + volume_read_record(&record); + player_set_volume(record.volume); tts_player_block(tts_list, sizeof(tts_list)/sizeof(char *)); } @@ -124,8 +133,9 @@ void voice_player_init() { audio_device_init(); audio_device_set_rate(16000); - audio_device_set_volume(30); audio_device_open(); + //player_set_volume(1); + rt_kprintf("volume=%d\r\n", player_set_volume(1)); //audio_device_mic_open(); //voice_play(1); diff --git a/beken_rtt_sdk_release-SDK_3.0.76/applications/belon_ble.c b/beken_rtt_sdk_release-SDK_3.0.76/applications/belon_ble.c index 07ad983a..3611adcf 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/applications/belon_ble.c +++ b/beken_rtt_sdk_release-SDK_3.0.76/applications/belon_ble.c @@ -21,6 +21,7 @@ #include "kernel_mem.h" #include "easyflash.h" + #define BUILD_UINT16(loByte, hiByte) \ ((uint16_t)(((loByte) & 0x00FF) + (((hiByte) & 0x00FF) << 8))) @@ -38,6 +39,8 @@ #define BLE_WIFI_FLASH_KEY_CHANNEL "wifi_channel" #define BLE_WIFI_FLASH_KEY_SECURITY "wifi_security" #define BLE_IDLE_TIMEOUT_MS 10000 // 10秒无操作超时 +#define HTTP_OTA_URL "http://192.168.7.105:8080/all_2M.1220.bin" + //WIFI账号密码 char last_ssid[33] = {0}; @@ -132,7 +135,7 @@ uint8_t cli_ble_read_callback(read_req_t *read_req) read_req->value[2] = 0x30; return 3; } - +/* static void ble_command_usage(void) { bk_printf("ble help - Help information\n"); @@ -146,12 +149,12 @@ static void ble_command_usage(void) bk_printf("ble disc - Disconnect\n"); bk_printf("ble dut - dut test\n"); -} +}*/ void sdp_event_cb(sdp_notice_t notice, void *param) { - switch (notice) { + /*switch (notice) { case SDP_CHARAC_NOTIFY_EVENT: { sdp_event_t *g_sdp = (sdp_event_t *)param; @@ -183,7 +186,7 @@ void sdp_event_cb(sdp_notice_t notice, void *param) default: bk_printf("[%s]Event:%d\r\n",__func__,notice); break; - } + }*/ } void ble_cmd_cb(ble_cmd_t cmd, ble_cmd_param_t *param) @@ -376,7 +379,7 @@ void ble_connnect_wifi(uint8_t data[]){ static void ble_idle_timeout_cb(void *parameter){ ble_report_state(0); // 无操作 } - +extern void http_ota(uint8_t argc, char **argv); void ble_notice_cb(ble_notice_t notice, void *param) { switch (notice) { @@ -399,7 +402,6 @@ void ble_notice_cb(ble_notice_t notice, void *param) bk_printf("mac:%s\r\n",w_req->value); //flash_write((uint8_t *)&dev_config, sizeof(dev_config), (UINT32)0x1FD000); } - if(strstr((char *)data,"AT+SCAN")!=NULL){ //扫描wifi命令:AT+SCAN bk_printf("start WiFi scan...\r\n"); rtos_reload_timer(&ble_idle); @@ -407,18 +409,70 @@ void ble_notice_cb(ble_notice_t notice, void *param) mhdr_scanu_reg_cb(scan_cb, 0); bk_wlan_start_scan(); } - if(strncmp((char *)data, "AT+WIFI:", 8) == 0){ //连接WiFi命令:AT+WIFI:SSID,PASSWORD ble_connnect_wifi(data); } - if(strstr((char *)data,"AT+STATE")!=NULL){ //返回当前状态 char msg[32] = "AT+STATE=0"; bk_ble_send_ntf_value(strlen(msg), (uint8_t*)msg, 0, TEST_IDX_FF03_VAL_VALUE); } - if(strstr((char *)data,"AT+VER=")!=NULL){ //返回当前状态 + if(strstr((char *)data,"AT+VER=")!=NULL){ //返回当前版本 char msg[32] = "AT+VER=1.0.0"; bk_ble_send_ntf_value(strlen(msg), (uint8_t*)msg, 0, TEST_IDX_FF03_VAL_VALUE); + } + if(strstr((char *)data,"AT+UPDATE")!=NULL){ //wifi升级 + char *url_ptr = HTTP_OTA_URL; + http_ota(1, &url_ptr); + } + if(strstr((char *)data,"AT+VOICE++")!=NULL){ //声音+ + app_detect_record_t record; + + memset((void *)&record, 0, sizeof(record)); + volume_read_record(&record); + record.volume+=10; + if(record.volume>=99) + record.volume=99; + if(record.volume<=0) + record.volume=0; + volume_save_record(&record); + + char msg[32]; + int len = snprintf(msg, sizeof(msg), "AT+VOLUME=%d", record.volume); + bk_ble_send_ntf_value(len, (uint8_t*)msg, 0, TEST_IDX_FF03_VAL_VALUE); + } + if(strstr((char *)data,"AT+VOICE--")!=NULL){ //声音- + app_detect_record_t record; + + memset((void *)&record, 0, sizeof(record)); + volume_read_record(&record); + record.volume-=10; + if(record.volume>=99) + record.volume=99; + if(record.volume<=0) + record.volume=0; + volume_save_record(&record); + + char msg[32]; + int len = snprintf(msg, sizeof(msg), "AT+VOLUME=%d", record.volume); + bk_ble_send_ntf_value(len, (uint8_t*)msg, 0, TEST_IDX_FF03_VAL_VALUE); + } + if(strstr((char *)data,"AT+SETVOICE=")!=NULL){ //声音- + app_detect_record_t record; + + int new_volume; + memset((void *)&record, 0, sizeof(record)); + volume_read_record(&record); + if(sscanf((char*)data, "AT+VOLUME=%d", &new_volume) == 1) { + record.volume = new_volume; + if(record.volume>=99) + record.volume=99; + if(record.volume<=0) + record.volume=0; + } + volume_save_record(&record); + char msg[32]; + int len = snprintf(msg, sizeof(msg), "AT+VOLUME=%d", record.volume); + bk_ble_send_ntf_value(len, (uint8_t*)msg, 0, TEST_IDX_FF03_VAL_VALUE); } break; } @@ -556,7 +610,8 @@ void ble_notice_cb(ble_notice_t notice, void *param) discon_ind_t *d_ind = (discon_ind_t *)param; bk_printf("d_ind:conn_idx:%d,reason:%d\r\n", d_ind->conn_idx,d_ind->reason); //断开连接之后 重新打开广播 - + belon_ble_start_adv(); + //belon_ble_active(); //belon_ble_init_adv(); break; } @@ -631,7 +686,7 @@ void ble_notice_cb(ble_notice_t notice, void *param) } static void ble(int argc, char **argv) -{ +{/* uint8_t adv_data[31]; uint8_t actv_idx; if ((argc < 2) || (os_strcmp(argv[1], "help") == 0)) @@ -884,11 +939,11 @@ static void ble(int argc, char **argv) }else{ bk_printf("handle(%x) error\r\n",handle); } - } + }*/ } static void ble_advertise_start(int argc, char **argv) -{ +{/* uint8_t adv_data[31]; uint8_t actv_idx; uint8_t adv_data_len; @@ -927,7 +982,7 @@ static void ble_advertise_start(int argc, char **argv) bk_ble_set_scan_rsp_data(actv_idx, adv_data, adv_data_len, ble_cmd_cb); rt_thread_mdelay(10); - bk_ble_start_advertising(actv_idx, 0, ble_cmd_cb); + bk_ble_start_advertising(actv_idx, 0, ble_cmd_cb);*/ } void belon_ble_deinit_adv() { diff --git a/beken_rtt_sdk_release-SDK_3.0.76/applications/drv_oled.c b/beken_rtt_sdk_release-SDK_3.0.76/applications/drv_oled.c index cd2e84a9..79ea8616 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/applications/drv_oled.c +++ b/beken_rtt_sdk_release-SDK_3.0.76/applications/drv_oled.c @@ -13,7 +13,7 @@ #include "icu_pub.h" #include "i2c_pub.h" #include "drv_model_pub.h" -#include "target_util_pub.h" +//#include "target_util_pub.h" //#include "test_config.h" @@ -24,7 +24,7 @@ //static DD_HANDLE i2c_hdl; const unsigned char asc2_0806[][6] = -{ +{0/* {0x00, 0x00, 0x00, 0x00, 0x00, 0x00},// sp {0x00, 0x00, 0x00, 0x2f, 0x00, 0x00},// ! {0x00, 0x00, 0x07, 0x00, 0x07, 0x00},// " @@ -116,9 +116,11 @@ const unsigned char asc2_0806[][6] = {0x00, 0x44, 0x28, 0x10, 0x28, 0x44},// x {0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C},// y {0x00, 0x44, 0x64, 0x54, 0x4C, 0x44},// z -{0x14, 0x14, 0x14, 0x14, 0x14, 0x14},// horiz lines +{0x14, 0x14, 0x14, 0x14, 0x14, 0x14},// horiz lines*/ }; //12*12 ASCII×Ö·û¼¯µãÕó +const unsigned char asc2_1206[95][12]={0}; +#if 0 const unsigned char asc2_1206[95][12]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ {0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00},/*"!",1*/ @@ -216,7 +218,10 @@ const unsigned char asc2_1206[95][12]={ {0x00,0x02,0xDE,0x20,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x00},/*"}",93*/ {0x02,0x01,0x02,0x04,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ }; +#endif //16*16 ASCII×Ö·û¼¯µãÕó +//const unsigned char asc2_1608[][16]={0}; +#if 1 const unsigned char asc2_1608[][16]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ {0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00},/*"!",1*/ @@ -314,6 +319,7 @@ const unsigned char asc2_1608[][16]={ {0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00},/*"}",93*/ {0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ }; +#endif //24*24 ASICII×Ö·û¼¯µãÕó const unsigned char asc2_2412[][36]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ @@ -349,10 +355,11 @@ const unsigned char asc2_2412[][36]={ {0x00,0x00,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00},/*">",30*/ {0x00,0xC0,0x20,0x20,0x10,0x10,0x10,0x10,0x30,0xE0,0xC0,0x00,0x00,0x03,0x03,0x00,0x00,0xF0,0x10,0x08,0x0C,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00},/*"?",31*/ {0x00,0x00,0x00,0xC0,0x40,0x60,0x20,0x20,0x20,0x40,0xC0,0x00,0x00,0xFC,0xFF,0x01,0xF0,0x0E,0x03,0xC1,0xFE,0x03,0x80,0x7F,0x00,0x01,0x07,0x0E,0x08,0x11,0x11,0x10,0x11,0x09,0x04,0x02},/*"@",32*/ -#if 1 + {0x00,0x00,0x00,0x00,0x80,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7C,0x43,0x40,0x47,0x7F,0xF8,0x80,0x00,0x00,0x10,0x18,0x1F,0x10,0x00,0x00,0x00,0x00,0x13,0x1F,0x1C,0x10},/*"A",33*/ {0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x10,0x18,0x2F,0xE7,0x80,0x00,0x10,0x1F,0x1F,0x10,0x10,0x10,0x10,0x10,0x18,0x0F,0x07,0x00},/*"B",34*/ {0x00,0x00,0x80,0xC0,0x40,0x20,0x20,0x20,0x20,0x60,0xE0,0x00,0x00,0xFC,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x07,0x0E,0x18,0x10,0x10,0x10,0x08,0x04,0x03,0x00},/*"C",35*/ +#if 0 {0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x40,0xC0,0x80,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFE,0x00,0x10,0x1F,0x1F,0x10,0x10,0x10,0x18,0x08,0x0E,0x07,0x01,0x00},/*"D",36*/ {0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x80,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x06,0x00},/*"E",37*/ {0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x80,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x01,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"F",38*/ @@ -453,10 +460,11 @@ const unsigned char asc2_3216[][64]={ {0x00,0x40,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x1E,0x0F,0x07,0x03,0x00,0x00,0x04,0x0E,0x0E,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*">",30*/ {0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x1E,0x1F,0x1F,0x1F,0x01,0x00,0x80,0xC1,0xF3,0xFF,0xFF,0x7F,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x1F,0x1F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",31*/ {0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x40,0x40,0x40,0x40,0xC0,0x80,0x80,0x00,0x00,0x00,0xF8,0xFE,0x0F,0xC3,0xF1,0xF8,0x3C,0x0C,0xCC,0xFC,0xFC,0x3D,0x0F,0xFE,0xF8,0x00,0x7F,0xFF,0xC0,0x3F,0x7F,0x7F,0x60,0x70,0x3F,0x7F,0x67,0x60,0x3C,0x1F,0x07,0x00,0x00,0x01,0x03,0x07,0x06,0x04,0x0C,0x08,0x0C,0x04,0x06,0x02,0x02,0x00,0x00},/*"@",32*/ -#if 1 + {0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xFF,0xFF,0x1F,0xFF,0xFF,0xF8,0xC0,0x00,0x00,0x00,0x00,0x80,0xF0,0xFE,0xFF,0x7F,0x1F,0x1C,0x1C,0x1C,0x1F,0xFF,0xFF,0xFE,0xE0,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07},/*"A",33*/ {0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x81,0xC1,0xFF,0xFF,0x7F,0x3E,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x03,0x03,0x87,0xFF,0xFE,0xFC,0x78,0x00,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x03,0x01,0x00},/*"B",34*/ {0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0xE0,0xFC,0xFF,0xFF,0x1F,0x03,0x01,0x00,0x00,0x01,0x03,0x3F,0x3F,0x3F,0x38,0x00,0x1F,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x80,0xF8,0xF8,0xF8,0x38,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x0E,0x0E,0x0E,0x0F,0x07,0x07,0x03,0x01,0x00},/*"C",35*/ + {0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x01,0x01,0x03,0x07,0x3F,0xFF,0xFE,0xFC,0xC0,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x80,0xF8,0xFF,0xFF,0x7F,0x07,0x00,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x07,0x07,0x03,0x03,0x01,0x00,0x00},/*"D",36*/ {0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06},/*"E",37*/ {0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"F",38*/ @@ -467,6 +475,7 @@ const unsigned char asc2_3216[][64]={ {0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xC0,0xF0,0xF8,0xFC,0xBF,0x1F,0x07,0x03,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x07,0x03,0x07,0x1F,0x7F,0xFE,0xF8,0xE0,0xC0,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x07,0x04},/*"K",43*/ {0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06},/*"L",44*/ {0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xC0,0x00,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFC,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0x07,0x07,0x07,0x00,0x01,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x07,0x07},/*"M",45*/ +#if 0 {0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x7F,0xFE,0xF8,0xE0,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0x07,0x1F,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x07,0x07,0x00},/*"N",46*/ {0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0xF8,0xFE,0xFF,0xFF,0x07,0x01,0x00,0x00,0x01,0x03,0x0F,0xFF,0xFF,0xFE,0xE0,0x00,0x3F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x01,0x03,0x07,0x07,0x07,0x0E,0x0E,0x0E,0x07,0x07,0x07,0x03,0x00,0x00},/*"O",47*/ {0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x83,0xFF,0xFF,0xFF,0x7C,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x06,0x06,0x06,0x07,0x07,0x07,0x03,0x03,0x01,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/ @@ -520,6 +529,771 @@ const unsigned char asc2_3216[][64]={ }; +const unsigned char asc2_4818[][108]={ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8, +0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/ + +{0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x03,0x00,0x00,0x7F,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF, +0x0F,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0xEF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0xFF, +0xFF,0x7F,0x0F,0x0F,0x0F,0x00,0x00,0x70,0x70,0x70,0xFF,0xFF,0x70,0x70,0x70,0x70, +0xF0,0xFF,0xFF,0x70,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0xFF,0xFF,0x03,0x00,0x00, +0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"#",3*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xC0,0xF8,0xFE,0x3F,0x0F,0x07,0xFF,0xFF,0x0F,0x1F,0xFE,0xFC, +0xF0,0x00,0x00,0x00,0x00,0x00,0x01,0x1F,0x3F,0x7E,0xF8,0xF0,0xFF,0xFF,0xC0,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0x00,0x00,0x01,0xFF,0xFF, +0x07,0x1F,0xFF,0xFE,0xF8,0x00,0x00,0x00,0x00,0x00,0x07,0x3F,0x7F,0xFC,0xF0,0xE0, +0xFF,0xFF,0xE0,0xF0,0x7F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"$",4*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFC,0xFE,0x07,0x03,0x1F,0xFE,0xF8,0x00,0x00,0x00,0xC0,0x78,0x0F, +0x01,0x00,0x00,0x00,0x00,0x3F,0xFF,0xE0,0xC0,0xF0,0x7F,0x1F,0x80,0xF0,0x1E,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x3C,0x07,0x00, +0xFC,0xFF,0x07,0x03,0xFF,0xFE,0xF0,0x00,0x00,0x00,0x00,0xC0,0x78,0x0F,0x01,0x00, +0x00,0x00,0x3F,0xFF,0xE0,0xC0,0xFF,0x7F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"%",5*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xFE,0x0F,0x07,0x07,0x0F,0xFF,0xFE,0xF8,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x9F,0xFF,0xF8,0xF0,0x78,0x3E,0x1F,0x07, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0xFF,0x07,0x03,0x07,0x1F,0x7F,0xFC, +0xF0,0xC0,0x80,0xFC,0xFC,0x7C,0x00,0x00,0x00,0x0F,0x3F,0x7F,0xF8,0xF0,0xE0,0xE0, +0xE0,0xE0,0xF3,0x7F,0x3F,0x3F,0x7F,0xF8,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"&",6*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x70, +0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x7E,0x1F,0x03, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF, +0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x03,0x1F,0x7E,0xF0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0F,0x0E,0x04,0x00},/*"(",8*/ + +{0x00,0x20,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x3F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF8,0x3F,0x0F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0F,0x07,0x03,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xE0,0xF0,0xE0,0xC0,0x80,0x80,0x00,0xFF,0xFF,0x00,0x80,0x80,0xC0, +0xE0,0xF0,0xE0,0x00,0x00,0x80,0xC0,0xE1,0xE3,0xF3,0x7F,0x3F,0xFF,0xFF,0x3F,0x7F, +0xF3,0xE3,0xE1,0xC0,0x80,0x00,0x00,0x01,0x03,0x03,0x01,0x00,0x00,0x00,0x7F,0x7F, +0x00,0x00,0x00,0x01,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"*",10*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0xC0,0xC0, +0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0xFF, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"+",11*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x39,0x1F, +0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, +0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",13*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0, +0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x7C, +0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0F, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0x1E,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x7C,0x0F,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"/",15*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xC0,0xF8,0xFC,0x3E,0x0F,0x07,0x07,0x07,0x07,0x1F,0x7E,0xFC, +0xF0,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x03,0x1F,0x3F,0x7C,0xF8,0xF0, +0xE0,0xE0,0xF0,0xF8,0x7E,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"0",16*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0x3C,0xFE,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x01,0x00,0x00,0xFF,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x80,0xF0,0xFC,0x3E,0x1F,0x0F,0x07,0x07,0x07,0x07,0x0F,0x7F,0xFE, +0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0, +0xFE,0xFF,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF8,0x7E, +0x1F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFC,0xFE,0xFF,0xF7,0xF3, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xE0,0xF8,0x7C,0x1E,0x0F,0x07,0x07,0x07,0x07,0x0F,0x3F,0xFE, +0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xE0,0xE0,0xF0, +0xFC,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x01, +0x03,0x03,0x0F,0xFF,0xFE,0xF8,0x00,0x00,0x00,0x00,0x0F,0x3F,0x7E,0x78,0xF0,0xE0, +0xE0,0xE0,0xF0,0xF8,0x7C,0x3F,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0x3F,0x0F,0x03,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFC,0xDF,0xC7,0xC3,0xC0,0xC0,0xC0,0xC0, +0xC0,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"4",20*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x0F,0x00,0x00,0x00,0x00,0x80,0xFE,0xFF,0x7F,0x78,0x38,0x3C,0x3C,0x38,0x38,0x78, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x0F,0x3F,0x7E,0x78,0xF0,0xE0,0xE0, +0xE0,0xE0,0xF0,0x78,0x7E,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0x7F,0x1F,0x07,0x01,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF8,0xFE,0xFF,0x77,0x71,0x78,0x78,0x70, +0xF0,0xE0,0xE0,0x80,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x03,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x0F,0x3F,0x7F,0x78,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0xF8,0x7E,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"6",22*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0xCF,0xFF, +0xFF,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF8,0xFE, +0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFE,0x7F, +0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF, +0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",23*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xF0,0xFC,0x3E,0x0F,0x07,0x07,0x07,0x07,0x07,0x0F,0x3E,0xFC, +0xF8,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0xFE,0xF0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0, +0xFE,0x3F,0x0F,0x00,0x00,0x00,0x00,0xF8,0xFE,0xFF,0x0F,0x03,0x03,0x01,0x01,0x01, +0x03,0x03,0x07,0xFF,0xFE,0xF8,0x00,0x00,0x00,0x07,0x3F,0x7F,0x78,0xF0,0xE0,0xE0, +0xE0,0xE0,0xF0,0xF0,0xF8,0x7F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",24*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xE0,0xF8,0xFC,0x3E,0x1F,0x0F,0x07,0x07,0x07,0x0F,0x1F,0x7E,0xFC, +0xF8,0xC0,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x80, +0xF0,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x0E,0x0E,0x8E,0xFE, +0xFF,0x7F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFE, +0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",25*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xF8, +0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8, +0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x40,0x31,0x1F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x78,0x3C,0x1E, +0x07,0x03,0x00,0x00,0x00,0x00,0xC0,0xE0,0x70,0x38,0x1C,0x0F,0x07,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x78,0xF0,0xC0,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x03,0x07,0x1E,0x3C,0x78,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00},/*"<",28*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70, +0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"=",29*/ + +{0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x01,0x03,0x0F,0x1E,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0E,0x1C, +0x78,0xF0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0, +0x70,0x38,0x1C,0x0F,0x07,0x01,0x00,0x00,0x00,0x80,0xE0,0xF0,0x78,0x1C,0x0E,0x07, +0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*">",30*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xE0,0xF8,0xFC,0x3E,0x0F,0x07,0x07,0x07,0x0F,0x1F,0xFE,0xFC, +0xF8,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF8, +0x7F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3F,0x3F, +0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xF8, +0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",31*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xC0,0x70,0x1C,0x06,0x02,0x03,0x81,0xC1,0xC1,0x83,0xC2,0x4E, +0x38,0xE0,0x00,0x00,0x00,0xFE,0x07,0x00,0xC0,0xF8,0x7E,0x0F,0x01,0x00,0xC0,0xFF, +0x3F,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x80,0x00,0x7F,0xFF,0xE0,0x80,0x80,0xE0, +0xFF,0xFF,0x80,0xC0,0xE0,0x7F,0x07,0x00,0x00,0x01,0x0F,0x1C,0x30,0x60,0xC1,0x81, +0x81,0x80,0x80,0xC1,0x61,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"@",32*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xFE,0xE0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFE,0xFF,0x1F,0x00,0x03,0x7F,0xFF, +0xFC,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFC,0xFF,0x7F,0x3B,0x38,0x38,0x38, +0x38,0x3F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x1F,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x3F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",33*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x1F,0x7E,0xFC, +0xF8,0xE0,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0, +0xFC,0x7F,0x1F,0x0F,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01, +0x01,0x03,0x07,0xFF,0xFE,0xFC,0xE0,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0, +0xF0,0xF0,0xF0,0xF0,0x7C,0x7F,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"B",34*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0xF0,0xFC,0xFE,0x1E,0x0F,0x07,0x07,0x07,0x0F,0x1F,0xFE, +0xFC,0xF0,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xF8,0xF8,0xF8,0x78,0x00,0x00,0x00,0x03,0x1F,0x3F,0x7E,0xF8,0xF0, +0xE0,0xE0,0xE0,0xF0,0x7C,0x7F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"C",35*/ +#if 0 + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x1E,0x7E,0xFC,0xF8, +0xE0,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x80,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0, +0xF0,0xF0,0x78,0x7C,0x3F,0x1F,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"D",36*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x0F,0x0F,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, +0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"E",37*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x0F,0x0F,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, +0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"F",38*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0x7E,0x1F,0x0F,0x07,0x07,0x0F,0x0F,0x7E,0xFC, +0xF8,0xC0,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x0F, +0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x03,0x1F,0x3F,0x7E,0xF8,0xF0, +0xE0,0xE0,0xE0,0xF0,0x7C,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"G",39*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, +0xE0,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"H",40*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x80,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x07,0x1F,0x7F,0xFC,0xF0,0xF0, +0xF0,0xF0,0xF0,0xF8,0x7F,0x3F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"J",42*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x80,0xC0,0xF0,0xFC,0x7E,0x1F, +0x0F,0x03,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE0,0xF8,0xFE,0xFF,0xEF,0x03,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x01,0x01,0x0F,0x3F, +0xFF,0xFC,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x01,0x07,0x3F,0xFF,0xFC,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"K",43*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"L",44*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0xFF,0xFF,0xE0,0x00,0x00,0xF8,0xFF, +0x7F,0x01,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0xF0,0xFC, +0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x3F, +0xFF,0xFF,0x1F,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"M",45*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x07,0x3F,0xFF,0xF8,0xC0,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x01,0x0F,0x7F, +0xFE,0xF0,0x80,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"N",46*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xE0,0xF8,0xFE,0x3E,0x0F,0x0F,0x07,0x07,0x0F,0x1F,0x7E,0xFC, +0xF8,0xC0,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x7F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x07,0x1F,0x7F,0x7C,0xF0,0xF0, +0xE0,0xE0,0xF0,0xF8,0x7E,0x3F,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"O",47*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x1E,0xFE, +0xFC,0xF0,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x80, +0xC0,0xFF,0xFF,0x7F,0x0F,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x07, +0x07,0x07,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xE0,0xF8,0xFE,0x3E,0x0F,0x0F,0x07,0x07,0x0F,0x1F,0x7E,0xFC, +0xF8,0xC0,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x7F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0xE0, +0xF8,0xE0,0x00,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0x00,0x07,0x1F,0x7F,0x7C,0xF0,0xF0, +0xE0,0xE0,0xF7,0xFF,0xFF,0xFF,0xEF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00},/*"Q",49*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x1F,0x3E,0xFC, +0xF8,0xE0,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0, +0xF0,0xFF,0x7F,0x3F,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x03,0x03,0x03,0x1F, +0xFF,0xFF,0xF1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x07,0x1F,0xFF,0xFC,0xF0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"R",50*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xF0,0xF8,0xFE,0x1E,0x0F,0x0F,0x07,0x07,0x0F,0x1F,0xFE,0xFC, +0xF0,0x80,0x00,0x00,0x00,0x00,0x0F,0x3F,0x7F,0x7C,0xF0,0xF0,0xE0,0xC0,0xC0,0x80, +0x81,0x01,0x01,0x01,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x01,0x01,0x03, +0x07,0x0F,0x1F,0xFF,0xFC,0xF8,0x00,0x00,0x00,0x03,0x1F,0x3F,0x7F,0xF8,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0x7C,0x7F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",51*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F, +0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"T",52*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x0F,0x3F,0x7F,0xF8,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0xFC,0x7F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"U",53*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x3F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFE, +0xFF,0xFF,0x07,0x00,0x00,0x00,0x03,0x7F,0xFF,0xFE,0xC0,0x00,0x00,0x00,0x00,0xF8, +0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF8,0x00,0xE0, +0xFF,0xFF,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF, +0xFF,0xFF,0x7F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"V",54*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0x00,0x00,0x3F,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x7F,0xFF,0xF0, +0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFE,0xFF,0xFF,0x07,0x00,0x00, +0xFF,0xFF,0xF0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0x0F,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"W",55*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x01,0x07,0x3F,0xFF,0xFC,0xE0,0x00,0x00,0x00,0x80,0xF0,0xFE,0x7F, +0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0xFF,0xF8,0xFE,0x7F,0x0F, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF8,0xFE,0x3F,0x0F,0x1F, +0xFF,0xFC,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0xC0,0xF8,0xFE,0x7F,0x0F,0x01,0x00, +0x00,0x00,0x00,0x07,0x1F,0xFF,0xFC,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"X",56*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x07,0x1F,0xFF,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFE, +0x7F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0xFF,0xFC,0xE0,0xF0,0xFE,0x7F, +0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Y",57*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0xCF,0xFF,0xFF, +0x7F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0x7F,0x1F, +0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFE,0x3F,0x0F,0x03, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFC,0xFF,0xFF,0xF3,0xF0,0xF0, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Z",58*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0x38,0x38,0x38,0x38,0x38,0x38,0x38, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x1F,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x00,0x00},/*"[",59*/ + +{0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x0F,0xFF,0xF0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x3F,0xFC,0xE0,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0xFE, +0xF0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0F,0x7F,0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x3E,0x20,0x00,0x00},/*"\",60*/ + +{0x00,0x00,0x38,0x38,0x38,0x38,0x38,0x38,0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x1C, +0x1C,0x1C,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/ + +{0x00,0x00,0x00,0x00,0xC0,0xE0,0xF8,0x7C,0x3C,0x3C,0x78,0xF0,0xC0,0x80,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60, +0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60},/*"_",63*/ + +{0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x7C,0xFC,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x04,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF0,0x78,0x38,0x38,0x38,0x38,0x78, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x81,0xC1,0xE1,0xF1,0x70,0x70,0x70,0x38, +0x38,0x38,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x3F,0x7F,0xFF,0xF0,0xE0,0xE0, +0xE0,0xF0,0x70,0x38,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"a",65*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF0,0x78,0x38,0x38,0x38,0x38,0xF8, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x78,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0x7E,0x3F,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"b",66*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xF0,0xF0,0x78,0x38,0x38,0x38,0x38,0x78, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x03,0x03,0x02,0x00,0x00,0x00,0x01,0x0F,0x3F,0x7F,0x78,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0x78,0x7F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF0,0xF8,0x78,0x38,0x38,0x38,0x78,0xF0, +0xC0,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x0F,0x3F,0x7F,0xF8,0xF0,0xE0, +0xE0,0xE0,0xF0,0x78,0x3F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"d",68*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0x78,0x38,0x38,0x38,0x38,0x78, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x38,0x38,0x38,0x38,0x38, +0x38,0x38,0x39,0x3F,0x3F,0x3E,0x00,0x00,0x00,0x00,0x0F,0x1F,0x7F,0x78,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0x78,0x7E,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"e",69*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xFE,0x0F,0x07,0x07,0x07,0x07, +0x07,0x0F,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38,0xFF,0xFF,0xFF,0x38,0x38,0x38, +0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"f",70*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0x78,0x38,0x38,0x38,0x78,0xF0, +0xF0,0xB8,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x3F,0xFF,0xF9,0xE0,0xC0,0xC0,0xC0, +0xE0,0xFF,0x7F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x8E,0xFF,0xFF,0x78,0x71,0x71, +0x71,0x71,0x71,0x70,0xF0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x06,0x1F,0x3F,0x38,0x70, +0x70,0x70,0x70,0x70,0x70,0x70,0x38,0x3F,0x1F,0x0F,0x00,0x00},/*"g",71*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xC0,0xE0,0x70,0x38,0x38,0x38,0x38, +0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"h",72*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x1F,0x0E,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x04, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8, +0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x78,0x78, +0x70,0x70,0x78,0x78,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00},/*"j",74*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0, +0x78,0x38,0x08,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF0,0x7C,0x1E,0x1F,0xFF, +0xFB,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x03,0x0F,0x3F,0xFC,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"k",75*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xC0,0x70,0x38,0x38,0xF8,0xF8,0xF0,0xE0,0x70, +0x38,0x38,0xF8,0xF8,0xF0,0x00,0x00,0xFF,0xFF,0x03,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"m",77*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xC0,0xE0,0x70,0x38,0x38,0x38,0x38, +0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"n",78*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0x78,0x38,0x38,0x38,0x78,0x78, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0F,0x1F,0x7F,0x78,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0x7C,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"o",79*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF0,0x78,0x38,0x38,0x38,0x78,0xF8, +0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x78,0xF0,0xE0, +0xE0,0xE0,0xE0,0xF0,0x7E,0x3F,0x1F,0x03,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00, +0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"p",80*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF0,0xF8,0x78,0x38,0x38,0x38,0x78,0xF0, +0xC0,0xF8,0xF8,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x1F,0x3F,0x7F,0xF8,0xE0,0xE0, +0xE0,0xE0,0xF0,0x78,0x3F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00},/*"q",81*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0x00,0xC0,0xE0,0xF0,0x70,0x78, +0x78,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x1F,0x07,0x01,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"r",82*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF8,0x78,0x38,0x38,0x38,0x38,0x78, +0xF0,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x3F,0x38,0x78,0x70,0x70, +0x70,0xF0,0xE1,0xC1,0x81,0x00,0x00,0x00,0x00,0x00,0x0E,0x3E,0x7E,0xF0,0xE0,0xE0, +0xE0,0xE0,0xE0,0xE0,0xFB,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"s",83*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38,0x38,0xFF,0xFF,0xFF,0x38,0x38,0x38, +0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x7F, +0xFF,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x1F,0x7F,0xFF,0xF0,0xE0,0xE0, +0xE0,0xE0,0x70,0x38,0x1F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"u",85*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xC0,0xF8,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x07,0x7F,0xFF,0xF0,0x80,0x00,0x00, +0xE0,0xFE,0xFF,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x3F,0xFF, +0xF8,0xFE,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"v",86*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x18,0xF8,0xF8,0xC0,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xE0,0x00, +0x00,0x00,0xF8,0xF8,0xF8,0x00,0x00,0x07,0xFF,0xFF,0xC0,0x80,0xFF,0xFF,0x01,0x1F, +0xFF,0xF0,0x00,0xFC,0xFF,0x3F,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0xFF,0x7F,0x00, +0x00,0x00,0x0F,0xFF,0xFE,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"w",87*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xE0, +0xF8,0x78,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xCF,0xFF,0xFC,0xFE, +0xDF,0x87,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0x3F,0x0F,0x03, +0x00,0x03,0x0F,0x1F,0x7E,0xF8,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"x",88*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xC0,0xF8,0xF8,0x38,0x00,0x00,0x00,0x00,0x00,0x07,0x7F,0xFF,0xF8,0x80,0x00,0x00, +0xE0,0xFC,0xFF,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x3F,0xFF, +0xF8,0xFE,0x7F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x78,0x78, +0x78,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"y",89*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0xF8, +0xF8,0xF8,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF8,0x7E, +0x1F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0xFE,0xFF,0xE7,0xE3, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"z",90*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF8,0x38,0x18,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xFF,0xFF, +0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03, +0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x07,0x1F,0x1F,0x1C,0x18,0x00,0x00,0x00},/*"{",91*/ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, +0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/ + +{0x00,0x00,0x18,0x18,0x38,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xC0,0x80,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1C,0x1F, +0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/ + +{0x00,0x00,0x60,0xF8,0x1E,0x0F,0x0F,0x1E,0x3C,0x78,0xF0,0xE0,0xE0,0xF0,0x7E,0x1C, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ +#endif +}; + + //16*16 点阵 黑体 const unsigned char Hzk1[][32]={ @@ -574,60 +1348,60 @@ const unsigned char F6x8_bat[]= const unsigned char F8X16_charage[]= { //0x00,0x00,0xC0,0xE0,0xB0,0x98,0x00,0x00,0x00,0x00,0x0C,0x06,0x03,0x01,0x00,0x00, - 0x00,0xF0,0x1C,0x10,0x10,0x1C,0xF0,0x00,0x00,0x00,0x01,0x3F,0x3F,0x01,0x00,0x00,}; + 0/*x00,0xF0,0x1C,0x10,0x10,0x1C,0xF0,0x00,0x00,0x00,0x01,0x3F,0x3F,0x01,0x00,0x00,*/}; const unsigned char F24X16_bat0[]= -{ 0x00,0x00,0xFC,0xFC,0x0E,0x0E,0x0C,0x1C,0x3C,0x6C,0xCC,0x8C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x00,0x00,0xFC,0xFC,0x0E,0x0E,0x0C,0x1C,0x3C,0x6C,0xCC,0x8C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x3E,0x3C,0x38,0x30, - 0x30,0x30,0x30,0x31,0x33,0x36,0x3C,0x38,0x30,0x70,0x70,0x30,0x3F,0x07,0x07,0x00,}; + 0x30,0x30,0x30,0x31,0x33,0x36,0x3C,0x38,0x30,0x70,0x70,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat1[]= -{ 0x00,0x00,0xFC,0xFC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x00,0x00,0xFC,0xFC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat2[]= -{ 0x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x37,0x37,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat3[]= -{ 0x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x37,0x37,0x30, - 0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat4[]= -{ 0x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C, +{ 0/*x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x37,0x37,0x30, - 0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat5[]= -{ 0x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, +{ 0/*x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x37,0x37,0x30, - 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat6[]= -{ 0x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, +{ 0/*x00,0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, 0x0C,0xEC,0xEC,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x37,0x37,0x30, - 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat1_charge[]= -{ 0x78,0x8E,0x88,0x88,0x8E,0x78,0x00,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x78,0x8E,0x88,0x88,0x8E,0x78,0x00,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat2_charge[]= -{ 0x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x37,0x37,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat3_charge[]= -{ 0x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, +{ 0/*x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x37,0x37,0x30, - 0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat4_charge[]= -{ 0x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C, +{ 0/*x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0x0C,0x0C, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x37,0x37,0x30, - 0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat5_charge[]= -{ 0x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, +{ 0/*x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, 0x0C,0x0C,0x0C,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x37,0x37,0x30, - 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x30,0x30,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F24X16_bat6_charge[]= -{ 0x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, +{ 0/*x78,0x8E,0x88,0x88,0x8E,0x78,0xE0,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC,0x0C,0xEC,0xEC, 0x0C,0xEC,0xEC,0x0C,0xFC,0xE0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x37,0x37,0x30, - 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x3F,0x07,0x07,0x00,}; + 0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x37,0x37,0x30,0x3F,0x07,0x07,0x00,*/}; const unsigned char F8X16_bat0[]= { 0x18,0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF}; @@ -650,7 +1424,7 @@ u8 OLED_GRAM[144][8]; //���Ժ��� void OLED_ColorTurn(u8 i) -{ +{/* if(i==0) { OLED_WR_Byte(0xA6,OLED_CMD);//������ʾ @@ -658,12 +1432,12 @@ void OLED_ColorTurn(u8 i) if(i==1) { OLED_WR_Byte(0xA7,OLED_CMD);//��ɫ��ʾ - } + }*/ } //��Ļ��ת180�� void OLED_DisplayTurn(u8 i) -{ +{/* if(i==0) { OLED_WR_Byte(0xC8,OLED_CMD);//������ʾ @@ -673,7 +1447,7 @@ void OLED_DisplayTurn(u8 i) { OLED_WR_Byte(0xC0,OLED_CMD);//��ת��ʾ OLED_WR_Byte(0xA0,OLED_CMD); - } + }*/ } //��ʱ @@ -888,7 +1662,7 @@ void OLED_DrawPoint(u8 x,u8 y,u8 t) //x2,y2:�������� void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode) { - u16 t; + /*u16 t; int xerr=0,yerr=0,delta_x,delta_y,distance; int incx,incy,uRow,uCol; delta_x=x2-x1; //������������ @@ -918,7 +1692,7 @@ void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode) yerr-=distance; uCol+=incy; } - } + }*/ } //x,y:Բ������ //r:Բ�İ뾶 @@ -951,7 +1725,7 @@ void OLED_DrawCircle(u8 x,u8 y,u8 r) void OLED_DrawFilledCircle(u8 x0, u8 y0, u8 r, u8 c) { - int16_t f = 1 - r; + /*int16_t f = 1 - r; int16_t ddF_x = 1; int16_t ddF_y = -2 * r; int16_t x = 0; @@ -980,7 +1754,7 @@ void OLED_DrawFilledCircle(u8 x0, u8 y0, u8 r, u8 c) OLED_DrawLine(x0 + y, y0 + x, x0 - y, y0 + x, c); OLED_DrawLine(x0 + y, y0 - x, x0 - y, y0 - x, c); - } + }*/ } @@ -991,36 +1765,64 @@ void OLED_DrawFilledCircle(u8 x0, u8 y0, u8 r, u8 c) //mode:0,��ɫ��ʾ;1,������ʾ void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1,u8 mode) { - u8 i,m,temp,size2,chr1; + u8 i,m,temp,size2,chr1,j; u8 x0=x,y0=y; if(size1==8)size2=6; + //else if(size1==40)size2=80; else size2=(size1/8+((size1%8)?1:0))*(size1/2); //�õ�����һ���ַ���Ӧ������ռ���ֽ��� chr1=chr-' '; //����ƫ�ƺ��ֵ - for(i=0;i>=1; - y++; + if(size1==48){ + u8 wide=18; + for(j=0;j<6;j++){ + for(i=0;i>=1; + y++; + } + x++; + y=y0; + } + x=x0; + y0+=8; + y=y0; } - x++; - if((size1!=8)&&((x-x0)==size1/2)) - {x=x0;y0=y0+8;} - y=y0; - } + }else{ + for(i=0;i>=1; + y++; + } + x++; + if((size1!=8)&&((x-x0)==size1/2)&&(size1!=40)) + { + x=x0; + y0=y0+8; + } + y=y0; + } + } + } } @@ -1043,12 +1845,12 @@ void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 size1,u8 mode) //m^n u32 OLED_Pow(u8 m,u8 n) { - u32 result=1; + /*u32 result=1; while(n--) { result*=m; - } - return result; + }*/ + return 0;//result; } //��ʾ���� @@ -1059,7 +1861,7 @@ u32 OLED_Pow(u8 m,u8 n) //mode:0,��ɫ��ʾ;1,������ʾ void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size1,u8 mode) { - u8 t,temp,m=0; + /*u8 t,temp,m=0; if(size1==8)m=2; for(t=0;t SSID_MAX_LEN) req_ssid_len = SSID_MAX_LEN; + bk_printf("6666666666666666666666666\r\n"); + #if 0 print_hex_dump("fci: ", &fci, sizeof(fci)); bk_printf(" ssid: |%s|\n", fci.ssid); @@ -1066,6 +1073,7 @@ OSStatus bk_wlan_start_sta(network_InitTypeDef_st *inNetworkInitPara) (inNetworkInitPara->wifi_bssid && os_memcmp(inNetworkInitPara->wifi_bssid, fci.bssid, 6) == 0 && os_strcmp(inNetworkInitPara->wifi_key, (char*)fci.pwd) == 0)) { + chan = fci.channel; psk = fci.psk; @@ -1085,6 +1093,7 @@ OSStatus bk_wlan_start_sta(network_InitTypeDef_st *inNetworkInitPara) } } #endif + bk_printf("777777777777777777777\r\n"); /* * let wpa_psk_cal thread to caculate psk. @@ -1092,6 +1101,7 @@ OSStatus bk_wlan_start_sta(network_InitTypeDef_st *inNetworkInitPara) */ wpa_psk_request(g_sta_param_ptr->ssid.array, g_sta_param_ptr->ssid.length, (char*)g_sta_param_ptr->key, psk, psk_len); + bk_printf("888888888888888888888\r\n"); #if CFG_STA_AUTO_RECONNECT /* set auto reconnect parameters */ @@ -1381,6 +1391,7 @@ OSStatus bk_wlan_start(network_InitTypeDef_st *inNetworkInitPara) } else if(inNetworkInitPara->wifi_mode == BK_STATION) { + bk_printf("111111111111111\r\n"); #if CFG_ROLE_LAUNCH lreq.req_type = LAUNCH_REQ_STA; lreq.descr = *inNetworkInitPara; diff --git a/beken_rtt_sdk_release-SDK_3.0.76/config/rtconfig/rtconfig_bk7252n.h b/beken_rtt_sdk_release-SDK_3.0.76/config/rtconfig/rtconfig_bk7252n.h index 9ff26718..e3113981 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/config/rtconfig/rtconfig_bk7252n.h +++ b/beken_rtt_sdk_release-SDK_3.0.76/config/rtconfig/rtconfig_bk7252n.h @@ -188,7 +188,7 @@ #define PKG_USING_WEBCLIENT #define WEBCLIENT_HEADER_BUFSZ 4096 #define WEBCLIENT_RESPONSE_BUFSZ 4096 -#define PKG_USING_WEBCLIENT_LATEST_VERSION +//#define PKG_USING_WEBCLIENT_LATEST_VERSION //#define PKG_USING_CJSON #define PKG_USING_CJSON_V102 @@ -279,7 +279,7 @@ #define BEKEN_USING_UART2 #define BEKEN_USING_WDT #define BEKEN_USING_FLASH -#define BEKEN_USING_PWM +//#define BEKEN_USING_PWM #define BEKEN_USING_GPIO #define BEKEN_USING_WLAN #define LWIP_NETIF_HOSTNAME 1 @@ -296,7 +296,7 @@ #define PKG_USING_PLAYER #define PKG_USING_PLAYER_V127 #define PLAYER_DEVICE "sound" -#define PLAYER_DEFAULT_VOLUME 65 +#define PLAYER_DEFAULT_VOLUME 0 /* PLAYER �ڲ�֧�� CODEC */ //#define PLAYER_ENABLE_CODEC_PCM /* PCM���� */ @@ -318,7 +318,7 @@ #define PLAYER_USING_DEBUG 0 /* 0:�����汾, 1:���԰汾 */ /* PLAYER Example */ -//#define PLAYER_USING_EXAMPLE00 +#define PLAYER_USING_EXAMPLE00 //#define PLAYER_USING_EXAMPLE02 //#define PLAYER_USING_EXAMPLE03 /* PLAYER END **************************************************************************** */ @@ -327,12 +327,12 @@ /* Test samples */ -//#define PKG_USING_RT_OTA +#define PKG_USING_RT_OTA #define RT_USING_PTHREADS /* voice changer */ -#define CONFIG_VOICE_CHANGER 0 +//#define CONFIG_VOICE_CHANGER 0 /* tools packages */ #define PKG_USING_EASYFLASH diff --git a/beken_rtt_sdk_release-SDK_3.0.76/config/sys_config.h b/beken_rtt_sdk_release-SDK_3.0.76/config/sys_config.h index 2eb5f7c5..2864448e 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/config/sys_config.h +++ b/beken_rtt_sdk_release-SDK_3.0.76/config/sys_config.h @@ -99,7 +99,7 @@ */ #define CFG_WIFI_AP_HW_MODE 0 -#define CfG_MACRO_MAYBE_UNUSED 1 +#define CfG_MACRO_MAYBE_UNUSED 0 #if CfG_MACRO_MAYBE_UNUSED #define CFG_WIFI_RSSI 1 #define CFG_WIFI_VERSION 1 @@ -160,7 +160,7 @@ /* The following four macro will be reconstruct * TODO */ -#define CFG_ENABLE_SDIO_DEV 1 +#define CFG_ENABLE_SDIO_DEV 0 #define CFG_SDIO 0 #define CFG_SDIO_TRANS 0 #define CFG_REAL_SDIO 0 @@ -182,7 +182,7 @@ #define CFG_SUPPORT_UVC 0 #endif #define CFG_USE_USB_CHARGE 0 -#define CFG_USE_QSPI 1 +#define CFG_USE_QSPI 0 /*section 4-----DEBUG macro config-----*/ #define CFG_UART_DEBUG 0 @@ -233,8 +233,8 @@ #define CFG_USE_LWIP_NETSTACK 1 /*section 9-----for DHCP servicers and client*/ -#define CFG_USE_DHCP 1 -#define CFG_USE_DHCPD 1 // for servicers in ap mode +#define CFG_USE_DHCP 0//1 +#define CFG_USE_DHCPD 0//1 // for servicers in ap mode /*section 11-----temperature detect*/ #define CFG_USE_TEMPERATURE_DETECT 1 @@ -248,10 +248,10 @@ #if CFG_WIFI_P2P #define CFG_USE_APP_DEMO_VIDEO_TRANSFER 0 -#define CFG_USE_CAMERA_INTF 1 +#define CFG_USE_CAMERA_INTF 0 #else #define CFG_USE_APP_DEMO_VIDEO_TRANSFER 0 -#define CFG_USE_CAMERA_INTF 1 +#define CFG_USE_CAMERA_INTF 0 #endif #define CFG_USE_HSLAVE_SPI 0 #define CFG_USE_SPIDMA 0 @@ -323,9 +323,9 @@ /*section 21 ----- support ota*/ #if( ( CFG_SUPPORT_ALIOS ) || ( CFG_SUPPORT_RTT ) || (CFG_SUPPORT_MATTER == 1)) -#define CFG_SUPPORT_OTA_HTTP 1 +#define CFG_SUPPORT_OTA_HTTP 0 #else -#define CFG_SUPPORT_OTA_HTTP 1 +#define CFG_SUPPORT_OTA_HTTP 0 #endif #define CFG_SUPPORT_OTA_TFTP 0 @@ -421,7 +421,7 @@ #undef CFG_MBEDTLS #define CFG_MBEDTLS 1 #endif -#define CFG_USE_I2S 1 +#define CFG_USE_I2S 0 /* watchdog, freertos only */ #define CFG_INT_WDG_ENABLED 1 @@ -430,10 +430,10 @@ #define CFG_TASK_WDG_PERIOD_MS 60000 /*section 29 ----- peripheral interface open */ -#define CFG_USE_SPI 1 -#define CFG_USE_SPI_MASTER 1 -#define CFG_USE_SPI_SLAVE 1 -#define CFG_USE_SPI_DMA 1 +#define CFG_USE_SPI 0 +#define CFG_USE_SPI_MASTER 0 +#define CFG_USE_SPI_SLAVE 0 +#define CFG_USE_SPI_DMA 0 /*section 30 ----- peripheral interface test case */ #define CFG_PERIPHERAL_TEST 0 diff --git a/beken_rtt_sdk_release-SDK_3.0.76/drivers/wlan/drv_wlan.c b/beken_rtt_sdk_release-SDK_3.0.76/drivers/wlan/drv_wlan.c index fd5a4f7d..46e90411 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/drivers/wlan/drv_wlan.c +++ b/beken_rtt_sdk_release-SDK_3.0.76/drivers/wlan/drv_wlan.c @@ -1152,6 +1152,7 @@ static void app_demo_softap_rw_connected_event_func(void) int beken_wlan_hw_init(void) { + if(1){ struct rt_wlan_device *wlan = RT_NULL; struct beken_wifi_info *wifi_info = RT_NULL; rt_err_t result = RT_EOK; @@ -1184,6 +1185,7 @@ int beken_wlan_hw_init(void) #endif bk_wlan_status_register_cb(wlan_event_handle); rt_kprintf("beken wlan hw init\r\n"); +} return 0; } diff --git a/beken_rtt_sdk_release-SDK_3.0.76/rtconfig.h b/beken_rtt_sdk_release-SDK_3.0.76/rtconfig.h index 9ff26718..e3113981 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/rtconfig.h +++ b/beken_rtt_sdk_release-SDK_3.0.76/rtconfig.h @@ -188,7 +188,7 @@ #define PKG_USING_WEBCLIENT #define WEBCLIENT_HEADER_BUFSZ 4096 #define WEBCLIENT_RESPONSE_BUFSZ 4096 -#define PKG_USING_WEBCLIENT_LATEST_VERSION +//#define PKG_USING_WEBCLIENT_LATEST_VERSION //#define PKG_USING_CJSON #define PKG_USING_CJSON_V102 @@ -279,7 +279,7 @@ #define BEKEN_USING_UART2 #define BEKEN_USING_WDT #define BEKEN_USING_FLASH -#define BEKEN_USING_PWM +//#define BEKEN_USING_PWM #define BEKEN_USING_GPIO #define BEKEN_USING_WLAN #define LWIP_NETIF_HOSTNAME 1 @@ -296,7 +296,7 @@ #define PKG_USING_PLAYER #define PKG_USING_PLAYER_V127 #define PLAYER_DEVICE "sound" -#define PLAYER_DEFAULT_VOLUME 65 +#define PLAYER_DEFAULT_VOLUME 0 /* PLAYER �ڲ�֧�� CODEC */ //#define PLAYER_ENABLE_CODEC_PCM /* PCM���� */ @@ -318,7 +318,7 @@ #define PLAYER_USING_DEBUG 0 /* 0:�����汾, 1:���԰汾 */ /* PLAYER Example */ -//#define PLAYER_USING_EXAMPLE00 +#define PLAYER_USING_EXAMPLE00 //#define PLAYER_USING_EXAMPLE02 //#define PLAYER_USING_EXAMPLE03 /* PLAYER END **************************************************************************** */ @@ -327,12 +327,12 @@ /* Test samples */ -//#define PKG_USING_RT_OTA +#define PKG_USING_RT_OTA #define RT_USING_PTHREADS /* voice changer */ -#define CONFIG_VOICE_CHANGER 0 +//#define CONFIG_VOICE_CHANGER 0 /* tools packages */ #define PKG_USING_EASYFLASH diff --git a/beken_rtt_sdk_release-SDK_3.0.76/samples/ota/http/http_client_ota.c b/beken_rtt_sdk_release-SDK_3.0.76/samples/ota/http/http_client_ota.c index 53ae77ed..4abb3f61 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/samples/ota/http/http_client_ota.c +++ b/beken_rtt_sdk_release-SDK_3.0.76/samples/ota/http/http_client_ota.c @@ -34,7 +34,7 @@ #define HTTP_OTA_BUFF_LEN 4096 #define HTTP_OTA_DL_DELAY (10 * RT_TICK_PER_SECOND) -#define HTTP_OTA_URL "http://192.168.10.135:80/rtthread.rbl" +#define HTTP_OTA_URL "http://192.168.7.105:8080/all_2M.1220.bin" static void print_progress(size_t cur_size, size_t total_size) { @@ -127,6 +127,8 @@ static int http_ota_fw_download(const char *uri) // Check if the OTA file is too large if (session->content_length > dl_part->len) { + rt_kprintf("dl_part->len : %d\n", dl_part->len); + rt_kprintf("session->content_length : %d\n", session->content_length); LOG_E("Firmware download failed! OTA file is too big!"); goto __exit; } @@ -192,7 +194,7 @@ static int http_ota_fw_download(const char *uri) log_i("OTA file raw size %d bytes.", raw_size); // Gets the describe partition name of the OTA file - rt_strncpy(desc_part_name, &buffer_read[12], 16); + rt_strncpy(desc_part_name, (const char *)&buffer_read[12], 16); /* dump new firmware info. */ { diff --git a/beken_rtt_sdk_release-SDK_3.0.76/samples/samples_config.h b/beken_rtt_sdk_release-SDK_3.0.76/samples/samples_config.h index b86415d2..3b011045 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/samples/samples_config.h +++ b/beken_rtt_sdk_release-SDK_3.0.76/samples/samples_config.h @@ -28,7 +28,7 @@ //#define RT_USING_AIRKISS /*http ota sample */ -//#define SAMPLE_USING_OTA_HTTP +#define SAMPLE_USING_OTA_HTTP /* web net sample */ //#define WEBNET_SAMPLE diff --git a/beken_rtt_sdk_release-SDK_3.0.76/tools/scripts/post_action.py b/beken_rtt_sdk_release-SDK_3.0.76/tools/scripts/post_action.py index 70dfb2dc..dbf02c86 100644 --- a/beken_rtt_sdk_release-SDK_3.0.76/tools/scripts/post_action.py +++ b/beken_rtt_sdk_release-SDK_3.0.76/tools/scripts/post_action.py @@ -44,7 +44,7 @@ out_json_2M = { "version": "2M.1220", "partition": "app", "start_addr": "0x00011000", - "size": "1156K" + "size": "1156K"#1020k } ] }