public void Execute(BaseIndex index, Dependency dependecy)
        {
            try
            {
                StringBuilder sb = new StringBuilder();

                foreach (var constraint in dependecy.Constraints)
                {
                    index.Market = constraint.Market;
                    index.Fields = constraint.Fields;
                    sb.Append(index.Build());
                }

                // create jobject for index build
                IndexWrapper indexWrapper = new IndexWrapper();
                indexWrapper.Build(null);
                // create jobject and run the queue
                Queue.AddToQueue(null);
                // foreach market

                // create ADI object

                //
                // wait for all markets
                // submit to solr
                // AddToQueue()
            }
            catch (Exception ex)
            {
            }
        }
Example #2
0
        void Render()
        {
            Text = "Screen Browser [" + BaseIndex.ToString("x") + " - " + Math.Min(BaseIndex + 15, Level.Screens.Count - 1).ToString("x") + "]";

            gBuffer.Clear(Color.Black);
            gBuffer.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
            gBuffer.PixelOffsetMode   = System.Drawing.Drawing2D.PixelOffsetMode.Half;

            renderer.Level = this.Level;
            //renderer.ApplyPalette(blitterBuffer, UseAlternatePalette);
            //var pal = blitterBuffer.Palette;
            //if (UseAlternatePalette) {
            //    Level.BgAltPalette.ApplyTable(pal.Entries,0);
            //    Level.BgAltPalette.ApplyTable(pal.Entries, 16);
            //    Level.SpriteAltPalette.ApplyTable(pal.Entries, 32);
            //} else {
            //    Level.BgPalette.ApplyTable(pal.Entries, 0);
            //    Level.BgPalette.ApplyTable(pal.Entries, 16);
            //    Level.SpritePalette.ApplyTable(pal.Entries, 32);
            //}
            //blitterBuffer.Palette = pal;
            ScreenEditor.ApplyPalette(UseAlternatePalette, Level, blitterBuffer, HighlightEffect.Invert);



            for (int x = 0; x < 4; x++)
            {
                for (int y = 0; y < 4; y++)
                {
                    int index = BaseIndex + x + y * 4;

                    if (index < Level.Screens.Count)
                    {
                        var screen = Level.Screens[index];

                        renderer.SelectedEnemy  = -1;
                        renderer.SelectedDoor   = -1;
                        renderer.DefaultPalette = screen.ColorAttributeTable;

                        renderer.Clear();
                        renderer.DrawScreen(index);
                        renderer.Render(blitter, blitterBuffer, screen.Enemies, screen.Doors, ShowPhysics);

                        Rectangle source = new Rectangle(0, 0, 256, 240);
                        Rectangle dest   = new Rectangle(cellPadding + cellSpacingX * x, cellPadding + cellSpacingY * y, cellWidth, cellHeight);

                        gBuffer.DrawImage(blitterBuffer, dest, source, GraphicsUnit.Pixel);

                        if (index == HighlightedScreen)
                        {
                            dest.Inflate(2, 2);
                            gBuffer.DrawRectangle(SystemPens.Highlight, dest);
                            dest.Inflate(1, 1);
                            gBuffer.DrawRectangle(SystemPens.Highlight, dest);
                        }
                    }
                }
            }
        }
Example #3
0
        static void Main()
        {
            Program.Main();

            BaseIndex index = (BaseIndex)ServiceLocator.Current.GetInstance(Service.GetFullIndexName("ADI"));

            index.Process();
        }
Example #4
0
        static void Main()
        {
            Program.Main();
            // read component from queue
            var       component = "ADI";
            BaseIndex index     = (BaseIndex)ServiceLocator.Current.GetInstance(Service.GetFullIndexName(component));

            index.Process();
        }
Example #5
0
        public void CanOpenBaseIndex()
        {
            indexInfo = new IndexInfo("index", tableName, "Id", tableManager, statisticsManager, _transaction, 1024);

            BaseIndex index = null;

            Assert.DoesNotThrow(() =>
            {
                index = indexInfo.Open();
            });

            Assert.IsNotNull(index);
            Assert.IsTrue(index is BTreeIndex);
        }
Example #6
0
        public static decimal Read(BaseIndex index, CompressorSetting compressor, byte slaveId)
        {
            var master = compressor.ComPortSetting?.Master;

            if (master == null)
            {
                return(0);
            }
            var address = index.RealAddress;

            //var slaveId = compressor.Address;

            lock (master)
            {
                if (index is CoilStatus)
                {
                    return(master.ReadCoils(slaveId, address, 1)[0] ? 1 : 0);
                }
                if (index is InputStatus)
                {
                    return(master.ReadInputs(slaveId, address, 1)[0] ? 1 : 0);
                }

                if (index is BaseRegister)
                {
                    Func <byte, ushort, ushort, ushort[]> func = null;
                    if (index is InputRegister)
                    {
                        func = compressor.ComPortSetting.Master.ReadInputRegisters;
                    }
                    else if (index is HoldRegister)
                    {
                        func = compressor.ComPortSetting.Master.ReadHoldingRegisters;
                    }
                    var baseRegister = (BaseRegister)index;

                    switch (index.DataType)
                    {
                    case DataType.Int16:
                        //ushort -> short
                        return(ReadRegister <short>(baseRegister, slaveId, func));

                    case DataType.Int32:
                        //ushort -> int
                        return(ReadRegister <int>(baseRegister, slaveId, func));

                    case DataType.Int8:
                        //ushort -> sbyte
                        return(ReadRegister <sbyte>(baseRegister, slaveId, func));

                    case DataType.Float:
                    case DataType.Single:
                        //ushort -> float
                        return(ReadRegister <float>(baseRegister, slaveId, func));

                    case DataType.Double:
                        //ushort -> double
                        return(ReadRegister <double>(baseRegister, slaveId, func));

                    case DataType.Digital:
                        //ushort -> bool
                        return(ReadRegister <bool>(baseRegister, slaveId, func));

                    default:
                        return(Convert.ToDecimal(func(slaveId, address, 1)[0]) /
                               baseRegister.Multiplier);
                    }
                }
            }

            return(0);
        }
Example #7
0
 public static decimal Read(BaseIndex index, CompressorSetting compressor)
 {
     return(Read(index, compressor, compressor.Address));
 }
Example #8
0
        public static void Write(BaseIndex index, CompressorSetting compressor, decimal value)
        {
            var master = compressor.ComPortSetting?.Master;

            if (master == null)
            {
                return;
            }
            var address = index.RealAddress;
            var slaveId = compressor.Address;

            lock (master)
            {
                if (index is CoilStatus)
                {
                    master.WriteSingleCoil(slaveId, address, value == 1);
                    return;
                }
                if (index is InputStatus || index is InputRegister)
                {
                    //read only
                    return;
                }

                if (index is HoldRegister)
                {
                    var holdRegister = (HoldRegister)index;

                    switch (index.DataType)
                    {
                    case DataType.Int16:
                        //ushort <- short
                        WriteRegister <short>(holdRegister, slaveId, master, value);
                        break;

                    case DataType.Int32:
                        //ushort <- int
                        WriteRegister <int>(holdRegister, slaveId, master, value);
                        break;

                    case DataType.Int8:
                        //ushort <- sbyte
                        WriteRegister <sbyte>(holdRegister, slaveId, master, value);
                        break;

                    case DataType.Float:
                    case DataType.Single:
                        //ushort <- float
                        WriteRegister <float>(holdRegister, slaveId, master, value);
                        break;

                    case DataType.Double:
                        //ushort <- double
                        WriteRegister <double>(holdRegister, slaveId, master, value);
                        break;

                    case DataType.Digital:
                        //ushort <- bool
                        WriteRegister <bool>(holdRegister, slaveId, master, value);
                        break;

                    default:
                        master.WriteSingleRegister(slaveId, address, Convert.ToUInt16(value * holdRegister.Multiplier));
                        break;
                    }
                }
            }
        }
Example #9
0
        private void RenderStructures()
        {
            Text = "Structure Browser [" + BaseIndex.ToString("x2") + "-" + Math.Min(Level.Structures.Count - 1, BaseIndex + 15).ToString("x2") + "]";



            this.gStructimg.Clear(Color.Black);

            Bitmap img;
            bool   palApplied = false;

            for (int x = 0; x < 4; x++)
            {
                for (int y = 0; y < 4; y++)
                {
                    int index = BaseIndex + x + y * 4;
                    if (index < Level.Structures.Count)
                    {
                        int structWidth, structHeight;
                        img = renderer.RenderSingleStructure(Level, index, Palette, out structWidth, out structHeight);

                        if (!palApplied)
                        {
                            var pal = img.Palette;
                            if (UseAlternatePalette)
                            {
                                Level.BgAltPalette.ApplyTable(pal.Entries);
                            }
                            else
                            {
                                Level.BgPalette.ApplyTable(pal.Entries);
                            }
                            img.Palette = pal;

                            palApplied = true;
                        }

                        Rectangle source = new Rectangle(0, 0, structWidth * structTileWidth, structHeight * structTileHeight);
                        Rectangle dest   = new Rectangle(x * structCellSpacingX + 8, y * structCellSpacingY + 8, source.Width, source.Height);

                        // Structs will be scaled down if larger that 64 px
                        if (structWidth > structCellWidth_Tiles || structHeight > structCellHeight_Tiles)
                        {
                            source = new Rectangle(0, 0, structTileWidth * structWidth, structTileHeight * structHeight);

                            float scaleX = (float)structCellWidth_Tiles / (float)structWidth;
                            float scaleY = (float)structCellHeight_Tiles / (float)structHeight;

                            // Whether scale is based on width or height depends on which is greater
                            if (scaleX > scaleY)   // Taller
                            {
                                dest = new Rectangle(dest.X, dest.Y, (int)(source.Width * scaleY), (int)(source.Height * scaleY));
                                // center (height - width) adjusted for scale and halved
                                // Note that this assumes the cells are square
                                dest.X += (int)((source.Height - source.Width) * scaleY / 2);
                            }
                            else     // Wider
                            {
                                dest = new Rectangle(dest.X, dest.Y, (int)(source.Width * scaleX), (int)(source.Height * scaleX));
                                // center (width - height) adjusted for scale and halved
                                // Note that this assumes the cells are square
                                dest.Y += (int)((source.Width - source.Height) * scaleX / 2);
                            }
                        }
                        else
                        {
                            // Otherwise, just center
                            dest.X += (structCellWidth - source.Width) / 2;
                            dest.Y += (structCellHeight - source.Height) / 2;
                        }

                        // Draw selection
                        gStructimg.DrawImage(img, dest, source, GraphicsUnit.Pixel);
                        if (index == HighlightedIndex)
                        {
                            var selectionRect = dest;
                            selectionRect.X      -= 2;
                            selectionRect.Y      -= 2;
                            selectionRect.Width  += 4;
                            selectionRect.Height += 4;
                            gStructimg.DrawRectangle(SystemPens.Highlight, selectionRect);
                        }
                    }
                }
            }
        }
 public SpecialFunctionIndex(SpecialFunction specialFunction, BaseIndex baseIndex)
 {
     SpecialFunction = specialFunction;
     Index           = baseIndex;
 }