public static YConfig <SkyWriterNodeConfig> Init() { var cfgFile = "conf_file.json"; var yconfig = new YConfig <SkyWriterNodeConfig>(cfgFile); try { if (yconfig.Retrieve()) { Console.WriteLine("Config file found: " + cfgFile); return(yconfig); } Console.WriteLine("Config retrieval failed; falling back to defaults"); } catch (Exception ex) { Console.WriteLine("Loading default configuration"); } //create default conf SkyWriterNodeConfig cfg = new SkyWriterNodeConfig(); cfg.FrontendServer = "https://localhost:3334"; cfg.ApiServer = "localhost"; cfg.LocalWebServer = "http://localhost:4050"; cfg.Uuid = "1337SkyWriter"; cfg.MqttBrokerHostname = "localhost"; cfg.YpchannelPort = Yodiwo.API.Plegma.Constants.YPChannelPort; cfg.MqttUseSsl = false; cfg.YpchannelSecure = false; //add new active conf and save to disk yconfig.AddActiveConf("LocalSkyWriter", cfg); yconfig.Save(); return(yconfig); }
public static YConfig<SkyWriterNodeConfig> Init() { var cfgFile = "conf_file.json"; var yconfig = new YConfig<SkyWriterNodeConfig>(cfgFile); try { if (yconfig.Retrieve()) { Console.WriteLine("Config file found: " + cfgFile); return yconfig; } Console.WriteLine("Config retrieval failed; falling back to defaults"); } catch (Exception ex) { Console.WriteLine("Loading default configuration"); } //create default conf SkyWriterNodeConfig cfg = new SkyWriterNodeConfig(); cfg.FrontendServer = "https://localhost:3334"; cfg.ApiServer = "localhost"; cfg.LocalWebServer = "http://localhost:4050"; cfg.Uuid = "1337SkyWriter"; cfg.MqttBrokerHostname = "localhost"; cfg.YpchannelPort = Yodiwo.API.Plegma.Constants.YPChannelPort; cfg.MqttUseSsl = false; cfg.YpchannelSecure = false; //add new active conf and save to disk yconfig.AddActiveConf("LocalSkyWriter", cfg); yconfig.Save(); return yconfig; }
public void Start() { YConfig = Config.Init(); ActiveCfg = YConfig.GetActiveConf(); NodeConfig conf = new NodeConfig() { uuid = ActiveCfg.Uuid, Name = "SkyWriter Node", MqttBrokerHostname = ActiveCfg.MqttBrokerHostname, MqttUseSsl = ActiveCfg.MqttUseSsl, YpServer = ActiveCfg.ApiServer, YpchannelPort = ActiveCfg.YpchannelPort, SecureYpc = ActiveCfg.YpchannelSecure, FrontendServer = ActiveCfg.FrontendServer, CanSolveGraphs = false,// deactivate for GrovePi }; //prepare pairing module var pairmodule = new Yodiwo.NodeLibrary.Pairing.NancyPairing.NancyPairing(); //create node node = new Yodiwo.NodeLibrary.Node(conf, pairmodule, null, null, NodeGraphManager: null ); Helper.node = node; //set TransPort node.Transport = transport; //register callbacks for grovepi node node.OnChangedState += OnChangedStateCb; node.OnNodePaired += OnPaired; node.OnTransportConnected += OnTransportConnectedCb; node.OnTransportDisconnected += OnTransportDisconnectedCb; node.OnTransportError += OnTransportErrorCb; node.OnUnexpectedMessage += OnUnexpectedMessageCb; node.OnThingActivated += OnThingActivatedCb; node.OnThingDeactivated += OnThingDeactivatedCb; //register port event handlers //start Pairing if (String.IsNullOrWhiteSpace(ActiveCfg.NodeKey)) { DebugEx.TraceLog("Starting pairing procedure."); var pair = node.StartPairing(ActiveCfg.FrontendServer, null, ActiveCfg.LocalWebServer).GetResults(); } else { node.SetupNodeKeys(ActiveCfg.NodeKey, ActiveCfg.NodeSecret.ToSecureString()); DebugEx.TraceLog("Node already paired: NodeKey = " + ActiveCfg.NodeKey + ", NodeSecret = ", ActiveCfg.NodeSecret); } //add things Helper.CreateThings(this.pysharp, node); //connect node.Connect(); }