예제 #1
0
 private void addToolStripMenuItem_Click(object sender, EventArgs e)
 {
     var Contents = new EVENT();
     foreach (var entry2 in EVENTS)
         EVENTS2.Add(entry2.Value.StringID, entry2.Value);
     EVENTS.Clear();
     int y = this.listBox1.SelectedIndex + 1;
     int i = 0;
     listBox1.BeginUpdate();
     listBox1.Items.Clear();
     foreach (var entry in EVENTS2)
     {
         i++;
         if (i == y)
         {
             Contents.IsSubLevel = 0;
             Contents.StringID = 0x5500 + newentry;
             Contents.WorldID = 0;
             Contents.EnID = 0;
             Contents.JAID = 0;
             Contents.RestrictionID = 0;
             EVENTS.Add(entry.Value.StringID, entry.Value);
             this.listBox1.Items.Add(entry.Value.StringID.ToString("X4"));
             try
             {
                 EVENTS.Add(Contents.StringID, Contents);
                 this.listBox1.Items.Add(Contents.StringID.ToString("X4"));
             }
             catch
             {
                 Contents.StringID = Contents.StringID + 1;
                 EVENTS.Add(Contents.StringID, Contents);
                 this.listBox1.Items.Add(Contents.StringID.ToString("X4"));
             }
         }
         else
         {
             EVENTS.Add(entry.Value.StringID, entry.Value);
             this.listBox1.Items.Add(entry.Value.StringID.ToString("X4"));
         }
     }
     newentry++;
     nentries++;
     EVENTS2.Clear();
     listBox1.SelectedItem = Contents.StringID.ToString("X4");
     listBox1.EndUpdate();
 }
예제 #2
0
        public int CreateEvent(EVENT newEvent)
        {
            if (newEvent.Creator <= 0)
                throw new Exception("Nepřihlášený uživatel nemůže vytvářet události! (Sytémové omezení)");

            using (var context = new OpletalovaDbEntities())
            {
                newEvent.USER                = context.USER.First(u => u.Id == newEvent.USER.Id);
                newEvent.EVENT_TYPE          = context.EVENT_TYPE.First(t => t.Id == newEvent.EVENT_TYPE.Id);
                newEvent.EVENT_ACCESSIBILITY = context.EVENT_ACCESSIBILITY.First(a => a.Id == newEvent.EVENT_ACCESSIBILITY.Id);

                context.EVENT.Add(newEvent);
                context.SaveChanges();

                return newEvent.Id;
            }
        }
예제 #3
0
 //next is our skeleton code for our different stages, or phases, that our states go thru
 public virtual void Enter()
 {
     stage = EVENT.UPDATE;
 }                                                     //this sets the stage for whatever is going to next
예제 #4
0
    }                                                      //we want to stay in update until update kicks us out

    public virtual void Exit()
    {
        stage = EVENT.EXIT;
    }                                                  //tells us what to run and cleanup
예제 #5
0
 public SEventKey(EVENT eventID, int sourceID)
 {
     m_value = ((int)eventID) << 32 + sourceID;
 }
예제 #6
0
 public virtual void Update()
 {
     stage = EVENT.UPDATE; Debug.Log($"{name} Update.");
 }
예제 #7
0
 public static extern BTSTATUS BT_RegisterCallback(EVENT ucEvent, PCALLBACK_BLUETOOTH_STATUS pfnCbkFun);
