github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/blroomday.go (about) 1 //This file is part of EESLISM. 2 // 3 //Foobar is free software : you can redistribute itand /or modify 4 //it under the terms of the GNU General Public License as published by 5 //the Free Software Foundation, either version 3 of the License, or 6 //(at your option) any later version. 7 // 8 //Foobar is distributed in the hope that it will be useful, 9 //but WITHOUT ANY WARRANTY; without even the implied warranty of 10 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 11 //GNU General Public License for more details. 12 // 13 //You should have received a copy of the GNU General Public License 14 //along with Foobar.If not, see < https://www.gnu.org/licenses/>. 15 16 /* roomday.c */ 17 18 package eeslism 19 20 import ( 21 "fmt" 22 "io" 23 ) 24 25 var __Roomday_oldday = -999 26 var __Roomday_oldMon = -999 27 28 func Roomday(Mon int, Day int, Nday int, ttmm int, Rm []*ROOM, Rdp []*RDPNL, Simdayend int) { 29 Mo := Mon - 1 30 tt := ConvertHour(ttmm) 31 32 // 日集計 33 if Nday != __Roomday_oldday { 34 for i := range Rm { 35 Room := Rm[i] 36 37 svdyint(&Room.Trdy) 38 svdyint(&Room.xrdy) 39 svdyint(&Room.RHdy) 40 svdyint(&Room.Tsavdy) 41 42 R := Room.rmld 43 if R != nil { 44 qdyint(&R.Qdys) 45 qdyint(&R.Qdyl) 46 qdyint(&R.Qdyt) 47 } 48 49 for j := 0; j < Room.Nasup; j++ { 50 A := Room.Arsp[j] 51 qdyint(&A.Qdys) 52 qdyint(&A.Qdyl) 53 qdyint(&A.Qdyt) 54 } 55 56 for j := 0; j < Room.N; j++ { 57 Sd := Room.rsrf[j] 58 qdyint(&Sd.SQi) 59 svdyint(&Sd.Tsdy) 60 } 61 } 62 63 for i := range Rdp { 64 Rdpnl := Rdp[i] 65 svdyint(&Rdpnl.Tpody) 66 svdyint(&Rdpnl.Tpidy) 67 qdyint(&Rdpnl.Qdy) 68 qdyint(&Rdpnl.Scoldy) 69 svdyint(&Rdpnl.TPVdy) 70 qdyint(&Rdpnl.PVdy) 71 } 72 73 __Roomday_oldday = Nday 74 } 75 76 // 月集計 77 if Mon != __Roomday_oldMon { 78 //printf("リセット\n") ; 79 for i := range Rm { 80 Room := Rm[i] 81 82 svdyint(&Room.mTrdy) 83 svdyint(&Room.mxrdy) 84 svdyint(&Room.mRHdy) 85 svdyint(&Room.mTsavdy) 86 87 R := Room.rmld 88 if R != nil { 89 qdyint(&R.mQdys) 90 qdyint(&R.mQdyl) 91 qdyint(&R.mQdyt) 92 } 93 94 for j := 0; j < Room.Nasup; j++ { 95 A := Room.Arsp[j] 96 qdyint(&A.mQdys) 97 qdyint(&A.mQdyl) 98 qdyint(&A.mQdyt) 99 } 100 101 for j := 0; j < Room.N; j++ { 102 Sd := Room.rsrf[j] 103 qdyint(&Sd.mSQi) 104 svdyint(&Sd.mTsdy) 105 } 106 } 107 108 for i := range Rdp { 109 Rdpnl := Rdp[i] 110 svdyint(&Rdpnl.mTpody) 111 svdyint(&Rdpnl.mTpidy) 112 qdyint(&Rdpnl.mQdy) 113 qdyint(&Rdpnl.mScoldy) 114 svdyint(&Rdpnl.mTPVdy) 115 qdyint(&Rdpnl.mPVdy) 116 } 117 118 __Roomday_oldMon = Mon 119 } 120 121 // 日集計 122 for i := range Rm { 123 Room := Rm[i] 124 svdaysum(int64(ttmm), ON_SW, Room.Tr, &Room.Trdy) 125 svdaysum(int64(ttmm), ON_SW, Room.xr, &Room.xrdy) 126 svdaysum(int64(ttmm), ON_SW, Room.RH, &Room.RHdy) 127 svdaysum(int64(ttmm), ON_SW, Room.Tsav, &Room.Tsavdy) 128 129 R := Room.rmld 130 if R != nil { 131 qdaysum(int64(ttmm), ON_SW, R.Qs, &R.Qdys) 132 qdaysum(int64(ttmm), ON_SW, R.Ql, &R.Qdyl) 133 qdaysum(int64(ttmm), ON_SW, R.Qt, &R.Qdyt) 134 } 135 for j := 0; j < Room.Nasup; j++ { 136 A := Room.Arsp[j] 137 qdaysum(int64(ttmm), ON_SW, A.Qs, &A.Qdys) 138 qdaysum(int64(ttmm), ON_SW, A.Ql, &A.Qdyl) 139 qdaysum(int64(ttmm), ON_SW, A.Qt, &A.Qdyt) 140 } 141 142 for j := 0; j < Room.N; j++ { 143 Sd := Room.rsrf[j] 144 svdaysum(int64(ttmm), ON_SW, Sd.Ts, &Sd.Tsdy) 145 qdaysum(int64(ttmm), ON_SW, Sd.Qi, &Sd.SQi) 146 } 147 } 148 149 for i := range Rdp { 150 Rdpnl := Rdp[i] 151 152 svdaysum(int64(ttmm), Rdpnl.cmp.Control, Rdpnl.Tpo, &Rdpnl.Tpody) 153 svdaysum(int64(ttmm), Rdpnl.cmp.Control, Rdpnl.Tpi, &Rdpnl.Tpidy) 154 qdaysum(int64(ttmm), Rdpnl.cmp.Control, Rdpnl.Q, &Rdpnl.Qdy) 155 qdaysumNotOpe(int64(ttmm), Rdpnl.sd[0].Iwall*Rdpnl.sd[0].A, &Rdpnl.Scoldy) 156 157 control := OFF_SW 158 if Rdpnl.sd[0].PVwall.Power > 0. { 159 control = ON_SW 160 } 161 162 svdaysum(int64(ttmm), control, Rdpnl.sd[0].PVwall.TPV, &Rdpnl.TPVdy) 163 qdaysumNotOpe(int64(ttmm), Rdpnl.sd[0].PVwall.Power, &Rdpnl.PVdy) 164 } 165 166 // 月集計 167 //printf("Mon=%d Day=%d ttmm=%d\n", Mon, Day, ttmm ) ; 168 for i := range Rm { 169 Room := Rm[i] 170 171 svmonsum(Mon, Day, ttmm, ON_SW, Room.Tr, &Room.mTrdy, Nday, Simdayend) 172 svmonsum(Mon, Day, ttmm, ON_SW, Room.xr, &Room.mxrdy, Nday, Simdayend) 173 svmonsum(Mon, Day, ttmm, ON_SW, Room.RH, &Room.mRHdy, Nday, Simdayend) 174 svmonsum(Mon, Day, ttmm, ON_SW, Room.Tsav, &Room.mTsavdy, Nday, Simdayend) 175 176 R := Room.rmld 177 if R != nil { 178 qmonsum(Mon, Day, ttmm, ON_SW, R.Qs, &R.mQdys, Nday, Simdayend) 179 qmonsum(Mon, Day, ttmm, ON_SW, R.Ql, &R.mQdyl, Nday, Simdayend) 180 qmonsum(Mon, Day, ttmm, ON_SW, R.Qt, &R.mQdyt, Nday, Simdayend) 181 } 182 for j := 0; j < Room.Nasup; j++ { 183 A := Room.Arsp[j] 184 qmonsum(Mon, Day, ttmm, ON_SW, A.Qs, &A.mQdys, Nday, Simdayend) 185 qmonsum(Mon, Day, ttmm, ON_SW, A.Ql, &A.mQdyl, Nday, Simdayend) 186 qmonsum(Mon, Day, ttmm, ON_SW, A.Qt, &A.mQdyt, Nday, Simdayend) 187 } 188 189 for j := 0; j < Room.N; j++ { 190 Sd := Room.rsrf[j] 191 svmonsum(Mon, Day, ttmm, ON_SW, Sd.Ts, &Sd.mTsdy, Nday, Simdayend) 192 qmonsum(Mon, Day, ttmm, ON_SW, Sd.Qi, &Sd.mSQi, Nday, Simdayend) 193 } 194 } 195 196 for i := range Rdp { 197 Rdpnl := Rdp[i] 198 199 svmonsum(Mon, Day, ttmm, Rdpnl.cmp.Control, Rdpnl.Tpo, &Rdpnl.mTpody, Nday, Simdayend) 200 svmonsum(Mon, Day, ttmm, Rdpnl.cmp.Control, Rdpnl.Tpi, &Rdpnl.mTpidy, Nday, Simdayend) 201 qmonsum(Mon, Day, ttmm, Rdpnl.cmp.Control, Rdpnl.Q, &Rdpnl.mQdy, Nday, Simdayend) 202 qmonsumNotOpe(Mon, Day, ttmm, Rdpnl.sd[0].Iwall*Rdpnl.sd[0].A, &Rdpnl.mScoldy, Nday, Simdayend) 203 204 control := OFF_SW 205 if Rdpnl.sd[0].PVwall.Power > 0. { 206 control = ON_SW 207 } 208 209 svmonsum(Mon, Day, ttmm, control, Rdpnl.sd[0].PVwall.TPV, &Rdpnl.mTPVdy, Nday, Simdayend) 210 qmonsumNotOpe(Mon, Day, ttmm, Rdpnl.sd[0].PVwall.Power, &Rdpnl.mPVdy, Nday, Simdayend) 211 212 // 月・時刻のクロス集計 213 emtsum(Mon, Day, ttmm, control, Rdpnl.sd[0].PVwall.Power, &Rdpnl.mtPVdy[Mo][tt]) 214 } 215 } 216 217 /* ------------------------------------------------------- */ 218 219 var __Rmdyprint_id int = 0 220 221 func Rmdyprint(fo io.Writer, mrk string, Simc *SIMCONTL, mon, day int, Rm []*ROOM) { 222 if __Rmdyprint_id == 0 && len(Rm) > 0 { 223 __Rmdyprint_id++ 224 225 ttldyprint(fo, mrk, Simc) 226 fmt.Fprintf(fo, "-cat\n") 227 fmt.Fprintf(fo, "%s %d\n", ROOM_TYPE, len(Rm)) 228 229 for i := range Rm { 230 Room := Rm[i] 231 232 var Nload int 233 if Room.rmld != nil { 234 Nload = 24 235 } else { 236 Nload = 0 237 } 238 239 fmt.Fprintf(fo, " %s 5 %d 24 %d %d %d\n", Room.Name, 240 24+Nload+6*Room.Nasup+2*Room.Nrp, 241 Nload, 6*Room.Nasup, 2*Room.Nrp) 242 } 243 fmt.Fprintf(fo, "*\n#\n") 244 } 245 246 if __Rmdyprint_id == 1 && len(Rm) > 0 { 247 __Rmdyprint_id++ 248 249 for i := range Rm { 250 Room := Rm[i] 251 252 fmt.Fprintf(fo, "%s_Ht H d %s_Tr T f %s_ttn h d %s_Trn t f %s_ttm h d %s_Trm t f\n", 253 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 254 fmt.Fprintf(fo, "%s_Hx H d %s_xr X f %s_txn h d %s_xrn x f %s_txm h d %s_xrm x f\n", 255 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 256 fmt.Fprintf(fo, "%s_Hr H d %s_RH R f %s_trn h d %s_RHn r f %s_trm h d %s_RHm r f\n", 257 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 258 fmt.Fprintf(fo, "%s_Hs H d %s_Ts T f %s_tsn h d %s_Tsn t f %s_tsm h d %s_Tsm t f\n", 259 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 260 261 if Room.rmld != nil { 262 fmt.Fprintf(fo, "%s_Hsh H d %s_Lsh Q f %s_Hsc H d %s_Lsc Q f ", 263 Room.Name, Room.Name, Room.Name, Room.Name) 264 fmt.Fprintf(fo, "%s_tsh h d %s_Lqsh q f %s_tsc h d %s_Lqsc q f\n", 265 Room.Name, Room.Name, Room.Name, Room.Name) 266 267 fmt.Fprintf(fo, "%s_Hlh H d %s_Llh Q f %s_Hlc H d %s_Llc Q f ", 268 Room.Name, Room.Name, Room.Name, Room.Name) 269 fmt.Fprintf(fo, "%s_tlh h d %s_Lqlh q f %s_tlc h d %s_Lqlc q f\n", 270 Room.Name, Room.Name, Room.Name, Room.Name) 271 272 fmt.Fprintf(fo, "%s_Hth H d %s_Lth Q f %s_Htc H d %s_Ltc Q f ", 273 Room.Name, Room.Name, Room.Name, Room.Name) 274 fmt.Fprintf(fo, "%s_tth h d %s_Lqth q f %s_ttc h d %s_Lqtc q f\n", 275 Room.Name, Room.Name, Room.Name, Room.Name) 276 } 277 278 if Room.Nasup > 0 { 279 for j := 0; j < Room.Nasup; j++ { 280 Ei := Room.cmp.Elins[Room.Nachr+Room.Nrp+j] 281 282 if Ei.Lpath == nil { 283 fmt.Fprintf(fo, "%s:%d_Qash Q f %s:%d_Qasc Q f ", 284 Room.Name, j, Room.Name, j) 285 fmt.Fprintf(fo, "%s:%d_Qalh Q f %s:%d_Qalc Q f ", 286 Room.Name, j, Room.Name, j) 287 fmt.Fprintf(fo, "%s:%d_Qath Q f %s:%d_Qatc Q f\n", 288 Room.Name, j, Room.Name, j) 289 } else { 290 fmt.Fprintf(fo, "%s:%s_Qash Q f %s:%s_Qasc Q f ", 291 Room.Name, Ei.Lpath.Name, Room.Name, Ei.Lpath.Name) 292 fmt.Fprintf(fo, "%s:%s_Qalh Q f %s:%s_Qalc Q f ", 293 Room.Name, Ei.Lpath.Name, Room.Name, Ei.Lpath.Name) 294 fmt.Fprintf(fo, "%s:%s_Qath Q f %s:%s_Qatc Q f\n", 295 Room.Name, Ei.Lpath.Name, Room.Name, Ei.Lpath.Name) 296 } 297 } 298 } 299 for j := 0; j < Room.Nrp; j++ { 300 rpnl := Room.rmpnl[j] 301 fmt.Fprintf(fo, "%s:%s_Qh Q f %s:%s_Qc Q f ", Room.Name, rpnl.pnl.Name, 302 Room.Name, rpnl.pnl.Name) 303 } 304 fmt.Fprintf(fo, "\n") 305 } 306 } 307 308 fmt.Fprintf(fo, "%02d %02d\n", mon, day) 309 310 for i := range Rm { 311 Room := Rm[i] 312 313 fmt.Fprintf(fo, "%1d %4.2f %1d %4.2f %1d %4.2f ", 314 Room.Trdy.Hrs, Room.Trdy.M, Room.Trdy.Mntime, 315 Room.Trdy.Mn, Room.Trdy.Mxtime, Room.Trdy.Mx) 316 fmt.Fprintf(fo, "%1d %5.4f %1d %5.4f %1d %5.4f\n", 317 Room.xrdy.Hrs, Room.xrdy.M, Room.xrdy.Mntime, 318 Room.xrdy.Mn, Room.xrdy.Mxtime, Room.xrdy.Mx) 319 fmt.Fprintf(fo, "%1d %2.0f %1d %2.0f %1d %2.0f ", 320 Room.RHdy.Hrs, Room.RHdy.M, Room.RHdy.Mntime, 321 Room.RHdy.Mn, Room.RHdy.Mxtime, Room.RHdy.Mx) 322 fmt.Fprintf(fo, "%1d %4.2f %1d %4.2f %1d %4.2f\n", 323 Room.Tsavdy.Hrs, Room.Tsavdy.M, Room.Tsavdy.Mntime, 324 Room.Tsavdy.Mn, Room.Tsavdy.Mxtime, Room.Tsavdy.Mx) 325 326 R := Room.rmld 327 if R != nil { 328 fmt.Fprintf(fo, "%1d %.2f ", R.Qdys.Hhr, R.Qdys.H) 329 fmt.Fprintf(fo, "%1d %.2f ", R.Qdys.Chr, R.Qdys.C) 330 fmt.Fprintf(fo, "%4d %2.0f ", R.Qdys.Hmxtime, R.Qdys.Hmx) 331 fmt.Fprintf(fo, "%4d %2.0f ", R.Qdys.Cmxtime, R.Qdys.Cmx) 332 333 fmt.Fprintf(fo, "%1d %.2f ", R.Qdyl.Hhr, R.Qdyl.H) 334 fmt.Fprintf(fo, "%1d %.2f ", R.Qdyl.Chr, R.Qdyl.C) 335 fmt.Fprintf(fo, "%4d %2.0f ", R.Qdyl.Hmxtime, R.Qdyl.Hmx) 336 fmt.Fprintf(fo, "%4d %2.0f ", R.Qdyl.Cmxtime, R.Qdyl.Cmx) 337 338 fmt.Fprintf(fo, "%1d %.2f ", R.Qdyt.Hhr, R.Qdyt.H) 339 fmt.Fprintf(fo, "%1d %.2f ", R.Qdyt.Chr, R.Qdyt.C) 340 fmt.Fprintf(fo, "%4d %2.0f ", R.Qdyt.Hmxtime, R.Qdyt.Hmx) 341 fmt.Fprintf(fo, "%4d %2.0f\n", R.Qdyt.Cmxtime, R.Qdyt.Cmx) 342 } 343 if Room.Nasup > 0 { 344 for j := 0; j < Room.Nasup; j++ { 345 A := Room.Arsp[j] 346 fmt.Fprintf(fo, "%3.1f %.2f ", A.Qdys.H, A.Qdys.C) 347 fmt.Fprintf(fo, "%3.1f %.2f ", A.Qdyl.H, A.Qdyl.C) 348 fmt.Fprintf(fo, "%3.1f %.2f ", A.Qdyt.H, A.Qdyt.C) 349 } 350 fmt.Fprintf(fo, "\n") 351 } 352 if Room.Nrp > 0 { 353 for j := 0; j < Room.Nrp; j++ { 354 rpnl := Room.rmpnl[j] 355 fmt.Fprintf(fo, "%.2f %.2f\n", -rpnl.pnl.Qdy.C, -rpnl.pnl.Qdy.H) 356 } 357 } 358 fmt.Fprintf(fo, "\n") 359 } 360 } 361 362 // 月集計結果の出力 363 var __Rmmonprint_id int 364 365 func Rmmonprint(fo io.Writer, mrk string, Simc *SIMCONTL, mon, day int, Rm []*ROOM) { 366 367 Nroom := len(Rm) 368 369 if __Rmmonprint_id == 0 && Nroom > 0 { 370 __Rmmonprint_id++ 371 372 ttldyprint(fo, mrk, Simc) 373 fmt.Fprintf(fo, "-cat\n") 374 fmt.Fprintf(fo, "%s %d\n", ROOM_TYPE, Nroom) 375 376 for i := 0; i < Nroom; i++ { 377 Room := Rm[i] 378 379 var Nload int 380 if Room.rmld != nil { 381 Nload = 24 382 } else { 383 Nload = 0 384 } 385 fmt.Fprintf(fo, " %s 5 %d 24 %d %d %d\n", Room.Name, 386 24+Nload+6*Room.Nasup+2*Room.Nrp, 387 Nload, 6*Room.Nasup, 2*Room.Nrp) 388 } 389 fmt.Fprintf(fo, "*\n#\n") 390 } 391 392 if __Rmmonprint_id == 1 && Nroom > 0 { 393 __Rmmonprint_id++ 394 395 for i := 0; i < Nroom; i++ { 396 Room := Rm[i] 397 398 fmt.Fprintf(fo, "%s_Ht H d %s_Tr T f %s_ttn h d %s_Trn t f %s_ttm h d %s_Trm t f\n", 399 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 400 fmt.Fprintf(fo, "%s_Hx H d %s_xr X f %s_txn h d %s_xrn x f %s_txm h d %s_xrm x f\n", 401 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 402 fmt.Fprintf(fo, "%s_Hr H d %s_RH R f %s_trn h d %s_RHn r f %s_trm h d %s_RHm r f\n", 403 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 404 fmt.Fprintf(fo, "%s_Hs H d %s_Ts T f %s_tsn h d %s_Tsn t f %s_tsm h d %s_Tsm t f\n", 405 Room.Name, Room.Name, Room.Name, Room.Name, Room.Name, Room.Name) 406 407 if Room.rmld != nil { 408 fmt.Fprintf(fo, "%s_Hsh H d %s_Lsh Q f %s_Hsc H d %s_Lsc Q f ", 409 Room.Name, Room.Name, Room.Name, Room.Name) 410 fmt.Fprintf(fo, "%s_tsh h d %s_Lqsh q f %s_tsc h d %s_Lqsc q f\n", 411 Room.Name, Room.Name, Room.Name, Room.Name) 412 413 fmt.Fprintf(fo, "%s_Hlh H d %s_Llh Q f %s_Hlc H d %s_Llc Q f ", 414 Room.Name, Room.Name, Room.Name, Room.Name) 415 fmt.Fprintf(fo, "%s_tlh h d %s_Lqlh q f %s_tlc h d %s_Lqlc q f\n", 416 Room.Name, Room.Name, Room.Name, Room.Name) 417 418 fmt.Fprintf(fo, "%s_Hth H d %s_Lth Q f %s_Htc H d %s_Ltc Q f ", 419 Room.Name, Room.Name, Room.Name, Room.Name) 420 fmt.Fprintf(fo, "%s_tth h d %s_Lqth q f %s_ttc h d %s_Lqtc q f\n", 421 Room.Name, Room.Name, Room.Name, Room.Name) 422 } 423 424 if Room.Nasup > 0 { 425 for j := 0; j < Room.Nasup; j++ { 426 Ei := Room.cmp.Elins[Room.Nachr+Room.Nrp+j] 427 428 if Ei.Lpath == nil { 429 fmt.Fprintf(fo, "%s:%d_Qash Q f %s:%d_Qasc Q f ", 430 Room.Name, j, Room.Name, j) 431 fmt.Fprintf(fo, "%s:%d_Qalh Q f %s:%d_Qalc Q f ", 432 Room.Name, j, Room.Name, j) 433 fmt.Fprintf(fo, "%s:%d_Qath Q f %s:%d_Qatc Q f\n", 434 Room.Name, j, Room.Name, j) 435 } else { 436 fmt.Fprintf(fo, "%s:%s_Qash Q f %s:%s_Qasc Q f ", 437 Room.Name, Ei.Lpath.Name, Room.Name, Ei.Lpath.Name) 438 fmt.Fprintf(fo, "%s:%s_Qalh Q f %s:%s_Qalc Q f ", 439 Room.Name, Ei.Lpath.Name, Room.Name, Ei.Lpath.Name) 440 fmt.Fprintf(fo, "%s:%s_Qath Q f %s:%s_Qatc Q f\n", 441 Room.Name, Ei.Lpath.Name, Room.Name, Ei.Lpath.Name) 442 } 443 } 444 } 445 for j := 0; j < Room.Nrp; j++ { 446 rpnl := Room.rmpnl[j] 447 fmt.Fprintf(fo, "%s:%s_Qh Q f %s:%s_Qc Q f ", Room.Name, rpnl.pnl.Name, 448 Room.Name, rpnl.pnl.Name) 449 } 450 fmt.Fprintf(fo, "\n") 451 } 452 } 453 454 fmt.Fprintf(fo, "%02d %02d\n", mon, day) 455 456 for i := 0; i < Nroom; i++ { 457 Room := Rm[i] 458 459 fmt.Fprintf(fo, "%1d %4.2f %1d %4.2f %1d %4.2f ", 460 Room.mTrdy.Hrs, Room.mTrdy.M, Room.mTrdy.Mntime, 461 Room.mTrdy.Mn, Room.mTrdy.Mxtime, Room.mTrdy.Mx) 462 fmt.Fprintf(fo, "%1d %5.4f %1d %5.4f %1d %5.4f\n", 463 Room.mxrdy.Hrs, Room.mxrdy.M, Room.mxrdy.Mntime, 464 Room.mxrdy.Mn, Room.mxrdy.Mxtime, Room.mxrdy.Mx) 465 fmt.Fprintf(fo, "%1d %2.0f %1d %2.0f %1d %2.0f ", 466 Room.mRHdy.Hrs, Room.mRHdy.M, Room.mRHdy.Mntime, 467 Room.mRHdy.Mn, Room.mRHdy.Mxtime, Room.mRHdy.Mx) 468 fmt.Fprintf(fo, "%1d %4.2f %1d %4.2f %1d %4.2f\n", 469 Room.mTsavdy.Hrs, Room.mTsavdy.M, Room.mTsavdy.Mntime, 470 Room.mTsavdy.Mn, Room.mTsavdy.Mxtime, Room.mTsavdy.Mx) 471 472 R := Room.rmld 473 if R != nil { 474 fmt.Fprintf(fo, "%1d %3.1f ", R.mQdys.Hhr, R.mQdys.H) 475 fmt.Fprintf(fo, "%1d %3.1f ", R.mQdys.Chr, R.mQdys.C) 476 fmt.Fprintf(fo, "%4d %2.0f ", R.mQdys.Hmxtime, R.mQdys.Hmx) 477 fmt.Fprintf(fo, "%4d %2.0f ", R.mQdys.Cmxtime, R.mQdys.Cmx) 478 479 fmt.Fprintf(fo, "%1d %3.1f ", R.mQdyl.Hhr, R.mQdyl.H) 480 fmt.Fprintf(fo, "%1d %3.1f ", R.mQdyl.Chr, R.mQdyl.C) 481 fmt.Fprintf(fo, "%4d %2.0f ", R.mQdyl.Hmxtime, R.mQdyl.Hmx) 482 fmt.Fprintf(fo, "%4d %2.0f ", R.mQdyl.Cmxtime, R.mQdyl.Cmx) 483 484 fmt.Fprintf(fo, "%1d %3.1f ", R.mQdyt.Hhr, R.mQdyt.H) 485 fmt.Fprintf(fo, "%1d %3.1f ", R.mQdyt.Chr, R.mQdyt.C) 486 fmt.Fprintf(fo, "%4d %2.0f ", R.mQdyt.Hmxtime, R.mQdyt.Hmx) 487 fmt.Fprintf(fo, "%4d %2.0f\n", R.mQdyt.Cmxtime, R.mQdyt.Cmx) 488 } 489 if Room.Nasup > 0 { 490 for j := 0; j < Room.Nasup; j++ { 491 A := Room.Arsp[j] 492 fmt.Fprintf(fo, "%3.1f %3.1f ", A.mQdys.H, A.mQdys.C) 493 fmt.Fprintf(fo, "%3.1f %3.1f ", A.mQdyl.H, A.mQdyl.C) 494 fmt.Fprintf(fo, "%3.1f %3.1f ", A.mQdyt.H, A.mQdyt.C) 495 } 496 fmt.Fprintf(fo, "\n") 497 } 498 if Room.Nrp > 0 { 499 for j := 0; j < Room.Nrp; j++ { 500 rpnl := Room.rmpnl[j] 501 fmt.Fprintf(fo, "%3.1f %3.1f\n", -rpnl.pnl.mQdy.C, -rpnl.pnl.mQdy.H) 502 } 503 } 504 fmt.Fprintf(fo, "\n") 505 } 506 } 507 508 /* -------------------------------------------- */ 509 510 func paneldyprt(fo io.Writer, id int, _Rdpnl []*RDPNL) { 511 switch id { 512 case 0: 513 if len(_Rdpnl) > 0 { 514 fmt.Fprintf(fo, "%s %d\n", RDPANEL_TYPE, len(_Rdpnl)) 515 } 516 517 for i := range _Rdpnl { 518 Rdpnl := _Rdpnl[i] 519 Wall := Rdpnl.sd[0].mw.wall 520 521 if Wall.WallType == WallType_P { 522 // 床暖房パネルの場合 523 fmt.Fprintf(fo, " %s 1 20\n", Rdpnl.Name) 524 } else if Rdpnl.sd[0].PVwallFlg { 525 //太陽電池一体型の場合 526 fmt.Fprintf(fo, " %s 1 36\n", Rdpnl.Name) 527 } else { 528 // その他 529 fmt.Fprintf(fo, " %s 1 28\n", Rdpnl.Name) 530 } 531 } 532 break 533 534 case 1: 535 for i := range _Rdpnl { 536 Rdpnl := _Rdpnl[i] 537 Wall := Rdpnl.sd[0].mw.wall 538 539 fmt.Fprintf(fo, "%s_Hto H d %s_To T f ", Rdpnl.Name, Rdpnl.Name) 540 fmt.Fprintf(fo, "%s_ttno h d %s_Ton t f %s_ttm h d %s_Tom t f ", 541 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 542 fmt.Fprintf(fo, "%s_Ht H d %s_T T f ", Rdpnl.Name, Rdpnl.Name) 543 fmt.Fprintf(fo, "%s_ttn h d %s_Tn t f %s_ttm h d %s_Tm t f ", 544 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 545 fmt.Fprintf(fo, "%s_Hh H d %s_Qh Q f %s_Hc H d %s_Qc Q f", 546 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 547 fmt.Fprintf(fo, "%s_th h d %s_qh q f %s_tc h d %s_qc q f\n", 548 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 549 550 if Wall.WallType == WallType_C { 551 fmt.Fprintf(fo, "%s_ScolHh H d %s_ScolQh Q f %s_ScolHc H d %s_ScolQc Q f", 552 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 553 fmt.Fprintf(fo, "%s_Scolth h d %s_Scolqh q f %s_Scoltc h d %s_Scolqc q f\n", 554 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 555 556 if Rdpnl.sd[0].PVwallFlg { 557 fmt.Fprintf(fo, "%s_PVHt H d %s_TPV T f ", Rdpnl.Name, Rdpnl.Name) 558 fmt.Fprintf(fo, "%s_PVttn h d %s_TPVn t f %s_PVttm h d %s_TPVm t f ", 559 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 560 fmt.Fprintf(fo, "%s_PVH h d %s_E E f\n", Rdpnl.Name, Rdpnl.Name) 561 } 562 } 563 } 564 break 565 566 default: 567 for i := range _Rdpnl { 568 Rdpnl := _Rdpnl[i] 569 Wall := Rdpnl.sd[0].mw.wall 570 571 fmt.Fprintf(fo, "%1d %3.1f %1d %3.1f %1d %3.1f ", 572 Rdpnl.Tpody.Hrs, Rdpnl.Tpody.M, Rdpnl.Tpody.Mntime, 573 Rdpnl.Tpody.Mn, Rdpnl.Tpody.Mxtime, Rdpnl.Tpody.Mx) 574 fmt.Fprintf(fo, "%1d %3.1f %1d %3.1f %1d %3.1f ", 575 Rdpnl.Tpidy.Hrs, Rdpnl.Tpidy.M, Rdpnl.Tpidy.Mntime, 576 Rdpnl.Tpidy.Mn, Rdpnl.Tpidy.Mxtime, Rdpnl.Tpidy.Mx) 577 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.Qdy.Hhr, Rdpnl.Qdy.H) 578 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.Qdy.Chr, Rdpnl.Qdy.C) 579 fmt.Fprintf(fo, "%1d %2.0f ", Rdpnl.Qdy.Hmxtime, Rdpnl.Qdy.Hmx) 580 fmt.Fprintf(fo, "%1d %2.0f\n", Rdpnl.Qdy.Cmxtime, Rdpnl.Qdy.Cmx) 581 582 if Wall.WallType == WallType_C { 583 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.Scoldy.Hhr, Rdpnl.Scoldy.H) 584 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.Scoldy.Chr, Rdpnl.Scoldy.C) 585 fmt.Fprintf(fo, "%1d %2.0f ", Rdpnl.Scoldy.Hmxtime, Rdpnl.Scoldy.Hmx) 586 fmt.Fprintf(fo, "%1d %2.0f\n", Rdpnl.Scoldy.Cmxtime, Rdpnl.Scoldy.Cmx) 587 588 if Rdpnl.sd[0].PVwallFlg { 589 fmt.Fprintf(fo, "%1d %3.1f %1d %3.1f %1d %3.1f ", 590 Rdpnl.TPVdy.Hrs, Rdpnl.TPVdy.M, Rdpnl.TPVdy.Mntime, 591 Rdpnl.TPVdy.Mn, Rdpnl.TPVdy.Mxtime, Rdpnl.TPVdy.Mx) 592 fmt.Fprintf(fo, "%1d %.1f\n", Rdpnl.PVdy.Hhr, Rdpnl.PVdy.H) 593 } 594 } 595 } 596 break 597 } 598 } 599 600 func panelmonprt(fo io.Writer, id int, _Rdpnl []*RDPNL) { 601 602 switch id { 603 case 0: 604 if len(_Rdpnl) > 0 { 605 fmt.Fprintf(fo, "%s %d\n", RDPANEL_TYPE, len(_Rdpnl)) 606 } 607 608 for i := range _Rdpnl { 609 Rdpnl := _Rdpnl[i] 610 Wall := Rdpnl.sd[0].mw.wall 611 612 if Wall.WallType == WallType_P { 613 fmt.Fprintf(fo, " %s 1 20\n", Rdpnl.Name) 614 } else { 615 if Rdpnl.sd[0].PVwallFlg { 616 fmt.Fprintf(fo, " %s 1 36\n", Rdpnl.Name) 617 } else { 618 fmt.Fprintf(fo, " %s 1 28\n", Rdpnl.Name) 619 } 620 } 621 } 622 break 623 624 case 1: 625 for i := range _Rdpnl { 626 Rdpnl := _Rdpnl[i] 627 Wall := Rdpnl.sd[0].mw.wall 628 629 fmt.Fprintf(fo, "%s_Hto H d %s_To T f ", Rdpnl.Name, Rdpnl.Name) 630 fmt.Fprintf(fo, "%s_ttno h d %s_Ton t f %s_ttm h d %s_Tom t f ", 631 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 632 fmt.Fprintf(fo, "%s_Ht H d %s_T T f ", Rdpnl.Name, Rdpnl.Name) 633 fmt.Fprintf(fo, "%s_ttn h d %s_Tn t f %s_ttm h d %s_Tm t f ", 634 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 635 fmt.Fprintf(fo, "%s_Hh H d %s_Qh Q f %s_Hc H d %s_Qc Q f", 636 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 637 fmt.Fprintf(fo, "%s_th h d %s_qh q f %s_tc h d %s_qc q f\n", 638 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 639 640 if Wall.WallType == WallType_C { 641 fmt.Fprintf(fo, "%s_ScolHh H d %s_ScolQh Q f %s_ScolHc H d %s_ScolQc Q f", 642 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 643 fmt.Fprintf(fo, "%s_Scolth h d %s_Scolqh q f %s_Scoltc h d %s_Scolqc q f\n", 644 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 645 646 if Rdpnl.sd[0].PVwallFlg { 647 fmt.Fprintf(fo, "%s_PVHt H d %s_TPV T f ", Rdpnl.Name, Rdpnl.Name) 648 fmt.Fprintf(fo, "%s_PVttn h d %s_TPVn t f %s_PVttm h d %s_TPVm t f ", 649 Rdpnl.Name, Rdpnl.Name, Rdpnl.Name, Rdpnl.Name) 650 fmt.Fprintf(fo, "%s_PVH h d %s_E E f\n", Rdpnl.Name, Rdpnl.Name) 651 } 652 } 653 } 654 break 655 656 default: 657 for i := range _Rdpnl { 658 Rdpnl := _Rdpnl[i] 659 Wall := Rdpnl.sd[0].mw.wall 660 661 fmt.Fprintf(fo, "%1d %3.1f %1d %3.1f %1d %3.1f ", 662 Rdpnl.mTpody.Hrs, Rdpnl.mTpody.M, Rdpnl.mTpody.Mntime, 663 Rdpnl.mTpody.Mn, Rdpnl.mTpody.Mxtime, Rdpnl.mTpody.Mx) 664 fmt.Fprintf(fo, "%1d %3.1f %1d %3.1f %1d %3.1f ", 665 Rdpnl.mTpidy.Hrs, Rdpnl.mTpidy.M, Rdpnl.mTpidy.Mntime, 666 Rdpnl.mTpidy.Mn, Rdpnl.mTpidy.Mxtime, Rdpnl.mTpidy.Mx) 667 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.mQdy.Hhr, Rdpnl.mQdy.H) 668 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.mQdy.Chr, Rdpnl.mQdy.C) 669 fmt.Fprintf(fo, "%1d %2.0f ", Rdpnl.mQdy.Hmxtime, Rdpnl.mQdy.Hmx) 670 fmt.Fprintf(fo, "%1d %2.0f\n", Rdpnl.mQdy.Cmxtime, Rdpnl.mQdy.Cmx) 671 672 if Wall.WallType == WallType_C { 673 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.mScoldy.Hhr, Rdpnl.mScoldy.H) 674 fmt.Fprintf(fo, "%1d %3.1f ", Rdpnl.mScoldy.Chr, Rdpnl.mScoldy.C) 675 fmt.Fprintf(fo, "%1d %2.0f ", Rdpnl.mScoldy.Hmxtime, Rdpnl.mScoldy.Hmx) 676 fmt.Fprintf(fo, "%1d %2.0f\n", Rdpnl.mScoldy.Cmxtime, Rdpnl.mScoldy.Cmx) 677 678 if Rdpnl.sd[0].PVwallFlg { 679 fmt.Fprintf(fo, "%1d %3.1f %1d %3.1f %1d %3.1f ", 680 Rdpnl.mTPVdy.Hrs, Rdpnl.mTPVdy.M, Rdpnl.mTPVdy.Mntime, 681 Rdpnl.mTPVdy.Mn, Rdpnl.mTPVdy.Mxtime, Rdpnl.mTPVdy.Mx) 682 fmt.Fprintf(fo, "%1d %.1f\n", Rdpnl.mPVdy.Hhr, Rdpnl.mPVdy.H) 683 } 684 } 685 } 686 break 687 } 688 } 689 690 func panelmtprt(fo io.Writer, id int, Rdpnl []*RDPNL, Mo int, tt int) { 691 switch id { 692 case 0: 693 if len(Rdpnl) > 0 { 694 fmt.Fprintf(fo, "%s %d\n", RDPANEL_TYPE, len(Rdpnl)) 695 } 696 for i := range Rdpnl { 697 Rdpnl := Rdpnl[i] 698 fmt.Fprintf(fo, " %s 1 1\n", Rdpnl.Name) 699 } 700 case 1: 701 for i := range Rdpnl { 702 Rdpnl := Rdpnl[i] 703 fmt.Fprintf(fo, "%s_E E f \n", Rdpnl.Name) 704 } 705 default: 706 for i := range Rdpnl { 707 Rdpnl := Rdpnl[i] 708 fmt.Fprintf(fo, " %.2f \n", Rdpnl.mtPVdy[Mo-1][tt-1].D*Cff_kWh) 709 } 710 } 711 }