github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/dbgprip1.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 package eeslism 17 18 import ( 19 "fmt" 20 "io" 21 "os" 22 ) 23 24 /* -------------------------------- */ 25 26 func dprdayweek(daywk []int) { 27 const dmax = 366 28 29 fmt.Print("--- Day of week -----\n ") 30 for d := 0; d < 8; d++ { 31 fmt.Printf(" %s=%d ", DAYweek[d], d) 32 } 33 fmt.Println() 34 35 k := 1 36 for d := 1; d < dmax; d++ { 37 if FNNday(k, 1) == d { 38 fmt.Printf("\n%2d - ", k) 39 k++ 40 } 41 fmt.Printf("%2d", daywk[d]) 42 } 43 fmt.Println() 44 } 45 46 /* ----------------------------------------------------------------- */ 47 48 // スケジュール設定のデバッグ出力 49 func (Schdl *SCHDL) dprschtable() { 50 51 Ssn, Wkd, Dh, Dw := Schdl.Seasn, Schdl.Wkdy, Schdl.Dsch, Schdl.Dscw 52 53 Ns := len(Ssn) 54 Nw := len(Wkd) 55 Nsc := len(Dh) 56 Nsw := len(Dw) 57 58 if DEBUG { 59 fmt.Printf("\n*** dprschtable ***\n") 60 fmt.Printf("\n=== Schtable end is=%d iw=%d sc=%d sw=%d\n", Ns, Nw, Nsc, Nsw) 61 62 // 季節設定の出力 63 for _, Seasn := range Ssn { 64 fmt.Printf("\n- %s", Seasn.name) 65 66 for js := range Seasn.sday { 67 sday := Seasn.sday[js] 68 eday := Seasn.eday[js] 69 fmt.Printf(" %4d-%4d", sday, eday) 70 } 71 } 72 73 // 曜日設定の出力 74 for _, Wkdy := range Wkd { 75 fmt.Printf("\n- %s", Wkdy.name) 76 77 for _, wday := range Wkdy.wday { 78 if wday { 79 fmt.Printf(" 1") 80 } else { 81 fmt.Printf(" 0") 82 } 83 } 84 } 85 86 // 1日の設定値スケジュールの出力 87 for sc, Dsch := range Dh { 88 fmt.Printf("\n-VL %10s (%2d) ", Dsch.name, sc) 89 90 for jsc := range Dsch.stime { 91 stime := Dsch.stime[jsc] 92 val := Dsch.val[jsc] 93 etime := Dsch.etime[jsc] 94 fmt.Printf(" %4d-(%6.2f)-%4d", stime, val, etime) 95 } 96 } 97 98 // 1日の切替スケジュールの出力 99 for sw, Dscw := range Dw { 100 fmt.Printf("\n-SW %10s (%2d) ", Dscw.name, sw) 101 102 for jsw := range Dscw.stime { 103 stime := Dscw.stime[jsw] 104 mode := Dscw.mode[jsw] 105 etime := Dscw.etime[jsw] 106 fmt.Printf(" %4d-( %c)-%4d", stime, mode, etime) 107 } 108 } 109 } 110 111 if Ferr != nil { 112 fmt.Fprintf(Ferr, "\n*** dprschtable ***\n") 113 fmt.Fprintf(Ferr, "\n=== Schtable end is=%d iw=%d sc=%d sw=%d\n", Ns, Nw, Nsc, Nsw) 114 115 // 季節設定の出力 116 for _, Seasn := range Ssn { 117 fmt.Fprintf(Ferr, "\n\t%s", Seasn.name) 118 119 for js := range Seasn.sday { 120 sday := Seasn.sday[js] 121 eday := Seasn.eday[js] 122 fmt.Fprintf(Ferr, "\t%d-%d", sday, eday) 123 } 124 } 125 126 // 曜日の出力 127 for j := range DAYweek { 128 fmt.Fprintf(Ferr, "\t%s", DAYweek[j]) 129 } 130 131 // 曜日設定の出力 132 for _, Wkdy := range Wkd { 133 fmt.Fprintf(Ferr, "\n%s", Wkdy.name) 134 135 for _, wday := range Wkdy.wday { 136 if wday { 137 fmt.Fprintf(Ferr, "\t1") 138 } else { 139 fmt.Fprintf(Ferr, "\t0") 140 } 141 } 142 } 143 144 // 1日の設定値スケジュールの出力 145 for sc, Dsch := range Dh { 146 fmt.Fprintf(Ferr, "\nVL\t%s\t[%d]", Dsch.name, sc) 147 148 for jsc := range Dsch.stime { 149 stime := Dsch.stime[jsc] 150 val := Dsch.val[jsc] 151 etime := Dsch.etime[jsc] 152 fmt.Fprintf(Ferr, "\t%d-(%.2g)-%d", stime, val, etime) 153 } 154 } 155 156 // 1日の切替スケジュールの出力 157 for sw, Dscw := range Dw { 158 fmt.Fprintf(Ferr, "\nSW\t%s\t[%d]", Dscw.name, sw) 159 160 for jsw := range Dscw.stime { 161 stime := Dscw.stime[jsw] 162 mode := Dscw.mode[jsw] 163 etime := Dscw.etime[jsw] 164 fmt.Fprintf(Ferr, "\t%d-(%c)-%d", stime, mode, etime) 165 } 166 } 167 168 fmt.Fprintf(Ferr, "\n\n") 169 } 170 } 171 172 /* ----------------------------------------------------------------- */ 173 174 func dprschdata(Sh []SCH, Sw []SCH) { 175 const dmax = 366 176 177 Nsc := len(Sh) 178 Nsw := len(Sw) 179 180 if DEBUG { 181 fmt.Printf("\n*** dprschdata ***\n") 182 fmt.Printf("\n== len(Sch)=%d len(Scw)=%d\n", Nsc, Nsw) 183 184 for i := 0; i < Nsc; i++ { 185 Sch := &Sh[i] 186 fmt.Printf("\nSCH= %s (%2d) ", Sch.name, i) 187 188 k := 1 189 for d := 1; d < dmax; d++ { 190 day := Sch.day[d] 191 if FNNday(k, 1) == d { 192 fmt.Printf("\n%2d - ", k) 193 k++ 194 } 195 fmt.Printf("%2d", day) 196 } 197 } 198 199 for i := 0; i < Nsw; i++ { 200 Scw := &Sw[i] 201 fmt.Printf("\nSCW= %s (%2d) ", Scw.name, i) 202 k := 1 203 for d := 1; d < dmax; d++ { 204 day := Scw.day[d] 205 if FNNday(k, 1) == d { 206 fmt.Printf("\n%2d - ", k) 207 k++ 208 } 209 fmt.Printf("%2d", day) 210 } 211 } 212 fmt.Printf("\n") 213 } 214 215 if Ferr != nil { 216 fmt.Fprintf(Ferr, "\n*** dprschdata ***\n") 217 fmt.Fprintf(Ferr, "\n== len(Sch)=%d len(Scw)=%d\n", Nsc, Nsw) 218 219 for i := 0; i < Nsc; i++ { 220 Sch := &Sh[i] 221 fmt.Fprintf(Ferr, "\nSCH=%s\t[%d]\t", Sch.name, i) 222 223 k := 1 224 for d := 1; d < dmax; d++ { 225 day := Sch.day[d] 226 if FNNday(k, 1) == d { 227 fmt.Fprintf(Ferr, "\n%2d - ", k) 228 k++ 229 } 230 fmt.Fprintf(Ferr, "%2d", day) 231 } 232 } 233 234 for i := 0; i < Nsw; i++ { 235 Scw := &Sw[i] 236 fmt.Fprintf(Ferr, "\nSCW= %s (%2d) ", Scw.name, i) 237 k := 1 238 for d := 1; d < dmax; d++ { 239 day := Scw.day[d] 240 if FNNday(k, 1) == d { 241 fmt.Fprintf(Ferr, "\n%2d - ", k) 242 k++ 243 } 244 fmt.Fprintf(Ferr, "%2d", day) 245 } 246 } 247 fmt.Fprintf(Ferr, "\n") 248 } 249 } 250 251 /* ----------------------------------------------------------------- */ 252 253 func dprachv(Room []ROOM) { 254 255 f := func(s io.Writer) { 256 fmt.Fprintln(Ferr, "\n*** dprachv***") 257 258 for i := range Room { 259 Rm := Room[i] 260 fmt.Fprintf(Ferr, "to rm: %-10s from rms(sch):", Rm.Name) 261 262 for j := 0; j < Rm.Nachr; j++ { 263 A := Rm.achr[j] 264 fmt.Fprintf(Ferr, " %-10s (%3d)", Room[A.rm].Name, A.sch) 265 } 266 fmt.Fprintln(Ferr) 267 } 268 } 269 270 if DEBUG { 271 f(os.Stdout) 272 } 273 274 if Ferr != nil { 275 f(Ferr) 276 } 277 } 278 279 /* ----------------------------------------------------------------- */ 280 281 func (exsfs *EXSFS) dprexsf() { 282 if exsfs.Exs == nil { 283 return 284 } 285 286 if DEBUG { 287 fmt.Println("\n*** dprexsf ***") 288 for i, Exs := range exsfs.Exs { 289 fmt.Printf("%2d %-11s typ=%c Wa=%6.2f Wb=%5.2f Rg=%4.2f z=%5.2f edf=%6.2e\n", 290 i, Exs.Name, Exs.Typ, Exs.Wa, Exs.Wb, Exs.Rg, Exs.Z, Exs.Erdff) 291 } 292 } 293 294 if Ferr != nil { 295 fmt.Fprintln(Ferr, "\n*** dprexsf ***") 296 fmt.Fprintln(Ferr, "\tNo.\tName\ttyp\tWa\tWb\tRg\tz\tedf") 297 298 for i, Exs := range exsfs.Exs { 299 fmt.Fprintf(Ferr, "\t%d\t%s\t%c\t%.4g\t%.4g\t%.2g\t%.2g\t%.2g\n", 300 i, Exs.Name, Exs.Typ, Exs.Wa, Exs.Wb, Exs.Rg, Exs.Z, Exs.Erdff) 301 } 302 } 303 } 304 305 /* ----------------------------------------------------------------- */ 306 307 func (Rmvls *RMVLS) dprwwdata() { 308 if DEBUG { 309 fmt.Printf("\n*** dprwwdata ***\nWALLdata\n") 310 311 for i, Wall := range Rmvls.Wall { 312 fmt.Printf("\nWall i=%d %s R=%5.3f IP=%d Ei=%4.2f Eo=%4.2f as=%4.2f\n", i, get_string_or_null(Wall.name), Wall.Rwall, Wall.Ip, Wall.Ei, Wall.Eo, Wall.as) 313 314 for j := 0; j < Wall.N; j++ { 315 w := &Wall.welm[j] 316 fmt.Printf(" %2d %-10s %5.3f %2d\n", j, w.Code, w.L, w.ND) 317 } 318 } 319 320 fmt.Printf("\nWINDOWdata\n") 321 322 for _, Window := range Rmvls.Window { 323 fmt.Printf("windows %s\n", Window.Name) 324 fmt.Printf(" R=%f t=%f B=%f Ei=%f Eo=%f\n", Window.Rwall, Window.tgtn, Window.Bn, Window.Ei, Window.Eo) 325 } 326 } 327 328 if Ferr != nil { 329 fmt.Fprintf(Ferr, "\n*** dprwwdata ***\nWALLdata\n") 330 331 for i, Wall := range Rmvls.Wall { 332 fmt.Fprintf(Ferr, "\nWall[%d]\t%s\tR=%.3g\tIP=%d\tEi=%.2g\tEo=%.2g\tas=%.2g\n", i, Wall.name, Wall.Rwall, Wall.Ip, Wall.Ei, Wall.Eo, Wall.as) 333 334 fmt.Fprintf(Ferr, "\tNo.\tcode\tL\tND\n") 335 336 for j := 0; j < Wall.N; j++ { 337 w := &Wall.welm[j] 338 fmt.Fprintf(Ferr, "\t%d\t%s\t%.3g\t%d\n", j, w.Code, w.L, w.ND) 339 } 340 } 341 342 fmt.Fprintf(Ferr, "\nWINDOWdata\n") 343 344 for i, Window := range Rmvls.Window { 345 fmt.Fprintf(Ferr, "windows[%d]\t%s\n", i, Window.Name) 346 fmt.Fprintf(Ferr, "\tR=%.3g\tt=%.2g\tB=%.2g\tEi=%.2g\tEo=%.2g\n", Window.Rwall, 347 Window.tgtn, Window.Bn, Window.Ei, Window.Eo) 348 } 349 } 350 } 351 352 /* ----------------------------------------------------------------- */ 353 354 func (Rmvls *RMVLS) dprroomdata() { 355 if DEBUG { 356 fmt.Printf("\n*** dprroomdata ***\n") 357 358 for i, Room := range Rmvls.Room { 359 fmt.Printf("\n==room=(%d) %s N=%d Ntr=%d Nrp=%d V=%8.1f MRM=%10.4e\n", 360 i, Room.Name, Room.N, Room.Ntr, Room.Nrp, Room.VRM, Room.MRM) 361 fmt.Printf(" Floor area=%6.2f Total surface area=%6.2f\n", Room.FArea, Room.Area) 362 363 fmt.Printf(" Gve=%f Gvi=%f\n", 364 Room.Gve, Room.Gvi) 365 fmt.Printf(" Light=%f Ltyp=%c ", Room.Light, Room.Ltyp) 366 fmt.Printf(" Nhm=%f\n", 367 Room.Nhm) 368 fmt.Printf(" Apsc=%f Apsr=%f ", 369 Room.Apsc, Room.Apsr) 370 fmt.Printf(" Apl=%f \n", Room.Apl) 371 372 for j := 0; j < Room.N; j++ { 373 Sdd := Rmvls.Sd[Room.Brs+j] 374 fmt.Printf(" %2d ble=%c typ=%c name=%8s exs=%2d nxrm=%2d nxn=%2d ", 375 Room.Brs+j, Sdd.ble, Sdd.typ, get_string_or_null(Sdd.Name), Sdd.exs, Sdd.nxrm, Sdd.nxn) 376 fmt.Printf("wd=%2d Nfn=%2d A=%5.1f mwside=%c mwtype=%c Ei=%.2f Eo=%.2f\n", 377 Sdd.wd, Sdd.Nfn, Sdd.A, Sdd.mwside, Sdd.mwtype, Sdd.Ei, Sdd.Eo) 378 } 379 } 380 } 381 382 if Ferr != nil { 383 fmt.Fprintf(Ferr, "\n*** dprroomdata ***\n") 384 385 for i, Room := range Rmvls.Room { 386 fmt.Fprintf(Ferr, "\n==room=(%d)\t%s\tN=%d\tNtr=%d\tNrp=%d\tV=%.3g\tMRM=%.2g\n", 387 i, Room.Name, Room.N, Room.Ntr, Room.Nrp, Room.VRM, Room.MRM) 388 fmt.Fprintf(Ferr, "\tFloor_area=%.3g\tTotal_surface_area=%.2g\n", Room.FArea, Room.Area) 389 390 fmt.Fprintf(Ferr, "\tGve=%.2g\tGvi=%.2g\n", Room.Gve, Room.Gvi) 391 fmt.Fprintf(Ferr, "\tLight=%.2g\tLtyp=%c", Room.Light, Room.Ltyp) 392 fmt.Fprintf(Ferr, "\tNhm=%.2g\n", Room.Nhm) 393 fmt.Fprintf(Ferr, "\tApsc=%.2g\tApsr=%.2g", Room.Apsc, Room.Apsr) 394 fmt.Fprintf(Ferr, "\tApl=%.2g\n", Room.Apl) 395 396 fmt.Fprintf(Ferr, "\tNo.\tble\ttyp\tname\texs\tnxrmd\tnxn\t") 397 fmt.Fprintf(Ferr, "wd\tNfn\tA\tmwside\tmwtype\tEi\tEo\n") 398 399 for j := 0; j < Room.N; j++ { 400 Sdd := Rmvls.Sd[Room.Brs+j] 401 fmt.Fprintf(Ferr, "\t%d\t%c\t%c\t%s\t%d\t%d\t%d\t", Room.Brs+j, Sdd.ble, Sdd.typ, Sdd.Name, Sdd.exs, Sdd.nxrm, Sdd.nxn) 402 fmt.Fprintf(Ferr, "%d\t%d\t%.3g\t%c\t%c\t%.2f\t%.2f\n", Sdd.wd, Sdd.Nfn, Sdd.A, Sdd.mwside, Sdd.mwtype, Sdd.Ei, Sdd.Eo) 403 } 404 } 405 } 406 } 407 408 /* ----------------------------------------------------------------- */ 409 410 func (Rmvls *RMVLS) dprballoc() { 411 if DEBUG { 412 fmt.Println("\n*** dprballoc ***") 413 414 for mw, Mw := range Rmvls.Mw { 415 id := Rmvls.Sd[Mw.ns].wd 416 fmt.Printf(" %2d n=%2d rm=%2d nxrm=%2d wd=%2d wall=%s M=%2d A=%.2f\n", 417 mw, Mw.ns, Mw.rm, Mw.nxrm, id, get_string_or_null(Mw.wall.name), Mw.M, Mw.sd.A) 418 } 419 } 420 if Ferr != nil { 421 fmt.Fprintln(Ferr, "\n*** dprballoc ***") 422 fmt.Fprintln(Ferr, "\tNo.\tn\trm\tnxrm\twd\twall\tM\tA") 423 424 for mw, Mw := range Rmvls.Mw { 425 id := Rmvls.Sd[Mw.ns].wd 426 fmt.Fprintf(Ferr, "\t%d\t%d\t%d\t%d\t%d\t%s\t%d\t%.2g\n", 427 mw, Mw.ns, Mw.rm, Mw.nxrm, id, Mw.wall.name, Mw.M, Mw.sd.A) 428 } 429 } 430 }