📄 mainframe.java
字号:
{ super ((Frame)null); setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE); // this setting makes sure you can click on other things setModal(false); setTitle("Control Panel"); getContentPane().setLayout(null); setSize(170,200); //setVisible(false); // don't add beacon rate to content pane yet BeaconRateLabel.setBounds(0, 5, 150, 20); BeaconRateLabel.setFont(defaultFont); BeaconRate.setMajorTickSpacing (MAX_BEACON_RATE - MIN_BEACON_RATE); BeaconRate.setMinorTickSpacing(1000); BeaconRate.setPaintTicks(true); Hashtable lt = new Hashtable(); JLabel minl = new JLabel(new Integer(MIN_BEACON_RATE/1000).toString()+" sec"); minl.setFont(defaultFont); JLabel maxl = new JLabel(new Integer(MAX_BEACON_RATE/1000).toString()+" sec"); maxl.setFont(defaultFont); lt.put(new Integer(MIN_BEACON_RATE), minl); lt.put(new Integer(MAX_BEACON_RATE), maxl); BeaconRate.setLabelTable(lt); BeaconRate.setPaintLabels(true); BeaconRate.setBounds(0, 25, 150, 50); BeaconRate.addChangeListener(lSymChange); getContentPane().add(BeaconRateLabel); getContentPane().add(BeaconRate); SampleRateLabel.setBounds (0, 75, 150, 20); SampleRateLabel.setFont(defaultFont); getContentPane().add(SampleRateLabel); SampleRate.setBounds(0, 95, 150, 50); SampleRate.setMajorTickSpacing (MAX_SAMPLE_RATE - MIN_SAMPLE_RATE); SampleRate.setMinorTickSpacing(1000); SampleRate.setPaintTicks(true); lt = new Hashtable(); minl = new JLabel(new Integer(MIN_SAMPLE_RATE/1000).toString()+" sec"); minl.setFont(defaultFont); maxl = new JLabel(new Integer(MAX_SAMPLE_RATE/1000).toString()+" sec"); maxl.setFont(defaultFont); lt.put(new Integer(MIN_SAMPLE_RATE), minl); lt.put(new Integer(MAX_SAMPLE_RATE), maxl); SampleRate.setLabelTable(lt); SampleRate.setPaintLabels(true); getContentPane().add(SampleRate); SampleRate.addChangeListener(lSymChange); changeSampleRateButton.setText("Change sample rate"); changeSampleRateButton.setFont(defaultFont); // x, y, width, height changeSampleRateButton.setBounds(5,145,150,30); getContentPane().add(changeSampleRateButton); changeSampleRateButton.addActionListener(lSymAction); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(WindowEvent e) { this_windowClosed(e); } }); } void this_windowClosed(WindowEvent e) { controlPanel.setEnabled(true); } class SymAction implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { Object object = event.getSource(); if (object == changeSampleRateButton) changeSampleRateButton_actionPerformed(event); } } class SymChange implements javax.swing.event.ChangeListener { public void stateChanged(javax.swing.event.ChangeEvent event) { Object object = event.getSource(); if (object == BeaconRate) BeaconRate_stateChanged(event); else if (object == SampleRate) SampleRate_stateChanged(event); } } void changeSampleRateButton_actionPerformed(java.awt.event.ActionEvent event) { /* MDW Disabling for now *//* try { // Send change sample rate command sampleRate = tentativeSampleRate; BcastMsg bcm = new BcastMsg(); SurgeCmdMsg scm = new SurgeCmdMsg(bcm,bcm.offset_data(0)); scm.set_type((short)2); mhm.set_args_newrate(sampleRate); //mhm.set_parentaddr(0); //mhm.set_originaddr(0); //sm.set_hopcount((short)0); bcast_seqno = (bcast_seqno + 1) % 256; bcm.set_seqno((short)bcast_seqno); MainClass.getMoteIF().send(net.tinyos.message.MoteIF.TOS_BCAST_ADDR, bcm); if (DEBUG_MODE) System.err.println("SENDING: "+bcm); } catch (java.lang.Exception e) { } */ } void BeaconRate_stateChanged(javax.swing.event.ChangeEvent event) { rootBeaconThread.setDelay(BeaconRate.getValue()); } void SampleRate_stateChanged(javax.swing.event.ChangeEvent event) { tentativeSampleRate = SampleRate.getValue(); } } class rootBeaconer implements Runnable { private boolean stopped = false; private long delay_ms = DEFAULT_BEACON_RATE; private MultihopMsg beacon; private short cur_seqno = 0; rootBeaconer() { beacon = new MultihopMsg(); //SurgeMsg(); beacon.set_originaddr(BEACON_BASE_ADDRESS); beacon.set_sourceaddr(BEACON_BASE_ADDRESS); beacon.set_hopcount((short)1); } public void run() { stopped = false; while (!stopped) { try { beacon.set_seqno(cur_seqno++); MainClass.getMoteIF().send(net.tinyos.message.MoteIF.TOS_BCAST_ADDR, beacon); if (DEBUG_MODE) System.err.println("SENDING BEACON: "+beacon); //bcast_seqno = (bcast_seqno + 1) % 256; //beacon.set_seqno((short)bcast_seqno); Thread.currentThread().sleep(delay_ms); } catch (Exception e) { // Ignore } } return; } void setDelay(long delay) { delay_ms = delay; } long getDelay() { return delay_ms; } void timeToStop() { stopped = true; } } rootBeaconer rootBeaconThread = new rootBeaconer(); void startRootBeaconMenuItem_action(java.awt.event.ActionEvent event) { if (root_beacon_on) { System.err.println("Stopping root beacon thread..."); rootBeaconThread.timeToStop(); startRootBeaconButton.setText("Start root beacon"); root_beacon_on = false; } else { System.err.println("Starting root beacon thread..."); new Thread(rootBeaconThread).start(); startRootBeaconButton.setText("Stop root beacon"); root_beacon_on = true; } } void sendSleepMenuItem_action(java.awt.event.ActionEvent event) { /* MDW Disabling for now */// try { // Send sleep// bcastMsg sm = new bcastMsg();// sm.set_type((short)3);// sm.set_parentaddr(0);// sm.set_sourceaddr(0);// sm.set_hopcount((short)0);// bcast_seqno = (bcast_seqno + 1) % 256;// sm.set_seqno((short)bcast_seqno);// MainClass.getMoteIF().send(net.tinyos.message.MoteIF.TOS_BCAST_ADDR, sm);// if (DEBUG_MODE) System.err.println("SENDING: "+sm);// } catch (java.lang.Exception e) {// } } void sendWakeupMenuItem_action(java.awt.event.ActionEvent event) { /* MDW Disabling for now */// try { // Send wakeup// bcastMsg sm = new bcastMsg();// sm.set_type((short)4);// sm.set_parentaddr(0);// sm.set_sourceaddr(0);// sm.set_hopcount((short)0);// bcast_seqno = (bcast_seqno + 1) % 256;// sm.set_seqno((short)bcast_seqno);// MainClass.getMoteIF().send(net.tinyos.message.MoteIF.TOS_BCAST_ADDR, sm);// if (DEBUG_MODE) System.err.println("SENDING: "+sm);// } catch (java.lang.Exception e) {// } } void sendUnfocusMenuItem_action(java.awt.event.ActionEvent event) { /* MDW Disabling for now */// try {// // Send unfocus command// focusedNode = null;// bcastMsg sm = new bcastMsg();// sm.set_type((short)6);// sm.set_parentaddr(0);// sm.set_sourceaddr(0);// sm.set_hopcount((short)0);// bcast_seqno = (bcast_seqno + 1) % 256;// sm.set_seqno((short)bcast_seqno);// MainClass.getMoteIF().send(net.tinyos.message.MoteIF.TOS_BCAST_ADDR, sm);// if (DEBUG_MODE) System.err.println("SENDING: "+sm);// } catch (java.lang.Exception e) {// } } void debugMenuItem_action(java.awt.event.ActionEvent event) { if (DEBUG_MODE) { DEBUG_MODE = false; } else { DEBUG_MODE = true; } } void statusMenuItem_action(java.awt.event.ActionEvent event) { if (STATUS_MODE) { STATUS_MODE = false; } else { STATUS_MODE = true; } } void sensorMenuItem_action(java.awt.event.ActionEvent event) { if (SENSOR_MODE) { SENSOR_MODE = false; } else { SENSOR_MODE = true; } } void sendFocusCommand(Integer nodeNum) { /* MDW Disabling for now */// try {// focusedNode = nodeNum;// // Send focus command// bcastMsg sm = new bcastMsg();// sm.set_type((short)5);// sm.set_args_focusaddr(nodeNum.shortValue());// sm.set_parentaddr(0);// sm.set_sourceaddr(0);// sm.set_hopcount((short)0);// bcast_seqno = (bcast_seqno + 1) % 256;// sm.set_seqno((short)bcast_seqno);// MainClass.getMoteIF().send(net.tinyos.message.MoteIF.TOS_BCAST_ADDR, sm);// if (DEBUG_MODE) System.err.println("SENDING: "+sm);// } catch (java.lang.Exception e) {// } sendUnfocusButton.setEnabled(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -