private void processSetSystemPropertiesCmd(DataInputStream params, IOTACommandHelper helper) throws IOException { int dataSize = helper.getDataInputStream().readInt(); ByteArrayOutputStream baos = new ByteArrayOutputStream(dataSize); helper.receiveFile(dataSize, baos); Properties newPersistentProperties = new Properties(); newPersistentProperties.load(new ByteArrayInputStream(baos.toByteArray())); Properties oldPersistentProperties = spot.getPersistentProperties(); // store new properties in flash spot.storeProperties(newPersistentProperties); // remove deleted properties from current isolate Enumeration oldKeys = oldPersistentProperties.keys(); while (oldKeys.hasMoreElements()) { String oldKey = (String) oldKeys.nextElement(); if (!newPersistentProperties.containsKey(oldKey)) { VM.setProperty(oldKey, null); } } // store new and modified properties in current isolate Enumeration newKeys = newPersistentProperties.keys(); while (newKeys.hasMoreElements()) { String newKey = (String) newKeys.nextElement(); VM.setProperty(newKey, newPersistentProperties.getProperty(newKey)); } helper.sendPrompt(); }
private void processSetStartupCmd(DataInputStream params, IOTACommandHelper helper) throws IOException { ConfigPage configPage = spot.getConfigPage(); configPage.setStartup(params.readUTF(), params.readUTF(), params.readUTF()); spot.flashConfigPage(configPage); helper.sendPrompt(); }
private void processGetSystemPropertiesCmd(IOTACommandHelper helper) throws IOException { Properties p = spot.getPersistentProperties(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); p.store(baos, "System properties on SPOT"); helper.sendData(baos.toByteArray(), 0, baos.size()); helper.sendPrompt(); }
private void processGetConfigPageCmd(IOTACommandHelper helper, boolean len) throws IOException { ConfigPage configPage; configPage = spot.getConfigPage(); byte[] data = configPage.asByteArray(); if (len) { int i = data.length - 1; while (i > 0 && data[i] == 0) i--; i = i / 4; helper.getDataOutputStream().writeByte(i & 0xff); helper.getDataOutputStream().write(data, 0, (i + 1) * 4); } else { helper.getDataOutputStream().write(data); } helper.sendPrompt(); }
private void setPublicKey(byte[] newKey) { ConfigPage configPage = spot.getConfigPage(); configPage.setPublicKey(newKey); spot.flashConfigPage(configPage); }