1 package lejos.pc.tools;
3 import java.util.ArrayList;
4 import java.util.Collection;
6 import lejos.pc.comm.*;
7 import org.apache.commons.cli.CommandLine;
9 public class NXJUpload {
11 private Collection<ToolsLogListener> fLogListeners;
12 private NXJUploadCommandLineParser fParser;
13 private Upload fUpload;
16 fParser = new NXJUploadCommandLineParser();
17 fLogListeners = new ArrayList<ToolsLogListener>();
18 fUpload = new Upload();
21 public static void main(String[] args) {
23 NXJUpload instance = new NXJUpload();
24 instance.addLogListener(new ToolsLogger());
26 } catch(Throwable t) {
27 System.err.println("an error occurred: " + t.getMessage());
31 public void run(String[] args) throws js.tinyvm.TinyVMException, NXJUploadException {
34 CommandLine commandLine = fParser.parse(args);
35 boolean run = commandLine.hasOption("r");
36 boolean blueTooth = commandLine.hasOption("b");
37 boolean usb = commandLine.hasOption("u");
38 String name = commandLine.getOptionValue("n");
39 String address = commandLine.getOptionValue("d");
41 String fileName = commandLine.getArgs()[0];
43 if (blueTooth) protocols |= NXTCommFactory.BLUETOOTH;
44 if (usb) protocols |= NXTCommFactory.USB;
46 fUpload.upload(name, address, protocols, fileName, run);
50 * register log listener
54 public void addLogListener(ToolsLogListener listener) {
55 fLogListeners.add(listener);
56 fUpload.addLogListener(listener);
60 * unregister log listener
64 public void removeLogListener(ToolsLogListener listener) {
65 fLogListeners.remove(listener);
66 fUpload.removeLogListener(listener);