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 #include "mbed.h"
js 2:71b3736a1bd7 2 #include "main.h"
js 2:71b3736a1bd7 3 #include "nextion_lcd.h"
js 2:71b3736a1bd7 4 #include "APP.h"
js 2:71b3736a1bd7 5 #include "FATFileSystem.h"
js 2:71b3736a1bd7 6 #include "SAVE_CONT.h"
js 2:71b3736a1bd7 7 #include "WD_CONT.h"
js 2:71b3736a1bd7 8 // File system declaration
js 2:71b3736a1bd7 9 extern FATFileSystem fileSystem;
js 2:71b3736a1bd7 10
js 2:71b3736a1bd7 11 FILE* fd;
js 2:71b3736a1bd7 12 double RB1_POINT_RD[32][4];
js 2:71b3736a1bd7 13 char RB1_point_wr_data[256];
js 2:71b3736a1bd7 14 char RB1_point_rd_data[4096];
js 2:71b3736a1bd7 15 char RB1_point_txt[32][64];
js 2:71b3736a1bd7 16 unsigned char RB1_POINT_NO_CNT=0;
js 2:71b3736a1bd7 17
js 2:71b3736a1bd7 18 double RB2_POINT_RD[32][4];
js 2:71b3736a1bd7 19 char RB2_point_wr_data[256];
js 2:71b3736a1bd7 20 char RB2_point_rd_data[4096];
js 2:71b3736a1bd7 21 char RB2_point_txt[32][64];
js 2:71b3736a1bd7 22 unsigned char RB2_POINT_NO_CNT=0;
js 2:71b3736a1bd7 23
js 2:71b3736a1bd7 24 unsigned long wr_size=0;
js 2:71b3736a1bd7 25 unsigned long rd_size=0;
js 2:71b3736a1bd7 26
js 2:71b3736a1bd7 27 //////
js 2:71b3736a1bd7 28 char config_dat[64];
js 2:71b3736a1bd7 29 char config_save_dat[64];
js 2:71b3736a1bd7 30
js 2:71b3736a1bd7 31 ///ニッケル端子///
js 2:71b3736a1bd7 32 unsigned long C1_RD_50MM =0;
js 2:71b3736a1bd7 33 unsigned long C1_RD_32MM =0;
js 2:71b3736a1bd7 34 unsigned long C1_RD_23MM =0;
js 2:71b3736a1bd7 35
js 2:71b3736a1bd7 36 unsigned long C1_WR_50MM =0;
js 2:71b3736a1bd7 37 unsigned long C1_WR_32MM =0;
js 2:71b3736a1bd7 38 unsigned long C1_WR_23MM =0;
js 2:71b3736a1bd7 39
js 2:71b3736a1bd7 40 double C1_SET_50MM =0;
js 2:71b3736a1bd7 41 double C1_SET_32MM =0;
js 2:71b3736a1bd7 42 double C1_SET_23MM =0;
js 2:71b3736a1bd7 43
js 2:71b3736a1bd7 44 unsigned long C2_RD_50MM =0;
js 2:71b3736a1bd7 45 unsigned long C2_RD_32MM =0;
js 2:71b3736a1bd7 46 unsigned long C2_RD_23MM =0;
js 2:71b3736a1bd7 47
js 2:71b3736a1bd7 48 unsigned long C2_WR_50MM =0;
js 2:71b3736a1bd7 49 unsigned long C2_WR_32MM =0;
js 2:71b3736a1bd7 50 unsigned long C2_WR_23MM =0;
js 2:71b3736a1bd7 51
js 2:71b3736a1bd7 52 double C2_SET_50MM =0;
js 2:71b3736a1bd7 53 double C2_SET_32MM =0;
js 2:71b3736a1bd7 54 double C2_SET_23MM =0;
js 2:71b3736a1bd7 55
js 2:71b3736a1bd7 56 unsigned long RB1_p_cnt=0;
js 2:71b3736a1bd7 57 unsigned long RB2_p_cnt=0;
js 2:71b3736a1bd7 58
js 2:71b3736a1bd7 59 char file_name[32];
js 2:71b3736a1bd7 60 unsigned char date_chk=0;
js 2:71b3736a1bd7 61 //ファイルサイズを取得////
js 2:71b3736a1bd7 62 long GetFileSize(const char *file)
js 2:71b3736a1bd7 63 {
js 2:71b3736a1bd7 64 long size=0;
js 2:71b3736a1bd7 65 FILE* f = fopen(file, "r+");
js 2:71b3736a1bd7 66 if(!f){
js 2:71b3736a1bd7 67 printf("seize get ng\r\n");
js 2:71b3736a1bd7 68 return -1L;
js 2:71b3736a1bd7 69 }else{
js 2:71b3736a1bd7 70 fseek(f, 0, SEEK_END); // seek to end of file
js 2:71b3736a1bd7 71 size = ftell(f); // get current file pointer
js 2:71b3736a1bd7 72 fseek(f, 0, SEEK_SET); // seek back to beginning of file
js 2:71b3736a1bd7 73 fclose(f);
js 2:71b3736a1bd7 74 //sprintf(pc_print_buf,"size=%d\r\n",size);
js 2:71b3736a1bd7 75 //pc_printf(pc_print_buf);
js 2:71b3736a1bd7 76 return size;
js 2:71b3736a1bd7 77 }
js 2:71b3736a1bd7 78 }
js 2:71b3736a1bd7 79
js 2:71b3736a1bd7 80 uint32_t utf_sjis_cnv(uint32_t utf_code){
js 2:71b3736a1bd7 81 unsigned long sjis_add=0;
js 2:71b3736a1bd7 82 unsigned short sjis_code=0;
js 2:71b3736a1bd7 83 unsigned char rdat[2];
js 2:71b3736a1bd7 84 fd = fopen("/fs/system/utf_sjis.bin", "r");//r:読み込みようとしてファイルを開きます
js 2:71b3736a1bd7 85 if (fd) {
js 2:71b3736a1bd7 86 if(utf_code>=0 && utf_code<=0xF19F){
js 2:71b3736a1bd7 87 sjis_add=utf_code*2;
js 2:71b3736a1bd7 88 fseek(fd, sjis_add, SEEK_SET);
js 2:71b3736a1bd7 89 fread(rdat, 1,2,fd);
js 2:71b3736a1bd7 90 sjis_code=rdat[0]<<8;
js 2:71b3736a1bd7 91 sjis_code|=rdat[1];
js 2:71b3736a1bd7 92 }else{
js 2:71b3736a1bd7 93 sjis_add=(utf_code-0xE28000)*2+0x20000;
js 2:71b3736a1bd7 94 fseek(fd, sjis_add, SEEK_SET);
js 2:71b3736a1bd7 95 fread(rdat, 1,2,fd);
js 2:71b3736a1bd7 96 sjis_code=rdat[0]<<8;
js 2:71b3736a1bd7 97 sjis_code|=rdat[1];
js 2:71b3736a1bd7 98 }
js 2:71b3736a1bd7 99 fclose(fd);
js 2:71b3736a1bd7 100 }
js 2:71b3736a1bd7 101 //pc.printf("sjis code:%x\r\n",sjis_code);
js 2:71b3736a1bd7 102 return sjis_code;
js 2:71b3736a1bd7 103 }
js 2:71b3736a1bd7 104
js 2:71b3736a1bd7 105
js 2:71b3736a1bd7 106 //utfコードに対するsjisコードを返す(文章)
js 2:71b3736a1bd7 107 void utf_to_sjis(char *utf_str ,char *sjis_str){
js 2:71b3736a1bd7 108
js 2:71b3736a1bd7 109 const char* p = utf_str;
js 2:71b3736a1bd7 110 uint8_t ch0,ch1,ch2;
js 2:71b3736a1bd7 111 uint16_t draw_cnt=0;
js 2:71b3736a1bd7 112 uint16_t draw_cnt_max=strlen(utf_str);
js 2:71b3736a1bd7 113 char sjis_buf[3];
js 2:71b3736a1bd7 114 uint32_t utf_code=0;
js 2:71b3736a1bd7 115 uint16_t buf_cnt=0;
js 2:71b3736a1bd7 116 sjis_buf[0]=0;
js 2:71b3736a1bd7 117 sjis_buf[1]=0;
js 2:71b3736a1bd7 118 sjis_buf[2]=0;
js 2:71b3736a1bd7 119 // pc_printf(utf_str);
js 2:71b3736a1bd7 120 // pc_printf("draw_cnt_max=%d\r\n",draw_cnt_max);
js 2:71b3736a1bd7 121 while(draw_cnt<draw_cnt_max){
js 2:71b3736a1bd7 122 utf_code=0;
js 2:71b3736a1bd7 123 sjis_buf[0]=sjis_buf[1]=sjis_buf[2]=0;
js 2:71b3736a1bd7 124 ch0 = (uint8_t)*p++;
js 2:71b3736a1bd7 125 if(ch0 != 0){
js 2:71b3736a1bd7 126 if(ch0 <=0x7E ){
js 2:71b3736a1bd7 127 sjis_str[buf_cnt++]=ch0;
js 2:71b3736a1bd7 128 }else{
js 2:71b3736a1bd7 129 ch1 = (uint8_t)*p++;
js 2:71b3736a1bd7 130 ch2 = (uint8_t)*p++;
js 2:71b3736a1bd7 131 if(ch2>0x7F && ch2 < 0xE2){
js 2:71b3736a1bd7 132 utf_code = ch0<<16;
js 2:71b3736a1bd7 133 utf_code |= ch1<<8;
js 2:71b3736a1bd7 134 utf_code |= ch2;
js 2:71b3736a1bd7 135 sjis_str[buf_cnt++]=utf_sjis_cnv(utf_code)>>8;
js 2:71b3736a1bd7 136 sjis_str[buf_cnt++]=utf_sjis_cnv(utf_code);
js 2:71b3736a1bd7 137 }else{
js 2:71b3736a1bd7 138 (uint8_t)*p--;
js 2:71b3736a1bd7 139 utf_code = ch0<<8;
js 2:71b3736a1bd7 140 utf_code |= ch1;
js 2:71b3736a1bd7 141 sjis_str[buf_cnt++]=utf_sjis_cnv(utf_code)>>8;
js 2:71b3736a1bd7 142 sjis_str[buf_cnt++]=utf_sjis_cnv(utf_code);
js 2:71b3736a1bd7 143 }
js 2:71b3736a1bd7 144 }
js 2:71b3736a1bd7 145 }else{
js 2:71b3736a1bd7 146 break;
js 2:71b3736a1bd7 147 }
js 2:71b3736a1bd7 148 }
js 2:71b3736a1bd7 149 sjis_str[buf_cnt]=NULL;//null終端
js 2:71b3736a1bd7 150 /*for(unsigned char chk=0 ; chk<buf_cnt ; chk++){
js 2:71b3736a1bd7 151 pc_printf("sjis[%d]=%x\r\n",chk,sjis_str[chk]);
js 2:71b3736a1bd7 152 }*/
js 2:71b3736a1bd7 153 sjis_str[buf_cnt]=NULL;
js 2:71b3736a1bd7 154
js 2:71b3736a1bd7 155 }
js 2:71b3736a1bd7 156
js 2:71b3736a1bd7 157 ///ログ記録用csvファイルの先頭に見出しを付ける
js 2:71b3736a1bd7 158 void ALM_SAVE_HEAD(void){
js 2:71b3736a1bd7 159
js 2:71b3736a1bd7 160 char head_data[256];
js 2:71b3736a1bd7 161 char *Text_Out = "年,月,日,時間,分,秒,ALM要因";
js 2:71b3736a1bd7 162 char head_size=0;
js 2:71b3736a1bd7 163 utf_to_sjis(Text_Out ,head_data);
js 2:71b3736a1bd7 164 head_size=strlen(head_data);//s-jis文字列の長さを調べる
js 2:71b3736a1bd7 165 head_data[head_size]=0x0d;//CR
js 2:71b3736a1bd7 166 head_data[head_size+1]=0x0a;//LF
js 2:71b3736a1bd7 167
js 2:71b3736a1bd7 168 ///単セル:日毎のファイル///
js 2:71b3736a1bd7 169 fd = fopen(file_name, "a+");//a+:読み込み/書き込みモードの両方のモードで開きます(ファイルが存在する場合は追加、ない場合は作成します)
js 2:71b3736a1bd7 170 if(!fd){
js 2:71b3736a1bd7 171 printf("savefile open ng!!\r\n");
js 2:71b3736a1bd7 172 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 173 ALM_HOLD_SET();
js 2:71b3736a1bd7 174 }else{
js 2:71b3736a1bd7 175 fwrite(&head_data, 1, head_size+2, fd);
js 2:71b3736a1bd7 176 fclose(fd);
js 2:71b3736a1bd7 177 }
js 2:71b3736a1bd7 178
js 2:71b3736a1bd7 179 }
js 2:71b3736a1bd7 180 void ALM_INFO_SAVE(){
js 2:71b3736a1bd7 181 char ALM_INFO_DATA[256];
js 2:71b3736a1bd7 182 char save_data[256];
js 2:71b3736a1bd7 183 char *Text_Out = "";
js 2:71b3736a1bd7 184 unsigned char len=0;//文字の長さを格納
js 2:71b3736a1bd7 185 RTC_GET();
js 2:71b3736a1bd7 186 if(date_chk !=rtc_date){//日付が変わったか確認する。
js 2:71b3736a1bd7 187 date_chk =rtc_date;
js 2:71b3736a1bd7 188 sprintf(file_name,"/fs/ALM_LOG/%04d%02d.csv",rtc_year,rtc_month);
js 2:71b3736a1bd7 189 fd = fopen(file_name, "r");//r:読み込みようとしてファイルを開きます
js 2:71b3736a1bd7 190 if(!fd){//ファイルが開けない場合は新規にヘッダをつけてファイル生成
js 2:71b3736a1bd7 191 ALM_SAVE_HEAD();
js 2:71b3736a1bd7 192 }
js 2:71b3736a1bd7 193 }
js 2:71b3736a1bd7 194
js 2:71b3736a1bd7 195 switch (ALM_ST) {
js 2:71b3736a1bd7 196
js 2:71b3736a1bd7 197 case ALM_PS1_HM :
js 2:71b3736a1bd7 198 Text_Out="加圧軸1_原点復帰タイムアウト"; 
js 2:71b3736a1bd7 199 break;
js 2:71b3736a1bd7 200 case ALM_PS1_ST :
js 2:71b3736a1bd7 201 Text_Out="加圧軸1_移動開始タイムアウト"; 
js 2:71b3736a1bd7 202 break;
js 2:71b3736a1bd7 203 case ALM_PS1_ED :
js 2:71b3736a1bd7 204 Text_Out="加圧軸1_移動完了タイムアウト";
js 2:71b3736a1bd7 205 break;
js 2:71b3736a1bd7 206 case ALM_PS2_HM :
js 2:71b3736a1bd7 207 Text_Out="加圧軸2_原点復帰タイムアウト"; 
js 2:71b3736a1bd7 208 break;
js 2:71b3736a1bd7 209 case ALM_PS2_ST :
js 2:71b3736a1bd7 210 Text_Out="加圧軸2_移動開始タイムアウト"; 
js 2:71b3736a1bd7 211 break;
js 2:71b3736a1bd7 212 case ALM_PS2_ED :
js 2:71b3736a1bd7 213 Text_Out="加圧軸2_移動完了タイムアウト";
js 2:71b3736a1bd7 214 break;
js 2:71b3736a1bd7 215 case ALM_NISP1_HM:
js 2:71b3736a1bd7 216 Text_Out="ニッケル搬送軸1_原点復帰タイムアウト"; 
js 2:71b3736a1bd7 217 break;
js 2:71b3736a1bd7 218 case ALM_NISP1_ST:
js 2:71b3736a1bd7 219 Text_Out="ニッケル搬送軸1_移動開始タイムアウト"; 
js 2:71b3736a1bd7 220 break;
js 2:71b3736a1bd7 221 case ALM_NISP1_ED:
js 2:71b3736a1bd7 222 Text_Out="ニッケル搬送軸1_移動完了タイムアウト";
js 2:71b3736a1bd7 223 break;
js 2:71b3736a1bd7 224 case ALM_NISP2_HM:
js 2:71b3736a1bd7 225 Text_Out="ニッケル搬送軸2_原点復帰タイムアウト"; 
js 2:71b3736a1bd7 226 break;
js 2:71b3736a1bd7 227 case ALM_NISP2_ST:
js 2:71b3736a1bd7 228 Text_Out="ニッケル搬送軸2_移動開始タイムアウト"; 
js 2:71b3736a1bd7 229 break;
js 2:71b3736a1bd7 230 case ALM_NISP2_ED:
js 2:71b3736a1bd7 231 Text_Out="ニッケル搬送軸2_移動完了タイムアウト";
js 2:71b3736a1bd7 232 break;
js 2:71b3736a1bd7 233 case ALM_DISP_HM :
js 2:71b3736a1bd7 234 Text_Out="ダイオード搬送軸_原点復帰タイムアウト"; 
js 2:71b3736a1bd7 235 break;
js 2:71b3736a1bd7 236 case ALM_DISP_ST :
js 2:71b3736a1bd7 237 Text_Out="ダイオード搬送軸_移動開始タイムアウト"; 
js 2:71b3736a1bd7 238 break;
js 2:71b3736a1bd7 239 case ALM_DISP_ED :
js 2:71b3736a1bd7 240 Text_Out="ダイオード搬送軸_移動完了タイムアウト";
js 2:71b3736a1bd7 241 break;
js 2:71b3736a1bd7 242 case ALM_DOBOT1 :
js 2:71b3736a1bd7 243 Text_Out="ロボット1_ステータス異常検出"; 
js 2:71b3736a1bd7 244 break;
js 2:71b3736a1bd7 245 case ALM_DOBOT1_ST:
js 2:71b3736a1bd7 246 Text_Out="ロボット1_移動開始タイムアウト"; 
js 2:71b3736a1bd7 247 break;
js 2:71b3736a1bd7 248 case ALM_DOBOT1_ED:
js 2:71b3736a1bd7 249 Text_Out="ロボット1_移動完了タイムアウト";
js 2:71b3736a1bd7 250 break;
js 2:71b3736a1bd7 251 case ALM_DOBOT1_CM:
js 2:71b3736a1bd7 252 Text_Out="ロボット1_コマンド送信失敗";
js 2:71b3736a1bd7 253 break;
js 2:71b3736a1bd7 254 case ALM_DOBOT2 :
js 2:71b3736a1bd7 255 Text_Out="ロボット2_ステータス異常検出"; 
js 2:71b3736a1bd7 256 break;
js 2:71b3736a1bd7 257 case ALM_DOBOT2_ST:
js 2:71b3736a1bd7 258 Text_Out="ロボット2_移動開始タイムアウト"; 
js 2:71b3736a1bd7 259 break;
js 2:71b3736a1bd7 260 case ALM_DOBOT2_ED:
js 2:71b3736a1bd7 261 Text_Out="ロボット2_移動完了タイムアウト";
js 2:71b3736a1bd7 262 break;
js 2:71b3736a1bd7 263 case ALM_DOBOT2_CM:
js 2:71b3736a1bd7 264 Text_Out="ロボット2_コマンド送信失敗";
js 2:71b3736a1bd7 265 break;
js 2:71b3736a1bd7 266 case ALM_DOBOT12:
js 2:71b3736a1bd7 267 Text_Out="ロボット1、2_ステータス異常検出";//同時検出の場合
js 2:71b3736a1bd7 268 break;
js 2:71b3736a1bd7 269 case ALM_DOBOT12_ST:
js 2:71b3736a1bd7 270 Text_Out="ロボット1、2_移動開始タイムアウト";//同時検出の場合
js 2:71b3736a1bd7 271 break;
js 2:71b3736a1bd7 272 case ALM_DOBOT12_ED:
js 2:71b3736a1bd7 273 Text_Out="ロボット1、2_移動完了タイムアウト";//同時検出の場合
js 2:71b3736a1bd7 274 break;
js 2:71b3736a1bd7 275 case ALM_WDENG_1:
js 2:71b3736a1bd7 276 Text_Out="溶接機1エンド信号受信タイムアウト"; 
js 2:71b3736a1bd7 277 break;
js 2:71b3736a1bd7 278 case ALM_WDENG_2 :
js 2:71b3736a1bd7 279 Text_Out="溶接機2エンド信号受信タイムアウト"; 
js 2:71b3736a1bd7 280 break;
js 2:71b3736a1bd7 281 case ALM_WDENG_12 :
js 2:71b3736a1bd7 282 Text_Out="溶接機1、2エンド信号受信タイムアウト";//同時検出の場合 
js 2:71b3736a1bd7 283 break;
js 2:71b3736a1bd7 284 case ALM_SD :
js 2:71b3736a1bd7 285 Text_Out="SDカードアクセス異常";///保存できないと思うが.. 
js 2:71b3736a1bd7 286 break;
js 2:71b3736a1bd7 287
js 2:71b3736a1bd7 288
js 2:71b3736a1bd7 289 }
js 2:71b3736a1bd7 290 ///UTF8の日本語をS-JISに変換する/////
js 2:71b3736a1bd7 291 utf_to_sjis(Text_Out ,ALM_INFO_DATA);
js 2:71b3736a1bd7 292 sprintf(save_data,"%04d,%02d,%02d,%02d,%02d,%02d,%s\r\n",rtc_year,rtc_month,rtc_date,rtc_hour,rtc_min,rtc_sec,ALM_INFO_DATA);
js 2:71b3736a1bd7 293 len=strlen(save_data);//文字列の長さを確認
js 2:71b3736a1bd7 294
js 2:71b3736a1bd7 295
js 2:71b3736a1bd7 296 fd = fopen(file_name, "r+");//r+:既存ファイルを対象に、読み込み/書き込みの両方のモードで開きます
js 2:71b3736a1bd7 297 if(!fd){
js 2:71b3736a1bd7 298 printf("savefile open ng!!\r\n");
js 2:71b3736a1bd7 299 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 300 ALM_HOLD_SET();
js 2:71b3736a1bd7 301 }else{
js 2:71b3736a1bd7 302 fseek(fd, 0, SEEK_END);
js 2:71b3736a1bd7 303 fwrite(&save_data, 1, len, fd);
js 2:71b3736a1bd7 304 fclose(fd);
js 2:71b3736a1bd7 305
js 2:71b3736a1bd7 306 }
js 2:71b3736a1bd7 307
js 2:71b3736a1bd7 308 /////画面表示///////////////////
js 2:71b3736a1bd7 309 lcd_print("t0",Text_Out);
js 2:71b3736a1bd7 310 /////生産数表示////////////////////
js 2:71b3736a1bd7 311 sprintf(lcd_print_buf,"%03d",PD_CNT_A);
js 2:71b3736a1bd7 312 lcd_print("t2",lcd_print_buf);
js 2:71b3736a1bd7 313 sprintf(lcd_print_buf,"%03d",PD_CNT_C);
js 2:71b3736a1bd7 314 lcd_print("t3",lcd_print_buf);
js 2:71b3736a1bd7 315
js 2:71b3736a1bd7 316 /////////////極棒交換打点数表示///////////
js 2:71b3736a1bd7 317 sprintf(lcd_print_buf,"%04d",WD1H_CHG_CNT);//左4mm
js 2:71b3736a1bd7 318 lcd_print("t4",lcd_print_buf);
js 2:71b3736a1bd7 319 sprintf(lcd_print_buf,"%04d",WD2H_CHG_CNT);
js 2:71b3736a1bd7 320 lcd_print("t5",lcd_print_buf);
js 2:71b3736a1bd7 321 sprintf(lcd_print_buf,"%04d",WD2R_CHG_CNT);
js 2:71b3736a1bd7 322 lcd_print("t6",lcd_print_buf);
js 2:71b3736a1bd7 323
js 2:71b3736a1bd7 324 ////////音声鳴動///
js 2:71b3736a1bd7 325 if(ALM_ST>=ALM_DOBOT1 && ALM_ST<=ALM_DOBOT12_ED){
js 2:71b3736a1bd7 326 //ロボットトラブル発生音声
js 2:71b3736a1bd7 327 lcd_audio_play(AU_ROBO_ALM,0,80);
js 2:71b3736a1bd7 328 }else{
js 2:71b3736a1bd7 329 ///その他 異常が発生しました音声///
js 2:71b3736a1bd7 330 lcd_audio_play(AU_ALM,0,80);
js 2:71b3736a1bd7 331 ///ロボット異常以外で停止の場合、ロボット強制停止///
js 2:71b3736a1bd7 332 // RB1_EMG_STOP();
js 2:71b3736a1bd7 333 // RB2_EMG_STOP();
js 2:71b3736a1bd7 334 }
js 2:71b3736a1bd7 335
js 2:71b3736a1bd7 336
js 2:71b3736a1bd7 337 }
js 2:71b3736a1bd7 338
js 2:71b3736a1bd7 339 void RB1_LIST_READ(){
js 2:71b3736a1bd7 340 char r_buf[128];
js 2:71b3736a1bd7 341 unsigned long dat_cnt=0;
js 2:71b3736a1bd7 342 unsigned long cb_txt_cnt=0;
js 2:71b3736a1bd7 343 unsigned char cp_cnt=0;
js 2:71b3736a1bd7 344 unsigned char HEAD_SKIP=1;
js 2:71b3736a1bd7 345 unsigned long OPEN_SIZE=GetFileSize("/fs/system/RB1_PLIST.csv");
js 2:71b3736a1bd7 346 RB1_POINT_NO_CNT=0;
js 2:71b3736a1bd7 347
js 2:71b3736a1bd7 348 //printf("open size=%d\r\n",OPEN_SIZE);
js 2:71b3736a1bd7 349 fd = fopen("/fs/system/RB1_PLIST.csv","r");//r:既存ファイルを対象に、読み込みモードで開きます
js 2:71b3736a1bd7 350 if(!fd){
js 2:71b3736a1bd7 351 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 352 ALM_HOLD_SET();
js 2:71b3736a1bd7 353 }else{
js 2:71b3736a1bd7 354 fread(RB1_point_rd_data, 1,OPEN_SIZE,fd);
js 2:71b3736a1bd7 355 dat_cnt++;
js 2:71b3736a1bd7 356 ////最初のポイントNo部を飛ばす/////
js 2:71b3736a1bd7 357 while(dat_cnt<OPEN_SIZE){//
js 2:71b3736a1bd7 358 while(dat_cnt<OPEN_SIZE && RB1_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 359 dat_cnt++;
js 2:71b3736a1bd7 360 }
js 2:71b3736a1bd7 361 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 362 ////////////////////X DATA////////////////////
js 2:71b3736a1bd7 363 cp_cnt=0;
js 2:71b3736a1bd7 364 while(dat_cnt<OPEN_SIZE && RB1_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 365 r_buf[cp_cnt]=RB1_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 366 dat_cnt++;
js 2:71b3736a1bd7 367 cp_cnt++;
js 2:71b3736a1bd7 368 }
js 2:71b3736a1bd7 369 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 370 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 371 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 372 RB1_POINT_RD[RB1_POINT_NO_CNT][PX] =atof(r_buf);
js 2:71b3736a1bd7 373 }
js 2:71b3736a1bd7 374 //////////////////Y DATA///////////////////
js 2:71b3736a1bd7 375 cp_cnt=0;
js 2:71b3736a1bd7 376 while(dat_cnt<OPEN_SIZE && RB1_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 377 r_buf[cp_cnt]=RB1_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 378 dat_cnt++;
js 2:71b3736a1bd7 379 cp_cnt++;
js 2:71b3736a1bd7 380 }
js 2:71b3736a1bd7 381 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 382 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 383 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 384 RB1_POINT_RD[RB1_POINT_NO_CNT][PY] =atof(r_buf);
js 2:71b3736a1bd7 385 }
js 2:71b3736a1bd7 386 //printf("PY =%f\r\n",RB1_POINT_RD[RB1_POINT_NO_CNT][PY]);
js 2:71b3736a1bd7 387 //////////////////Z DATA///////////////////
js 2:71b3736a1bd7 388 cp_cnt=0;
js 2:71b3736a1bd7 389 while(dat_cnt<OPEN_SIZE && RB1_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 390 r_buf[cp_cnt]=RB1_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 391 dat_cnt++;
js 2:71b3736a1bd7 392 cp_cnt++;
js 2:71b3736a1bd7 393 }
js 2:71b3736a1bd7 394 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 395 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 396 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 397 RB1_POINT_RD[RB1_POINT_NO_CNT][PZ] =atof(r_buf);
js 2:71b3736a1bd7 398 }
js 2:71b3736a1bd7 399
js 2:71b3736a1bd7 400
js 2:71b3736a1bd7 401 //////////////////R DATA///////////////////
js 2:71b3736a1bd7 402 cp_cnt=0;
js 2:71b3736a1bd7 403 while(dat_cnt<OPEN_SIZE && RB1_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 404 r_buf[cp_cnt]=RB1_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 405 dat_cnt++;
js 2:71b3736a1bd7 406 cp_cnt++;
js 2:71b3736a1bd7 407 }
js 2:71b3736a1bd7 408 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 409 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 410 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 411 RB1_POINT_RD[RB1_POINT_NO_CNT][PR] =atof(r_buf);
js 2:71b3736a1bd7 412
js 2:71b3736a1bd7 413 }
js 2:71b3736a1bd7 414
js 2:71b3736a1bd7 415 // printf("PZ =%f\r\n",RB1_POINT_RD[RB1_POINT_NO_CNT][PZ]);
js 2:71b3736a1bd7 416 //////////////////txt DATA ////
js 2:71b3736a1bd7 417 cp_cnt=0;
js 2:71b3736a1bd7 418 while(dat_cnt<OPEN_SIZE && RB1_point_rd_data[dat_cnt]!=0x0a){
js 2:71b3736a1bd7 419 if(HEAD_SKIP==0){
js 2:71b3736a1bd7 420 RB1_point_txt[RB1_POINT_NO_CNT][cp_cnt]=RB1_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 421 cp_cnt++;
js 2:71b3736a1bd7 422 }
js 2:71b3736a1bd7 423 dat_cnt++;
js 2:71b3736a1bd7 424 }
js 2:71b3736a1bd7 425
js 2:71b3736a1bd7 426
js 2:71b3736a1bd7 427 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 428 RB1_point_txt[RB1_POINT_NO_CNT][cp_cnt-1]=NULL;
js 2:71b3736a1bd7 429 RB1_point_txt[RB1_POINT_NO_CNT][cp_cnt]=NULL;
js 2:71b3736a1bd7 430 //printf("RB1_POINT[%02d] : X:%f Y:%f Z:%f R:%f :%s\r\n",RB1_POINT_NO_CNT,RB1_POINT_RD[RB1_POINT_NO_CNT][PX],RB1_POINT_RD[RB1_POINT_NO_CNT][PY],RB1_POINT_RD[RB1_POINT_NO_CNT][PZ],RB1_POINT_RD[RB1_POINT_NO_CNT][PR],RB1_point_txt[RB1_POINT_NO_CNT]);
js 2:71b3736a1bd7 431 RB1_POINT_NO_CNT++;
js 2:71b3736a1bd7 432 }
js 2:71b3736a1bd7 433 HEAD_SKIP=0;
js 2:71b3736a1bd7 434
js 2:71b3736a1bd7 435 }
js 2:71b3736a1bd7 436 fclose(fd);
js 2:71b3736a1bd7 437 }
js 2:71b3736a1bd7 438 //printf("dat_cnt=%d OPEN_SIZE=%d\r\n",dat_cnt,OPEN_SIZE);
js 2:71b3736a1bd7 439
js 2:71b3736a1bd7 440
js 2:71b3736a1bd7 441 }
js 2:71b3736a1bd7 442
js 2:71b3736a1bd7 443 void RB1_LIST_WRITE(){
js 2:71b3736a1bd7 444 fd = fopen("/fs/system/RB1_PLIST.csv", "w+");//w+:上書きモードでファイルを書き込み(存在しない場合は、ファイル作成)
js 2:71b3736a1bd7 445 if(!fd){
js 2:71b3736a1bd7 446 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 447 ALM_HOLD_SET();
js 2:71b3736a1bd7 448 }else{
js 2:71b3736a1bd7 449 ////ヘッダ部保存////
js 2:71b3736a1bd7 450 sprintf(RB1_point_wr_data,"No,X,Y,Z,R,Location Name\r\n");
js 2:71b3736a1bd7 451 wr_size=strlen(RB1_point_wr_data);//文字列の長さを調べる
js 2:71b3736a1bd7 452 fwrite(&RB1_point_wr_data, 1, wr_size, fd);
js 2:71b3736a1bd7 453 ///ポイントデータ保存////
js 2:71b3736a1bd7 454 unsigned char wcnt=0;
js 2:71b3736a1bd7 455 for(wcnt=0; wcnt<RB1_POINT_NO_CNT; wcnt++){
js 2:71b3736a1bd7 456 sprintf(RB1_point_wr_data,"%02d,%lf,%lf,%lf,%lf,%s\r\n",wcnt,RB1_POINT_RD[wcnt][PX],RB1_POINT_RD[wcnt][PY],RB1_POINT_RD[wcnt][PZ],RB1_POINT_RD[wcnt][PR],RB1_point_txt[wcnt]);
js 2:71b3736a1bd7 457 wr_size=strlen(RB1_point_wr_data);//文字列の長さを調べる
js 2:71b3736a1bd7 458 //fseek(fd, 0, SEEK_END);
js 2:71b3736a1bd7 459 fwrite(&RB1_point_wr_data, 1, wr_size, fd);
js 2:71b3736a1bd7 460 }
js 2:71b3736a1bd7 461 //printf("WRITE CNT=%d\r\n",wcnt);
js 2:71b3736a1bd7 462 fclose(fd);
js 2:71b3736a1bd7 463 }
js 2:71b3736a1bd7 464 }
js 2:71b3736a1bd7 465
js 2:71b3736a1bd7 466
js 2:71b3736a1bd7 467 ///////////////////ROBO2////////////////////////////////////
js 2:71b3736a1bd7 468
js 2:71b3736a1bd7 469 void RB2_LIST_READ(){
js 2:71b3736a1bd7 470 char r_buf[128];
js 2:71b3736a1bd7 471 unsigned long dat_cnt=0;
js 2:71b3736a1bd7 472 unsigned long cb_txt_cnt=0;
js 2:71b3736a1bd7 473 unsigned char cp_cnt=0;
js 2:71b3736a1bd7 474 unsigned char HEAD_SKIP=1;
js 2:71b3736a1bd7 475 unsigned long OPEN_SIZE=GetFileSize("/fs/system/RB2_PLIST.csv");
js 2:71b3736a1bd7 476 RB2_POINT_NO_CNT=0;
js 2:71b3736a1bd7 477
js 2:71b3736a1bd7 478 //printf("open size=%d\r\n",OPEN_SIZE);
js 2:71b3736a1bd7 479 fd = fopen("/fs/system/RB2_PLIST.csv","r");//r:既存ファイルを対象に、読み込みモードで開きます
js 2:71b3736a1bd7 480 if(!fd){
js 2:71b3736a1bd7 481 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 482 ALM_HOLD_SET();
js 2:71b3736a1bd7 483 }else{
js 2:71b3736a1bd7 484 fread(RB2_point_rd_data, 1,OPEN_SIZE,fd);
js 2:71b3736a1bd7 485 dat_cnt++;
js 2:71b3736a1bd7 486 ////最初のポイントNo部を飛ばす/////
js 2:71b3736a1bd7 487 while(dat_cnt<OPEN_SIZE){//
js 2:71b3736a1bd7 488 while(dat_cnt<OPEN_SIZE && RB2_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 489 dat_cnt++;
js 2:71b3736a1bd7 490 }
js 2:71b3736a1bd7 491 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 492 ////////////////////X DATA////////////////////
js 2:71b3736a1bd7 493 cp_cnt=0;
js 2:71b3736a1bd7 494 while(dat_cnt<OPEN_SIZE && RB2_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 495 r_buf[cp_cnt]=RB2_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 496 dat_cnt++;
js 2:71b3736a1bd7 497 cp_cnt++;
js 2:71b3736a1bd7 498 }
js 2:71b3736a1bd7 499 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 500 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 501 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 502 RB2_POINT_RD[RB2_POINT_NO_CNT][PX] =atof(r_buf);
js 2:71b3736a1bd7 503 }
js 2:71b3736a1bd7 504 //////////////////Y DATA///////////////////
js 2:71b3736a1bd7 505 cp_cnt=0;
js 2:71b3736a1bd7 506 while(dat_cnt<OPEN_SIZE && RB2_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 507 r_buf[cp_cnt]=RB2_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 508 dat_cnt++;
js 2:71b3736a1bd7 509 cp_cnt++;
js 2:71b3736a1bd7 510 }
js 2:71b3736a1bd7 511 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 512 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 513 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 514 RB2_POINT_RD[RB2_POINT_NO_CNT][PY] =atof(r_buf);
js 2:71b3736a1bd7 515 }
js 2:71b3736a1bd7 516 //printf("PY =%f\r\n",RB2_POINT_RD[RB2_POINT_NO_CNT][PY]);
js 2:71b3736a1bd7 517 //////////////////Z DATA///////////////////
js 2:71b3736a1bd7 518 cp_cnt=0;
js 2:71b3736a1bd7 519 while(dat_cnt<OPEN_SIZE && RB2_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 520 r_buf[cp_cnt]=RB2_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 521 dat_cnt++;
js 2:71b3736a1bd7 522 cp_cnt++;
js 2:71b3736a1bd7 523 }
js 2:71b3736a1bd7 524 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 525 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 526 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 527 RB2_POINT_RD[RB2_POINT_NO_CNT][PZ] =atof(r_buf);
js 2:71b3736a1bd7 528 }
js 2:71b3736a1bd7 529
js 2:71b3736a1bd7 530
js 2:71b3736a1bd7 531 //////////////////R DATA///////////////////
js 2:71b3736a1bd7 532 cp_cnt=0;
js 2:71b3736a1bd7 533 while(dat_cnt<OPEN_SIZE && RB2_point_rd_data[dat_cnt]!=0x2c){
js 2:71b3736a1bd7 534 r_buf[cp_cnt]=RB2_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 535 dat_cnt++;
js 2:71b3736a1bd7 536 cp_cnt++;
js 2:71b3736a1bd7 537 }
js 2:71b3736a1bd7 538 r_buf[cp_cnt]=NULL;
js 2:71b3736a1bd7 539 dat_cnt++;//カンマを飛ばす
js 2:71b3736a1bd7 540 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 541 RB2_POINT_RD[RB2_POINT_NO_CNT][PR] =atof(r_buf);
js 2:71b3736a1bd7 542
js 2:71b3736a1bd7 543 }
js 2:71b3736a1bd7 544
js 2:71b3736a1bd7 545 // printf("PZ =%f\r\n",RB2_POINT_RD[RB2_POINT_NO_CNT][PZ]);
js 2:71b3736a1bd7 546 //////////////////txt DATA ////
js 2:71b3736a1bd7 547 cp_cnt=0;
js 2:71b3736a1bd7 548 while(dat_cnt<OPEN_SIZE && RB2_point_rd_data[dat_cnt]!=0x0a){
js 2:71b3736a1bd7 549 if(HEAD_SKIP==0){
js 2:71b3736a1bd7 550 RB2_point_txt[RB2_POINT_NO_CNT][cp_cnt]=RB2_point_rd_data[dat_cnt];
js 2:71b3736a1bd7 551 cp_cnt++;
js 2:71b3736a1bd7 552 }
js 2:71b3736a1bd7 553 dat_cnt++;
js 2:71b3736a1bd7 554 }
js 2:71b3736a1bd7 555
js 2:71b3736a1bd7 556
js 2:71b3736a1bd7 557 if(dat_cnt<OPEN_SIZE && HEAD_SKIP==0){
js 2:71b3736a1bd7 558 RB2_point_txt[RB2_POINT_NO_CNT][cp_cnt-1]=NULL;
js 2:71b3736a1bd7 559 RB2_point_txt[RB2_POINT_NO_CNT][cp_cnt]=NULL;
js 2:71b3736a1bd7 560 //printf("RB2_POINT[%02d] : X:%f Y:%f Z:%f R:%f :%s\r\n",RB2_POINT_NO_CNT,RB2_POINT_RD[RB2_POINT_NO_CNT][PX],RB2_POINT_RD[RB2_POINT_NO_CNT][PY],RB2_POINT_RD[RB2_POINT_NO_CNT][PZ],RB2_POINT_RD[RB2_POINT_NO_CNT][PR],RB2_point_txt[RB2_POINT_NO_CNT]);
js 2:71b3736a1bd7 561 RB2_POINT_NO_CNT++;
js 2:71b3736a1bd7 562 }
js 2:71b3736a1bd7 563 HEAD_SKIP=0;
js 2:71b3736a1bd7 564
js 2:71b3736a1bd7 565 }
js 2:71b3736a1bd7 566 fclose(fd);
js 2:71b3736a1bd7 567 }
js 2:71b3736a1bd7 568 //printf("dat_cnt=%d OPEN_SIZE=%d\r\n",dat_cnt,OPEN_SIZE);
js 2:71b3736a1bd7 569
js 2:71b3736a1bd7 570 }
js 2:71b3736a1bd7 571
js 2:71b3736a1bd7 572
js 2:71b3736a1bd7 573 void RB2_LIST_WRITE(){
js 2:71b3736a1bd7 574 fd = fopen("/fs/system/RB2_PLIST.csv", "w+");//w+:上書きモードでファイルを書き込み(存在しない場合は、ファイル作成)
js 2:71b3736a1bd7 575 if(!fd){
js 2:71b3736a1bd7 576 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 577 ALM_HOLD_SET();
js 2:71b3736a1bd7 578 }else{
js 2:71b3736a1bd7 579 ////ヘッダ部保存////
js 2:71b3736a1bd7 580 sprintf(RB2_point_wr_data,"No,X,Y,Z,R,Location Name\r\n");
js 2:71b3736a1bd7 581 wr_size=strlen(RB2_point_wr_data);//文字列の長さを調べる
js 2:71b3736a1bd7 582 fwrite(&RB2_point_wr_data, 1, wr_size, fd);
js 2:71b3736a1bd7 583 ///ポイントデータ保存////
js 2:71b3736a1bd7 584 unsigned char wcnt=0;
js 2:71b3736a1bd7 585 for(wcnt=0; wcnt<RB2_POINT_NO_CNT; wcnt++){
js 2:71b3736a1bd7 586 sprintf(RB2_point_wr_data,"%02d,%lf,%lf,%lf,%lf,%s\r\n",wcnt,RB2_POINT_RD[wcnt][PX],RB2_POINT_RD[wcnt][PY],RB2_POINT_RD[wcnt][PZ],RB2_POINT_RD[wcnt][PR],RB2_point_txt[wcnt]);
js 2:71b3736a1bd7 587 wr_size=strlen(RB2_point_wr_data);//文字列の長さを調べる
js 2:71b3736a1bd7 588 //fseek(fd, 0, SEEK_END);
js 2:71b3736a1bd7 589 fwrite(&RB2_point_wr_data, 1, wr_size, fd);
js 2:71b3736a1bd7 590 }
js 2:71b3736a1bd7 591 //printf("WRITE CNT=%d\r\n",wcnt);
js 2:71b3736a1bd7 592 fclose(fd);
js 2:71b3736a1bd7 593 }
js 2:71b3736a1bd7 594 }
js 2:71b3736a1bd7 595
js 2:71b3736a1bd7 596 /////////////////////////極棒交換////////////////////////////
js 2:71b3736a1bd7 597 //設定の読み込み
js 2:71b3736a1bd7 598 void SETUP_DATA_RD()
js 2:71b3736a1bd7 599 {
js 2:71b3736a1bd7 600 fd = fopen("/fs/system/config.bin","r");//r:既存ファイルを対象に、読み込みモードで開きます
js 2:71b3736a1bd7 601 rd_size=GetFileSize("/fs/system/config.bin");
js 2:71b3736a1bd7 602 if(!fd){
js 2:71b3736a1bd7 603 lcd_print("t0","SDカード異常の為、起動できません。");
js 2:71b3736a1bd7 604 ALM_HOLD_SET();
js 2:71b3736a1bd7 605 }else{
js 2:71b3736a1bd7 606 fread(&config_dat,1,rd_size,fd);
js 2:71b3736a1bd7 607 fclose(fd);
js 2:71b3736a1bd7 608 /////////Φ4平/////////
js 2:71b3736a1bd7 609 WD1H_CHG_SET_DAT=config_dat[0]<<8;//上位バイト
js 2:71b3736a1bd7 610 WD1H_CHG_SET_DAT &=0xFF00;
js 2:71b3736a1bd7 611 WD1H_CHG_SET_DAT |=config_dat[1];//下位バイト
js 2:71b3736a1bd7 612
js 2:71b3736a1bd7 613 WD1H_CHGDAT_4=WD1H_CHG_SET_DAT/1000;
js 2:71b3736a1bd7 614 WD1H_CHGDAT_3=(WD1H_CHG_SET_DAT-(WD1H_CHGDAT_4*1000))/100;
js 2:71b3736a1bd7 615 WD1H_CHGDAT_2=(WD1H_CHG_SET_DAT-(WD1H_CHGDAT_4*1000+WD1H_CHGDAT_3*100))/10;
js 2:71b3736a1bd7 616 WD1H_CHGDAT_1=(WD1H_CHG_SET_DAT-(WD1H_CHGDAT_4*1000+WD1H_CHGDAT_3*100+WD1H_CHGDAT_2*10));
js 2:71b3736a1bd7 617
js 2:71b3736a1bd7 618
js 2:71b3736a1bd7 619 /////////Φ3側平/////////
js 2:71b3736a1bd7 620 WD2H_CHG_SET_DAT=config_dat[2]<<8;//上位バイト
js 2:71b3736a1bd7 621 WD2H_CHG_SET_DAT &=0xFF00;
js 2:71b3736a1bd7 622 WD2H_CHG_SET_DAT |=config_dat[3];//下位バイト
js 2:71b3736a1bd7 623
js 2:71b3736a1bd7 624 WD2H_CHGDAT_4=WD2H_CHG_SET_DAT/1000;
js 2:71b3736a1bd7 625 WD2H_CHGDAT_3=(WD2H_CHG_SET_DAT-(WD2H_CHGDAT_4*1000))/100;
js 2:71b3736a1bd7 626 WD2H_CHGDAT_2=(WD2H_CHG_SET_DAT-(WD2H_CHGDAT_4*1000+WD2H_CHGDAT_3*100))/10;
js 2:71b3736a1bd7 627 WD2H_CHGDAT_1=(WD2H_CHG_SET_DAT-(WD2H_CHGDAT_4*1000+WD2H_CHGDAT_3*100+WD2H_CHGDAT_2*10));
js 2:71b3736a1bd7 628 ////Φ3丸//////////////
js 2:71b3736a1bd7 629 WD2R_CHG_SET_DAT=config_dat[4]<<8;//上位バイト
js 2:71b3736a1bd7 630 WD2R_CHG_SET_DAT &=0xFF00;
js 2:71b3736a1bd7 631 WD2R_CHG_SET_DAT |=config_dat[5];//下位バイト
js 2:71b3736a1bd7 632
js 2:71b3736a1bd7 633 WD2R_CHGDAT_4=WD2R_CHG_SET_DAT/1000;
js 2:71b3736a1bd7 634 WD2R_CHGDAT_3=(WD2R_CHG_SET_DAT-(WD2R_CHGDAT_4*1000))/100;
js 2:71b3736a1bd7 635 WD2R_CHGDAT_2=(WD2R_CHG_SET_DAT-(WD2R_CHGDAT_4*1000+WD2R_CHGDAT_3*100))/10;
js 2:71b3736a1bd7 636 WD2R_CHGDAT_1=(WD2R_CHG_SET_DAT-(WD2R_CHGDAT_4*1000+WD2R_CHGDAT_3*100+WD2R_CHGDAT_2*10));
js 2:71b3736a1bd7 637 //////////端子供給1側///////////////////
js 2:71b3736a1bd7 638 C1_RD_50MM=config_dat[6]<<24;
js 2:71b3736a1bd7 639 C1_RD_50MM &=0xFF000000;
js 2:71b3736a1bd7 640 C1_RD_50MM |=config_dat[7]<<16;
js 2:71b3736a1bd7 641 C1_RD_50MM &=0xFFFF0000;
js 2:71b3736a1bd7 642 C1_RD_50MM |=config_dat[8]<<8;
js 2:71b3736a1bd7 643 C1_RD_50MM &=0xFFFFFF00;
js 2:71b3736a1bd7 644 C1_RD_50MM |=config_dat[9];
js 2:71b3736a1bd7 645
js 2:71b3736a1bd7 646 C1_RD_32MM=config_dat[10]<<24;
js 2:71b3736a1bd7 647 C1_RD_32MM &=0xFF000000;
js 2:71b3736a1bd7 648 C1_RD_32MM |=config_dat[11]<<16;
js 2:71b3736a1bd7 649 C1_RD_32MM &=0xFFFF0000;
js 2:71b3736a1bd7 650 C1_RD_32MM |=config_dat[12]<<8;
js 2:71b3736a1bd7 651 C1_RD_32MM &=0xFFFFFF00;
js 2:71b3736a1bd7 652 C1_RD_32MM |=config_dat[13];
js 2:71b3736a1bd7 653
js 2:71b3736a1bd7 654 C1_RD_23MM=config_dat[14]<<24;
js 2:71b3736a1bd7 655 C1_RD_23MM &=0xFF000000;
js 2:71b3736a1bd7 656 C1_RD_23MM |=config_dat[15]<<16;
js 2:71b3736a1bd7 657 C1_RD_23MM &=0xFFFF0000;
js 2:71b3736a1bd7 658 C1_RD_23MM |=config_dat[16]<<8;
js 2:71b3736a1bd7 659 C1_RD_23MM &=0xFFFFFF00;
js 2:71b3736a1bd7 660 C1_RD_23MM |=config_dat[17];
js 2:71b3736a1bd7 661 ////////////////////////////////////
js 2:71b3736a1bd7 662 //////////端子供給2側///////////////////
js 2:71b3736a1bd7 663 C2_RD_50MM=config_dat[18]<<24;
js 2:71b3736a1bd7 664 C2_RD_50MM &=0xFF000000;
js 2:71b3736a1bd7 665 C2_RD_50MM |=config_dat[19]<<16;
js 2:71b3736a1bd7 666 C2_RD_50MM &=0xFFFF0000;
js 2:71b3736a1bd7 667 C2_RD_50MM |=config_dat[20]<<8;
js 2:71b3736a1bd7 668 C2_RD_50MM &=0xFFFFFF00;
js 2:71b3736a1bd7 669 C2_RD_50MM |=config_dat[21];
js 2:71b3736a1bd7 670
js 2:71b3736a1bd7 671 C2_RD_32MM=config_dat[22]<<24;
js 2:71b3736a1bd7 672 C2_RD_32MM &=0xFF000000;
js 2:71b3736a1bd7 673 C2_RD_32MM |=config_dat[23]<<16;
js 2:71b3736a1bd7 674 C2_RD_32MM &=0xFFFF0000;
js 2:71b3736a1bd7 675 C2_RD_32MM |=config_dat[24]<<8;
js 2:71b3736a1bd7 676 C2_RD_32MM &=0xFFFFFF00;
js 2:71b3736a1bd7 677 C2_RD_32MM |=config_dat[25];
js 2:71b3736a1bd7 678
js 2:71b3736a1bd7 679 C2_RD_23MM=config_dat[26]<<24;
js 2:71b3736a1bd7 680 C2_RD_23MM &=0xFF000000;
js 2:71b3736a1bd7 681 C2_RD_23MM |=config_dat[27]<<16;
js 2:71b3736a1bd7 682 C2_RD_23MM &=0xFFFF0000;
js 2:71b3736a1bd7 683 C2_RD_23MM |=config_dat[28]<<8;
js 2:71b3736a1bd7 684 C2_RD_23MM &=0xFFFFFF00;
js 2:71b3736a1bd7 685 C2_RD_23MM |=config_dat[29];
js 2:71b3736a1bd7 686
js 2:71b3736a1bd7 687 ////書き込みデータの初期値を読み込みデータに設定///
js 2:71b3736a1bd7 688
js 2:71b3736a1bd7 689 wait_us(100);
js 2:71b3736a1bd7 690 C1_WR_50MM = C1_RD_50MM;
js 2:71b3736a1bd7 691 C1_WR_32MM = C1_RD_32MM;
js 2:71b3736a1bd7 692 C1_WR_23MM = C1_RD_23MM;
js 2:71b3736a1bd7 693
js 2:71b3736a1bd7 694 C2_WR_50MM = C2_RD_50MM;
js 2:71b3736a1bd7 695 C2_WR_32MM = C2_RD_32MM;
js 2:71b3736a1bd7 696 C2_WR_23MM = C2_RD_23MM;
js 2:71b3736a1bd7 697
js 2:71b3736a1bd7 698 /*
js 2:71b3736a1bd7 699 printf("C1_RD_50MM=%d C1_RD_32MM=%d C1_RD_23MM=%d\r\n",C1_RD_50MM,C1_RD_32MM,C1_RD_23MM);
js 2:71b3736a1bd7 700 printf("C2_RD_50MM=%d C2_RD_32MM=%d C2_RD_23MM=%d\r\n",C2_RD_50MM,C2_RD_32MM,C2_RD_23MM);
js 2:71b3736a1bd7 701
js 2:71b3736a1bd7 702 printf("C1_WR_50MM=%d C1_WR_32MM=%d C1_WR_23MM=%d\r\n",C1_WR_50MM,C1_WR_32MM,C1_WR_23MM);
js 2:71b3736a1bd7 703 printf("C2_WR_50MM=%d C2_WR_32MM=%d C2_WR_23MM=%d\r\n",C2_WR_50MM,C2_WR_32MM,C2_WR_23MM);
js 2:71b3736a1bd7 704 */
js 2:71b3736a1bd7 705 //////////端子供給1//////////////////////////
js 2:71b3736a1bd7 706 C1_SET_50MM=C1_RD_50MM;
js 2:71b3736a1bd7 707 C1_SET_32MM=C1_RD_32MM;
js 2:71b3736a1bd7 708 C1_SET_23MM=C1_RD_23MM;
js 2:71b3736a1bd7 709
js 2:71b3736a1bd7 710 C1_SET_50MM=C1_SET_50MM/10;
js 2:71b3736a1bd7 711 C1_SET_32MM=C1_SET_32MM/10;
js 2:71b3736a1bd7 712 C1_SET_23MM=C1_SET_23MM/10;
js 2:71b3736a1bd7 713
js 2:71b3736a1bd7 714
js 2:71b3736a1bd7 715 //////////端子供給2//////////////////////////
js 2:71b3736a1bd7 716 C2_SET_50MM=C2_RD_50MM;
js 2:71b3736a1bd7 717 C2_SET_32MM=C2_RD_32MM;
js 2:71b3736a1bd7 718 C2_SET_23MM=C2_RD_23MM;
js 2:71b3736a1bd7 719
js 2:71b3736a1bd7 720 C2_SET_50MM=C2_SET_50MM/10;
js 2:71b3736a1bd7 721 C2_SET_32MM=C2_SET_32MM/10;
js 2:71b3736a1bd7 722 C2_SET_23MM=C2_SET_23MM/10;
js 2:71b3736a1bd7 723
js 2:71b3736a1bd7 724 }
js 2:71b3736a1bd7 725 }
js 2:71b3736a1bd7 726
js 2:71b3736a1bd7 727
js 2:71b3736a1bd7 728 ////設定の保存//
js 2:71b3736a1bd7 729 void SET_UP_SAVE()
js 2:71b3736a1bd7 730 {
js 2:71b3736a1bd7 731
js 2:71b3736a1bd7 732 fd = fopen("/fs/system/config.bin","w+");//w+:上書きモードでファイルを書き込み(存在しない場合は、ファイル作成)
js 2:71b3736a1bd7 733 if(!fd){
js 2:71b3736a1bd7 734 ALM_ST= ALM_SD;
js 2:71b3736a1bd7 735 ALM_HOLD_SET();
js 2:71b3736a1bd7 736 }else{
js 2:71b3736a1bd7 737 /////////極棒交換//////////////////
js 2:71b3736a1bd7 738 ///Φ4平///
js 2:71b3736a1bd7 739 config_save_dat[0]=WD1H_CHG_SET_DAT>>8;//上位バイト
js 2:71b3736a1bd7 740 config_save_dat[1]=WD1H_CHG_SET_DAT;//下位バイト
js 2:71b3736a1bd7 741 //Φ3平//
js 2:71b3736a1bd7 742 config_save_dat[2]=WD2H_CHG_SET_DAT>>8;//上位バイト
js 2:71b3736a1bd7 743 config_save_dat[3]=WD2H_CHG_SET_DAT;//下位バイト
js 2:71b3736a1bd7 744 //Φ3//
js 2:71b3736a1bd7 745 config_save_dat[4]=WD2R_CHG_SET_DAT>>8;//上位バイト
js 2:71b3736a1bd7 746 config_save_dat[5]=WD2R_CHG_SET_DAT;//下位バイト
js 2:71b3736a1bd7 747 /////////端子供給1////////////////
js 2:71b3736a1bd7 748 config_save_dat[6]=C1_WR_50MM>>24;
js 2:71b3736a1bd7 749 config_save_dat[7]=C1_WR_50MM>>16;
js 2:71b3736a1bd7 750 config_save_dat[8]=C1_WR_50MM>>8;
js 2:71b3736a1bd7 751 config_save_dat[9]=C1_WR_50MM;
js 2:71b3736a1bd7 752
js 2:71b3736a1bd7 753 config_save_dat[10]=C1_WR_32MM>>24;
js 2:71b3736a1bd7 754 config_save_dat[11]=C1_WR_32MM>>16;
js 2:71b3736a1bd7 755 config_save_dat[12]=C1_WR_32MM>>8;
js 2:71b3736a1bd7 756 config_save_dat[13]=C1_WR_32MM;
js 2:71b3736a1bd7 757
js 2:71b3736a1bd7 758 config_save_dat[14]=C1_WR_23MM>>24;
js 2:71b3736a1bd7 759 config_save_dat[15]=C1_WR_23MM>>16;
js 2:71b3736a1bd7 760 config_save_dat[16]=C1_WR_23MM>>8;
js 2:71b3736a1bd7 761 config_save_dat[17]=C1_WR_23MM;
js 2:71b3736a1bd7 762 /////////端子供給2////////////////
js 2:71b3736a1bd7 763 config_save_dat[18]=C2_WR_50MM>>24;
js 2:71b3736a1bd7 764 config_save_dat[19]=C2_WR_50MM>>16;
js 2:71b3736a1bd7 765 config_save_dat[20]=C2_WR_50MM>>8;
js 2:71b3736a1bd7 766 config_save_dat[21]=C2_WR_50MM;
js 2:71b3736a1bd7 767
js 2:71b3736a1bd7 768 config_save_dat[22]=C2_WR_32MM>>24;
js 2:71b3736a1bd7 769 config_save_dat[23]=C2_WR_32MM>>16;
js 2:71b3736a1bd7 770 config_save_dat[24]=C2_WR_32MM>>8;
js 2:71b3736a1bd7 771 config_save_dat[25]=C2_WR_32MM;
js 2:71b3736a1bd7 772
js 2:71b3736a1bd7 773 config_save_dat[26]=C2_WR_23MM>>24;
js 2:71b3736a1bd7 774 config_save_dat[27]=C2_WR_23MM>>16;
js 2:71b3736a1bd7 775 config_save_dat[28]=C2_WR_23MM>>8;
js 2:71b3736a1bd7 776 config_save_dat[29]=C2_WR_23MM;
js 2:71b3736a1bd7 777 fwrite(&config_save_dat, 1, 30, fd);
js 2:71b3736a1bd7 778 fclose(fd);
js 2:71b3736a1bd7 779
js 2:71b3736a1bd7 780 C1_SET_50MM=C1_WR_50MM/10;
js 2:71b3736a1bd7 781 C1_SET_32MM=C1_WR_32MM/10;
js 2:71b3736a1bd7 782 C1_SET_23MM=C1_WR_23MM/10;
js 2:71b3736a1bd7 783
js 2:71b3736a1bd7 784 C2_SET_50MM=C2_WR_50MM/10;
js 2:71b3736a1bd7 785 C2_SET_32MM=C2_WR_32MM/10;
js 2:71b3736a1bd7 786 C2_SET_23MM=C2_WR_23MM/10;
js 2:71b3736a1bd7 787
js 2:71b3736a1bd7 788
js 2:71b3736a1bd7 789 ///保存後の再読み込み///
js 2:71b3736a1bd7 790 SETUP_DATA_RD();
js 2:71b3736a1bd7 791 }
js 2:71b3736a1bd7 792 }