コード例 #1
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;
                }
            }
        }
コード例 #2
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;
                }
            }
        }