github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/mceqcadat.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 /* eqcadat.c */ 17 18 package eeslism 19 20 import ( 21 "fmt" 22 "strings" 23 ) 24 25 /* ----------------------------------------- */ 26 27 // 機器仕様入力 28 func Eqcadata(f *EeTokens, Eqcat *EQCAT) { 29 var ( 30 s string 31 ce int 32 E string 33 ) 34 35 dsn := "Eqcadata" 36 37 // 各種別のカタログの領域を初期化 38 Eqcat.Hccca = make([]*HCCCA, 0) 39 Eqcat.Boica = make([]*BOICA, 0) 40 Eqcat.Refaca = make([]*REFACA, 0) 41 Eqcat.Collca = make([]*COLLCA, 0) 42 Eqcat.PVca = make([]*PVCA, 0) 43 Eqcat.Pipeca = make([]*PIPECA, 0) 44 Eqcat.Stankca = make([]*STANKCA, 0) 45 Eqcat.Hexca = make([]*HEXCA, 0) 46 Eqcat.Pumpca = make([]*PUMPCA, 0) 47 Eqcat.Vavca = make([]*VAVCA, 0) 48 Eqcat.Stheatca = make([]*STHEATCA, 0) 49 Eqcat.Thexca = make([]*THEXCA, 0) 50 Eqcat.OMvavca = make([]*OMVAVCA, 0) 51 Eqcat.Desica = make([]*DESICA, 0) 52 Eqcat.Evacca = make([]*EVACCA, 0) 53 54 // 圧縮機特性リストを reflist.efl から読み取る 55 Eqcat.Rfcmp = Refcmpdat() 56 57 // ポンプ・ファンの部分負荷特性の近似式係数 を pumpfanlst.efl から読み取る 58 Eqcat.Pfcmp = PFcmpdata() 59 60 E = fmt.Sprintf(ERRFMT, dsn) 61 62 for f.IsEnd() == false { 63 s = f.GetToken() 64 if s[0] == '*' { 65 break 66 } 67 68 eqpType := EqpType(s) 69 70 if eqpType == HCCOIL_TYPE { 71 Hccca := new(HCCCA) 72 Hccca.name = "" 73 for f.IsEnd() == false { 74 s = f.GetToken() 75 if s[0] == ';' { 76 break 77 } 78 if ce = strings.IndexRune(s, ';'); ce != -1 { 79 s = s[:ce] 80 } 81 if Hccdata(s, Hccca) != 0 { 82 fmt.Printf("%s %s\n", E, s) 83 } 84 if ce != -1 { 85 break 86 } 87 } 88 89 Eqcat.Hccca = append(Eqcat.Hccca, Hccca) 90 } else if eqpType == BOILER_TYPE { 91 Boica := new(BOICA) 92 Boica.name = "" 93 for f.IsEnd() == false { 94 s = f.GetToken() 95 if s[0] == ';' { 96 break 97 } 98 if ce = strings.IndexRune(s, ';'); ce != -1 { 99 s = s[:ce] 100 } 101 if Boidata(s, Boica) != 0 { 102 fmt.Printf("%s %s\n", E, s) 103 } 104 if ce != -1 { 105 break 106 } 107 } 108 Eqcat.Boica = append(Eqcat.Boica, Boica) 109 } else if eqpType == COLLECTOR_TYPE || eqpType == ACOLLECTOR_TYPE { 110 Collca := new(COLLCA) 111 Collca.name = "" 112 Collca.Fd = 0.9 113 ReadCatalogData(f, func(ss string) int { return Colldata(eqpType, ss, Collca) }, s, E) 114 Eqcat.Collca = append(Eqcat.Collca, Collca) 115 } else if eqpType == PV_TYPE { 116 PVca := new(PVCA) 117 PVca.Name = "" 118 ReadCatalogData(f, func(ss string) int { return PVcadata(ss, PVca) }, s, E) 119 Eqcat.PVca = append(Eqcat.PVca, PVca) 120 } else if eqpType == REFACOMP_TYPE { 121 Refaca := new(REFACA) 122 Refaca.name = "" 123 ReadCatalogData(f, func(ss string) int { return Refadata(ss, Refaca, Eqcat.Rfcmp) }, s, E) 124 Eqcat.Refaca = append(Eqcat.Refaca, Refaca) 125 } else if eqpType == PIPEDUCT_TYPE || eqpType == DUCT_TYPE { 126 Pipeca := new(PIPECA) 127 Pipeca.name = "" 128 ReadCatalogData(f, func(ss string) int { return Pipedata(eqpType, ss, Pipeca) }, s, E) 129 Eqcat.Pipeca = append(Eqcat.Pipeca, Pipeca) 130 } else if eqpType == STANK_TYPE { 131 Stankca := new(STANKCA) 132 Stankca.name = "" 133 ReadCatalogData(f, func(ss string) int { return Stankdata(f, ss, Stankca) }, s, E) 134 Eqcat.Stankca = append(Eqcat.Stankca, Stankca) 135 } else if eqpType == HEXCHANGR_TYPE { 136 Hexca := new(HEXCA) 137 Hexca.Name = "" 138 ReadCatalogData(f, func(ss string) int { return Hexdata(ss, Hexca) }, s, E) 139 Eqcat.Hexca = append(Eqcat.Hexca, Hexca) 140 } else if eqpType == PUMP_TYPE || eqpType == FAN_TYPE { 141 Pumpca := new(PUMPCA) 142 Pumpca.name = "" 143 Pumpca.Type = "" 144 Pumpca.val = nil 145 Pumpca.pfcmp = nil 146 ReadCatalogData(f, func(ss string) int { return Pumpdata(eqpType, ss, Pumpca, Eqcat.Pfcmp) }, s, E) 147 Eqcat.Pumpca = append(Eqcat.Pumpca, Pumpca) 148 } else if eqpType == VAV_TYPE || eqpType == VWV_TYPE { 149 vavca := new(VAVCA) 150 vavca.dTset = -999.0 151 vavca.Name = "" 152 ReadCatalogData(f, func(ss string) int { return VAVdata(eqpType, ss, vavca) }, s, E) 153 Eqcat.Vavca = append(Eqcat.Vavca, vavca) 154 } else if eqpType == OMVAV_TYPE || eqpType == OAVAV_TYPE { 155 OMvavca := new(OMVAVCA) 156 OMvavca.Name = "" 157 OMvavca.Gmax = -999.0 158 OMvavca.Gmin = -999.0 159 ReadCatalogData(f, func(ss string) int { return OMVAVdata(ss, OMvavca) }, s, E) 160 Eqcat.OMvavca = append(Eqcat.OMvavca, OMvavca) 161 } else if eqpType == STHEAT_TYPE { 162 stheatca := new(STHEATCA) 163 stheatca.Name = "" 164 stheatca.PCMName = "" 165 ReadCatalogData(f, func(ss string) int { return Stheatdata(ss, stheatca) }, s, E) 166 Eqcat.Stheatca = append(Eqcat.Stheatca, stheatca) 167 } else if eqpType == THEX_TYPE { 168 Thexca := new(THEXCA) 169 Thexca.Name = "" 170 Thexca.et = -999.0 171 ReadCatalogData(f, func(ss string) int { return Thexdata(ss, Thexca) }, s, E) 172 Eqcat.Thexca = append(Eqcat.Thexca, Thexca) 173 } else if eqpType == DESI_TYPE { 174 Desica := new(DESICA) 175 Desica.name = "" 176 ReadCatalogData(f, func(ss string) int { return Desiccantdata(ss, Desica) }, s, E) 177 Eqcat.Desica = append(Eqcat.Desica, Desica) 178 } else if eqpType == EVAC_TYPE { 179 Evacca := new(EVACCA) 180 Evacca.Name = "" 181 ReadCatalogData(f, func(ss string) int { return Evacdata(ss, Evacca) }, s, E) 182 Eqcat.Evacca = append(Eqcat.Evacca, Evacca) 183 } else { 184 fmt.Printf("%s %s\n", E, s) 185 } 186 } 187 } 188 189 func ReadCatalogData(f *EeTokens, reader func(string) int, s string, E string) { 190 var ce int 191 for f.IsEnd() == false { 192 ss := f.GetToken() 193 if ss[0] == ';' { 194 break 195 } 196 if ce = strings.IndexRune(ss, ';'); ce != -1 { 197 s = s[:ce] 198 } 199 if reader(ss) != 0 { 200 fmt.Printf("%s %s\n", E, s) 201 } 202 if ce != -1 { 203 break 204 } 205 } 206 }