예제 #8
0
        private void openFile(string filename, bool ro = false)
        {
            try
            {
                Cleanup();
                try
                {
                    bar =
                        new BAR(System.IO.File.Open(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read,
                            System.IO.FileShare.None));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Fatal error opening file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    bar = null;
                    return;
                }
                fileName = System.IO.Path.GetFileName(filename);
                b = this.bar.fileList[0];
                //Now let's extract the file
                if (bar.fileCount != 1)
                {
                    MessageBox.Show("This BAR files contains more than one file!\nAre you sure it is eventviewer.bar?",
                        "Fatal error opening file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    bar = null;
                    return;
                }
                if (b.id != "even")
                {
                    MessageBox.Show(
                        "This BAR files don't have a file called even!\nAre you sure it is eventviewer.bar?",
                        "Fatal error opening file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    bar = null;
                    return;
                }

                string nameextractedevent =
                    Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                        System.IO.Path.GetTempFileName());
                try
                {
                    System.IO.File.WriteAllBytes(nameextractedevent, b.data);
                }
                catch
                {
                    MessageBox.Show(
                        "Event file can't be extracted in temp folder!\nDo you have enough access to write in the TEMP folder?",
                        "Fatal error opening file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    bar = null;
                    return;
                }
                //Fun part:let's load it!
                uint version;
                BinaryReader br = new BinaryReader(new FileStream(nameextractedevent, FileMode.Open));
                br.BaseStream.Position = 0;
                version = br.ReadUInt32();
                nentries = br.ReadUInt32();
                this.listBox1.BeginUpdate();

                for (uint i = 0; i < nentries; i++)
                {
                    //Read shits
                    var Contents = new EVENT();
                    Contents.IsSubLevel = br.ReadUInt16();
                    Contents.StringID = br.ReadUInt16();
                    Contents.WorldID = br.ReadUInt16();
                    Contents.EnID = br.ReadUInt16();
                    Contents.JAID = br.ReadUInt16();
                    Contents.RestrictionID = br.ReadUInt16();
                    Contents.number = i;
                    EVENTS.Add(Contents.StringID, Contents);
                    this.listBox1.Items.Add(Contents.StringID.ToString("X4"));
                }
                this.listBox1.EndUpdate();
                SetUp();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Fatal error opening file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                bar = null;
            }
        }
예제 #9
0
        public void UpdateEvent(EVENT updEvent)
        {
            using (var context = new OpletalovaDbEntities())
            {
                var dbEvent = context.EVENT.First(e => e.Id == updEvent.Id);

                dbEvent.Created       = updEvent.Created;
                dbEvent.Creator       = updEvent.Creator;
                dbEvent.From          = updEvent.From;
                dbEvent.Name          = updEvent.Name;
                dbEvent.Text          = updEvent.Text;
                dbEvent.To            = updEvent.To;
                dbEvent.Type          = updEvent.EVENT_TYPE.Id;
                dbEvent.Accessibility = updEvent.EVENT_ACCESSIBILITY.Id;

                if (updEvent.FILE_INFO != null)
                    dbEvent.FILE_INFO = updEvent.FILE_INFO;

                context.SaveChanges();
            }
        }
예제 #10
0
 public static void ServerTransferPlayerToNewBody(NetworkConnection conn, GameObject newBody, GameObject oldBody,
                                                  EVENT eventType, CharacterSettings characterSettings, bool willDestroyOldBody = false)
 {
     ServerTransferPlayer(conn, newBody, oldBody, eventType, characterSettings, willDestroyOldBody);
 }
예제 #11
0
        protected override void ProcEvent(EVENT i_pEvent)
        {
            switch ((PU_EVENT)i_pEvent.type)
            {
                case PU_EVENT.PU_EVENT_NOTIFY_DEREG_GPU:
                    {			// 接続先の PU の切断通知
                        EndianStream es = new EndianStream();
                        es.write(i_pEvent.msg.data(), i_pEvent.msg.size());

                        PACKET_PNW_GPUINFO data = new PACKET_PNW_GPUINFO();
                        data.get(es);

                        OnDisconnectedRPC(data.gpuId, RPCBasePU.DISCONNECT_STATE.DISCONNECT_STATE_RPC);
                    } break;

                case PU_EVENT.PU_EVENT_NOTIFY_DISCONNECTED_SOCKET:
                    {	// クライアントの切断通知
                        EndianStream es = new EndianStream();
                        es.write(i_pEvent.msg.data(), i_pEvent.msg.size());

                        PACKET_CLC_CONDISCONNECTED data = new PACKET_CLC_CONDISCONNECTED();
                        data.get(es);

                        OnDisconnectedRPC(i_pEvent.msg.sadr, RPCBasePU.DISCONNECT_STATE.DISCONNECT_STATE_SOCKET);
                    } break;
            }
        }
예제 #12
0
 public static void EventAdd(EVENT eventflag) {
   C4dApiPINVOKE.EventAdd__SWIG_0((int)eventflag);
 }
예제 #13
0
 private static extern bool EventModify(IntPtr hEvent, EVENT ef);
예제 #14
0
 internal static extern bool EventModify(IntPtr hEvent, EVENT ef);
예제 #15
0
 public static extern BTSTATUS BT_UnregisterCallback(EVENT ucEvent);
예제 #16
0
 public virtual void Update()
 {
     stage = EVENT.UPDATE;
 }
예제 #17
0
        public ActionResult Event_Edit(int id, EVENT editedEv)
        {
            BLTServiceCaller serviceCaller = BLTServiceCaller.Instance;
            var request = new RestRequest(Method.POST);
            request.Resource = "/Events/{eventID}";
            request.RequestFormat = DataFormat.Xml;
            request.AddParameter("eventID", id, ParameterType.UrlSegment);
            request.AddHeader("X-HTTP-Method-Override", "PUT");
            //Use extended serializer
            BLTWebSerializer serializer = new BLTWebSerializer();
            request.AddParameter("application/xml", serializer.Serialize<EVENT>(editedEv), ParameterType.RequestBody);
            EVENT updatedEv = serviceCaller.Execute<EVENT>(request);

            //update the AI and go back to the AI index
            return RedirectToAction("Index");
        }
예제 #18
0
        private void Control_Click(object sender, EventArgs e)
        {
            this.Enabled = false;

            #region BT_Set, BT_ESC
            if (sender.Equals(BT_Set))
            {
                for (int ix = 0; ix < 50; ix++)
                {
                    for (int iy = 0; iy < 20; iy++)
                    {
                        if (placeOffsetResultX[ix, iy].value <placeOffsetResultX[ix, iy].lowerLimit || placeOffsetResultY[ix, iy].value <placeOffsetResultY[ix, iy].lowerLimit ||
                                                                                                                                         placeOffsetResultX[ix, iy].value> placeOffsetResultX[ix, iy].upperLimit || placeOffsetResultY[ix, iy].value> placeOffsetResultY[ix, iy].upperLimit)
                        {
                            goto LIMIT_OVER;
                        }
                    }
                }

                for (int ix = 0; ix < 50; ix++)
                {
                    for (int iy = 0; iy < 20; iy++)
                    {
                        mc.para.CAL.place[ix, iy].x.value = placeOffsetResultX[ix, iy].value;
                        mc.para.CAL.place[ix, iy].y.value = placeOffsetResultY[ix, iy].value;
                        mc.para.CAL.place[ix, iy].z.value = placeOffsetResultZ[ix, iy].value;

                        mc.para.CAL.PDHeightC1[ix, iy].value = placeOffsetC1[ix, iy].value;
                        mc.para.CAL.PDHeightC2[ix, iy].value = placeOffsetC2[ix, iy].value;
                        mc.para.CAL.PDHeightC3[ix, iy].value = placeOffsetC3[ix, iy].value;
                        mc.para.CAL.PDHeightC4[ix, iy].value = placeOffsetC4[ix, iy].value;
                    }
                }
                goto EXIT;
LIMIT_OVER:
                mc.message.alarm("Place Offset Limit Error");
            }

            if (sender.Equals(BT_ESC))
            {
                if (threadPlaceOffsetCalibration != null && threadPlaceOffsetCalibration.IsAlive)
                {
                    reqThreadStop   = true;
                    BT_ESC.Text     = "ESC";
                    BT_ESC.Enabled  = true;
                    BT_Auto.Enabled = true;
                    BT_Set.Enabled  = true;
                }
                else
                {
                    timer1.Enabled = false; this.Close();
                }
            }
            #endregion
            if (sender.Equals(TB_LaserXOffset))
            {
                mc.para.setting(mc.para.CAL.placeOffsetLaserPos.x, out mc.para.CAL.placeOffsetLaserPos.x);
            }
            if (sender.Equals(TB_LaserYOffset))
            {
                mc.para.setting(mc.para.CAL.placeOffsetLaserPos.y, out mc.para.CAL.placeOffsetLaserPos.y);
            }
            if (sender.Equals(TB_PlaceOffsetX))
            {
                int ix, iy;
                ix = CbB_PadIX.SelectedIndex;
                iy = CbB_PadIY.SelectedIndex;
                mc.para.setting(placeOffsetResultX[ix, iy], out placeOffsetResultX[ix, iy]);
                refresh();
            }
            if (sender.Equals(TB_PlaceOffsetY))
            {
                int ix, iy;
                ix = CbB_PadIX.SelectedIndex;
                iy = CbB_PadIY.SelectedIndex;
                mc.para.setting(placeOffsetResultY[ix, iy], out placeOffsetResultY[ix, iy]);
                refresh();
            }
            if (sender.Equals(TB_PlaceOffsetZ))
            {
                int ix, iy;
                ix = CbB_PadIX.SelectedIndex;
                iy = CbB_PadIY.SelectedIndex;
                mc.para.setting(placeOffsetResultZ[ix, iy], out placeOffsetResultZ[ix, iy]);
                refresh();
            }
            if (sender.Equals(BT_Clear))
            {
                ret.usrDialog = FormMain.UserMessageBox(DIAG_SEL_MODE.OKCancel, DIAG_ICON_MODE.QUESTION, textResource.MB_CAL_INIT_OFFSET);

                if (ret.usrDialog == DIAG_RESULT.OK)
                {
                    for (int i = 0; i < 50; i++)
                    {
                        for (int j = 0; j < 20; j++)
                        {
                            placeOffsetResultX[i, j].value = 0;
                            placeOffsetResultY[i, j].value = 0;
                            placeOffsetResultZ[i, j].value = 0;
                        }
                    }
                    refresh();
                }
            }
            #region 사용안함..
            if (sender.Equals(BT_Pickup))
            {
                mc.hd.req = true; mc.hd.reqMode = REQMODE.JIG_PICKUP;
                mc.main.Thread_Polling();
            }
            if (sender.Equals(BT_Home))
            {
                mc.hd.req = true; mc.hd.reqMode = REQMODE.JIG_HOME;
                mc.main.Thread_Polling();
            }
            if (sender.Equals(BT_Place))
            {
                if (CB_ZHeight.Checked)
                {
                    posX = mc.hd.tool.lPos.x.PAD(CbB_PadIX.SelectedIndex) + Convert.ToDouble(TB_LaserXOffset.Text);
                    posY = mc.hd.tool.lPos.y.PAD(CbB_PadIY.SelectedIndex) + Convert.ToDouble(TB_LaserYOffset.Text);
                    mc.hd.tool.jogMove(posX, posY, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(ret.message);
                    }

                    mc.idle(300);
                    ret.d = mc.AIN.Laser(); if (ret.d < -10)
                    {
                        ret.d = -1;
                    }
                    mc.IN.LS.ALM(out ret.b1, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        ret.d = -1;
                    }
                    mc.IN.LS.FAR(out ret.b2, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        ret.d = -1;
                    }
                    mc.IN.LS.NEAR(out ret.b3, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        ret.d = -1;
                    }

                    LB_LaserResult.Text = Math.Round(ret.d, 3).ToString();
                }
                else
                {
                    EVENT.hWindow2Display();
                    mc.hd.tool.padX = CbB_PadIX.SelectedIndex;
                    mc.hd.tool.padY = CbB_PadIY.SelectedIndex;
                    mc.hd.req       = true; mc.hd.reqMode = REQMODE.JIG_PLACE;
                    mc.main.Thread_Polling();
                    //TB_Result.Clear();
                    //TB_Result.AppendText("P1 X : " + Math.Round(mc.hd.tool.hdcP1X, 2).ToString() + "\n");
                    //TB_Result.AppendText("P2 X : " + Math.Round(mc.hd.tool.hdcP2X, 2).ToString() + "\n");
                    //TB_Result.AppendText("P1 Y : " + Math.Round(mc.hd.tool.hdcP1Y, 2).ToString() + "\n");
                    //TB_Result.AppendText("P2 Y : " + Math.Round(mc.hd.tool.hdcP2Y, 2).ToString() + "\n");
                    //TB_Result.AppendText("P1 T : " + Math.Round(mc.hd.tool.hdcP1T, 2).ToString() + "\n");
                    //TB_Result.AppendText("P2 T : " + Math.Round(mc.hd.tool.hdcP2T, 2).ToString() + "\n");
                    //TB_Result.AppendText("\n");
                    //TB_Result.AppendText("Offset X : " + Math.Round(mc.hd.tool.hdcX, 2).ToString() + "\n");
                    //TB_Result.AppendText("Offset Y : " + Math.Round(mc.hd.tool.hdcY, 2).ToString() + "\n");
                    //TB_Result.AppendText("Offset T : " + Math.Round(mc.hd.tool.hdcT, 2).ToString() + "\n");

                    placeOffsetResultX[mc.hd.tool.padX, mc.hd.tool.padY].value = -Math.Round(mc.hd.tool.hdcX, 2);
                    placeOffsetResultY[mc.hd.tool.padX, mc.hd.tool.padY].value = -Math.Round(mc.hd.tool.hdcY, 2);
                }
                refresh();
            }
            #endregion
            if (sender.Equals(BT_Auto))
            {
                if (CB_ZHeight.Checked)
                {
                    if (threadPlaceOffsetCalibration != null)
                    {
                        if (threadPlaceOffsetCalibration.IsAlive)
                        {
                            EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.WARNING, "Auto Calibration is Working!!!");
                            return;
                        }
                    }

                    mc.OUT.HD.LS.ON(out ret.b, out ret.message);
                    if (!ret.b)
                    {
                        mc.OUT.HD.LS.ON(true, out ret.message);
                    }
                    reqThreadStop   = false;
                    BT_ESC.Enabled  = true;
                    BT_ESC.Text     = "STOP";
                    BT_Auto.Enabled = false;
                    BT_Set.Enabled  = false;
                    mc.pd.PD_Mode(PedestalMode.PD_UP, out ret.message);
                    threadPlaceOffsetCalibration          = new Thread(placeOffsetCalibration);
                    threadPlaceOffsetCalibration.Priority = ThreadPriority.Normal;
                    threadPlaceOffsetCalibration.Name     = "placeOffsetCalibration";
                    threadPlaceOffsetCalibration.Start();
                    mc.log.processdebug.write(mc.log.CODE.INFO, " placeOffsetCalibration");
                }
                else
                {
                    // 미사용
                    //EVENT.hWindow2Display();
                    //for (int i = 0; i < padCountX; i++)
                    //{
                    //    mc.hd.tool.padX = i;
                    //    mc.hd.tool.padY = (int)(padCountY / 2);
                    //    mc.hd.req = true; mc.hd.reqMode = REQMODE.JIG_PLACE;
                    //    mc.main.Thread_Polling();
                    //    if (mc.hd.tool.hdcX * mc.hd.tool.hdcY * mc.hd.tool.hdcT == -1)
                    //    {
                    //        refresh(); goto EXIT;
                    //    }
                    //    for (int j = 0; j < padCountY; j++)
                    //    {
                    //        placeOffsetResultX[i, j].value = -Math.Round(mc.hd.tool.hdcX, 2);
                    //        placeOffsetResultY[i, j].value = -Math.Round(mc.hd.tool.hdcY, 2);
                    //        //Console.WriteLine("mc.hd.tool.hdcX " + mc.hd.tool.hdcX.ToString());
                    //        //Console.WriteLine("mc.hd.tool.hdcY " + mc.hd.tool.hdcY.ToString());
                    //    }
                    //}
                }
                refresh();
            }
EXIT:
            this.Enabled = true;
            refresh();
        }
예제 #19
0
 public static extern BTSTATUS BT_RegisterCallback(EVENT ucEvent, PCALLBACK_INQUIRY_DEVICE pfnCbkFun);
예제 #20
0
        public void control()
        {
            if (!req)
            {
                return;
            }

            if (!Elev.isAreaSafe())
            {
                if (!errorChecked)
                {
                    errorChecked = true;
                    Elev.Z.stop(out ret.message);
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_AREA_SENSOR_DETECT);
                    return;
                }
                //else
                //{
                //    return;
                //}
            }

            switch (sqc)
            {
            case 0:
                Esqc         = 0;
                errorChecked = false;
                sqc++; break;

            case 1:
                if (!isActivate)
                {
                    errorCheck(ERRORCODE.ACTIVATE, sqc, "", ALARM_CODE.E_SYSTEM_SW_MAGAZINE_NOT_READY, false); break;
                }
                sqc++; break;

            case 2:
                if (reqMode == REQMODE.HOMING)
                {
                    sqc = SQC.HOMING; break;
                }
                if (reqMode == REQMODE.AUTO)
                {
                    sqc = SQC.AUTO; break;
                }
                if (reqMode == REQMODE.READY)
                {
                    sqc = SQC.READY; break;
                }
                if (reqMode == REQMODE.DUMY)
                {
                    sqc = SQC.DUMY; break;
                }
                errorCheck(ERRORCODE.INVALID, sqc, "unknown reqMode[" + reqMode.ToString() + "]", ALARM_CODE.E_SYSTEM_SW_MAGAZINE_LIST_NONE, false);
                break;

                #region HOMING
            case SQC.HOMING:
                if (dev.NotExistHW.ZMP)
                {
                    mc.init.success.MG = true; sqc = SQC.STOP; break;
                }
                //					mc.ps.req = true; mc.ps.reqMode = REQMODE.READY;
                sqc++; break;

            case SQC.HOMING + 1:
                //if (mc.ps.RUNING) break;
                //if (mc.ps.ERROR) { Esqc = sqc; sqc = SQC.ERROR; break; }
                sqc++; break;

            case SQC.HOMING + 2:
                if (!Elev.isAreaSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_AREA_SENSOR_DETECT);
                    break;
                }

                if (!Elev.isConveyorSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_BOAT_SENSOR_DETECT);
                    break;
                }

                mc.init.success.MG = false;
                sqc++; break;

            case SQC.HOMING + 3:
                Elev.Z.abort(out ret.message);
                dwell.Reset();
                sqc++; break;

            case SQC.HOMING + 4:
                if (dwell.Elapsed < 100)
                {
                    break;
                }
                Elev.Z.clearPosition(out ret.message);
                Elev.homingZ.req = true;
                sqc++; break;

            case SQC.HOMING + 5:
                if (Elev.homingZ.RUNING)
                {
                    break;
                }
                if (Elev.homingZ.ERROR)
                {
                    Esqc = sqc; sqc = SQC.HOMING_ERROR; break;
                }
                mc.init.success.MG = true;
                sqc = SQC.STOP; break;
                Elev.Z.move(Elev.pos.READY, out ret.message); if (mpiCheck(Elev.Z.config.axisCode, sqc, ret.message, "", false))
                {
                    break;
                }
                Elev.dwell.Reset();
                //dwell.Reset();
                sqc++; break;

            case SQC.HOMING + 6:
                if (!Elev.Z_AT_TARGET)
                {
                    break;
                }
                Elev.dwell.Reset();
                sqc++; break;

            case SQC.HOMING + 7:
                if (!Elev.Z_AT_DONE)
                {
                    break;
                }
                Elev.Z.reset(out ret.message);
                mc.init.success.MG = true;
                mc.OUT.MG.MG_RESET(false, out ret.message);
                sqc = SQC.STOP; break;

            case SQC.HOMING_ERROR:
                mc.init.success.MG = false;
                Elev.Z.motorEnable(false, out ret.message);
                sqc = SQC.ERROR; break;
                #endregion

                #region AUTO
            case SQC.AUTO:
                SMEMA = false;                                          // 처음 시작 후 무빙 완료까지 꺼놔야함..

                if (!Elev.isAreaSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_AREA_SENSOR_DETECT);
                    break;
                }

                if (!Elev.isConveyorSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_BOAT_SENSOR_DETECT);
                    break;
                }

                mc.log.debug.write(mc.log.CODE.INFO, "Start Magazine");
                sqc++;
                break;

            case SQC.AUTO + 1:
                //mc.ps.req = true; mc.ps.reqMode = REQMODE.READY;

                sqc++; break;

            case SQC.AUTO + 2:
                if (mc2.req == MC_REQ.STOP)
                {
                    sqc = SQC.STOP; break;
                }
                if (mc.ps.RUNING)
                {
                    break;
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                //mc.log.debug.write(mc.log.CODE.INFO, "Go to Next Slot : (#" + slotNumber.ToString() + ")");
                //posZ = Elev.pos.MG1_READY - (slotNumber * mc.para.UD.slotPitch.value) * 1000;
                //Elev.Z.move(posZ, out ret.message); if (mpiCheck(Elev.Z.config.axisCode, sqc, ret.message)) break;
                Elev.dwell.Reset();
                sqc++; break;

            case SQC.AUTO + 3:
                Elev.moveReadyPosition();
                if (Elev.RUNING)
                {
                    break;
                }
                if (Elev.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                //if (!Elev.Z_AT_TARGET) break;
                //Elev.dwell.Reset();
                sqc++; break;

            case SQC.AUTO + 4:
                //if (!Elev.Z_AT_DONE) break;
                SMEMA = true;
                sqc++; break;

            case SQC.AUTO + 5:
                // Pusher 동작 대기
                if (mc2.req == MC_REQ.STOP)
                {
                    sqc = SQC.STOP; break;
                }

                if (mc.ps.RUNING)
                {
                    break;
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                if (!mc.ps.pusher_finish)
                {
                    break;
                }

                sqc++; break;

            case SQC.AUTO + 6:
                //if (mc.Magazinecontrol.BOAT_ERROR_EXIST(mc.Magazinecontrol.MG_MAP_DATA[mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER]))
                //{
                //    mc.Magazinecontrol.MG_Status[mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER] = MG_STATUS.ERROR;
                //}
                //else
                //{
                //    mc.Magazinecontrol.MG_Status[mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER] = MG_STATUS.DONE;
                //}
                //mc.Magazinecontrol.writeconfig();
                //EVENT.refreshEditMagazine(mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER);
                SMEMA     = false;
                mc.ps.req = true; mc.ps.reqMode = REQMODE.READY;
                sqc++; break;

            case SQC.AUTO + 7:
                if (mc2.req == MC_REQ.STOP)
                {
                    sqc = SQC.STOP; break;
                }
                if (mc.ps.RUNING)
                {
                    break;                   //{ errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_PUSHER_MOTION_NOT_COMPLETE); break; }
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                mc.UnloaderControl.MG_Status[Elev.workMG, Elev.workSlot] = (int)MG_STATUS.DONE;
                mc.UnloaderControl.writeconfig();
                EVENT.refreshEditMagazine(Elev.workMG, Elev.workSlot);
                //slotNumber++;
                sqc = SQC.AUTO + 1;
                break;


                #endregion

                #region READY
            case SQC.READY:
                SMEMA = false;
                //mc.OUT.MG.MG_RESET(false, out ret.message);

                if (!Elev.isAreaSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_AREA_SENSOR_DETECT);
                    break;
                }

                if (!Elev.isConveyorSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_BOAT_SENSOR_DETECT);
                    break;
                }

                mc.ps.req     = true;
                mc.ps.reqMode = REQMODE.READY;
                sqc++; break;

            case SQC.READY + 1:
                if (mc.ps.RUNING)
                {
                    break;
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                sqc++; break;

            case SQC.READY + 2:
                sqc++; break;

            case SQC.READY + 3:
                for (int i = 0; i < mc.UnloaderControl.MG_COUNT; i++)
                {
                    for (int j = 0; j < mc.UnloaderControl.MG_SLOT_COUNT; j++)
                    {
                        mc.UnloaderControl.MG_Status[i, j] = (int)MG_STATUS.READY;
                        EVENT.refreshEditMagazine(i, j);
                    }
                }
                mc.UnloaderControl.writeconfig();
                sqc++; break;

            case SQC.READY + 4:
                posZ = mc.unloader.Elev.pos.READY;
                mc.unloader.Elev.Z.move(posZ, out ret.message);
                if (mpiCheck(Elev.Z.config.axisCode, sqc, ret.message, "", false))
                {
                    break;
                }
                dwell.Reset();
                sqc++; break;

            case SQC.READY + 5:
                if (!Elev.Z_AT_TARGET)
                {
                    break;
                }
                sqc++; dwell.Reset(); break;

            case SQC.READY + 6:
                if (!Elev.Z_AT_DONE)
                {
                    break;
                }
                sqc = SQC.STOP; break;
                #endregion

                #region DUMY(매뉴얼 동작)
            case SQC.DUMY:
                SMEMA = false;                                          // 처음 시작 후 무빙 완료까지 꺼놔야함..

                if (!Elev.isAreaSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_AREA_SENSOR_DETECT);
                    break;
                }

                if (!Elev.isConveyorSafe())
                {
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_BOAT_SENSOR_DETECT);
                    break;
                }
                mc.log.debug.write(mc.log.CODE.INFO, "Start Magazine");
                sqc++;
                break;

            case SQC.DUMY + 1:
                //mc.ps.req = true; mc.ps.reqMode = REQMODE.READY;

                sqc++; break;

            case SQC.DUMY + 2:
                if (mc2.req == MC_REQ.STOP)
                {
                    sqc = SQC.STOP; break;
                }
                if (mc.ps.RUNING)
                {
                    break;
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                //mc.log.debug.write(mc.log.CODE.INFO, "Go to Next Slot : (#" + slotNumber.ToString() + ")");
                //posZ = Elev.pos.MG1_READY - (slotNumber * mc.para.UD.slotPitch.value) * 1000;
                //Elev.Z.move(posZ, out ret.message); if (mpiCheck(Elev.Z.config.axisCode, sqc, ret.message)) break;
                Elev.dwell.Reset();
                sqc++; break;

            case SQC.DUMY + 3:
                Elev.moveReadyPosition();
                if (Elev.RUNING)
                {
                    break;
                }
                if (Elev.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                //if (!Elev.Z_AT_TARGET) break;
                //Elev.dwell.Reset();
                sqc++; break;

            case SQC.DUMY + 4:
                //if (!Elev.Z_AT_DONE) break;
                SMEMA = true;
                sqc++; break;

            case SQC.DUMY + 5:
                // Pusher 동작 대기
                if (mc2.req == MC_REQ.STOP)
                {
                    sqc = SQC.STOP; break;
                }

                if (mc.ps.RUNING)
                {
                    break;
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                if (!mc.ps.pusher_finish)
                {
                    break;
                }

                sqc++; break;

            case SQC.DUMY + 6:
                //if (mc.Magazinecontrol.BOAT_ERROR_EXIST(mc.Magazinecontrol.MG_MAP_DATA[mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER]))
                //{
                //    mc.Magazinecontrol.MG_Status[mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER] = MG_STATUS.ERROR;
                //}
                //else
                //{
                //    mc.Magazinecontrol.MG_Status[mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER] = MG_STATUS.DONE;
                //}
                //mc.Magazinecontrol.writeconfig();
                //EVENT.refreshEditMagazine(mc.Magazinecontrol.READY_MG_NUMBER, mc.Magazinecontrol.READY_SLOT_NUMBER);
                SMEMA     = false;
                mc.ps.req = true; mc.ps.reqMode = REQMODE.READY;
                sqc++; break;

            case SQC.DUMY + 7:
                if (mc2.req == MC_REQ.STOP)
                {
                    sqc = SQC.STOP; break;
                }
                if (mc.ps.RUNING)
                {
                    break;                   //{ errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_PUSHER_MOTION_NOT_COMPLETE); break; }
                }
                if (mc.ps.ERROR)
                {
                    Esqc = sqc; sqc = SQC.ERROR; break;
                }
                mc.UnloaderControl.MG_Status[Elev.workMG, Elev.workSlot] = (int)MG_STATUS.DONE;
                mc.UnloaderControl.writeconfig();
                EVENT.refreshEditMagazine(Elev.workMG, Elev.workSlot);
                //slotNumber++;
                sqc = SQC.STOP;
                break;


                #endregion

            case SQC.ERROR:
                Elev.Z.reset(out ret.message);
                mc.log.debug.write(mc.log.CODE.ERROR, String.Format("Unloader Esqc {0}", Esqc));
                // 여기와서 알람만 뜨고 모션 정지 안하면 정지하는 부분 추가
                sqc = SQC.STOP; break;

            case SQC.STOP:
                SMEMA   = false;
                reqMode = REQMODE.AUTO;
                req     = false;
                sqc     = SQC.END; break;

            default:
                sqc = SQC.STOP; break;
            }
        }
예제 #21
0
 public static extern BTSTATUS BT_RegisterCallback(EVENT ucEvent, PCALLBACK_CONNECTION_STATUS pfnCbkFun);
예제 #22
0
 public static extern BTSTATUS BT_RegisterCallback(EVENT ucEvent, PCALLBACK_ERROR pfnCbkFun);
예제 #23
0
 public static extern bool EventModify(IntPtr hEvent, EVENT ef);
예제 #24
0
 private void button1_Click_1(object sender, EventArgs e)
 {
     Cleanup();
     this.listBox1.BeginUpdate();
     var Contents = new EVENT();
             Contents.IsSubLevel = 0;
             Contents.StringID = 0x5500;
             Contents.WorldID = 0;
             Contents.EnID = 0;
             Contents.JAID = 0;
             Contents.RestrictionID = 0;
             EVENTS.Add(Contents.StringID, Contents);
             this.listBox1.Items.Add(Contents.StringID.ToString("X4"));
             nentries++;
             listBox1.SelectedItem = Contents.StringID.ToString("X4");
     this.listBox1.EndUpdate();
     SetUp();
 }
        public ActionResult Create(HttpPostedFileBase file, HttpPostedFileBase file1, [Bind(Include = "Event_ID,Title,Description,IssuedBY,Admin_ID")] EVENT eVENT)
        {
            if (file.ContentLength > 0)
            {
                string filename = Path.GetFileName(file.FileName);
                string filepath = Path.Combine(Server.MapPath("~/EVENT PDF"), filename);
                file.SaveAs(filepath);
                eVENT.FileDirectory = filename;
            }

            if (file1.ContentLength > 0)
            {
                string filename1 = Path.GetFileName(file1.FileName);
                string filepath1 = Path.Combine(Server.MapPath("~/EVENT IMAGES"), filename1);
                file1.SaveAs(filepath1);
                //eVENT.FileDirectory = filename;
                eVENT.ImageDirectory = filename1;
            }



            if (ModelState.IsValid)
            {
                eVENT.AnnouncementDate = System.DateTime.Now;
                db.EVENTs.Add(eVENT);
                db.SaveChanges();
                //  return RedirectToAction("Index");
            }

            ViewBag.Admin_ID = new SelectList(db.ADMINs, "Admin_ID", "AdminName", eVENT.Admin_ID);
            ModelState.Clear();
            ViewBag.Message = "successfully entered";
            return(View());
            //return View(eVENT);
        }
예제 #26
0
 // The Enter, Update and Exit methods are meant to be overridden by child classes
 public virtual void Enter()
 {
     stage = EVENT.UPDATE;
 }                                                       // ensure the stage moves to Update after performing all functionality
예제 #27
0
    }                                                       // ensure the stage moves to Update after performing all functionality

    public virtual void Update()
    {
        stage = EVENT.UPDATE;
    }                                                       // Update should stay running until it is forced to move to another stage
예제 #28
0
 public virtual void Enter()
 {
     stage = EVENT.ENTER; Debug.Log($"Entered {name} State.");
 }
예제 #29
0
    }                                                       // Update should stay running until it is forced to move to another stage

    public virtual void Exit()
    {
        stage = EVENT.EXIT;
    }                                                   // ensure the stage is set to Exit when reaching state's end to perform necessary exit behaviour
예제 #30
0
 public virtual void Exit()
 {
     stage = EVENT.EXIT; Debug.Log($"Exited {name} State.");
 }
예제 #31
0
        private void Control_Click(object sender, EventArgs e)
        {
            if (sender.Equals(BT_ESC))
            {
                if (threadForceCalibration != null)
                {
                    if (threadForceCalibration.IsAlive)
                    {
                        EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.WARNING, "Auto Calibration is Working!!!");
                        return;
                    }
                }

                for (int i = 0; i < 20; i++)
                {
                    if (force.forceLevel[i].value != selectedToolForce.forceLevel[i].value || force.bottomForce[i].value != selectedToolForce.bottomForce[i].value ||
                        force.topForce[i].value != selectedToolForce.topForce[i].value || force.heightLevel[i].value != selectedToolForce.heightLevel[i].value)
                    {
                        calDataChanged = true;
                        break;                                          // 다른 것이 있는지 없는지 유무만 판단하므로.. 하나라도 다르면 Break;
                        // 사실 다른 것만 인덱스로 받아서 업데이트 시키면 되는데 귀찮아서 그냥 통짜로함.
                    }
                    else if (calDataChanged)
                    {
                        calDataChanged = false;                                                 // true 일 경우에만 false로 바꿈.
                    }
                }

                if (calDataChanged)
                {
                    FormUserMessage ff = new FormUserMessage();

                    ff.SetDisplayItems(DIAG_SEL_MODE.YesNoCancel, DIAG_ICON_MODE.QUESTION, textResource.MB_ETC_PARA_SAVE);
                    ff.ShowDialog();

                    ret.usrDialog = FormUserMessage.diagResult;
                    if (ret.usrDialog == DIAG_RESULT.Yes)
                    {
                        if (selectedHead == 0)
                        {
                            for (int i = 0; i < 20; i++)
                            {
                                mc.para.CAL.Tool_Force1.forceLevel[i]  = force.forceLevel[i];
                                mc.para.CAL.Tool_Force1.bottomForce[i] = force.bottomForce[i];
                                mc.para.CAL.Tool_Force1.topForce[i]    = force.topForce[i];
                                mc.para.CAL.Tool_Force1.heightLevel[i] = force.heightLevel[i];
                            }
                        }
                        else
                        {
                            for (int i = 0; i < 20; i++)
                            {
                                mc.para.CAL.Tool_Force2.forceLevel[i]  = force.forceLevel[i];
                                mc.para.CAL.Tool_Force2.bottomForce[i] = force.bottomForce[i];
                                mc.para.CAL.Tool_Force2.topForce[i]    = force.topForce[i];
                                mc.para.CAL.Tool_Force2.heightLevel[i] = force.heightLevel[i];
                            }
                        }

                        mc.para.HD.place.placeForceOffset[0].value = 0;         // clear
                        mc.para.HD.place.placeForceOffset[1].value = 0;         // clear
                    }
                }
                this.Close();
            }

            #region BT_AutoCalibration
            if (sender.Equals(BT_AutoCalibration))
            {
                if (threadForceCalibration != null)
                {
                    if (threadForceCalibration.IsAlive)
                    {
                        EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.WARNING, "Auto Calibration is Working!!!");
                        return;
                    }
                }
                calDataChanged = true;

                reqThreadStop = false;

                BT_STOP.Enabled            = true;
                BT_AutoCalibration.Enabled = false;

                selectedHead = cb_selectedTool.SelectedIndex;
                double posX = mc.hd.tool.tPos.x[selectedHead].LOADCELL;
                double posY = mc.hd.tool.tPos.y[selectedHead].LOADCELL;
                mc.hd.tool.jogMove(posX, posY, out ret.message, true);
                if (ret.message == RetMessage.OK)
                {
                    threadForceCalibration          = new Thread(forceCalibraion);
                    threadForceCalibration.Priority = ThreadPriority.Normal;
                    threadForceCalibration.Name     = "forceCalibraion";
                    threadForceCalibration.Start();
                    mc.log.processdebug.write(mc.log.CODE.INFO, " forceCalibration");
                }
            }
            #endregion

            #region 0~19버튼 이벤트
            if (sender.Equals(TB_Input_Force_0))
            {
                mc.para.setting(force.forceLevel[0], out force.forceLevel[0]);
            }
            if (sender.Equals(TB_Input_Force_1))
            {
                mc.para.setting(force.forceLevel[1], out force.forceLevel[1]);
            }
            if (sender.Equals(TB_Input_Force_2))
            {
                mc.para.setting(force.forceLevel[2], out force.forceLevel[2]);
            }
            if (sender.Equals(TB_Input_Force_3))
            {
                mc.para.setting(force.forceLevel[3], out force.forceLevel[3]);
            }
            if (sender.Equals(TB_Input_Force_4))
            {
                mc.para.setting(force.forceLevel[4], out force.forceLevel[4]);
            }
            if (sender.Equals(TB_Input_Force_5))
            {
                mc.para.setting(force.forceLevel[5], out force.forceLevel[5]);
            }
            if (sender.Equals(TB_Input_Force_6))
            {
                mc.para.setting(force.forceLevel[6], out force.forceLevel[6]);
            }
            if (sender.Equals(TB_Input_Force_7))
            {
                mc.para.setting(force.forceLevel[7], out force.forceLevel[7]);
            }
            if (sender.Equals(TB_Input_Force_8))
            {
                mc.para.setting(force.forceLevel[8], out force.forceLevel[8]);
            }
            if (sender.Equals(TB_Input_Force_9))
            {
                mc.para.setting(force.forceLevel[9], out force.forceLevel[9]);
            }
            if (sender.Equals(TB_Input_Force_10))
            {
                mc.para.setting(force.forceLevel[10], out force.forceLevel[10]);
            }
            if (sender.Equals(TB_Input_Force_11))
            {
                mc.para.setting(force.forceLevel[11], out force.forceLevel[11]);
            }
            if (sender.Equals(TB_Input_Force_12))
            {
                mc.para.setting(force.forceLevel[12], out force.forceLevel[12]);
            }
            if (sender.Equals(TB_Input_Force_13))
            {
                mc.para.setting(force.forceLevel[13], out force.forceLevel[13]);
            }
            if (sender.Equals(TB_Input_Force_14))
            {
                mc.para.setting(force.forceLevel[14], out force.forceLevel[14]);
            }
            if (sender.Equals(TB_Input_Force_15))
            {
                mc.para.setting(force.forceLevel[15], out force.forceLevel[15]);
            }
            if (sender.Equals(TB_Input_Force_16))
            {
                mc.para.setting(force.forceLevel[16], out force.forceLevel[16]);
            }
            if (sender.Equals(TB_Input_Force_17))
            {
                mc.para.setting(force.forceLevel[17], out force.forceLevel[17]);
            }
            if (sender.Equals(TB_Input_Force_18))
            {
                mc.para.setting(force.forceLevel[18], out force.forceLevel[18]);
            }
            if (sender.Equals(TB_Input_Force_19))
            {
                mc.para.setting(force.forceLevel[19], out force.forceLevel[19]);
            }

            if (sender.Equals(TB_Bottom_Force_0))
            {
                mc.para.setting(force.bottomForce[0], out force.bottomForce[0]);
            }
            if (sender.Equals(TB_Bottom_Force_1))
            {
                mc.para.setting(force.bottomForce[1], out force.bottomForce[1]);
            }
            if (sender.Equals(TB_Bottom_Force_2))
            {
                mc.para.setting(force.bottomForce[2], out force.bottomForce[2]);
            }
            if (sender.Equals(TB_Bottom_Force_3))
            {
                mc.para.setting(force.bottomForce[3], out force.bottomForce[3]);
            }
            if (sender.Equals(TB_Bottom_Force_4))
            {
                mc.para.setting(force.bottomForce[4], out force.bottomForce[4]);
            }
            if (sender.Equals(TB_Bottom_Force_5))
            {
                mc.para.setting(force.bottomForce[5], out force.bottomForce[5]);
            }
            if (sender.Equals(TB_Bottom_Force_6))
            {
                mc.para.setting(force.bottomForce[6], out force.bottomForce[6]);
            }
            if (sender.Equals(TB_Bottom_Force_7))
            {
                mc.para.setting(force.bottomForce[7], out force.bottomForce[7]);
            }
            if (sender.Equals(TB_Bottom_Force_8))
            {
                mc.para.setting(force.bottomForce[8], out force.bottomForce[8]);
            }
            if (sender.Equals(TB_Bottom_Force_9))
            {
                mc.para.setting(force.bottomForce[9], out force.bottomForce[9]);
            }
            if (sender.Equals(TB_Bottom_Force_10))
            {
                mc.para.setting(force.bottomForce[10], out force.bottomForce[10]);
            }
            if (sender.Equals(TB_Bottom_Force_11))
            {
                mc.para.setting(force.bottomForce[11], out force.bottomForce[11]);
            }
            if (sender.Equals(TB_Bottom_Force_12))
            {
                mc.para.setting(force.bottomForce[12], out force.bottomForce[12]);
            }
            if (sender.Equals(TB_Bottom_Force_13))
            {
                mc.para.setting(force.bottomForce[13], out force.bottomForce[13]);
            }
            if (sender.Equals(TB_Bottom_Force_14))
            {
                mc.para.setting(force.bottomForce[14], out force.bottomForce[14]);
            }
            if (sender.Equals(TB_Bottom_Force_15))
            {
                mc.para.setting(force.bottomForce[15], out force.bottomForce[15]);
            }
            if (sender.Equals(TB_Bottom_Force_16))
            {
                mc.para.setting(force.bottomForce[16], out force.bottomForce[16]);
            }
            if (sender.Equals(TB_Bottom_Force_17))
            {
                mc.para.setting(force.bottomForce[17], out force.bottomForce[17]);
            }
            if (sender.Equals(TB_Bottom_Force_18))
            {
                mc.para.setting(force.bottomForce[18], out force.bottomForce[18]);
            }
            if (sender.Equals(TB_Bottom_Force_19))
            {
                mc.para.setting(force.bottomForce[19], out force.bottomForce[19]);
            }

            if (sender.Equals(TB_Top_Force_0))
            {
                mc.para.setting(force.topForce[0], out force.topForce[0]);
            }
            if (sender.Equals(TB_Top_Force_1))
            {
                mc.para.setting(force.topForce[1], out force.topForce[1]);
            }
            if (sender.Equals(TB_Top_Force_2))
            {
                mc.para.setting(force.topForce[2], out force.topForce[2]);
            }
            if (sender.Equals(TB_Top_Force_3))
            {
                mc.para.setting(force.topForce[3], out force.topForce[3]);
            }
            if (sender.Equals(TB_Top_Force_4))
            {
                mc.para.setting(force.topForce[4], out force.topForce[4]);
            }
            if (sender.Equals(TB_Top_Force_5))
            {
                mc.para.setting(force.topForce[5], out force.topForce[5]);
            }
            if (sender.Equals(TB_Top_Force_6))
            {
                mc.para.setting(force.topForce[6], out force.topForce[6]);
            }
            if (sender.Equals(TB_Top_Force_7))
            {
                mc.para.setting(force.topForce[7], out force.topForce[7]);
            }
            if (sender.Equals(TB_Top_Force_8))
            {
                mc.para.setting(force.topForce[8], out force.topForce[8]);
            }
            if (sender.Equals(TB_Top_Force_9))
            {
                mc.para.setting(force.topForce[9], out force.topForce[9]);
            }
            if (sender.Equals(TB_Top_Force_10))
            {
                mc.para.setting(force.topForce[10], out force.topForce[10]);
            }
            if (sender.Equals(TB_Top_Force_11))
            {
                mc.para.setting(force.topForce[11], out force.topForce[11]);
            }
            if (sender.Equals(TB_Top_Force_12))
            {
                mc.para.setting(force.topForce[12], out force.topForce[12]);
            }
            if (sender.Equals(TB_Top_Force_13))
            {
                mc.para.setting(force.topForce[13], out force.topForce[13]);
            }
            if (sender.Equals(TB_Top_Force_14))
            {
                mc.para.setting(force.topForce[14], out force.topForce[14]);
            }
            if (sender.Equals(TB_Top_Force_15))
            {
                mc.para.setting(force.topForce[15], out force.topForce[15]);
            }
            if (sender.Equals(TB_Top_Force_16))
            {
                mc.para.setting(force.topForce[16], out force.topForce[16]);
            }
            if (sender.Equals(TB_Top_Force_17))
            {
                mc.para.setting(force.topForce[17], out force.topForce[17]);
            }
            if (sender.Equals(TB_Top_Force_18))
            {
                mc.para.setting(force.topForce[18], out force.topForce[18]);
            }
            if (sender.Equals(TB_Top_Force_19))
            {
                mc.para.setting(force.topForce[19], out force.topForce[19]);
            }
            #endregion

            if (sender.Equals(BT_STOP))
            {
                reqThreadStop   = true;
                BT_STOP.Enabled = false;

                if (threadForceCalibration.IsAlive)
                {
                    mc.idle(10);
                }

                BT_AutoCalibration.Enabled = true;
            }

            if (sender.Equals(TB_Force_Test_Kilogram))
            {
                mc.para.setting(testKilogram, out testKilogram);
            }

EXIT:
            refresh();
        }
예제 #32
0
    }                                                     //this sets the stage for whatever is going to next

    public virtual void Update()
    {
        stage = EVENT.UPDATE;
    }                                                      //we want to stay in update until update kicks us out
예제 #33
0
        private void forceCalibraion()
        {
            try
            {
                threadAbortFlag = false;

                while (reqThreadStop == false)
                {
                    for (int j = 0; j < 20; j++)
                    {
                        if (reqThreadStop == true)
                        {
                            threadAbortFlag = true;
                            break;                                      // 매 동작을 시작하기 전에 Stop 신호 검사
                        }

                        mc.idle(10);

                        #region z moving
                        RetMessage retMsg;
                        double     posZ = getHeight(force.forceLevel[j].value, out retMsg);
                        if (retMsg != RetMessage.OK)
                        {
                            mc.message.alarmMotion(retMsg); reqThreadStop = true;  break;
                        }
                        else
                        {
                            double bottomValue = 0; double topValue = 0;
                            double height = 0;

                            if (selectedHead == (int)UnitCodeHead.HD1)
                            {
                                topValue = mc.loadCell.getData((int)UnitCodeLoadcell.TOP1);
                            }
                            else
                            {
                                topValue = mc.loadCell.getData((int)UnitCodeLoadcell.TOP2);
                            }

                            bottomValue = mc.loadCell.getData((int)UnitCodeLoadcell.CAL);

                            force.bottomForce[j].value = bottomValue;
                            force.topForce[j].value    = topValue;
                            mc.hd.tool.Z[selectedHead].actualPosition(out height, out ret.message);
                            force.heightLevel[j].value = Math.Round(mc.hd.tool.tPos.z[selectedHead].LOADCELL - posZ, 1);

                            refresh();
                        }

                        posZ = mc.hd.tool.tPos.z[selectedHead].XY_MOVING;
                        mc.hd.tool.jogMove(selectedHead, posZ, out ret.message); if (ret.message != RetMessage.OK)
                        {
                            mc.message.alarmMotion(ret.message); reqThreadStop = true; break;
                        }
                        mc.idle(100);
                        #endregion
                    }

                    if (threadAbortFlag == false)
                    {
                        EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.INFORMATION, "Force Calibration is Finish!!!");
                    }
                    reqThreadStop = true;
                }
                if (threadAbortFlag == true)
                {
                    posZ = mc.hd.tool.tPos.z[0].XY_MOVING;
                    mc.hd.tool.jogMove(0, posZ, out retT.message); if (retT.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(retT.message);
                    }
                    EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.INFORMATION, "Force Calibration is Aborted!!!");
                }
            }
            catch (System.Exception ex)
            {
                reqThreadStop = true;
                MessageBox.Show("Force Calibration Exception : " + ex.ToString());
            }
        }
예제 #34
0
 public virtual void Enter()
 {
     stage = EVENT.UPDATE;
 }
예제 #35
0
    protected virtual void OnTrackingFound()
    {
        var rendererComponents = GetComponentsInChildren <Renderer>(true);
        var colliderComponents = GetComponentsInChildren <Collider>(true);
        var canvasComponents   = GetComponentsInChildren <Canvas>(true);

        // Enable rendering:
        foreach (var component in rendererComponents)
        {
            component.enabled = true;
        }

        // Enable colliders:
        foreach (var component in colliderComponents)
        {
            component.enabled = true;
        }

        // Enable canvas':
        foreach (var component in canvasComponents)
        {
            component.enabled = true;
        }

        Scene scene = SceneManager.GetActiveScene();

        if (scene.name == "OrientationMode")
        {
            this.txtEvents.text = "";

            DateTime date       = DateTime.Today;
            string   sentence   = date.ToShortDateString();
            String[] breakApart = sentence.Split('/');

            DataTable personDT;
            DataTable eventDT;

            string generatedQueryWithEvent;
            string generatedQueryWithPerson;

            PERSON foundedPerson = new PERSON();
            EVENT  foundedEvent  = new EVENT();

            generatedQueryWithPerson = foundedPerson.generatePersonQuery(mTrackableBehaviour.TrackableName);
            personDT = database.GetData(generatedQueryWithPerson);
            displayOrientationData(personDT);

            foreach (DataRow row in personDT.Rows)
            {
                this.personIDForOrientationMode = int.Parse(row["PersonID"].ToString());
                break;
            }
            if (this.personIDForOrientationMode != -1)
            {
                generatedQueryWithEvent = foundedEvent.generateEventQuery((this.personIDForOrientationMode));
                eventDT = database.GetData(generatedQueryWithEvent);
                displayEvents(eventDT, breakApart);
            }
        }

        else if (scene.name == "SystemDashboard")
        {
            DataTable mySysDashDT;
            string    generatedQueryWithPerson;
            string    generatedQueryWithTask;

            TASK   foundedTask   = new TASK();
            PERSON foundedPerson = new PERSON();

            generatedQueryWithPerson = foundedPerson.generatePersonQuery(mTrackableBehaviour.TrackableName);
            generatedQueryWithTask   = foundedTask.generateTaskQuery(mTrackableBehaviour.TrackableName);

            mySysDashDT = database.GetData(generatedQueryWithPerson);
            if (mySysDashDT.Rows.Count > 0)
            {
                foreach (DataRow row in mySysDashDT.Rows)
                {
                    this.personIDForOperationMode = int.Parse(row["PersonID"].ToString());
                    break;
                }
                if (this.personIDForOperationMode != -1)
                {
                    displayOperationData(this.personIDForOperationMode);
                }
            }
            else
            {
                mySysDashDT = database.GetData(generatedQueryWithTask);
                foreach (DataRow row in mySysDashDT.Rows)
                {
                    this.taskIDForMeetingMode = int.Parse(row["TaskID"].ToString());
                    break;
                }
                if (this.taskIDForMeetingMode != -1)
                {
                    TFSButton.isOn = true;
                    displayTaskData(mTrackableBehaviour.TrackableName);
                }
            }
        }
    }
예제 #36
0
 public virtual void Exit()
 {
     stage = EVENT.UPDATE;
 }
예제 #37
0
        public ActionResult SensorInfoPage(int siteId, int sensorId)
        {
            try
            {
                STNServiceCaller serviceCaller = STNServiceCaller.Instance;
                var request = new RestRequest();

                #region SiteInfo
                //get site
                request.Resource    = "Sites/{entityId}";
                request.RootElement = "SITE";
                request.AddParameter("entityId", siteId, ParameterType.UrlSegment);
                SITE thisSite = serviceCaller.Execute <SITE>(request);
                ViewData["Site"] = thisSite;

                //get hdatum
                request             = new RestRequest();
                request.Resource    = "/HorizontalDatums/{entityId}";
                request.RootElement = "HORIZONTAL_DATUMS";
                request.AddParameter("entityId", thisSite.HDATUM_ID, ParameterType.UrlSegment);
                ViewData["HDatum"] = serviceCaller.Execute <HORIZONTAL_DATUMS>(request).DATUM_NAME;
                #endregion SiteInfo

                //get peaks
                GetPeakSummaries(siteId);

                #region SensorInfo
                //get the sensor
                request             = new RestRequest();
                request.Resource    = "Instruments/{entityId}";
                request.RootElement = "INSTRUMENT";
                request.AddParameter("entityId", sensorId, ParameterType.UrlSegment);
                INSTRUMENT thisInstrument = serviceCaller.Execute <INSTRUMENT>(request);
                ViewData["Instrument"] = thisInstrument;

                //get event
                request             = new RestRequest();
                request.Resource    = "/Instruments/{instrumentId}/Event";
                request.RootElement = "EVENT";
                request.AddParameter("instrumentId", thisInstrument.INSTRUMENT_ID, ParameterType.UrlSegment);
                EVENT sensorEvent = serviceCaller.Execute <EVENT>(request);
                ViewData["sensorEvent"] = sensorEvent.EVENT_NAME;

                //pull from log the statuses
                request             = new RestRequest();
                request.Resource    = "/Instruments/{instrumentId}/InstrumentStatusLog";
                request.RootElement = "ArrayOfInstrumentStatus";
                request.AddParameter("instrumentId", sensorId, ParameterType.UrlSegment);
                List <INSTRUMENT_STATUS> InstrStatusList = serviceCaller.Execute <List <INSTRUMENT_STATUS> >(request);

                foreach (INSTRUMENT_STATUS IS in InstrStatusList)
                {
                    switch (Convert.ToInt32(IS.STATUS_TYPE_ID))
                    {
                    case 1:
                        ViewData["DeployedStatus"] = IS;
                        break;

                    case 2:
                        ViewData["RetrievedStatus"] = IS;
                        break;

                    default:
                        ViewData["LostStatus"] = IS;
                        break;
                    }
                }

                //get Sensor Type if one
                if (thisInstrument.SENSOR_TYPE_ID != null)
                {
                    request             = new RestRequest();
                    request.Resource    = "/SensorTypes/{entityId}";
                    request.RootElement = "SENSOR_TYPE";
                    request.AddParameter("entityId", thisInstrument.SENSOR_TYPE_ID, ParameterType.UrlSegment);
                    string aSensor = serviceCaller.Execute <SENSOR_TYPE>(request).SENSOR;
                    ViewData["SensorType"] = aSensor;
                }

                ////get deployment_type if one
                if (thisInstrument.DEPLOYMENT_TYPE_ID != null && thisInstrument.DEPLOYMENT_TYPE_ID != 0)
                {
                    request             = new RestRequest();
                    request.Resource    = "/DeploymentTypes/{entityId}";
                    request.RootElement = "DEPLOYMENT_TYPE";
                    request.AddParameter("entityId", thisInstrument.DEPLOYMENT_TYPE_ID, ParameterType.UrlSegment);
                    string aDepType = serviceCaller.Execute <DEPLOYMENT_TYPE>(request).METHOD;
                    ViewData["DeplType"] = aDepType;
                }
                //get condition
                if (thisInstrument.INST_COLLECTION_ID != null && thisInstrument.INST_COLLECTION_ID != 0)
                {
                    request             = new RestRequest();
                    request.Resource    = "/InstrCollectConditions/{entityId}";
                    request.RootElement = "INSTR_COLLECTION_CONDITIONS";
                    request.AddParameter("entityId", thisInstrument.INST_COLLECTION_ID, ParameterType.UrlSegment);
                    ViewData["Condition"] = serviceCaller.Execute <INSTR_COLLECTION_CONDITIONS>(request).CONDITION;
                }

                if (InstrStatusList.Count > 1)
                {
                    if (InstrStatusList[0].COLLECTION_TEAM_ID != 0 && InstrStatusList[0].COLLECTION_TEAM_ID != null)
                    {
                        request             = new RestRequest();
                        request.Resource    = "/CollectionTeams/{entityId}";
                        request.RootElement = "COLLECT_TEAM";
                        request.AddParameter("entityId", InstrStatusList[0].COLLECTION_TEAM_ID, ParameterType.UrlSegment);
                        COLLECT_TEAM ct = serviceCaller.Execute <COLLECT_TEAM>(request);
                        ViewData["depTeamName"] = ct.DESCRIPTION;
                    }
                    if (InstrStatusList[1].COLLECTION_TEAM_ID != 0 && InstrStatusList[1].COLLECTION_TEAM_ID != null)
                    {
                        request             = new RestRequest();
                        request.Resource    = "/CollectionTeams/{entityId}";
                        request.RootElement = "COLLECT_TEAM";
                        request.AddParameter("entityId", InstrStatusList[1].COLLECTION_TEAM_ID, ParameterType.UrlSegment);
                        COLLECT_TEAM ct = serviceCaller.Execute <COLLECT_TEAM>(request);
                        ViewData["retTeamName"] = ct.DESCRIPTION;
                    }
                }
                #endregion SensorInfo

                #region FileInfo
                request             = new RestRequest();
                request.Resource    = "/Instruments/{instrumentId}/Files";
                request.RootElement = "ArrayOfFILE";
                request.AddParameter("instrumentId", sensorId, ParameterType.UrlSegment);
                List <FILE> sensorFiles = serviceCaller.Execute <List <FILE> >(request);

                ViewData["dataFiles"] = sensorFiles.Where(df => df.FILETYPE_ID == 2).ToList();
                List <FILE> photoFiles = sensorFiles.Where(pf => pf.FILETYPE_ID == 1).ToList();

                //build photo caption
                List <PhotoFileCaption> photoCapFiles = new List <PhotoFileCaption>();
                foreach (FILE f in photoFiles)
                {
                    PhotoFileCaption thisPhoto = new PhotoFileCaption();
                    thisPhoto.FileID          = f.FILE_ID.ToString();
                    thisPhoto.FileDesc        = f.DESCRIPTION;
                    thisPhoto.SiteDescription = thisSite.SITE_DESCRIPTION;
                    thisPhoto.County          = thisSite.COUNTY;
                    thisPhoto.State           = thisSite.STATE;
                    thisPhoto.Date            = f.FILE_DATE;

                    request             = new RestRequest();
                    request.Resource    = "/Sources/{entityId}";
                    request.RootElement = "SOURCE";
                    request.AddParameter("entityId", f.SOURCE_ID, ParameterType.UrlSegment);
                    SOURCE thisSource = serviceCaller.Execute <SOURCE>(request);
                    thisPhoto.MemberName = thisSource.SOURCE_NAME;

                    request             = new RestRequest();
                    request.Resource    = "/Agencies/{entityId}";
                    request.RootElement = "AGENCY";
                    request.AddParameter("entityId", thisSource.AGENCY_ID, ParameterType.UrlSegment);
                    thisPhoto.MemberAgency = serviceCaller.Execute <AGENCY>(request).AGENCY_NAME;
                    photoCapFiles.Add(thisPhoto);
                }
                ViewData["PhotoCaptionList"] = photoCapFiles;

                #endregion FileInfo

                return(PartialView());
            }
            catch (Exception e)
            {
                return(PartialView("../Shared/Error", e));
            }
        }
예제 #38
0
        static void placeOffsetCalibration()
        {
            try
            {
                threadAbortFlag = false;
                double   posX, posY, posZ;
                RetValue ret;

                Thread.Sleep(200);

                while (!reqThreadStop)
                {
                    for (int i = 0; i < (int)mc.para.MT.padCount.x.value; i++)
                    {
                        Thread.Sleep(1);
                        if (reqThreadStop == true)
                        {
                            threadAbortFlag = true;
                            break;              // 매 동작을 시작하기 전에 Stop 신호 검사
                        }

                        for (int j = 0; j < (int)mc.para.MT.padCount.y.value; j++)
                        {
                            Thread.Sleep(1);
                            if (reqThreadStop == true)
                            {
                                threadAbortFlag = true;
                                break;          // 매 동작을 시작하기 전에 Stop 신호 검사
                            }

                            // 1. C1 이동 및 측정
                            posX = mc.hd.tool.lPos.x.PEDC1(i, true);
                            posY = mc.hd.tool.lPos.y.PEDC1(j, true);
                            mc.hd.tool.jogMove(posX, posY, out ret.message); if (ret.message != RetMessage.OK)
                            {
                                mc.message.alarmMotion(ret.message); reqThreadStop = true; break;
                            }

                            mc.idle(300);
                            ret.d = mc.AIN.Laser(); if (ret.d < -10)
                            {
                                ret.d = -1;
                            }
                            laserResult = Math.Round(ret.d, 3);
                            placeOffsetC1[0, 0].value = ret.d * 1000;

                            // 2. C2 이동 및 측정
                            posX = mc.hd.tool.lPos.x.PEDC2(i, true);
                            posY = mc.hd.tool.lPos.y.PEDC2(j, true);
                            mc.hd.tool.jogMove(posX, posY, out ret.message); if (ret.message != RetMessage.OK)
                            {
                                mc.message.alarmMotion(ret.message); reqThreadStop = true; break;
                            }

                            mc.idle(300);
                            ret.d = mc.AIN.Laser(); if (ret.d < -10)
                            {
                                ret.d = -1;
                            }
                            laserResult = Math.Round(ret.d, 3);
                            placeOffsetC2[0, 0].value = ret.d * 1000;
                            // 3. C3 이동 및 측정
                            posX = mc.hd.tool.lPos.x.PEDC3(i, true);
                            posY = mc.hd.tool.lPos.y.PEDC3(j, true);
                            mc.hd.tool.jogMove(posX, posY, out ret.message); if (ret.message != RetMessage.OK)
                            {
                                mc.message.alarmMotion(ret.message); reqThreadStop = true; break;
                            }

                            mc.idle(300);
                            ret.d = mc.AIN.Laser(); if (ret.d < -10)
                            {
                                ret.d = -1;
                            }
                            laserResult = Math.Round(ret.d, 3);
                            placeOffsetC3[0, 0].value = ret.d * 1000;
                            // 4. C4 이동 및 측정
                            posX = mc.hd.tool.lPos.x.PEDC4(i, true);
                            posY = mc.hd.tool.lPos.y.PEDC4(j, true);
                            mc.hd.tool.jogMove(posX, posY, out ret.message); if (ret.message != RetMessage.OK)
                            {
                                mc.message.alarmMotion(ret.message); reqThreadStop = true; break;
                            }

                            mc.idle(300);
                            ret.d = mc.AIN.Laser(); if (ret.d < -10)
                            {
                                ret.d = -1;
                            }
                            laserResult = Math.Round(ret.d, 3);
                            placeOffsetC4[0, 0].value = ret.d * 1000;

                            //posX = mc.hd.tool.lPos.x.PAD(i) + mc.para.CAL.placeOffsetLaserPos.x.value;
                            //posY = mc.hd.tool.lPos.y.PAD(j) + mc.para.CAL.placeOffsetLaserPos.y.value;
                            //mc.hd.tool.jogMove(posX, posY, out ret.message); if (ret.message != RetMessage.OK) { mc.message.alarmMotion(ret.message); reqThreadStop = true; break; }

                            //mc.idle(300);
                            //ret.d = mc.AIN.Laser(); if (ret.d < -10) ret.d = -1;
                            //mc.IN.LS.ALM(out ret.b1, out ret.message); if (ret.message != RetMessage.OK) ret.d = -1;
                            //mc.IN.LS.FAR(out ret.b2, out ret.message); if (ret.message != RetMessage.OK) ret.d = -1;
                            //mc.IN.LS.NEAR(out ret.b3, out ret.message); if (ret.message != RetMessage.OK) ret.d = -1;

                            //laserResult = Math.Round(ret.d, 3);
                            // mm를 um단위로 바꾼다.
                            if (i == 0 && j == 0)
                            {
                                placeOffsetResultZ[0, 0].value = (placeOffsetC1[0, 0].value + placeOffsetC2[0, 0].value + placeOffsetC3[0, 0].value + placeOffsetC4[0, 0].value) / 4;
                            }
                            else
                            {
                                placeOffsetResultZ[i, j].value = Math.Round((placeOffsetC1[0, 0].value
                                                                             + placeOffsetC2[0, 0].value
                                                                             + placeOffsetC3[0, 0].value
                                                                             + placeOffsetC4[0, 0].value) / 4
                                                                            - placeOffsetResultZ[0, 0].value, 1);
                            }
                        }
                    }
                    placeOffsetResultZ[0, 0].value = 0;

                    if (!threadAbortFlag)
                    {
                        EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.INFORMATION, "Place Offset Calibration is Finished!!!");
                    }
                    reqThreadStop = true;
                }
                if (threadAbortFlag)
                {
                    EVENT.userDialogMessage(DIAG_SEL_MODE.OK, DIAG_ICON_MODE.INFORMATION, "Place Offset Calibration is Aborted!!!");
                }
            }
            catch (System.Exception ex)
            {
                reqThreadStop = true;
                MessageBox.Show("Force Calibration Exception : " + ex.ToString());
            }
        }
예제 #39
0
        //
        // GET: /Public/
        public ActionResult HWMInfoPage(int siteId, int hwmId)
        {
            try
            {
                STNServiceCaller serviceCaller = STNServiceCaller.Instance;
                var request = new RestRequest();

                #region SiteInfo
                //get site
                request.Resource    = "Sites/{entityId}";
                request.RootElement = "SITE";
                request.AddParameter("entityId", siteId, ParameterType.UrlSegment);
                SITE thisSite = serviceCaller.Execute <SITE>(request);
                ViewData["Site"] = thisSite;

                //get hdatum

                request             = new RestRequest();
                request.Resource    = "Sites/{siteId}/hDatum";
                request.RootElement = "HORIZONTAL_DATUMS";
                request.AddParameter("siteId", thisSite.SITE_ID, ParameterType.UrlSegment);
                ViewData["HDatum"] = serviceCaller.Execute <HORIZONTAL_DATUMS>(request).DATUM_NAME;
                #endregion SiteInfo

                //get Peaks
                GetPeakSummaries(siteId);

                #region HWMinfo
                //get hwm
                request             = new RestRequest();
                request.Resource    = "HWMs/{entityId}";
                request.RootElement = "HWM";
                request.AddParameter("entityId", hwmId, ParameterType.UrlSegment);
                HWM aHWM = serviceCaller.Execute <HWM>(request);
                ViewData["HWM"] = aHWM;

                //get event
                request             = new RestRequest();
                request.Resource    = "/HWMs/{hwmId}/Event";
                request.RootElement = "EVENT";
                request.AddParameter("hwmId", aHWM.HWM_ID, ParameterType.UrlSegment);
                EVENT hwmEvent = serviceCaller.Execute <EVENT>(request);
                if (hwmEvent != null)
                {
                    ViewData["HwmEvent"] = hwmEvent.EVENT_NAME;
                }

                //get HWM Type
                request             = new RestRequest();
                request.Resource    = "/HWMTypes/{entityId}";
                request.RootElement = "HWM_TYPES";
                request.AddParameter("entityId", aHWM.HWM_TYPE_ID, ParameterType.UrlSegment);
                HWM_TYPES thisHWMType = serviceCaller.Execute <HWM_TYPES>(request);
                if (thisHWMType != null)
                {
                    ViewData["HWMType"] = thisHWMType.HWM_TYPE;
                }

                //get HWM Quality
                request             = new RestRequest();
                request.Resource    = "/HWMQualities/{entityId}";
                request.RootElement = "HWM_QUALITIES";
                request.AddParameter("entityId", aHWM.HWM_QUALITY_ID, ParameterType.UrlSegment);
                HWM_QUALITIES thisHWMQual = serviceCaller.Execute <HWM_QUALITIES>(request);
                if (thisHWMQual != null)
                {
                    ViewData["HWMQaul"] = thisHWMQual.HWM_QUALITY;
                }

                if (aHWM.FLAG_TEAM_ID != null && aHWM.FLAG_TEAM_ID != 0)
                {
                    //get CollectionTeam
                    request             = new RestRequest();
                    request.Resource    = "/CollectionTeams/{entityId}";
                    request.RootElement = "COLLECT_TEAM";
                    request.AddParameter("entityId", aHWM.FLAG_TEAM_ID, ParameterType.UrlSegment);
                    ViewData["FlagTeam"] = serviceCaller.Execute <COLLECT_TEAM>(request).DESCRIPTION;
                }

                if (aHWM.SURVEY_TEAM_ID != null && aHWM.SURVEY_TEAM_ID != 0)
                {
                    //get CollectionTeam
                    request             = new RestRequest();
                    request.Resource    = "/CollectionTeams/{entityId}";
                    request.RootElement = "COLLECT_TEAM";
                    request.AddParameter("entityId", aHWM.SURVEY_TEAM_ID, ParameterType.UrlSegment);
                    ViewData["SurveyTeam"] = serviceCaller.Execute <COLLECT_TEAM>(request).DESCRIPTION;
                }

                //get collectionMethod
                request             = new RestRequest();
                request.Resource    = "/VerticalMethods/{entityId}";
                request.RootElement = "VERTICAL_COLLECT_METHODS";
                request.AddParameter("entityId", aHWM.VCOLLECT_METHOD_ID, ParameterType.UrlSegment);
                VERTICAL_COLLECT_METHODS thisVCollMtd = serviceCaller.Execute <VERTICAL_COLLECT_METHODS>(request);
                if (thisVCollMtd != null)
                {
                    ViewData["VCollectMethod"] = thisVCollMtd.VCOLLECT_METHOD;
                }

                //Get Vertical Datum
                request             = new RestRequest();
                request.Resource    = "/VerticalDatums/{entityId}";
                request.RootElement = "VERTICAL_DATUMS";
                request.AddParameter("entityId", aHWM.VDATUM_ID, ParameterType.UrlSegment);
                VERTICAL_DATUMS thisVD = serviceCaller.Execute <VERTICAL_DATUMS>(request);
                if (thisVD != null)
                {
                    ViewData["VerticalDatum"] = thisVD.DATUM_NAME;
                }

                //Get marker
                request             = new RestRequest();
                request.Resource    = "/Markers/{entityId}";
                request.RootElement = "MARKER";
                request.AddParameter("entityId", aHWM.MARKER_ID, ParameterType.UrlSegment);
                MARKER thisMarker = serviceCaller.Execute <MARKER>(request);
                if (thisMarker != null)
                {
                    ViewData["Marker"] = thisMarker.MARKER1;
                }

                //get Horizontal Collection Method
                request             = new RestRequest();
                request.Resource    = "/HorizontalMethods/{entityId}";
                request.RootElement = "HORIZONTAL_COLLECT_METHODS";
                request.AddParameter("entityId", aHWM.HCOLLECT_METHOD_ID, ParameterType.UrlSegment);
                HORIZONTAL_COLLECT_METHODS thisHColMethod = serviceCaller.Execute <HORIZONTAL_COLLECT_METHODS>(request);
                if (thisHColMethod != null)
                {
                    ViewData["HColMethod"] = thisHColMethod.HCOLLECT_METHOD;
                }
                #endregion HWMinfo

                #region FileInfo
                //now get all the files
                request             = new RestRequest();
                request.Resource    = "/HWMs/{hwmId}/Files/";
                request.RootElement = "ArrayOfFILE";
                request.AddParameter("hwmId", aHWM.HWM_ID, ParameterType.UrlSegment);
                List <FILE> allTheseFiles = serviceCaller.Execute <List <FILE> >(request);
                List <FILE> photoFiles    = allTheseFiles.Where(pf => pf.FILETYPE_ID == 1).ToList();

                List <PhotoFileCaption> PhotoCapFiles = new List <PhotoFileCaption>();
                foreach (FILE f in photoFiles)
                {
                    //build caption
                    PhotoFileCaption thisPhoto = new PhotoFileCaption();
                    thisPhoto.FileID          = f.FILE_ID.ToString();
                    thisPhoto.FileDesc        = f.DESCRIPTION;
                    thisPhoto.SiteDescription = thisSite.SITE_DESCRIPTION;
                    thisPhoto.County          = thisSite.COUNTY;
                    thisPhoto.State           = thisSite.STATE;
                    thisPhoto.Date            = f.FILE_DATE;

                    request             = new RestRequest();
                    request.Resource    = "/Sources/{entityId}";
                    request.RootElement = "SOURCE";
                    request.AddParameter("entityId", f.SOURCE_ID, ParameterType.UrlSegment);
                    SOURCE thisSource = serviceCaller.Execute <SOURCE>(request);
                    thisPhoto.MemberName = thisSource.SOURCE_NAME;

                    request             = new RestRequest();
                    request.Resource    = "/Agencies/{entityId}";
                    request.RootElement = "AGENCY";
                    request.AddParameter("entityId", thisSource.AGENCY_ID, ParameterType.UrlSegment);
                    thisPhoto.MemberAgency = serviceCaller.Execute <AGENCY>(request).AGENCY_NAME;
                    PhotoCapFiles.Add(thisPhoto);
                }

                ViewData["PhotoCaptionList"] = PhotoCapFiles;
                #endregion FileInof

                return(PartialView());
            }
            catch (Exception e)
            {
                return(PartialView("../Shared/Error", e));
            }
        }
