コード例 #1
0
ファイル: MoteIF.cs プロジェクト: nagendra22/tinyos-main
 public MoteIF(string motecom) {
   try {
     messageSource = SourceMaker.make(motecom);
     this.motecom = motecom;
     messageSource.messageArrivedEvent += onReceive;
   } catch (Exception e) { throw e; }
 }
コード例 #2
0
ファイル: SourceMaker.cs プロジェクト: tgtakaoka/tinyos-prod
        public static MessageSource make(string motecom)
        {
            //string errsrc = "\nUnable to create or connect to {0}\n";
            MessageSource messageSource = null;

            string[] words = motecom.Split('@');
            string[] args;
            if (words.Length != 2)
            {
                throw new Exception("Could not make MessageSource");
            }

            if (words[0].Equals("serial"))
            {
                args = words[1].Split(':');
                try {
                    messageSource = new SerialSource(args[0], Convert.ToInt32(args[1]));
                } catch (Exception e) {
                    Debug.WriteLine(e.Message);
                    throw new Exception("Could not make serial source (bad port?)");
                }
            }
            else if (words[0].Equals("sf"))
            {
                args = words[1].Split(':');
                try {
                    messageSource = new SFSource();
                    ((SFSource)messageSource).Connect(args[0], Convert.ToInt32(args[1]));
                } catch (Exception e) {
                    Debug.WriteLine(e.Message);
                    throw new Exception("Could not make sf source (bad ip/port?)");
                }
            }
            return(messageSource);
        }
コード例 #3
0
ファイル: MoteIF.cs プロジェクト: tgtakaoka/tinyos-prod
 public MoteIF(string motecom)
 {
     try {
         messageSource = SourceMaker.make(motecom);
         this.motecom  = motecom;
         messageSource.messageArrivedEvent += onReceive;
     } catch (Exception e) { throw e; }
 }
コード例 #4
0
 public SFClientHandler(TcpClient tcpClient, MessageSource msgSrc, uint id) {
   this.id = id;
   this.mote = msgSrc;
   msgSrc.messageArrivedEvent += OnMoteMessageArrived;
   this.messageArrivedEvent += OnTCPMessageArrived;
   this.tcpClient = tcpClient;
   this.stream = this.tcpClient.GetStream();
   try {
     Handshake();
     Start();
   } catch (Exception e) { Console.Write(e.Message); }
 }
コード例 #5
0
ファイル: MoteIF.cs プロジェクト: nagendra22/tinyos-main
 public MoteIF(MessageSource src) {
   messageSource = src;
   messageSource.messageArrivedEvent += onReceive;
 }
コード例 #6
0
    public SerialForwarder(ArrayList args, Prompt prompt, uint id) {
      this.id = id;
      this.prompt = prompt;
      for (int i = 1, l = args.Count; i < l; i++) {
        switch (args[i].ToString()) {
          case "-c":
            if (++i == l) {
              WriteLine("start: wrong arguments", prompt.errorTextColor);
              return;
            }
            else
              // TODO
              //maxClients = Convert.ToInt32(args[i].ToString());
            break;

          case "-e":
            if (++i == l) {
              WriteLine("start: wrong arguments", prompt.errorTextColor);
              return;
            }
            else
              //TODO
              //expirationTimeout = Convert.ToInt32(args[i].ToString());
            break;

          case "-comm":
            if (++i == l) {
              prompt.WriteLine("start: wrong arguments", prompt.errorTextColor);
              return;
            }
            else motecom = args[i].ToString();
            break;

          case "-port":
            if (++i == l) {
              WriteLine("start: wrong arguments", prompt.errorTextColor);
              return;
            }
            else
              try {
                port = Convert.ToUInt16(args[i].ToString());
              } catch (Exception) {
                port = 0;
              }
              
            break;

          default:
            WriteLine("start: wrong arguments", prompt.errorTextColor);
            return;
        }
      }
      try {
        mote = SourceMaker.make(motecom);
      } catch (Exception e) {
        Debug.WriteLine(e.Message);
        WriteLine("start: unable to open " + motecom, prompt.errorTextColor);
        return;
      }

      if (mote == null || port == 0) {
        WriteLine("start: wrong arguments", prompt.errorTextColor);
        return;
      }
      mote.RxPacket += mote_RxPacket;
      mote.TxPacket += mote_TxPacket;
      mote.ToutPacket += mote_ToutPacket;
      tcpListener = new TcpListener(IPAddress.Any, port);

      try {
        tcpListener.Start();
      } catch (SocketException se) {
        Debug.WriteLine(se.Message);
        WriteLine("Unable to open socket on port " + port + "( port in use?)", prompt.errorTextColor);
        mote.Close();
        return;
      }

      connectionReceiver = new Thread(new ThreadStart(ListenForClients));
      connectionReceiver.Start();
      running = true;
      WriteLine("Serial forwarder started (id = " + id.ToString() + "). Waiting for clients on port " 
        + port.ToString(), prompt.successTextColor);
    }
コード例 #7
0
ファイル: MoteIF.cs プロジェクト: tgtakaoka/tinyos-prod
 public MoteIF(MessageSource src)
 {
     messageSource = src;
     messageSource.messageArrivedEvent += onReceive;
 }