Jun Suto / Mbed OS STM32F446_MG400_DIRECT_V0R17

Dependencies:  

Committer:
js
Date:
Fri Oct 21 10:54:03 2022 +0000
Revision:
2:71b3736a1bd7
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
js 2:71b3736a1bd7 1
js 2:71b3736a1bd7 2 #include "mbed.h"
js 2:71b3736a1bd7 3 #include "main.h"
js 2:71b3736a1bd7 4 #include "nextion_lcd.h"
js 2:71b3736a1bd7 5 #include "APP.h"
js 2:71b3736a1bd7 6 #include "main.h"
js 2:71b3736a1bd7 7 static UnbufferedSerial *nx_lcd;
js 2:71b3736a1bd7 8
js 2:71b3736a1bd7 9 char lcd_print_buf[64];
js 2:71b3736a1bd7 10 Ticker LCD_RX_TIME_OUT;
js 2:71b3736a1bd7 11 unsigned char page=0;//lcd画面ページ
js 2:71b3736a1bd7 12 unsigned char page_bak=0;//lcd画面ページ(一個前のページ)
js 2:71b3736a1bd7 13 unsigned char PAUSE_F=0;//一時停止;
js 2:71b3736a1bd7 14 unsigned char lcd_rx_buf_cnt=0;
js 2:71b3736a1bd7 15 char lcd_rx_buf[64];
js 2:71b3736a1bd7 16 int nx_lineIndex;
js 2:71b3736a1bd7 17 char lot_edit_set[32];
js 2:71b3736a1bd7 18 unsigned char LOT_EDIT_F=0;
js 2:71b3736a1bd7 19
js 2:71b3736a1bd7 20
js 2:71b3736a1bd7 21 extern char lcd_print_buf[64];
js 2:71b3736a1bd7 22 extern unsigned char a_read_ng;//audio file read ng
js 2:71b3736a1bd7 23
js 2:71b3736a1bd7 24 extern unsigned char tp_mask;//1=タッチパネルマスク
js 2:71b3736a1bd7 25
js 2:71b3736a1bd7 26 void nx_lcd_rx ();
js 2:71b3736a1bd7 27 void nx_sw_chk(void);
js 2:71b3736a1bd7 28 unsigned char touch_id=0;
js 2:71b3736a1bd7 29 unsigned char vc_ds_sw=0;//DUAL STATE SWの論理確認用
js 2:71b3736a1bd7 30 unsigned char val_get=0;//ボリューム取得完了フラグ(1で完了)
js 2:71b3736a1bd7 31 unsigned char val_st=0;//ボリューム状態
js 2:71b3736a1bd7 32 unsigned char page_get=0;//ページ取得済み1
js 2:71b3736a1bd7 33 unsigned char page_st=0xFF;//ページNo
js 2:71b3736a1bd7 34
js 2:71b3736a1bd7 35 unsigned char touch_p=0xFF;//ボタンタッチ時のページ識別ID
js 2:71b3736a1bd7 36 unsigned char touch_t=0xFF;//ボタンのトグル状態 1=on 0=off(タッチパネル設定でボタンを離した時にもデータ送信設定した場合の識別)
js 2:71b3736a1bd7 37
js 2:71b3736a1bd7 38 unsigned char lcd_page=0;//lcdからページを取得した場合、ページNoが入る
js 2:71b3736a1bd7 39
js 2:71b3736a1bd7 40
js 2:71b3736a1bd7 41 char temdat[3];
js 2:71b3736a1bd7 42 char dcdat[3];
js 2:71b3736a1bd7 43 ///ロット編集結果の取り込み//(SD保存する場合は、config.cppのLOT_DAT_WR()を実行
js 2:71b3736a1bd7 44 void lot_edit_chk(void){
js 2:71b3736a1bd7 45 for(unsigned char cp=0; cp<lcd_rx_buf_cnt ; cp++){
js 2:71b3736a1bd7 46 lot_edit_set[cp]=lcd_rx_buf[cp];
js 2:71b3736a1bd7 47 }
js 2:71b3736a1bd7 48 lot_edit_set[lcd_rx_buf_cnt-1]=NULL;//で終端
js 2:71b3736a1bd7 49 buf_clr();
js 2:71b3736a1bd7 50 LOT_EDIT_F=1;//1=ロット編集あり
js 2:71b3736a1bd7 51
js 2:71b3736a1bd7 52 }
js 2:71b3736a1bd7 53 void nx_printf(char *txt){
js 2:71b3736a1bd7 54 char tx_buf[64];
js 2:71b3736a1bd7 55 unsigned char len = strlen(txt);//文字列の長さを確認
js 2:71b3736a1bd7 56 nx_lcd->write(txt,len);
js 2:71b3736a1bd7 57 }
js 2:71b3736a1bd7 58
js 2:71b3736a1bd7 59 ///受信タイムアウト処理/////
js 2:71b3736a1bd7 60 void LCD_RX_TIMEOUT_IRQ(void){
js 2:71b3736a1bd7 61 LCD_RX_TIME_OUT.detach();//シリアル受信タイムアウトカウンタ停止
js 2:71b3736a1bd7 62 buf_clr();
js 2:71b3736a1bd7 63 }
js 2:71b3736a1bd7 64 void buf_clr(void){
js 2:71b3736a1bd7 65 char rxdat[8];
js 2:71b3736a1bd7 66 //読み捨て処理
js 2:71b3736a1bd7 67 while(nx_lcd->readable()==1){
js 2:71b3736a1bd7 68 nx_lcd->read(rxdat,1);
js 2:71b3736a1bd7 69 }
js 2:71b3736a1bd7 70
js 2:71b3736a1bd7 71 for(unsigned char clrcnt=0; clrcnt<sizeof(lcd_rx_buf); clrcnt++){
js 2:71b3736a1bd7 72 lcd_rx_buf[clrcnt]=0x00;
js 2:71b3736a1bd7 73
js 2:71b3736a1bd7 74 }
js 2:71b3736a1bd7 75 lcd_rx_buf_cnt=0;
js 2:71b3736a1bd7 76 nx_lineIndex=0;
js 2:71b3736a1bd7 77
js 2:71b3736a1bd7 78 }
js 2:71b3736a1bd7 79
js 2:71b3736a1bd7 80 unsigned char nx_val_get(char *obj){
js 2:71b3736a1bd7 81 char buf[64];
js 2:71b3736a1bd7 82 unsigned char time_out=0;
js 2:71b3736a1bd7 83 unsigned char tp_mask_bak=tp_mask;
js 2:71b3736a1bd7 84 if(tp_mask_bak==1){
js 2:71b3736a1bd7 85 tp_mask=0;//1=タッチパネルマスク解除
js 2:71b3736a1bd7 86 }
js 2:71b3736a1bd7 87 val_get=0;
js 2:71b3736a1bd7 88 val_st=0xFF;
js 2:71b3736a1bd7 89 sprintf(buf,"get %s.val",obj);
js 2:71b3736a1bd7 90 nx_printf(buf);
js 2:71b3736a1bd7 91 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 92 fflush(stdout);
js 2:71b3736a1bd7 93 while(val_get==0 && time_out<200){//受信割り込みタイムアウトを100msにしているのでそれ以上は待つこと
js 2:71b3736a1bd7 94 time_out++;
js 2:71b3736a1bd7 95 wait_ms(10);
js 2:71b3736a1bd7 96 }
js 2:71b3736a1bd7 97 if(tp_mask_bak==1){
js 2:71b3736a1bd7 98 tp_mask=1;//1=タッチパネルマスク
js 2:71b3736a1bd7 99 }
js 2:71b3736a1bd7 100 if(time_out>=200){
js 2:71b3736a1bd7 101 tp_mask=1;//1=タッチパネルマスク
js 2:71b3736a1bd7 102 return 0xFF;
js 2:71b3736a1bd7 103 }else{
js 2:71b3736a1bd7 104 tp_mask=1;//1=タッチパネルマスク
js 2:71b3736a1bd7 105 return val_st;
js 2:71b3736a1bd7 106 }
js 2:71b3736a1bd7 107 }
js 2:71b3736a1bd7 108
js 2:71b3736a1bd7 109 void nx_val_set(char *obj,char cont){
js 2:71b3736a1bd7 110 char buf[64];
js 2:71b3736a1bd7 111 unsigned char time_out=0;
js 2:71b3736a1bd7 112 val_get=0;
js 2:71b3736a1bd7 113 sprintf(buf,"%s.val=%d",obj,cont);
js 2:71b3736a1bd7 114 nx_printf(buf);
js 2:71b3736a1bd7 115 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 116 fflush(stdout);
js 2:71b3736a1bd7 117 }
js 2:71b3736a1bd7 118
js 2:71b3736a1bd7 119 unsigned char nx_val_get_cbox(char no){
js 2:71b3736a1bd7 120 char buf[64];
js 2:71b3736a1bd7 121 unsigned long time_out=0;
js 2:71b3736a1bd7 122 unsigned char tp_mask_bak=tp_mask;
js 2:71b3736a1bd7 123 if(tp_mask_bak==1){
js 2:71b3736a1bd7 124 tp_mask=0;//1=タッチパネルマスク解除
js 2:71b3736a1bd7 125 }
js 2:71b3736a1bd7 126 val_get=0;
js 2:71b3736a1bd7 127 sprintf(buf,"get c%d.val",no);
js 2:71b3736a1bd7 128 nx_printf(buf);
js 2:71b3736a1bd7 129 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 130 fflush(stdout);
js 2:71b3736a1bd7 131 while(val_get==0 && time_out<200){//受信割り込みタイムアウトを100msにしているのでそれ以上は待つこと
js 2:71b3736a1bd7 132 time_out++;
js 2:71b3736a1bd7 133 wait_ms(10);
js 2:71b3736a1bd7 134 }
js 2:71b3736a1bd7 135 if(tp_mask_bak==1){
js 2:71b3736a1bd7 136 tp_mask=1;//1=タッチパネルマスク
js 2:71b3736a1bd7 137 }
js 2:71b3736a1bd7 138 if(time_out>=200){
js 2:71b3736a1bd7 139 return 0xFF;
js 2:71b3736a1bd7 140 }else{
js 2:71b3736a1bd7 141 return val_st;
js 2:71b3736a1bd7 142 }
js 2:71b3736a1bd7 143 }
js 2:71b3736a1bd7 144 unsigned char nx_get(char *obj){
js 2:71b3736a1bd7 145 char buf[64];
js 2:71b3736a1bd7 146
js 2:71b3736a1bd7 147 unsigned char time_out=0;
js 2:71b3736a1bd7 148 unsigned char tp_mask_bak=tp_mask;
js 2:71b3736a1bd7 149 if(tp_mask_bak==1){
js 2:71b3736a1bd7 150 tp_mask=0;//1=タッチパネルマスク解除
js 2:71b3736a1bd7 151 }
js 2:71b3736a1bd7 152 val_get=0;
js 2:71b3736a1bd7 153 val_st=0xFF;
js 2:71b3736a1bd7 154 buf_clr();
js 2:71b3736a1bd7 155 sprintf(buf,"get %s",obj);
js 2:71b3736a1bd7 156 nx_printf(buf);
js 2:71b3736a1bd7 157 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 158 fflush(stdout);
js 2:71b3736a1bd7 159 while(val_get==0 && time_out<200){//受信割り込みタイムアウトを100msにしているのでそれ以上は待つこと
js 2:71b3736a1bd7 160 time_out++;
js 2:71b3736a1bd7 161 wait_ms(1);
js 2:71b3736a1bd7 162 }
js 2:71b3736a1bd7 163 if(tp_mask_bak==1){
js 2:71b3736a1bd7 164 tp_mask=1;//1=タッチパネルマスク
js 2:71b3736a1bd7 165 }
js 2:71b3736a1bd7 166 if(time_out>=200){
js 2:71b3736a1bd7 167 sprintf(lcd_print_buf,"RTC受信不良 cnt=%d",lcd_rx_buf_cnt);
js 2:71b3736a1bd7 168 lcd_print("t0",lcd_print_buf);
js 2:71b3736a1bd7 169 for(;;);
js 2:71b3736a1bd7 170 return 0;
js 2:71b3736a1bd7 171 }else{
js 2:71b3736a1bd7 172 return val_st;
js 2:71b3736a1bd7 173 }
js 2:71b3736a1bd7 174 }
js 2:71b3736a1bd7 175 unsigned char nx_page_get(){
js 2:71b3736a1bd7 176 char buf[64];
js 2:71b3736a1bd7 177 unsigned char time_out=0;
js 2:71b3736a1bd7 178 unsigned char tp_mask_bak=tp_mask;
js 2:71b3736a1bd7 179 if(tp_mask_bak==1){
js 2:71b3736a1bd7 180 tp_mask=0;//1=タッチパネルマスク解除
js 2:71b3736a1bd7 181 }
js 2:71b3736a1bd7 182 page_get=0;
js 2:71b3736a1bd7 183 page_st=0xFF;
js 2:71b3736a1bd7 184 buf_clr();
js 2:71b3736a1bd7 185 nx_printf("sendme");
js 2:71b3736a1bd7 186 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 187 fflush(stdout);
js 2:71b3736a1bd7 188
js 2:71b3736a1bd7 189 while(page_get==0 && time_out<200){//受信割り込みタイムアウトを100msにしているのでそれ以上は待つこと
js 2:71b3736a1bd7 190 time_out++;
js 2:71b3736a1bd7 191 wait_ms(10);
js 2:71b3736a1bd7 192 }
js 2:71b3736a1bd7 193 if(tp_mask_bak==1){
js 2:71b3736a1bd7 194 tp_mask=1;//1=タッチパネルマスク解除
js 2:71b3736a1bd7 195 }
js 2:71b3736a1bd7 196 if(time_out>=200){
js 2:71b3736a1bd7 197 printf("page get ng\r\n");
js 2:71b3736a1bd7 198 fflush(stdout);
js 2:71b3736a1bd7 199 return 0xFF;
js 2:71b3736a1bd7 200 }else{
js 2:71b3736a1bd7 201 //printf("page=%d\r\n",page_st);
js 2:71b3736a1bd7 202 fflush(stdout);
js 2:71b3736a1bd7 203 return page_st;
js 2:71b3736a1bd7 204 }
js 2:71b3736a1bd7 205 }
js 2:71b3736a1bd7 206
js 2:71b3736a1bd7 207 //LCD I/Fデータ受信割り込み//////
js 2:71b3736a1bd7 208 void nx_lcd_rx () {
js 2:71b3736a1bd7 209 unsigned char rxsize=nx_lcd->size();
js 2:71b3736a1bd7 210 char rxdat[8];
js 2:71b3736a1bd7 211 nx_lcd->read(rxdat,1);
js 2:71b3736a1bd7 212 lcd_rx_buf[lcd_rx_buf_cnt]=rxdat[0];//マスク中は読み捨て
js 2:71b3736a1bd7 213 // sprintf(lcd_print_buf,"rxsize=%d\r\n",rxsize);
js 2:71b3736a1bd7 214 //pc_printf(lcd_print_buf);
js 2:71b3736a1bd7 215 if(tp_mask==0){//1=タッチパネルマスク
js 2:71b3736a1bd7 216 lcd_rx_buf_cnt++;
js 2:71b3736a1bd7 217 ///タイムアウトセット最初のデータ受信から一定時間終端コードがこない場合は、タイムアウト処理する
js 2:71b3736a1bd7 218 //下記を記載するとos err
js 2:71b3736a1bd7 219 if(lcd_rx_buf_cnt==1){//1バイト目を受信したらタイムアウトカウンタを起動する。
js 2:71b3736a1bd7 220 LCD_RX_TIME_OUT.attach(&LCD_RX_TIMEOUT_IRQ,0.2); ////0.1
js 2:71b3736a1bd7 221 }
js 2:71b3736a1bd7 222 //バッファオーバーフロー処理////
js 2:71b3736a1bd7 223 if(lcd_rx_buf_cnt>sizeof(lcd_rx_buf)){
js 2:71b3736a1bd7 224 buf_clr();
js 2:71b3736a1bd7 225 }
js 2:71b3736a1bd7 226 ////終端コード受信時の処理///
js 2:71b3736a1bd7 227 if(lcd_rx_buf[lcd_rx_buf_cnt-3]==0xFF && lcd_rx_buf[lcd_rx_buf_cnt-2]==0xFF && lcd_rx_buf[lcd_rx_buf_cnt-1]==0xFF){
js 2:71b3736a1bd7 228 switch (lcd_rx_buf[0]) {
js 2:71b3736a1bd7 229 ////caseはnextion lcdのSWに割り当てられたidを記載する///
js 2:71b3736a1bd7 230 case 0x65 : ///通常のボタン押下//
js 2:71b3736a1bd7 231 touch_p=lcd_rx_buf[1]; //ボタンタッチ時のページ識別ID
js 2:71b3736a1bd7 232 touch_id=lcd_rx_buf[2]; //タッチボタンのIDを取得
js 2:71b3736a1bd7 233 touch_t=lcd_rx_buf[3]; //タッチ時か、リリース時かを識別
js 2:71b3736a1bd7 234 // printf("touch_id=%x\r\n",touch_id);
js 2:71b3736a1bd7 235 if(page==P_MAIN && touch_id==BT1_PAUSE){//一時停止がおされた場合
js 2:71b3736a1bd7 236 PAUSE_F=1;//一時停止
js 2:71b3736a1bd7 237 }
js 2:71b3736a1bd7 238 if(touch_p !=page){
js 2:71b3736a1bd7 239 printf("TOUCH PAGE NG!!\r\n");
js 2:71b3736a1bd7 240 lcd_print("t0","タッチパネル通信異常が発生しました。");
js 2:71b3736a1bd7 241 ALM_HOLD_SET();
js 2:71b3736a1bd7 242 }
js 2:71b3736a1bd7 243 break;
js 2:71b3736a1bd7 244 case 0x66 : //page取得///
js 2:71b3736a1bd7 245 page_get=1;
js 2:71b3736a1bd7 246 page_st=lcd_rx_buf[1];
js 2:71b3736a1bd7 247 break;
js 2:71b3736a1bd7 248 case 0x71 : //val取得////
js 2:71b3736a1bd7 249 val_st=lcd_rx_buf[1];
js 2:71b3736a1bd7 250 val_get=1;
js 2:71b3736a1bd7 251 break;
js 2:71b3736a1bd7 252
js 2:71b3736a1bd7 253
js 2:71b3736a1bd7 254 }
js 2:71b3736a1bd7 255 buf_clr();
js 2:71b3736a1bd7 256 }
js 2:71b3736a1bd7 257 if(lcd_rx_buf[lcd_rx_buf_cnt-1]==0x21 &&lcd_rx_buf[lcd_rx_buf_cnt-2]==0x21 && lcd_rx_buf_cnt>=1){
js 2:71b3736a1bd7 258 lot_edit_chk();
js 2:71b3736a1bd7 259 }
js 2:71b3736a1bd7 260 }
js 2:71b3736a1bd7 261 }
js 2:71b3736a1bd7 262
js 2:71b3736a1bd7 263
js 2:71b3736a1bd7 264 void nextion_lcd_ini(void){
js 2:71b3736a1bd7 265 temdat[0]=0xFF;
js 2:71b3736a1bd7 266 temdat[1]=0xFF;
js 2:71b3736a1bd7 267 temdat[2]=0xFF;
js 2:71b3736a1bd7 268
js 2:71b3736a1bd7 269 dcdat[0]=0x22;
js 2:71b3736a1bd7 270
js 2:71b3736a1bd7 271 nx_lcd= new UnbufferedSerial(PA_9,PA_10,115200);//J4
js 2:71b3736a1bd7 272 //nx_lcd= new UnbufferedSerial(USBTX, USBRX,9600);
js 2:71b3736a1bd7 273 wait_ms(100);
js 2:71b3736a1bd7 274 nx_printf("rest");
js 2:71b3736a1bd7 275 fflush(stdout);
js 2:71b3736a1bd7 276 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 277 fflush(stdout);
js 2:71b3736a1bd7 278 //wait_ms(1000);
js 2:71b3736a1bd7 279 //os5では、バッファにデータが残っているとattach時にハング(受信割り込みで復帰)するのでクリア時に読み捨てをいれて対処
js 2:71b3736a1bd7 280 buf_clr();
js 2:71b3736a1bd7 281 //シリアル通信の割り込み処理
js 2:71b3736a1bd7 282 nx_lcd->attach(nx_lcd_rx, SerialBase::RxIrq);
js 2:71b3736a1bd7 283
js 2:71b3736a1bd7 284
js 2:71b3736a1bd7 285
js 2:71b3736a1bd7 286 }
js 2:71b3736a1bd7 287 void lcd_text_color_chg(char *obj,unsigned long color,char wait_set){//(例:lcd_text_color_chg("b0",63488,50);ボタン0のテキストが赤に変わる(緑は2016)
js 2:71b3736a1bd7 288 char buf[32];
js 2:71b3736a1bd7 289 sprintf(buf,"%s.pco=%d",obj,color);
js 2:71b3736a1bd7 290 nx_printf(buf);
js 2:71b3736a1bd7 291 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 292 fflush(stdout);
js 2:71b3736a1bd7 293 wait_ms(wait_set);
js 2:71b3736a1bd7 294
js 2:71b3736a1bd7 295 }
js 2:71b3736a1bd7 296 void lcd_bc_color_chg(char *obj,unsigned long color,char wait_set){//(例:lcd_bc_color_chg("b0",63488,50);ボタン0の背景色が赤に変わる(緑は2016)
js 2:71b3736a1bd7 297 char buf[32];
js 2:71b3736a1bd7 298 sprintf(buf,"%s.bco=%d",obj,color);
js 2:71b3736a1bd7 299 nx_printf(buf);
js 2:71b3736a1bd7 300 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 301 fflush(stdout);
js 2:71b3736a1bd7 302 wait_ms(wait_set);
js 2:71b3736a1bd7 303
js 2:71b3736a1bd7 304 }
js 2:71b3736a1bd7 305
js 2:71b3736a1bd7 306 void lcd_print(char *obj,char *txt){
js 2:71b3736a1bd7 307 float wait_set=0;///2021/05/18 お試し 旧 unsigned char
js 2:71b3736a1bd7 308 char temdat2[1];
js 2:71b3736a1bd7 309 temdat2[0]=0x22;
js 2:71b3736a1bd7 310 char buf[32];
js 2:71b3736a1bd7 311 unsigned char len = strlen(txt);//文字列の長さを確認
js 2:71b3736a1bd7 312 //wait_set=len*2;//9600bpsの場合1文字送信時間は1ms程度なので、マージンを取って2倍する。]
js 2:71b3736a1bd7 313 wait_set=(len*2)/10;/////2021/05/18 お試し 旧 wait_set=len
js 2:71b3736a1bd7 314
js 2:71b3736a1bd7 315 sprintf(buf,"%s.txt=",obj);
js 2:71b3736a1bd7 316 nx_printf(buf);
js 2:71b3736a1bd7 317 nx_lcd->write(dcdat,1);
js 2:71b3736a1bd7 318 nx_printf(txt);
js 2:71b3736a1bd7 319 nx_lcd->write(dcdat,1);
js 2:71b3736a1bd7 320 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 321 fflush(stdout);
js 2:71b3736a1bd7 322 wait_ms(wait_set);
js 2:71b3736a1bd7 323 //printf("len=%d wait=%d\r\n",len,wait_set);
js 2:71b3736a1bd7 324 }
js 2:71b3736a1bd7 325 void lcd_print_cb(char *obj,char *txt){
js 2:71b3736a1bd7 326 float wait_set=0;///2021/05/18 お試し 旧 unsigned char
js 2:71b3736a1bd7 327 char temdat2[1];
js 2:71b3736a1bd7 328 temdat2[0]=0x22;
js 2:71b3736a1bd7 329 char buf[256];
js 2:71b3736a1bd7 330 unsigned char len = strlen(txt);//文字列の長さを確認
js 2:71b3736a1bd7 331 //wait_set=len*2;//9600bpsの場合1文字送信時間は1ms程度なので、マージンを取って2倍する。]
js 2:71b3736a1bd7 332 wait_set=(len*2)/10;/////2021/05/18 お試し 旧 wait_set=len
js 2:71b3736a1bd7 333
js 2:71b3736a1bd7 334 sprintf(buf,"%s.path+=",obj);
js 2:71b3736a1bd7 335 nx_printf(buf);
js 2:71b3736a1bd7 336 nx_lcd->write(dcdat,1);
js 2:71b3736a1bd7 337 nx_printf(txt);
js 2:71b3736a1bd7 338 nx_lcd->write(dcdat,1);
js 2:71b3736a1bd7 339 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 340 fflush(stdout);
js 2:71b3736a1bd7 341 wait_ms(wait_set);
js 2:71b3736a1bd7 342 //printf("len=%d wait=%d\r\n",len,wait_set);
js 2:71b3736a1bd7 343 }
js 2:71b3736a1bd7 344 void lcd_page_set_olg(unsigned char page_set,unsigned char wait_set){//(例:lcd_page_set(1,50);//ページ1に切り替わる wait 50ms
js 2:71b3736a1bd7 345
js 2:71b3736a1bd7 346 char buf[32];
js 2:71b3736a1bd7 347 sprintf(buf,"page %d",page_set);
js 2:71b3736a1bd7 348 nx_printf(buf);
js 2:71b3736a1bd7 349 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 350 fflush(stdout);
js 2:71b3736a1bd7 351 wait_ms(wait_set);
js 2:71b3736a1bd7 352
js 2:71b3736a1bd7 353 }
js 2:71b3736a1bd7 354
js 2:71b3736a1bd7 355 void lcd_page_set(unsigned char page_set,unsigned char wait_set){//(例:lcd_page_set(1,50);//ページ1に切り替わる wait 50ms
js 2:71b3736a1bd7 356 unsigned char page_set_rt=0;
js 2:71b3736a1bd7 357 tp_mask=0;//1=タッチパネルマスク page変更時は、強制解除
js 2:71b3736a1bd7 358 buf_clr();
js 2:71b3736a1bd7 359 while(page_set_rt<2){
js 2:71b3736a1bd7 360 lcd_page_set_olg(page_set,wait_set);
js 2:71b3736a1bd7 361 buf_clr();
js 2:71b3736a1bd7 362 if(nx_page_get()==page_set){
js 2:71b3736a1bd7 363 page=page_set;
js 2:71b3736a1bd7 364 break;
js 2:71b3736a1bd7 365 }
js 2:71b3736a1bd7 366 page_set_rt++;
js 2:71b3736a1bd7 367 }
js 2:71b3736a1bd7 368 if(page_set_rt>=2){
js 2:71b3736a1bd7 369 printf("PAGE SET NG\r\n");
js 2:71b3736a1bd7 370 fflush(stdout);
js 2:71b3736a1bd7 371 lcd_print("t0","タッチパネル通信異常が発生しました。");
js 2:71b3736a1bd7 372 ALM_HOLD_SET();
js 2:71b3736a1bd7 373 }else{
js 2:71b3736a1bd7 374 //printf("PAGE SET OK\r\n");
js 2:71b3736a1bd7 375 fflush(stdout);
js 2:71b3736a1bd7 376 }
js 2:71b3736a1bd7 377
js 2:71b3736a1bd7 378 }
js 2:71b3736a1bd7 379 void lcd_progressbar(char *obj,unsigned char val,unsigned char wait_set){//(例:lcd_progressbar("j0",50,50);//プログレスバー表示が50になる wait 50ms
js 2:71b3736a1bd7 380 char buf[32];
js 2:71b3736a1bd7 381 sprintf(buf,"%s.val=%d",obj,val);
js 2:71b3736a1bd7 382 nx_printf(buf);
js 2:71b3736a1bd7 383 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 384 wait_ms(wait_set);
js 2:71b3736a1bd7 385 }
js 2:71b3736a1bd7 386
js 2:71b3736a1bd7 387 void lcd_pic_chg(char *obj,unsigned char val,unsigned char wait_set){//(例:lcd_pic_chg("p0",3,50);//p0の画像指定が3に代わる(画像切り替えができる)wait 50ms
js 2:71b3736a1bd7 388 char buf[64];
js 2:71b3736a1bd7 389 sprintf(buf,"%s.pic=%d",obj,val);
js 2:71b3736a1bd7 390 nx_printf(buf);
js 2:71b3736a1bd7 391 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 392 fflush(stdout);
js 2:71b3736a1bd7 393 wait_ms(wait_set);
js 2:71b3736a1bd7 394 }
js 2:71b3736a1bd7 395 void nx_dsbt_st_set(char *obj,unsigned char val,unsigned char wait_set){//例:nx_dsbt_st_set("bt0",0,50);dualステートボタンを強制OFF(50ms wait)
js 2:71b3736a1bd7 396 char buf[64];
js 2:71b3736a1bd7 397 sprintf(buf,"%s.val=%d",obj,val);
js 2:71b3736a1bd7 398 nx_printf(buf);
js 2:71b3736a1bd7 399 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 400 fflush(stdout);
js 2:71b3736a1bd7 401 wait_ms(wait_set);
js 2:71b3736a1bd7 402 }
js 2:71b3736a1bd7 403 void lcd_page_chk(){//(例:lcd_page_chk(); lcdのページ番号を要求
js 2:71b3736a1bd7 404 unsigned char timeout=0;
js 2:71b3736a1bd7 405 lcd_page=0;//lcdからページを取得した場合、ページNoが入る
js 2:71b3736a1bd7 406
js 2:71b3736a1bd7 407 nx_printf("sendme");
js 2:71b3736a1bd7 408 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 409 fflush(stdout);
js 2:71b3736a1bd7 410 //////lcd_pageに値が受信割り込みで入るまでwait////
js 2:71b3736a1bd7 411 while(lcd_page==0 && timeout<30){
js 2:71b3736a1bd7 412 timeout++;
js 2:71b3736a1bd7 413 wait_ms(10);
js 2:71b3736a1bd7 414 }
js 2:71b3736a1bd7 415 }
js 2:71b3736a1bd7 416 void lcd_bt_en(char *obj,unsigned char val,unsigned char wait_set){//(例:lcd_bten(b0,0,50); b0が無効 lcd_bt_en(b0,1,50); b0がゆうこう有効
js 2:71b3736a1bd7 417 char buf[64];
js 2:71b3736a1bd7 418 sprintf(buf,"tsw %s,%d",obj,val);
js 2:71b3736a1bd7 419 nx_printf(buf);
js 2:71b3736a1bd7 420 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 421 fflush(stdout);
js 2:71b3736a1bd7 422 wait_ms(wait_set);
js 2:71b3736a1bd7 423 }
js 2:71b3736a1bd7 424 void lcd_audio_play(unsigned char id,unsigned char loop,unsigned char wait_set){//(例:lcd_audio_play(0,0,50);//0番のaudioをループ無し再生、コマンドwait 50ms
js 2:71b3736a1bd7 425 char buf[64];
js 2:71b3736a1bd7 426 sprintf(buf,"play 0,%d,%d",id,loop);//ch,id,loop
js 2:71b3736a1bd7 427 nx_printf(buf);
js 2:71b3736a1bd7 428 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 429 fflush(stdout);
js 2:71b3736a1bd7 430 wait_ms(wait_set);
js 2:71b3736a1bd7 431 }
js 2:71b3736a1bd7 432
js 2:71b3736a1bd7 433 void lcd_audio_cont(unsigned char val,unsigned char wait_set){//val=0 再生停止 1 resume 2 puse
js 2:71b3736a1bd7 434 char buf[64];
js 2:71b3736a1bd7 435 sprintf(buf,"audio0=%d",val);
js 2:71b3736a1bd7 436 nx_printf(buf);
js 2:71b3736a1bd7 437 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 438 fflush(stdout);
js 2:71b3736a1bd7 439 wait_ms(wait_set);
js 2:71b3736a1bd7 440 }
js 2:71b3736a1bd7 441 void lcd_audio_vol(unsigned char val,unsigned char wait_set){//val=0から100
js 2:71b3736a1bd7 442 char buf[64];
js 2:71b3736a1bd7 443 sprintf(buf,"volume=%d",val);
js 2:71b3736a1bd7 444 nx_printf(buf);
js 2:71b3736a1bd7 445 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 446 fflush(stdout);
js 2:71b3736a1bd7 447 wait_ms(wait_set);
js 2:71b3736a1bd7 448 }
js 2:71b3736a1bd7 449
js 2:71b3736a1bd7 450 void lcd_backlight(unsigned char val){//例 lcd_backlight(50); //明るさがセンターになる。
js 2:71b3736a1bd7 451 char buf[32];
js 2:71b3736a1bd7 452 sprintf(buf,"dim=%d",val);
js 2:71b3736a1bd7 453 nx_printf(buf);
js 2:71b3736a1bd7 454 nx_lcd->write(temdat,3);
js 2:71b3736a1bd7 455 fflush(stdout);
js 2:71b3736a1bd7 456
js 2:71b3736a1bd7 457 }