電梯調度 總結稿 劉博&徐夢迪


2014年3月18日 星期二下午19:00-21:00

我們明確了未來幾天的工作任務

電梯調度這個程序我們已經弄了一周了,在這一周里我們網上搜索了好多相關的東西,找了很多的資料,一開始做出來的電梯只有一部電梯,而且存在很多很多的缺陷,很多要求的功能都不能實現,而且一籌莫展,所以我們討論了接下來的這幾天的主要任務,如下:

1、實現4部電梯共同運作

2、實現電梯門的開關控制的動畫效果

3、實現控制電梯人數以及體重

4、實現多人同時上電梯

2014年3月19日 星期三 下午14:00-18:30

我們今天的任務是努力實現電梯門的控制,實現按電梯按鈕等電梯到了目標層就可以使電梯門自動打開然后在自動關上,由於我們是使用的C#,一開始的時候我們不懂怎么才能弄出來動畫效果,所以在實現對電梯門的控制的時候想了很久,后來才知道在對電梯門開關的動畫效果只需要使用延時就可以了,但是控制門的變化需要改變框體的大小,電梯門分為兩個部分,對於左邊的門,只要根據時間的變化,控制它的寬度變化就可以實現左邊的門的開啟與閉合,對於右邊的門,在控制它的開啟與閉合,不僅需要根據時間控制它的大小,還要根據時間控制它的位置變化,所以右邊的電梯門比較復雜。

     int NumFloor = 1;
        int time = 0;
        int temp = 0;
        int k = 0,k1=0;
        //int flagColor = 1;//按鈕改變顏色
        //int isDoorOpen = 0;//0為關門,1為開門
        int maxPerson = 0;//實時人數
        int[] isRequest = new int[23];
        public static liftC l = new liftC();
        public  queue Squeue = new queue();
        public control c = new control();
        public const int n = 34;

        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
           


        }
        protected override void OnPaint(PaintEventArgs e)
        {
           
            base.OnPaint(e);
        }
      


        //--------------時間控件 ----------------------------------

        private void openDoor_Tick(object sender, EventArgs e)
        {
            for (int bdx = 52; bdx >= 1; bdx--)
            {

                doorLeft.Width = bdx;
                doorRight.Width = bdx;
                doorRight.Location = new Point(53 + 52 - bdx, 0);
                System.Threading.Thread.CurrentThread.Join(10);
               

            }
            //flagColor = 1;
            openDoor.Stop();

        }

        private void closeDoor_Tick(object sender, EventArgs e)
        {
            for (int bdx = 0; bdx <= 52; bdx++)
            {
                doorLeft.Width = bdx;
                doorRight.Width = bdx;
                doorRight.Location = new Point(106 - bdx, 0);
                System.Threading.Thread.CurrentThread.Join(10);
            }
            //flagColor = 0;
            closeDoor.Stop();
        }



        private void move_Tick(object sender, EventArgs e)
        {
            
            
            if (NumFloor < l.Num)
            {
                lblup.ForeColor = Color.Red;
                for (int i = panel3.Height - NumFloor * n; i >= getfloorLength(); i--)
                {
                   
                    lift.Location = new Point(3, i);
                    //判斷有沒有請求
                    //if(isRequest[NumFloor-1]==1)
                       // MessageBox.Show("有人出");
                    System.Threading.Thread.CurrentThread.Join(10);
                }
            }
            else
            {
                lbldown.ForeColor = Color.Red;
                for (int i = panel3.Height - NumFloor * n; i <= getfloorLength(); i++)
                {
                    
                    lift.Location = new Point(3, i);
                    System.Threading.Thread.CurrentThread.Join(10);
                }
            }
            
            openDoor.Interval = 500;
            openDoor.Start();
            this.Focus();

            System.Threading.Thread.CurrentThread.Join(1000);
            
            NumFloor = l.Num;
            lblup.ForeColor = Color.DimGray;
            lbldown.ForeColor = Color.DimGray;

            lbUp.ForeColor = Color.DimGray;
            lbDown.ForeColor = Color.DimGray;

           // closeDoor.Interval = 500;
          //  closeDoor.Start();
            this.Focus();
            move.Stop();
        }

 

3月20日星期四16:30—22:00

我們的電梯只是一個虛架子,它在運行的時候有很多很多的毛病,不符合實際的情況,雖然界面上我們做了四部電梯,但是這四部電梯不能同時運行,只有一步電梯可以動,哪怕同時點擊四部電梯,也是只有一部電梯可以運行,我們知道這是十分不符合實際情況的,因為沒有一棟樓的多部電梯是不可以同時運行的,老師提示我們四部電梯其實就是一部電梯,因為電梯是並聯的,如果你對其中的一部電梯進行操作,比如讓它下降到你所在的樓層,不可能四部電梯同時下降到你所在的樓層,所以四部電梯的本質就是一部電梯,只不過集成在了同一個界面上,但是其設計思路與代碼是相同的。

根據要求,我們還需要實現,人員超重的報警,因為在實際情況中,電梯是不可能載重無數人的,所以,當電梯承載人數過多的時候,電梯會發出報警信號,但是由於重。我們技術有限,不能發出報警信號,只能實現提示超重。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM