⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 corewizard.java

📁 这是一个以JAVA编写的程序,本人还没有试过,是一个简单的温度控制系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            sb.append("            <class>net.sf.dz.device.actuator.impl.tcp.PnpHvacDriver</class>\n");            sb.append("            <switch>\n");            sb.append("                <mode><address>");                        if ( modeAddress != null ) {                            sb.append(modeAddress);                            } else {                            sb.append("NOT_CONFIGURED");            }                        sb.append("</address></mode>\n");                        sb.append("                <stage><address>");                        if ( stageAddress != null ) {                            sb.append(stageAddress);                            } else {                            sb.append("NOT_CONFIGURED");            }                        sb.append("</address></stage>\n");            sb.append("                <fan><address>");                        if ( fanAddress != null ) {                            sb.append(fanAddress);            } else {                            sb.append("NOT_CONFIGURED");            }                        sb.append("</address></fan>\n");            sb.append("            </switch>\n");            sb.append("        </driver>\n");            sb.append("        <mode>cool</mode>\n");            sb.append("        <zone_controller>\n");            sb.append("            <class>net.sf.dz.device.model.impl.BalancingZoneController</class>\n");            sb.append("            <dump_threshold>0.3</dump_threshold>\n");            sb.append("        </zone_controller>\n");                        for ( Iterator i = ud.zoneSet.iterator(); i.hasNext(); ) {                            ZoneDescriptor zd = (ZoneDescriptor)i.next();                renderZone(zd, context, sb);            }                        sb.append("    </unit>\n");        }                private void renderZone(ZoneDescriptor zd, Map context, StringBuffer sb) {                    sb.append("        <zone name=\"").append(zd.name).append("\">\n");            sb.append("            <thermostat>\n");            sb.append("                <controller>\n");            sb.append("                    <class>net.sf.dz.controller.PID_Controller</class>\n");            sb.append("                    <pid>\n");            sb.append("                        <P>1</P>\n");            sb.append("                        <I><weight>0.000002</weight><time>900000</time></I>\n");            sb.append("                        <D><weight>0</weight><time>0</time></D>\n");            sb.append("                        <SL>1</SL>\n");            sb.append("                    </pid>\n");            sb.append("                </controller>\n");            sb.append("                <temp_sensor>\n");            sb.append("                    <class>net.sf.dz.device.sensor.impl.PnpTemperatureSensor</class>\n");            sb.append("                    <address>");                        if ( zd.sensor != null ) {                            sb.append(zd.sensor.address);            } else {                            sb.append("NOT_CONFIGURED");            }                        sb.append("</address>\n");            sb.append("                </temp_sensor>\n");            sb.append("            </thermostat>\n");            sb.append("            <damper>\n");                        if ( zd.servo == null ) {                            sb.append("                <class>net.sf.dz.device.actuator.impl.NullDamper</class>\n");            } else {                            sb.append("                <class>net.sf.dz.device.actuator.impl.ServoDamper</class>\n");                sb.append("                <reverse enabled=\"true\"/>\n");                sb.append("                <crawl enabled=\"true\"/>\n");                sb.append("                <controller>\n");                                Servo s = zd.servo.servo;                                sb.append("                    <class>").append(s.getController().getClass().getName()).append("</class>\n");                sb.append("                    <port>").append(s.getController().getPort()).append("</port>\n");                sb.append("                    <id>").append(s.getName()).append("</id>\n");                sb.append("                </controller>\n");            }                        sb.append("            </damper>\n");            sb.append("        </zone>\n");        }                private void renderSchedule(Map context, StringBuffer sb) {                    File scheduleDir = new File(context.get("schedule.dir").toString());                        if ( scheduleDir == null ) {                            scheduleDir = new File(System.getProperty("java.io.tmpdir"));                            complain(LOG_WARNING, CH_CW, "Schedule directory undefined, using system temp dir (" + scheduleDir + ")");            }                        sb.append("    <persistent_schedule>\n");            sb.append("        ").append(scheduleDir.toString()).append("\n");            sb.append("    </persistent_schedule>\n");                        for ( Iterator i = getSortedContextValues(context, "zone.").iterator(); i.hasNext(); ) {                            ZoneDescriptor zd = (ZoneDescriptor)i.next();                                File zoneScheduleFile = new File(scheduleDir, zd.name + ".conf");                                try {                                    String commonPrefix = "dz.unit." + zd.unit.name + ".zone." + zd.name + ".schedule.day.";                    PrintWriter pw = new PrintWriter(new FileWriter(zoneScheduleFile));                                        complain(LOG_WARNING, CH_CW, "FIXME: Heating schedule ignored for now");                                        // This will contain periods for the day. The key is the                    // day, the value is the set of period names.                                        Map periodMap = new TreeMap();                                        for ( Iterator i2 = zd.coolingSchedule.iterator(); i2.hasNext(); ) {                                            String period = i2.next().toString();                                                // VT: FIXME: It is possible to simplify the                        // schedule format significantly                                                StringTokenizer st = new StringTokenizer(period, ":");                                                //complain(LOG_NOTICE, CH_CW, "Period: " + period);                                                String day = st.nextToken();                        String name = st.nextToken();                        String time = st.nextToken() + ":" + st.nextToken();                        String setpoint = st.nextToken();                        String enabled = st.nextToken();                        String voting = st.nextToken();                        String dumpPriority = st.nextToken();                                                // Collect the period data                                                Set periodSet = (Set)periodMap.get(day);                                                if ( periodSet == null ) {                                                    periodSet = new TreeSet();                            periodMap.put(day, periodSet);                        }                                                periodSet.add(name);                                                // Render it                                                String prefix = commonPrefix + day + ".period." + name + ".";                                                pw.println(prefix + "start_time=" + time);                        pw.println(prefix + "setpoint=" + setpoint);                        pw.println(prefix + "setpoint.enabled=" + enabled);                        pw.println(prefix + "voting=" + voting);                        pw.println(prefix + "dump_priority=" + dumpPriority);                    }                                        for ( Iterator i2 = periodMap.keySet().iterator(); i2.hasNext(); ) {                                            String day = i2.next().toString();                        Set periodSet = (Set)periodMap.get(day);                                                String eventList = "";                        for ( Iterator i3 = periodSet.iterator(); i3.hasNext(); ) {                                                    if ( !"".equals(eventList) ) {                                                            eventList += ",";                            }                                                        eventList += i3.next().toString();                        }                                                pw.println(commonPrefix + day + ".period=" + eventList);                    }                                        pw.flush();                    pw.close();                                    } catch ( IOException ioex ) {                                    complain(LOG_ERR, CH_CW, "Failed to write schedule file " + zoneScheduleFile, ioex);                }            }        }                private void renderView(Map context, StringBuffer sb) {                    // VT: FIXME: This is not yet configurable                        sb.append("    <view name=\"TCP\">\n");            sb.append("        <class>net.sf.dz.view.tcp.server.Server</class>\n");            sb.append("        <tcp><secure>false</secure><password>password</password></tcp>\n");            sb.append("    </view>\n");        }        /**         * Get the context values associated with the keys starting with a given         * prefix.         *         * @param prefix A prefix to look up.         *         * @return An unordered set of values for all the prefixes starting with         * the given.         */        protected Set getContextValues(Map context, String prefix) {                    Set result = new HashSet();                    for ( Iterator i = context.keySet().iterator(); i.hasNext(); ) {                            String key = i.next().toString();                                if ( key.startsWith(prefix) ) {                                    result.add(context.get(key));                }            }                        return result;        }        /**         * Get the context values associated with the keys starting with a given         * prefix, sorted.         *         * @param prefix A prefix to look up.         *         * @return An unordered set of values for all the prefixes starting with         * the given.         *         * @exception ClassCastException if you're not careful and result set         * contains values that are not <code>Comparable</code>.         */        protected SortedSet getSortedContextValues(Map context, String prefix) {                    return new TreeSet(getContextValues(context, prefix));        }    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -