Exemplo n.º 1
0
        protected override void ReadAttribute(string key, string value)
        {
            switch (key)
            {
            case "Region":
                this.Region = (ERegionType)value.ToInt32();
                break;

            case "Affect":
                this.Affect = (EAffect)value.ToInt32();
                break;

            case "LifeTime":
                this.LifeTime = value.ToFloat();
                break;

            case "MaxCount":
                this.MaxCount = value.ToInt32();
                break;

            case "JudgeName":
                this.JudgeName = value;
                break;
            }
        }
Exemplo n.º 2
0
        private string GetDataArrayFromRegion(ERegionType eType,
                                              List <List <ushort> > listlistRegion,
                                              ref bool[] regionData)
        {
            List <short[]> listData = new List <short[]>();

            foreach (var listT in listlistRegion)
            {
                for (int j = 0; j < listT.Count; j = j + 5)
                {
                    ushort num;
                    if (((listT.Count - j) * 16) > 80)
                    {
                        num = 80;
                    }
                    else
                    {
                        num = (ushort)((listT.Count - j) * 16);
                    }
                    bool[] bData;
                    try
                    {
                        switch (eType)
                        {
                        case ERegionType.Region_DI:
                        {
                            Thread.Sleep(5);
                            bData = master.ReadInputs(
                                (ushort)(CT2.ECT2Descrites.RegionDI + (listT[j]) * 16),
                                (ushort)num);
                            bData.CopyTo(regionData, listT[j] * 16);
                            break;
                        }

                        case ERegionType.Region_DO:
                        {
                            Thread.Sleep(5);
                            bData = master.ReadCoils(
                                (ushort)(CT2.ECT2Coils.RegionDO + (listT[j]) * 16),
                                (ushort)num);
                            bData.CopyTo(regionData, listT[j] * 16);
                            break;
                        }

                        case ERegionType.Region_AO:
                        case ERegionType.Region_AI:
                        default:
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        return(e.Message);
                        //throw;
                    }
                }
            }
            return("NO_ERR");
        }
Exemplo n.º 3
0
        private string GetDataArrayFromRegion(ERegionType eType,
                                              List <List <ushort> > listlistRegion,
                                              ref ushort[] regionData)
        {
            List <short[]> listData = new List <short[]>();

            foreach (var listT in listlistRegion)
            {
                for (int j = 0; j < listT.Count; j = j + 100)
                {
                    ushort num;
                    if ((listT.Count - j) > 100)
                    {
                        num = 100;
                    }
                    else
                    {
                        num = (ushort)(listT.Count - j);
                    }
                    ushort[] regs;
                    try
                    {
                        switch (eType)
                        {
                        case ERegionType.Region_AO:
                        {
                            Thread.Sleep(10);
                            regs = master.ReadHoldingRegisters(
                                (ushort)(CT2.ECT2HoldReg.RegionAO + listT[j] * 1),
                                (ushort)num);
                            regs.CopyTo(regionData, listT[j]);
                            break;
                        }

                        case ERegionType.Region_AI:
                        {
                            Thread.Sleep(10);
                            regs = master.ReadInputRegisters(
                                (ushort)(CT2.ECT2InputReg.RegionAI + listT[j] * 1),
                                (ushort)num);
                            regs.CopyTo(regionData, listT[j]);
                            break;
                        }

                        case ERegionType.Region_DI:
                        case ERegionType.Region_DO:
                        default:
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        return(e.Message);
                    }
                }
            }
            return("NO_ERR");
        }
Exemplo n.º 4
0
        private void WriteDataFromRegionToNode(ERegionType eType,
                                               ref List <CT2.CIoNode> list,
                                               bool[] regionData)
        {
            foreach (var IoNode in list)
            {
                switch (eType)
                {
                case ERegionType.Region_DI:
                {
                    if (IoNode.CheckIfExistDI())
                    {
                        IoNode.m_DataDI.Clear();
                        for (int i = IoNode.m_DI_AddrStart * 8;
                             i < (IoNode.m_DI_AddrEnd + 1) * 8; i++)
                        {
                            IoNode.m_DataDI.Add(regionData[i]);
                        }
                    }
                    break;
                }

                case ERegionType.Region_DO:
                {
                    if (IoNode.CheckIfExistDO())
                    {
                        IoNode.m_DataDO.Clear();
                        for (int i = IoNode.m_DO_AddrStart * 8;
                             i < (IoNode.m_DO_AddrEnd + 1) * 8; i++)
                        {
                            IoNode.m_DataDO.Add(regionData[i]);
                        }
                    }
                    break;
                }

                case ERegionType.Region_AO:
                case ERegionType.Region_AI:
                default:
                    break;
                }
            }
        }
Exemplo n.º 5
0
        private void WriteDataFromRegionToNode(ERegionType eType,
                                               ref List <CT2.CIoNode> list,
                                               ushort[] regionData)
        {
            foreach (var IoNode in list)
            {
                switch (eType)
                {
                case ERegionType.Region_DI:
                    break;

                case ERegionType.Region_AI:
                    if (IoNode.CheckIfExistAI())
                    {
                        IoNode.m_DataAI.Clear();
                        for (int i = ((IoNode.m_AI_AddrStart - 200) / 2);
                             i <= ((IoNode.m_AI_AddrEnd - 200) / 2); i++)
                        {
                            IoNode.m_DataAI.Add(regionData[i]);
                        }
                    }
                    break;

                case ERegionType.Region_DO:
                    break;

                case ERegionType.Region_AO:
                    if (IoNode.CheckIfExistAO())
                    {
                        IoNode.m_DataAO.Clear();
                        for (int i = ((IoNode.m_AO_AddrStart - 200) / 2);
                             i <= ((IoNode.m_AO_AddrEnd - 200) / 2); i++)
                        {
                            IoNode.m_DataAO.Add(regionData[i]);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }