Beispiel #1
0
        private void NewStreamHandler(INetworkStream stream)
        {
            var sw = new Stopwatch();

            sw.Start();

            if (NegotiateTimeout != Timeout.InfiniteTimeSpan)
            {
                stream.SetDeadline(DateTime.Now.Add(NegotiateTimeout));
            }

            var result = Mux.Negotiate(((IReadWriter)stream).AsSystemStream());

            sw.Stop();

            if (NegotiateTimeout != Timeout.InfiniteTimeSpan)
            {
                stream.SetDeadline(default(DateTime));
            }

            stream.Protocol = result.Protocol;

            // reporter

            Task.Factory.StartNew(() => result.Handler.Handle(result.Protocol, ((IReadWriter)stream).AsSystemStream()));
        }
Beispiel #2
0
 public HttpServer(string host, Mux mux)
 {
     this.Mux      = mux;
     this.Host     = host;
     this.Listener = new HttpListener();
     Listener.Prefixes.Add(Host);
 }
Beispiel #3
0
        public static void Main(string[] args)
        {
            // Instance of Bone.Mux()
            var router = new Mux();

            // Route /index
            router.Get("/index", (HttpListenerContext ctx) => {
                ResponseHandler.Write(ctx, "Hello " + ctx.Request.UserHostName.ToString());
            });
            // Route /index/test
            router.Post("/index/test", (HttpListenerContext ctx) => {
                byte[] body = new byte[] {};
                ctx.Request.InputStream.Read(body, 0, (int)ctx.Request.Length);
                Console.WriteLine(body);
            });
            // Route /home
            router.Get("/home", (HttpListenerContext ctx) => {
                ResponseHandler.Write(ctx, "Hello from the other side");
            });
            router.Get("/home/:var", (HttpListenerContext ctx) => {
                ResponseHandler.Write(ctx, string.Format("You Send {0}", ctx.Request.QueryString.Get(":var")));
            });
            // Start Bone.HttpServer()
            var server = new HttpServer("http://localhost:8080/", router);

            server.Listen();
        }
        /// <summary>
        /// アナログ値(バイナリ)を取得する。
        /// </summary>
        /// <param name="mux">入力マルチプレクサ</param>
        /// <param name="dataRate">データーレート</param>
        /// <param name="pga">ゲイン</param>
        /// <returns>アナログ値(バイナリ)</returns>
        public int ReadRaw(Mux mux, DataRate dataRate = DataRate.Sps128, Pga pga = Pga.Fs2048mV)
        {
            ReadOnlySpan <byte> config = stackalloc byte[]
            {
                (byte)Register.Config,
                (byte)(((byte)SingleShotCoversion.Begin << 7) | ((byte)mux << 4) | ((byte)pga << 1) | (byte)Mode.PowerDownSingleShot),
                (byte)(((byte)dataRate << 5) | (byte)ComparatorQueue.Disable)
            };

            Write(config);
            ReadOnlySpan <byte> conversion = stackalloc byte[] { (byte)Register.Conversion };

            WriteEx(I2cMasterFlags.Start, conversion);
            switch (dataRate)
            {
            case DataRate.Sps8:
                Thread.Sleep(126);
                break;

            case DataRate.Sps16:
                Thread.Sleep(64);
                break;

            case DataRate.Sps32:
                Thread.Sleep(33);
                break;

            case DataRate.Sps64:
                Thread.Sleep(17);
                break;

            case DataRate.Sps128:
                Thread.Sleep(9);
                break;

            case DataRate.Sps250:
                Thread.Sleep(5);
                break;

            case DataRate.Sps475:
                Thread.Sleep(4);
                break;

            case DataRate.Sps860:
                Thread.Sleep(3);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(dataRate));
            }

            Span <byte> readBuffer = stackalloc byte[2];

            ReadEx(I2cMasterFlags.RepeatedStart | I2cMasterFlags.Stop, readBuffer);
            return((short)((readBuffer[0] << 8) | readBuffer[1]));
        }
    }
}
Beispiel #5
0
        public void SetStreamHandler(ProtocolId pid, StreamHandler handler)
        {
            Mux.AddHandler(pid, (p, rwc) =>
            {
                var ns      = (INetworkStream)rwc;
                ns.Protocol = p;
                handler(ns);

                return(true);
            });
        }
Beispiel #6
0
        internal void DeleteMux(Mux mux)
        {
            var wr = NewWebRequest("api/idnode/delete");

            wr.Method = "POST";
            var param = "uuid=";
            var obj   = new Newtonsoft.Json.Linq.JArray();

            obj.Add(mux.UUID);
            var byteArray = Encoding.UTF8.GetBytes(param + System.Web.HttpUtility.UrlEncode(obj.ToString()));

            SetRequestStream(wr, byteArray);

            wr.GetResponse();
        }
Beispiel #7
0
        internal void UpdateMux(Mux mux)
        {
            var wr = NewWebRequest("api/idnode/save");

            wr.Method = "POST";
            var param = "node=";
            var obj   = new Newtonsoft.Json.Linq.JObject();

            obj["uuid"]         = mux.UUID;
            obj["iptv_muxname"] = mux.Name;
            obj["iptv_url"]     = mux.Url;
            var byteArray = Encoding.UTF8.GetBytes(param + System.Web.HttpUtility.UrlEncode(obj.ToString()));

            SetRequestStream(wr, byteArray);

            wr.GetResponse();
        }
Beispiel #8
0
        public List <Mux> GetMuxes()
        {
            var lst = new List <Mux>();
            var wr  = CreateRequest("api/mpegts/mux/grid", new GridRequestParameters {
                Start = 0, Limit = int.MaxValue
            });
            var obj = GetJSON(wr);

            foreach (var ent in obj["entries"])
            {
                var m = new Mux();
                m.Enabled     = ent.Value <bool>("enabled");
                m.UUID        = ent.Value <string>("uuid");
                m.NetworkName = ent.Value <string>("networkname");
                m.NetworkUUID = ent.Value <string>("network_uuid");
                m.Name        = ent.Value <string>("name");
                m.Url         = ent.Value <string>("iptv_url");
                lst.Add(m);
            }
            return(lst);
        }
Beispiel #9
0
        internal static ExecutionReport Export(string fileName, ConcurrentDictionary <string, ConcurrentDictionary <char, List <AccEntry <int> > > > results, string header, Mux mux = Mux.Join, string separator = "\t")
        {
            int intervalCount = 0;

            _stopWatch.Restart();

            if (mux == Mux.Join)
            {
                if (!File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
                using (File.Create(fileName)) { }
                using (var writter = new StreamWriter(fileName))
                {
                    writter.WriteLine(header);
                    foreach (var chr in results)
                    {
                        foreach (var strand in chr.Value)
                        {
                            strand.Value.Sort();
                            foreach (var interval in strand.Value)
                            {
                                writter.WriteLine(chr.Key + separator + interval.Left.ToString() + separator + interval.Right.ToString() + separator + interval.Accumulation.ToString() + separator + strand.Key);
                                intervalCount++;
                            }
                        }
                    }
                }
            }
            else
            {
                string chrFile;
                foreach (var chr in results)
                {
                    chrFile = Path.GetDirectoryName(fileName) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(fileName) + "_" + chr.Key + Path.GetExtension(fileName);
                    if (!File.Exists(chrFile))
                    {
                        File.Delete(chrFile);
                    }
                    using (File.Create(chrFile)) { }
                    using (var writter = new StreamWriter(chrFile))
                    {
                        writter.WriteLine(header);
                        foreach (var strand in chr.Value)
                        {
                            strand.Value.Sort();
                            foreach (var interval in strand.Value)
                            {
                                writter.WriteLine(chr.Key + separator + interval.Left.ToString() + separator + interval.Right.ToString() + separator + interval.Accumulation.ToString() + separator + strand.Key);
                                intervalCount++;
                            }
                        }
                    }
                }
            }

            _stopWatch.Stop();
            return(new ExecutionReport(intervalCount, _stopWatch.Elapsed));
        }
Beispiel #10
0
 public void RemoveStreamHandler(ProtocolId pid)
 {
     Mux.RemoveHandler((string)pid);
 }
        public VHDLDocument Watermark(WatermarkOptions options)
        {
            var doc = options.WotermarikingDocument.Document;

            var IOBuffesLayer = new IOBuffesLayer(_document);

            IOBuffesLayer.Parse();

            options.WatermarkSettings.ForEach(x => x.Signal       = IOBuffesLayer.WhetherEquivalent(x.Signal));
            options.SignatureOutputSettings.ForEach(x => x.Signal = IOBuffesLayer.WhetherEquivalent(x.Signal));

            List <WatermarkBit> watermarkBits = new List <WatermarkBit>();

            options.SignatureOutputSettings.ForEach(ports =>
            {
                for (int j = 0; j < ports.SignatureCode.Length; j++)
                {
                    if (ports.SignatureCode[j] != '-')
                    {
                        var newWB = new WatermarkBit()
                        {
                            IsOne  = ports.SignatureCode[j] == '1',
                            Signal =
                                doc.Router.AssignmentSignal(null, ports.Signal, ports.Signal.Enumeration?.GetBit(j))
                        };
                        newWB.Signal.IsSource = false;
                        watermarkBits.Add(newWB);
                    }
                }
            });

            //var wbit2 = watermarkBits.FirstOrDefault();
            //var routes2 = doc.Router.GetRoutes(wbit2.Signal.Defenition);

            //var d = routes2.Signals.Where(signal => signal.IsSource == null).ToList();
            //var e = routes2.Signals.Where(signal => signal.IsSource != null && !signal.IsSource.Value).ToList();
            //var c = routes2.Signals.Where(signal => signal.IsSource != null && signal.IsSource.Value).ToList();


            //-----------------DECODER----------------------------------------
            var isWatermark = _document.Router.InserSignalDefenition("IS_WATERMARK", "STD_LOGIC");
            var decoder     = new Decoder(doc, isWatermark);

            var decoderSettings = options.WatermarkSettings.Where(x => x.IsUsed)
                                  .Select(a => new DecoderSignalCode(doc.Router.AssignmentSignal(decoder, a.Signal), a.ActivaionCode))
                                  .ToList();


            decoder.CodedSignals.AddRange(decoderSettings);
            _document.AddVHDLInBehaviorSection(decoder.ToString());

            //-----------------DECODER----------------------------------------


            //----------------------Lut work----------------------------------

            /**var signatureBus = _document.Router.CreateBus("WATERMARKED_OUT");
             * int i = 0;
             * options.WotermarikingDocument.FreeLuts.ForEach(lut =>
             * {
             *  ChangeLutConstIputs(lut, isWatermark, options.WotermarikingDocument.ConstValueGenerators);
             *  ChangeLutInitVector(lut, true);
             *  var newLutOutput = signatureBus.GetWire(i);
             *
             *  InjectLutOutput(lut, newLutOutput.Defenition);
             *  i++;
             * });
             * var watermarkedSignalDefenition = signatureBus.BuildSignal();**/

            LUTComponents components = new LUTComponents(doc);

            var lutForExtenion = _document.Maps
                                 .Where(map => LUT.IsLUT(map.Entity) && !options.WotermarikingDocument.FreeLuts.Contains(map))
                                 .Select(map => MapLUT.FromMap(map)).ToList();

            lutForExtenion.ForEach(lut => lut.ExtendLUT(components)); //Extends lut

            var freeInputs = lutForExtenion.Select(x => x.GetFreeInput()).ToList();

            List <MapLUT> lutsForInsertion = new List <MapLUT>(lutForExtenion); //Merge all luts

            //lutsForInsertion.AddRange(); //AddFreeLut


            lutsForInsertion.ForEach(lut =>
            {
                var watermarkBit = watermarkBits.FirstOrDefault(wb => wb.LUT == null);
                if (watermarkBit != null)
                {
                    var port = lut.GetFreeInput(); //TODO
                    lut.AddLutAssigment(Assignment.Create(lut, port, isWatermark));
                    lut.ConstValuePort(port, watermarkBit.IsOne);
                    watermarkBit.LUT = lut;
                }
            });

            //-----------------------------------------------------------------------------------------
            watermarkBits.GroupBy(x => x.Signal.Defenition).ToList().ForEach(def =>
            {
                var ficitonSignal = _document.Router
                                    .InserSignalDefenition(
                    "FO" + Helper.NewGuidName(),
                    def.Key.ValueType,
                    def.Key.Enumeration?.CloneEnumeration());

                doc.Router.RedirectAllSources(def.Key, ficitonSignal);
                def.ToList().ForEach(wbit =>
                {
                    wbit.RealSignal = doc.Router.GetRoutes(ficitonSignal)
                                      .Signals.FirstOrDefault(x => (x.Enumeration == null && wbit.Signal.Enumeration == null) ||
                                                              (x.Enumeration == null && wbit.Signal.Enumeration == null && x.Enumeration.IsSameBus(wbit.Signal.Enumeration)));

                    Mux mux       = new Mux();
                    mux.To        = wbit.Signal;
                    mux.Condition = doc.Router.AssignmentSignal(mux, isWatermark) + " = '1'";
                    mux.Else      = wbit.RealSignal;
                    mux.Then      = wbit.LUT.GetOutput();
                    mux.Insert(_document);
                });
            });

            return(_document);
        }
        private static void PerformAction()
        {
            switch (mMenu.MenuSelection)
            {
            case MenuSelection.PrintLabel:
                //Tell MUX what channel to write to...
                Debug.Print("Set Mux to Channel 0...");
                Mux.SetPort(MuxChannel.C0);
                Debug.Print("Write Default label to Serial Port...");
                mPrinterSerialPort.WriteString(Label.DefaultLabel);
                break;

            case MenuSelection.Job:
                mMenu.DataRecieved = RecievedData.ScannerJobAndSuffix;
                //Tell MUX what channel to listen on...
                Debug.Print("Set Mux to Channel 1...");
                Mux.SetPort(MuxChannel.C1);
                Debug.Print("Wait for Job Number from Scanner...");
                break;

            case MenuSelection.Operation:
                mMenu.DataRecieved = RecievedData.ScannerOperation;
                //Tell MUX what channel to listen on...
                Debug.Print("Set Mux to Channel 1...");
                Mux.SetPort(MuxChannel.C1);
                Debug.Print("Wait for Operation from Scanner...");
                break;

            case MenuSelection.ViewPieceWeight:
                mMenu.DataRecieved = RecievedData.None;
                Debug.Print("Set Menu to Adjust Piece Weight...");
                mMenu.MenuSelection = MenuSelection.AdjustPieceWeight;
                break;

            case MenuSelection.ViewNetWeightAdjustment:
                mMenu.DataRecieved = RecievedData.None;
                Debug.Print("Set Menu to Adjust Net Weight...");
                mMenu.MenuSelection = MenuSelection.AdjustNetWeight;
                break;

            case MenuSelection.ViewBackLightColor:
                mMenu.DataRecieved = RecievedData.None;
                Debug.Print("Set Menu to Adjust Background Color...");
                mMenu.MenuSelection = MenuSelection.ChangeBackLightColor;
                break;

            case MenuSelection.ViewNetworkInfo:
                mMenu.DataRecieved = RecievedData.None;
                Debug.Print("Set Menu to Display Network Info...");
                mMenu.MenuSelection = MenuSelection.DisplayNetworkInfo;
                Settings.RetrieveNetworkSettings(Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()[0]);
                break;

            case MenuSelection.Reboot:
                mMenu.MenuSelection = MenuSelection.Rebooting;
                mMenu.DisplayInformation(Settings);
                BlinkOnboardLED(3, 300);
                Debug.Print("Rebooting...");
                PowerState.RebootDevice(false);
                break;
            }
            mMenu.DisplayInformation(Settings);
        }
 public RedisDb(string connectString)
 {
     Mux = ConnectionMultiplexer.Connect(connectString);
     Db  = Mux.GetDatabase();
 }