示例#1
0
文件: Itron.cs 项目: h7ga40/uITron3
        public ER tcp_cre_rep(ID repid, ref T_TCP_CREP pk_crep, out ID p_repid)
        {
            ER Result = ER.E_NOEXS;

            p_repid = ID.NULL;

            if (g_Kernel == null)
                return ER.E_DLT;

            g_Kernel.LockCPU();
            try {
                Result = g_Kernel.Nucleus.CreateTcpRep(repid, ref pk_crep, out p_repid);
            }
            finally {
                g_Kernel.UnlockCPU();
            }

            return Result;
        }
示例#2
0
文件: Nucleus.cs 项目: h7ga40/uITron3
        internal ER CreateTcpRep(ID cepid, ref T_TCP_CREP pk_ccep, out ID p_cepid)
        {
            int i;

            //if (pk_ccep == null)
            //	return ER.E_PAR;

            if (cepid == ID.ID_AUTO) {
                //if (p_cepid == 0)
                //	return ER.E_PAR;

                cepid.Value = 1;

                for (i = 0; ; i++) {
                    if (i >= m_TcpRepTable.Count) {
                        TcpRep tcpRep = new TcpRep(cepid, ref pk_ccep, this, m_lwIP);
                        m_TcpRepTable.Add(tcpRep);
                        break;
                    }

                    if (cepid == m_TcpRepTable[i].RepID) {
                        cepid.Value++;
                    }
                    else {
                        TcpRep tcpRep = new TcpRep(cepid, ref pk_ccep, this, m_lwIP);
                        m_TcpRepTable.Insert(i, tcpRep);
                        break;
                    }
                }
                p_cepid = cepid;
            }
            else {
                ID tmpid;

                p_cepid = ID.NULL;

                for (i = 0; i < m_TcpRepTable.Count; i++) {
                    tmpid = m_TcpRepTable[i].RepID;

                    if (cepid == tmpid) {
                        return ER.E_OBJ;
                    }
                    else if (cepid < tmpid) {
                        break;
                    }
                }
                TcpRep tcpRep = new TcpRep(cepid, ref pk_ccep, this, m_lwIP);
                m_TcpRepTable.Insert(i, tcpRep);
            }

            return ER.E_OK;
        }