예제 #40
0
    /// <summary>
    /// Server-side only. Transfers control of a player object to the indicated connection.
    /// </summary>
    /// <param name="conn">The client's NetworkConnection. If logged out the playerlist will return an invalid connectedplayer</param>
    /// <param name="newBody">The character gameobject to be transfered into.</param>
    /// <param name="oldBody">The old body of the character.</param>
    /// <param name="eventType">Event type for the player sync.</param>
    /// <param name="characterSettings">settings, ignored if transferring to an existing player body</param>
    /// <param name="willDestroyOldBody">if true, indicates the old body is going to be destroyed rather than pooled,
    /// thus we shouldn't send any network message which reference's the old body's ID since it won't exist.</param>
    private static void ServerTransferPlayer(NetworkConnection conn, GameObject newBody, GameObject oldBody,
                                             EVENT eventType, CharacterSettings characterSettings, bool willDestroyOldBody = false)
    {
        if (oldBody)
        {
            var oldPlayerNetworkActions = oldBody.GetComponent <PlayerNetworkActions>();
            if (oldPlayerNetworkActions)
            {
                oldPlayerNetworkActions.RpcBeforeBodyTransfer();
            }

            //no longer can observe their inventory
            oldBody.GetComponent <ItemStorage>()?.ServerRemoveObserverPlayer(oldBody);
        }

        var connectedPlayer = PlayerList.Instance.Get(conn);

        if (connectedPlayer == ConnectedPlayer.Invalid)         //this isn't an online player
        {
            PlayerList.Instance.UpdateLoggedOffPlayer(newBody, oldBody);
            NetworkServer.Spawn(newBody);
        }
        else
        {
            PlayerList.Instance.UpdatePlayer(conn, newBody);
            NetworkServer.ReplacePlayerForConnection(conn, newBody);
            //NOTE: With mirror upgrade 04 Feb 2020, it appears we no longer need to do what has been
            //commented out below. Below appears to have been an attempt to give authority back to server
            //But it's implicitly given such authority by the ReplacePlayerForConnection call - that call
            //now removes authority for the player's old object
            // if (oldBody)
            // {
            //  NetworkServer.ReplacePlayerForConnection(new NetworkConnectionToClient(0), oldBody);
            // }
            TriggerEventMessage.Send(newBody, eventType);

            //can observe their new inventory
            newBody.GetComponent <ItemStorage>()?.ServerAddObserverPlayer(newBody);
        }

        var playerScript = newBody.GetComponent <PlayerScript>();

        if (playerScript.PlayerSync != null)
        {
            playerScript.PlayerSync.NotifyPlayers(true);
        }

        // If the player is inside a container, send a ClosetHandlerMessage.
        // The ClosetHandlerMessage will attach the container to the transfered player.
        var playerObjectBehavior = newBody.GetComponent <ObjectBehaviour>();

        if (playerObjectBehavior && playerObjectBehavior.parentContainer)
        {
            FollowCameraMessage.Send(newBody, playerObjectBehavior.parentContainer.gameObject);
        }

        if (characterSettings != null)
        {
            playerScript.characterSettings = characterSettings;
            playerScript.playerName        = characterSettings.Name;
            newBody.name = characterSettings.Name;
            var playerSprites = newBody.GetComponent <PlayerSprites>();
            if (playerSprites)
            {
                playerSprites.OnCharacterSettingsChange(characterSettings);
            }
        }
        var healthStateMonitor = newBody.GetComponent <HealthStateMonitor>();

        if (healthStateMonitor)
        {
            healthStateMonitor.ProcessClientUpdateRequest(newBody);
        }
    }
예제 #41
0
    /// <summary>
    /// Connects a client to a character or redirects a logged out ConnectedPlayer.
    /// </summary>
    /// <param name="conn">The client's NetworkConnection. If logged out the playerlist will return an invalid connectedplayer</param>
    /// <param name="playerControllerId">ID of the client player to be transfered. If logged out it's empty.</param>
    /// <param name="newBody">The character gameobject to be transfered into.</param>
    /// <param name="oldBody">The old body of the character.</param>
    /// <param name="eventType">Event type for the player sync.</param>
    public static void TransferPlayer(NetworkConnection conn, short playerControllerId, GameObject newBody, GameObject oldBody, EVENT eventType, CharacterSettings characterSettings)
    {
        var oldPlayerNetworkActions = oldBody.GetComponent <PlayerNetworkActions>();

        if (oldPlayerNetworkActions)
        {
            oldPlayerNetworkActions.RpcBeforeBodyTransfer();
        }

        var connectedPlayer = PlayerList.Instance.Get(conn);

        if (connectedPlayer == ConnectedPlayer.Invalid)         //this isn't an online player
        {
            PlayerList.Instance.UpdateLoggedOffPlayer(newBody, oldBody);
            NetworkServer.Spawn(newBody);
        }
        else
        {
            PlayerList.Instance.UpdatePlayer(conn, newBody);
            NetworkServer.ReplacePlayerForConnection(conn, newBody, playerControllerId);
            NetworkServer.ReplacePlayerForConnection(new NetworkConnection(), oldBody, 0);
            TriggerEventMessage.Send(newBody, eventType);
        }
        var playerScript = newBody.GetComponent <PlayerScript>();

        if (playerScript.PlayerSync != null)
        {
            playerScript.PlayerSync.NotifyPlayers(true);
        }

        // If the player is inside a container, send a ClosetHandlerMessage.
        // The ClosetHandlerMessage will attach the container to the transfered player.
        var playerObjectBehavior = newBody.GetComponent <ObjectBehaviour>();

        if (playerObjectBehavior && playerObjectBehavior.parentContainer)
        {
            ClosetHandlerMessage.Send(newBody, playerObjectBehavior.parentContainer.gameObject);
        }
        bool newMob = false;

        if (characterSettings != null)
        {
            playerScript.characterSettings = characterSettings;
            playerScript.playerName        = characterSettings.Name;
            newBody.name = characterSettings.Name;
            var playerSprites = newBody.GetComponent <PlayerSprites>();
            if (playerSprites)
            {
                playerSprites.OnCharacterSettingsChange(characterSettings);
            }
            newMob = true;
        }
        var healthStateMonitor = newBody.GetComponent <HealthStateMonitor>();

        if (healthStateMonitor)
        {
            healthStateMonitor.ProcessClientUpdateRequest(newBody);
        }
        CustomNetworkManager.Instance.SyncPlayerData(newBody);
        CustomNetworkManager.Instance.SyncCharSprites(newBody, newMob);
    }
예제 #42
0
            public void moveReadyPosition()
            {
                switch (sqc)
                {
                case 0:
                    Esqc = 0;
                    sqc++;
                    break;

                case 1:
                    if (mc.ps.RUNING)
                    {
                        break;
                    }
                    if (mc.ps.ERROR)
                    {
                        Esqc = sqc; sqc = SQC.ERROR; break;
                    }

                    if (!isAreaSafe())
                    {
                        errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_AREA_SENSOR_DETECT);
                        break;
                    }

                    if (!isConveyorSafe())
                    {
                        errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAZINE_IO_BOAT_SENSOR_DETECT);
                        break;
                    }

                    #region Check Magazine Status
                    mc.UnloaderControl.readconfig();
                    if (MagazineIsFull())
                    {
                        sqc = 20;                       // 꽉 찼을 시 down sqc로 이동
                        break;
                    }
                    else
                    {
                        workMG = 0;
                        MagazineReadyPos(out workMG, out workSlot);
                    }

                    if (workMG == (int)MG_NUM.MG2)
                    {
                        posZ = pos.MG2_READY;
                    }
                    else if (workMG == (int)MG_NUM.MG3)
                    {
                        posZ = pos.MG3_READY;
                    }
                    else
                    {
                        posZ = pos.MG1_READY;
                    }
                    posZ -= workSlot * mc.para.UD.slotPitch.value * 1000;
                    #endregion

                    Z.move(posZ, out ret.message); if (mpiCheck(Z.config.axisCode, sqc, ret.message, "", false))
                    {
                        break;
                    }
                    dwell.Reset();
                    sqc++; break;

                case 2:
                    if (!Z_AT_TARGET)
                    {
                        break;
                    }
                    dwell.Reset();
                    sqc++; break;

                case 3:
                    if (!Z_AT_DONE)
                    {
                        break;
                    }
                    dwell.Reset();
                    sqc++; break;

                case 4:
                    if (mc.para.UD.MagazineInCheck.value == 0)
                    {
                        sqc = SQC.STOP;
                    }
                    else
                    {
                        if (dwell.Elapsed < 100)
                        {
                            break;
                        }
                        mc.IN.MG.MG_IN(out ret.b, out ret.message); if (ioCheck(sqc, ret.message))
                        {
                            break;
                        }
                        if (ret.b)
                        {
                            sqc = SQC.STOP;
                        }
                        else
                        {
                            sqc++;
                        }
                    }
                    break;

                case 5:
                    FormUserMessage ff = new FormUserMessage();
                    mc.OUT.MAIN.UserBuzzerCtl(true);
                    ff.SetDisplayItems(DIAG_SEL_MODE.RetrySkipCancel, DIAG_ICON_MODE.WARNING, "MG(#" + (workMG + 1).ToString() + ") 감지 에러 발생");
                    ff.ShowDialog();
                    DIAG_RESULT fResult = FormUserMessage.diagResult;

                    mc.OUT.MAIN.UserBuzzerCtl(false);
                    if (fResult == DIAG_RESULT.Retry)
                    {
                        dwell.Reset();
                        sqc--; break;
                    }
                    else if (fResult == DIAG_RESULT.Skip)
                    {
                        for (int i = 0; i < mc.UnloaderControl.MG_SLOT_COUNT; i++)
                        {
                            mc.UnloaderControl.MG_Status[workMG, i] = (int)MG_STATUS.SKIP;
                            EVENT.refreshEditMagazine(workMG, i);
                        }
                        mc.UnloaderControl.writeconfig();

                        sqc = 1; break;
                    }
                    else
                    {
                        errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAGINE_NOT_EXIST);
                        break;
                    }

                case 20:
                    posZ = mc.unloader.Elev.pos.READY;
                    mc.unloader.Elev.Z.move(posZ, out ret.message);
                    if (mpiCheck(Z.config.axisCode, sqc, ret.message, "", false))
                    {
                        break;
                    }
                    dwell.Reset();
                    sqc++; break;

                case 21:
                    if (!Z_AT_TARGET)
                    {
                        break;
                    }
                    sqc++; dwell.Reset(); break;

                case 22:
                    if (!Z_AT_DONE)
                    {
                        break;
                    }
                    sqc++; break;

                case 23:
                    //mc.OUT.MG.MG_RESET(true, out ret.message);
                    errorCheck(ERRORCODE.MG, sqc, "", ALARM_CODE.E_MAGAGINE_STATUS_FULL); break;

                case SQC.ERROR:
                    sqc = SQC.STOP; break;

                case SQC.STOP:
                    sqc = SQC.END; break;
                }
            }
예제 #43
0
 public virtual void Exit()
 {
     stage = EVENT.EXIT;
 }
예제 #44
0
        public ActionResult Event_New(EVENT newEvent)
        {
            try
            {
                BLTServiceCaller serviceCaller = BLTServiceCaller.Instance;
                var request = new RestRequest(Method.POST);

                request.Resource = "/Events";
                request.RequestFormat = DataFormat.Xml;
                request.AddHeader("Content-Type", "application/xml");
                //Use extended serializer
                BLTWebSerializer serializer = new BLTWebSerializer();
                request.AddParameter("application/xml", serializer.Serialize<EVENT>(newEvent), ParameterType.RequestBody);

                EVENT createdEvent = serviceCaller.Execute<EVENT>(request);

                return RedirectToAction("../Parts/Index");
            }
            catch (Exception e)
            {
                return View(e.ToString());
            }
        }
        private void Control_Click(object sender, EventArgs e)
        {
            if (!mc.check.READY_AUTORUN(sender))
            {
                return;
            }
            mc.check.push(sender, true);

            if (sender.Equals(BT_SelectModel_C1))
            {
                mode = SELECT_FIND_MODEL.ULC_CORNER1;
                mc.para.setting(ref mc.para.ULC.modelCorner1.algorism, (int)MODEL_ALGORISM.CORNER);
            }
            if (sender.Equals(BT_SelectModel_C2))
            {
                mode = SELECT_FIND_MODEL.ULC_CORNER2;
                mc.para.setting(ref mc.para.ULC.modelCorner2.algorism, (int)MODEL_ALGORISM.CORNER);
            }
            if (sender.Equals(BT_SelectModel_C3))
            {
                mode = SELECT_FIND_MODEL.ULC_CORNER3;
                mc.para.setting(ref mc.para.ULC.modelCorner3.algorism, (int)MODEL_ALGORISM.CORNER);
            }
            if (sender.Equals(BT_SelectModel_C4))
            {
                mode = SELECT_FIND_MODEL.ULC_CORNER4;
                mc.para.setting(ref mc.para.ULC.modelCorner4.algorism, (int)MODEL_ALGORISM.CORNER);
            }
            if (sender.Equals(BT_DetectDirection_13))
            {
                mc.para.setting(ref mc.para.ULC.detectDirection, 0);
            }
            if (sender.Equals(BT_DetectDirection_24))
            {
                mc.para.setting(ref mc.para.ULC.detectDirection, 1);
            }
            if (sender.Equals(TB_CropArea))
            {
                mc.para.setting(mc.para.ULC.cropArea, out mc.para.ULC.cropArea);
            }
            if (sender.Equals(BT_Model_Teach))
            {
                try
                {
                    FormHalconModelTeach ff = new FormHalconModelTeach();
                    ff.mode          = mode;
                    ff.teachCropArea = mc.para.ULC.cropArea.value;
                    ff.Show();
                    this.Enabled = false;
                    while (true)
                    {
                        mc.idle(100); if (ff.IsDisposed)
                        {
                            break;
                        }
                    }
                    this.Enabled = true;
                }
                catch
                {
                    this.Enabled = true;
                }
                EVENT.hWindow2Display();
            }
            if (sender.Equals(BT_Model_Delect))
            {
                mc.ulc.model_delete(SELECT_FIND_MODEL.ULC_PKG);
            }
            if (sender.Equals(BT_AlgorismSelect_NccModel))
            {
                mc.para.setting(ref mc.para.ULC.model.algorism, (int)MODEL_ALGORISM.NCC);
                mc.ulc.model_delete(SELECT_FIND_MODEL.ULC_PKG);
            }
            if (sender.Equals(BT_AlgorismSelect_ShapeModel))
            {
                mc.para.setting(ref mc.para.ULC.model.algorism, (int)MODEL_ALGORISM.SHAPE);
                mc.ulc.model_delete(SELECT_FIND_MODEL.ULC_PKG);
            }
            if (sender.Equals(BT_AlgorismSelect_RectangleModel))
            {
                mc.para.setting(ref mc.para.ULC.model.algorism, (int)MODEL_ALGORISM.RECTANGLE);
                mc.ulc.model_delete(SELECT_FIND_MODEL.ULC_PKG);
            }
            if (sender.Equals(BT_AlgorismSelect_CircleModel))
            {
                mc.para.setting(ref mc.para.ULC.model.algorism, (int)MODEL_ALGORISM.CIRCLE);
                mc.ulc.model_delete(SELECT_FIND_MODEL.ULC_PKG);
            }
            if (sender.Equals(TB_PassScore))
            {
                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.para.setting(mc.para.ULC.modelCorner1.passScore, out mc.para.ULC.modelCorner1.passScore);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.para.setting(mc.para.ULC.modelCorner2.passScore, out mc.para.ULC.modelCorner2.passScore);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.para.setting(mc.para.ULC.modelCorner3.passScore, out mc.para.ULC.modelCorner3.passScore);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.para.setting(mc.para.ULC.modelCorner4.passScore, out mc.para.ULC.modelCorner4.passScore);
                }
            }
            if (sender.Equals(TB_AngleStart))
            {
                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.para.setting(mc.para.ULC.modelCorner1.angleStart, out mc.para.ULC.modelCorner1.angleStart);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.para.setting(mc.para.ULC.modelCorner2.angleStart, out mc.para.ULC.modelCorner2.angleStart);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.para.setting(mc.para.ULC.modelCorner3.angleStart, out mc.para.ULC.modelCorner3.angleStart);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.para.setting(mc.para.ULC.modelCorner4.angleStart, out mc.para.ULC.modelCorner4.angleStart);
                }
            }
            if (sender.Equals(TB_AngleExtent))
            {
                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.para.setting(mc.para.ULC.modelCorner1.angleExtent, out mc.para.ULC.modelCorner1.angleExtent);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.para.setting(mc.para.ULC.modelCorner2.angleExtent, out mc.para.ULC.modelCorner2.angleExtent);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.para.setting(mc.para.ULC.modelCorner3.angleExtent, out mc.para.ULC.modelCorner3.angleExtent);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.para.setting(mc.para.ULC.modelCorner4.angleExtent, out mc.para.ULC.modelCorner4.angleExtent);
                }
            }
            if (sender.Equals(TB_ExposureTime))
            {
                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.para.setting(mc.para.ULC.modelCorner1.exposureTime, out mc.para.ULC.modelCorner1.exposureTime);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.para.setting(mc.para.ULC.modelCorner2.exposureTime, out mc.para.ULC.modelCorner2.exposureTime);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.para.setting(mc.para.ULC.modelCorner3.exposureTime, out mc.para.ULC.modelCorner3.exposureTime);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.para.setting(mc.para.ULC.modelCorner4.exposureTime, out mc.para.ULC.modelCorner4.exposureTime);
                }
            }
            if (sender.Equals(TB_Lighiting_Ch1))
            {
                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.para.setting(mc.para.ULC.modelCorner1.light.ch1, out mc.para.ULC.modelCorner1.light.ch1);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.para.setting(mc.para.ULC.modelCorner2.light.ch1, out mc.para.ULC.modelCorner2.light.ch1);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.para.setting(mc.para.ULC.modelCorner3.light.ch1, out mc.para.ULC.modelCorner3.light.ch1);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.para.setting(mc.para.ULC.modelCorner4.light.ch1, out mc.para.ULC.modelCorner4.light.ch1);
                }
            }
            if (sender.Equals(TB_Lighiting_Ch2))
            {
                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.para.setting(mc.para.ULC.modelCorner1.light.ch2, out mc.para.ULC.modelCorner1.light.ch2);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.para.setting(mc.para.ULC.modelCorner2.light.ch2, out mc.para.ULC.modelCorner2.light.ch2);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.para.setting(mc.para.ULC.modelCorner3.light.ch2, out mc.para.ULC.modelCorner3.light.ch2);
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.para.setting(mc.para.ULC.modelCorner4.light.ch2, out mc.para.ULC.modelCorner4.light.ch2);
                }
            }
            if (sender.Equals(BT_Lighiting_Jog))
            {
                EVENT.hWindowLargeDisplay(mc.ulc.cam.acq.grabber.cameraNumber);

                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    mc.hd.tool.jogMove((int)UnitCodeHead.HD1, mc.hd.tool.tPos.x[(int)UnitCodeHead.HD1].LIDC1,
                                       mc.hd.tool.tPos.y[(int)UnitCodeHead.HD1].LIDC1, mc.hd.tool.tPos.z[(int)UnitCodeHead.HD1].ULC_FOCUS_WITH_MT, mc.para.CAL.toolAngleOffset[(int)UnitCodeHead.HD1].value, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(ret.message); goto EXIT;
                    }
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    mc.hd.tool.jogMove((int)UnitCodeHead.HD1, mc.hd.tool.tPos.x[(int)UnitCodeHead.HD1].LIDC2,
                                       mc.hd.tool.tPos.y[(int)UnitCodeHead.HD1].LIDC2, mc.hd.tool.tPos.z[(int)UnitCodeHead.HD1].ULC_FOCUS_WITH_MT, mc.para.CAL.toolAngleOffset[(int)UnitCodeHead.HD1].value, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(ret.message); goto EXIT;
                    }
                }

                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    mc.hd.tool.jogMove((int)UnitCodeHead.HD1, mc.hd.tool.tPos.x[(int)UnitCodeHead.HD1].LIDC3,
                                       mc.hd.tool.tPos.y[(int)UnitCodeHead.HD1].LIDC3, mc.hd.tool.tPos.z[(int)UnitCodeHead.HD1].ULC_FOCUS_WITH_MT, mc.para.CAL.toolAngleOffset[(int)UnitCodeHead.HD1].value, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(ret.message); goto EXIT;
                    }
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    mc.hd.tool.jogMove((int)UnitCodeHead.HD1, mc.hd.tool.tPos.x[(int)UnitCodeHead.HD1].LIDC4,
                                       mc.hd.tool.tPos.y[(int)UnitCodeHead.HD1].LIDC4, mc.hd.tool.tPos.z[(int)UnitCodeHead.HD1].ULC_FOCUS_WITH_MT, mc.para.CAL.toolAngleOffset[(int)UnitCodeHead.HD1].value, out ret.message); if (ret.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(ret.message); goto EXIT;
                    }
                }
                mc.ulc.LIVE = true; mc.ulc.liveMode = REFRESH_REQMODE.CENTER_CROSS;
                FormLightingExposure ff = new FormLightingExposure();

                if (mode == SELECT_FIND_MODEL.ULC_CORNER1)
                {
                    ff.mode = LIGHTEXPOSUREMODE.ULC_CORNER1;
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER2)
                {
                    ff.mode = LIGHTEXPOSUREMODE.ULC_CORNER2;
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER3)
                {
                    ff.mode = LIGHTEXPOSUREMODE.ULC_CORNER3;
                }
                if (mode == SELECT_FIND_MODEL.ULC_CORNER4)
                {
                    ff.mode = LIGHTEXPOSUREMODE.ULC_CORNER4;
                }

                ff.ShowDialog();
                mc.ulc.LIVE = false;
                EVENT.hWindow2Display();
            }
            if (sender.Equals(TB_ULC_RETRYNUM))
            {
                mc.para.setting(mc.para.ULC.failretry, out mc.para.ULC.failretry);
            }
            if (sender.Equals(BT_CHAMFER_USE))
            {
                if (mc.para.ULC.chamferuse.value == 0)
                {
                    mc.para.setting(ref mc.para.ULC.chamferuse, 1);
                }
                else
                {
                    mc.para.setting(ref mc.para.ULC.chamferuse, 0);
                }
            }
            if (sender.Equals(BT_ChamferNumber_1))
            {
                mc.para.setting(ref mc.para.ULC.chamferindex, 0);
            }
            if (sender.Equals(BT_ChamferNumber_2))
            {
                mc.para.setting(ref mc.para.ULC.chamferindex, 1);
            }
            if (sender.Equals(BT_ChamferNumber_3))
            {
                mc.para.setting(ref mc.para.ULC.chamferindex, 2);
            }
            if (sender.Equals(BT_ChamferNumber_4))
            {
                mc.para.setting(ref mc.para.ULC.chamferindex, 3);
            }
            if (sender.Equals(BT_ChamferCheckMethod_Chamfer))
            {
                mc.para.setting(ref mc.para.ULC.chamferShape, 0);
            }
//          if (sender.Equals(BT_ChamferCheckMethod_Circle))
//          {
//              mc.para.setting(ref mc.para.ULC.chamferShape, 1);
//          }
            if (sender.Equals(TB_ChamferLength))
            {
                mc.para.setting(mc.para.ULC.chamferLength, out mc.para.ULC.chamferLength);
            }
            if (sender.Equals(TB_ChamferDiameter))
            {
                mc.para.setting(mc.para.ULC.chamferDiameter, out mc.para.ULC.chamferDiameter);
            }
            if (sender.Equals(TB_ChamferScore))
            {
                mc.para.setting(mc.para.ULC.chamferPassScore, out mc.para.ULC.chamferPassScore);
            }
            //if (sender.Equals(TB_CHAMFER_INDEX))
            //{
            //    mc.para.setting(mc.para.ULC.chamferindex, out mc.para.ULC.chamferindex);
            //}
            if (sender.Equals(BT_CHECK_CIRCLE))
            {
                if (mc.para.ULC.checkcircleuse.value == 0)
                {
                    mc.para.setting(ref mc.para.ULC.checkcircleuse, 1);
                }
                else
                {
                    mc.para.setting(ref mc.para.ULC.checkcircleuse, 0);
                }
            }
            if (sender.Equals(BT_BottomCheckPos_Corner))
            {
                mc.para.setting(ref mc.para.ULC.checkCirclePos, 0);
            }
            if (sender.Equals(BT_BottomCheckPos_Side))
            {
                mc.para.setting(ref mc.para.ULC.checkCirclePos, 1);
            }
            if (sender.Equals(TB_CircleDiameter))
            {
                mc.para.setting(mc.para.ULC.circleDiameter, out mc.para.ULC.circleDiameter);
            }
            if (sender.Equals(TB_CircleScore))
            {
                mc.para.setting(mc.para.ULC.circlePassScore, out mc.para.ULC.circlePassScore);
            }
            if (sender.Equals(BT_ImageSave_None))
            {
                mc.para.setting(ref mc.para.ULC.imageSave, 0);
            }
            if (sender.Equals(BT_ImageSave_Error))
            {
                mc.para.setting(ref mc.para.ULC.imageSave, 1);
            }
            if (sender.Equals(BT_ImageSave_All))
            {
                mc.para.setting(ref mc.para.ULC.imageSave, 2);
            }
            if (sender.Equals(BT_ORIENTATION_USE))
            {
                if (mc.para.ULC.orientationUse.value == 0)
                {
                    mc.para.setting(ref mc.para.ULC.orientationUse, 1);
                }
                else
                {
                    mc.para.setting(ref mc.para.ULC.orientationUse, 0);
                }
            }
            if (sender.Equals(BT_ORIENTATION_METHOD_NCC))
            {
                mc.para.setting(ref mc.para.ULC.modelHSOrientation.algorism, (int)MODEL_ALGORISM.NCC);
            }
            if (sender.Equals(BT_ORIENTATION_METHOD_SHAPE))
            {
                mc.para.setting(ref mc.para.ULC.modelHSOrientation.algorism, (int)MODEL_ALGORISM.SHAPE);
            }
            if (sender.Equals(TB_ORIENTATION_PASS_SCORE))
            {
                mc.para.setting(mc.para.ULC.modelHSOrientation.passScore, out mc.para.ULC.modelHSOrientation.passScore);
            }
            if (sender.Equals(BT_ORIENTATION_TEACH))
            {
                mc.ulc.lighting_exposure(mc.para.ULC.model.light, mc.para.ULC.model.exposureTime);
                EVENT.hWindowLargeDisplay(mc.ulc.cam.acq.grabber.cameraNumber);
                FormHalconModelTeach ff = new FormHalconModelTeach();
                ff.mode    = SELECT_FIND_MODEL.ULC_ORIENTATION;
                ff.TopMost = true;
                ff.Show();
                this.Enabled = false;
                while (true)
                {
                    mc.idle(100); if (ff.IsDisposed)
                    {
                        break;
                    }
                }
                this.Enabled = true;
                EVENT.hWindow2Display();
            }

EXIT:
            mc.para.write(out ret.b); if (!ret.b)
            {
                mc.message.alarm("para write error");
            }
            refresh();
            mc.main.Thread_Polling();
            mc.check.push(sender, false);
        }
예제 #46
0
 public static extern bool EventModify(IntPtr hEvent, EVENT ef);
예제 #47
0
 public static extern BTSTATUS BT_RegisterCallback(EVENT ucEvent, PCALLBACK_ERROR pfnCbkFun);